From eeb8f9f0e1d232da6899a3d7d9e331cde3e49f08 Mon Sep 17 00:00:00 2001 From: AmitBM Date: Wed, 14 Dec 2022 13:29:50 -0500 Subject: [PATCH] Updates for 2.7 release. --- .gitignore | 6 +- CMakeLists.txt | 30 +- README.md | 79 +- build/dependency_map.py | 9 +- build/fetch_dependencies.py | 4 +- build/prebuild.bat | 7 +- build/util/linux/copy_post_build_cli.sh | 14 +- build/util/linux/copy_post_build_gui.sh | 4 +- build/util/windows/copy_post_build_cli.bat | 16 +- documentation/RGA_RELEASE_NOTES.docx | Bin 37280 -> 32187 bytes documentation/RGA_RELEASE_NOTES.txt | 79 +- documentation/source/conf.py | 4 +- documentation/source/help_manual.rst | 22 + .../images/030_live_vgpr_show_max_vgpr.png | Bin 0 -> 47851 bytes ...1_live_vgpr_show_max_vgpr_context_menu.png | Bin 0 -> 15910 bytes external/.gitattributes | 5 +- .../amdt_base_tools/Include/gtRedBlackTree.h | 133 - .../src/gtIAllocationFailureObserver.cpp | 24 - .../amdt_base_tools/src/gtRedBlackTree.cpp | 904 -- external/amdt_os_wrappers/CMakeLists.txt | 90 +- external/amdt_os_wrappers/Include/osAtomic.h | 23 - .../amdt_os_wrappers/Include/osBugReporter.h | 84 - external/amdt_os_wrappers/Include/osBundle.h | 30 - .../Include/osCGIInputDataReader.h | 80 - .../amdt_os_wrappers/Include/osCallStack.h | 66 - .../Include/osCallStackFrame.h | 99 - .../Include/osCallsStackReader.h | 41 - .../Include/osChannelEncryptor.h | 71 - .../amdt_os_wrappers/Include/osCondition.h | 59 - external/amdt_os_wrappers/Include/osConsole.h | 21 - external/amdt_os_wrappers/Include/osCpuid.h | 243 - .../Include/osExceptionReason.h | 405 - .../amdt_os_wrappers/Include/osHTTPClient.h | 84 - .../Include/osIOKitForiPhoneDevice.h | 47 - .../Include/osKeyboardListener.h | 87 - .../Include/osMacSystemResourcesSampler.h | 55 - .../amdt_os_wrappers/Include/osMessageBox.h | 70 - external/amdt_os_wrappers/Include/osMutex.h | 55 - .../amdt_os_wrappers/Include/osMutexLocker.h | 67 - .../amdt_os_wrappers/Include/osNULLSocket.h | 48 - .../Include/osNetworkAdapter.h | 50 - .../Include/osOutOfMemoryHandling.h | 17 - .../amdt_os_wrappers/Include/osPipeExecutor.h | 37 - .../amdt_os_wrappers/Include/osPipeSocket.h | 83 - .../Include/osPipeSocketClient.h | 43 - .../Include/osPipeSocketServer.h | 47 - .../Include/osRawMemoryBuffer.h | 60 - .../Include/osSharedMemorySocket.h | 145 - .../Include/osSharedMemorySocketClient.h | 50 - .../Include/osSharedMemorySocketServer.h | 72 - .../src/common/osBugReporter.cpp | 348 - .../src/common/osCGIInputDataReader.cpp | 599 - .../src/common/osCallStack.cpp | 580 - .../src/common/osCallStackFrame.cpp | 128 - .../amdt_os_wrappers/src/common/osCpuid.cpp | 345 - .../src/common/osDirectorySerializer.cpp | 281 - .../src/common/osExceptionReason.cpp | 661 - .../src/common/osGeneralFunctions.cpp | 205 - .../src/common/osHTTPClient.cpp | 931 -- .../src/common/osMessageBox.cpp | 148 - .../amdt_os_wrappers/src/common/osMutex.cpp | 80 - .../src/common/osMutexLocker.cpp | 77 - .../src/common/osNULLSocket.cpp | 114 - .../src/common/osNetworkAdapter.cpp | 63 - .../src/common/osOSWrappersDLLBuild.cpp | 155 - .../src/common/osOutOfMemoryHandling.cpp | 48 - .../src/common/osPortAddress.cpp | 74 - .../src/common/osRawMemoryBuffer.cpp | 279 - .../src/common/osSingeltonsDelete.cpp | 54 - .../src/common/osSingeltonsDelete.h | 37 - .../amdt_os_wrappers/src/common/osStream.cpp | 54 - .../src/common/osSynchronizationObject.cpp | 75 - .../common/osSynchronizationObjectLocker.cpp | 77 - .../src/common/osTCPSocketServer.cpp | 57 - .../osTCPSocketServerConnectionHandler.cpp | 49 - .../src/common/osTransferableObjectType.cpp | 54 - .../src/common/osWrappersInitFunc.cpp | 54 - .../src/iphone/osApplication.mm | 97 - .../src/linux/osCallsStackReader.cpp | 217 - .../src/linux/osCondition.cpp | 202 - .../amdt_os_wrappers/src/linux/osConsole.cpp | 70 - .../amdt_os_wrappers/src/linux/osDaemon.cpp | 267 - .../amdt_os_wrappers/src/linux/osDesktop.cpp | 126 - .../src/linux/osKeyboardListener.cpp | 146 - .../src/linux/osNetworkAdapter.cpp | 236 - .../src/linux/osPipeExecutor.cpp | 86 - .../src/linux/osPipeSocket.cpp | 688 - .../src/linux/osPipeSocketClient.cpp | 134 - .../src/linux/osPipeSocketServer.cpp | 181 - .../src/linux/osSingleApplicationInstance.cpp | 106 - .../src/linux/osSynchronizationObjectImpl.h | 39 - .../amdt_os_wrappers/src/win32/osAtomicImpl.h | 138 - .../src/win32/osCallsStackReader.cpp | 98 - .../amdt_os_wrappers/src/win32/osConsole.cpp | 28 - .../amdt_os_wrappers/src/win32/osDaemon.cpp | 28 - .../amdt_os_wrappers/src/win32/osDesktop.cpp | 79 - .../src/win32/osFilePermissions.cpp | 123 - .../src/win32/osGeneralFunctions.cpp | 1 - .../src/win32/osHTTPRequest.cpp | 150 - .../src/win32/osKeyboardListener.cpp | 62 - .../src/win32/osMutexImpl.cpp | 107 - .../amdt_os_wrappers/src/win32/osMutexImpl.h | 41 - .../src/win32/osNetworkAdapter.cpp | 130 - .../src/win32/osPipeSocket.cpp | 473 - .../src/win32/osPipeSocketClient.cpp | 103 - .../src/win32/osPipeSocketServer.cpp | 197 - .../src/win32/osPrivateData.h | 17 - .../src/win32/osSharedMemorySocket.cpp | 474 - .../src/win32/osSharedMemorySocketClient.cpp | 189 - .../src/win32/osSharedMemorySocketServer.cpp | 380 - .../src/win32/osSynchronizationObjectImpl.cpp | 115 - .../src/win32/osSynchronizationObjectImpl.h | 39 - .../src/win32/osToAndFromString.cpp | 94 - external/dx11/AsicReg/devices.h | 8 + external/dx11/amdxx/amdxx64.dll | 3 + external/lc/disassembler/linux/amdgpu-dis | 4 +- .../lc/disassembler/windows/amdgpu-dis.exe | 4 +- external/lc/opencl/linux/bin/clang-14 | 3 - external/lc/opencl/linux/bin/clang-16 | 3 + external/lc/opencl/linux/bin/lld | 4 +- external/lc/opencl/linux/bin/llvm-objdump | 4 +- external/lc/opencl/linux/bin/llvm-readobj | 4 +- .../lc/opencl/linux/include/opencl-c-base.h | 104 +- external/lc/opencl/linux/include/opencl-c.h | 12342 +++++++++------- .../opencl/linux/lib/bitcode/irif.amdgcn.bc | Bin 16980 -> 0 bytes .../opencl/linux/lib/bitcode/ockl.amdgcn.bc | Bin 211432 -> 231428 bytes .../oclc_correctly_rounded_sqrt_off.amdgcn.bc | Bin 1916 -> 2092 bytes .../oclc_correctly_rounded_sqrt_on.amdgcn.bc | Bin 1916 -> 2092 bytes .../lib/bitcode/oclc_daz_opt_off.amdgcn.bc | Bin 1900 -> 2076 bytes .../lib/bitcode/oclc_daz_opt_on.amdgcn.bc | Bin 1900 -> 2076 bytes .../bitcode/oclc_finite_only_off.amdgcn.bc | Bin 1908 -> 2084 bytes .../lib/bitcode/oclc_finite_only_on.amdgcn.bc | Bin 1908 -> 2084 bytes .../bitcode/oclc_isa_version_1010.amdgcn.bc | Bin 1900 -> 2076 bytes .../bitcode/oclc_isa_version_1011.amdgcn.bc | Bin 1900 -> 2076 bytes .../bitcode/oclc_isa_version_1012.amdgcn.bc | Bin 1900 -> 2076 bytes .../bitcode/oclc_isa_version_1030.amdgcn.bc | Bin 1900 -> 2076 bytes .../bitcode/oclc_isa_version_1031.amdgcn.bc | Bin 1900 -> 2076 bytes .../bitcode/oclc_isa_version_1032.amdgcn.bc | Bin 1900 -> 2076 bytes .../bitcode/oclc_isa_version_1034.amdgcn.bc | Bin 1892 -> 2076 bytes .../bitcode/oclc_isa_version_1035.amdgcn.bc | Bin 0 -> 2076 bytes .../bitcode/oclc_isa_version_1100.amdgcn.bc | Bin 0 -> 2076 bytes .../bitcode/oclc_isa_version_900.amdgcn.bc | Bin 1900 -> 2076 bytes .../bitcode/oclc_isa_version_902.amdgcn.bc | Bin 1900 -> 2076 bytes .../bitcode/oclc_isa_version_904.amdgcn.bc | Bin 1900 -> 2076 bytes .../bitcode/oclc_isa_version_906.amdgcn.bc | Bin 1900 -> 2076 bytes .../bitcode/oclc_isa_version_908.amdgcn.bc | Bin 1900 -> 2076 bytes .../bitcode/oclc_isa_version_909.amdgcn.bc | Bin 1900 -> 2076 bytes .../bitcode/oclc_isa_version_90a.amdgcn.bc | Bin 1900 -> 2076 bytes .../bitcode/oclc_isa_version_90c.amdgcn.bc | Bin 1900 -> 2076 bytes .../bitcode/oclc_unsafe_math_off.amdgcn.bc | Bin 1908 -> 2084 bytes .../lib/bitcode/oclc_unsafe_math_on.amdgcn.bc | Bin 1908 -> 2084 bytes .../oclc_wavefrontsize64_off.amdgcn.bc | Bin 1908 -> 2084 bytes .../bitcode/oclc_wavefrontsize64_on.amdgcn.bc | Bin 1908 -> 2084 bytes .../opencl/linux/lib/bitcode/ocml.amdgcn.bc | Bin 205544 -> 198920 bytes .../opencl/linux/lib/bitcode/opencl.amdgcn.bc | Bin 2851140 -> 132 bytes external/lc/opencl/windows/bin/clang.exe | 4 +- external/lc/opencl/windows/bin/ld.lld.exe | 4 +- .../lc/opencl/windows/bin/llvm-objdump.exe | 4 +- .../lc/opencl/windows/bin/llvm-readobj.exe | 4 +- .../lc/opencl/windows/include/opencl-c-base.h | 104 +- external/lc/opencl/windows/include/opencl-c.h | 12342 +++++++++------- .../opencl/windows/lib/bitcode/irif.amdgcn.bc | Bin 16980 -> 0 bytes .../opencl/windows/lib/bitcode/ockl.amdgcn.bc | Bin 211368 -> 231300 bytes .../oclc_correctly_rounded_sqrt_off.amdgcn.bc | Bin 1776 -> 1964 bytes .../oclc_correctly_rounded_sqrt_on.amdgcn.bc | Bin 1776 -> 1960 bytes .../lib/bitcode/oclc_daz_opt_off.amdgcn.bc | Bin 1760 -> 1948 bytes .../lib/bitcode/oclc_daz_opt_on.amdgcn.bc | Bin 1760 -> 1944 bytes .../bitcode/oclc_finite_only_off.amdgcn.bc | Bin 1768 -> 1956 bytes .../lib/bitcode/oclc_finite_only_on.amdgcn.bc | Bin 1768 -> 1952 bytes .../bitcode/oclc_isa_version_1010.amdgcn.bc | Bin 1760 -> 1948 bytes .../bitcode/oclc_isa_version_1011.amdgcn.bc | Bin 1760 -> 1948 bytes .../bitcode/oclc_isa_version_1012.amdgcn.bc | Bin 1760 -> 1948 bytes .../bitcode/oclc_isa_version_1030.amdgcn.bc | Bin 1760 -> 1948 bytes .../bitcode/oclc_isa_version_1031.amdgcn.bc | Bin 1760 -> 1948 bytes .../bitcode/oclc_isa_version_1032.amdgcn.bc | Bin 1884 -> 1948 bytes .../bitcode/oclc_isa_version_1034.amdgcn.bc | Bin 1888 -> 1948 bytes .../bitcode/oclc_isa_version_1035.amdgcn.bc | Bin 0 -> 1948 bytes .../bitcode/oclc_isa_version_1100.amdgcn.bc | Bin 0 -> 1948 bytes .../bitcode/oclc_isa_version_900.amdgcn.bc | Bin 1760 -> 1948 bytes .../bitcode/oclc_isa_version_902.amdgcn.bc | Bin 1760 -> 1948 bytes .../bitcode/oclc_isa_version_904.amdgcn.bc | Bin 1760 -> 1948 bytes .../bitcode/oclc_isa_version_906.amdgcn.bc | Bin 1760 -> 1948 bytes .../bitcode/oclc_isa_version_908.amdgcn.bc | Bin 1760 -> 1948 bytes .../bitcode/oclc_isa_version_909.amdgcn.bc | Bin 1760 -> 1948 bytes .../bitcode/oclc_isa_version_90a.amdgcn.bc | Bin 1760 -> 1948 bytes .../bitcode/oclc_isa_version_90c.amdgcn.bc | Bin 1760 -> 1948 bytes .../bitcode/oclc_unsafe_math_off.amdgcn.bc | Bin 1768 -> 1956 bytes .../lib/bitcode/oclc_unsafe_math_on.amdgcn.bc | Bin 1768 -> 1952 bytes .../oclc_wavefrontsize64_off.amdgcn.bc | Bin 1768 -> 1956 bytes .../bitcode/oclc_wavefrontsize64_on.amdgcn.bc | Bin 1768 -> 1952 bytes .../opencl/windows/lib/bitcode/ocml.amdgcn.bc | Bin 205372 -> 198788 bytes .../windows/lib/bitcode/opencl.amdgcn.bc | Bin 2857944 -> 132 bytes external/opengl/glc/linux/glc | 4 +- external/opengl/glc/windows/glc.exe | 4 +- external/vulkan_offline/linux/amdspv | 4 +- external/vulkan_offline/linux/spvgen.so | 3 - external/vulkan_offline/windows/amdspv.exe | 4 +- external/vulkan_offline/windows/spvgen.dll | 3 - installer/RGA-Installer.aip | 470 +- source/common/rga_cli_defs.h | 2 +- source/common/rga_version_info.h | 4 +- .../be_amddxxmodule_wrapper.h | 52 + .../be_backend.cpp | 12 +- .../radeon_gpu_analyzer_backend/be_include.h | 1 + .../be_program_builder_dx11.cpp | 18 +- .../be_program_builder_dx11.h | 10 +- .../be_program_builder_lightning.cpp | 15 +- .../be_program_builder_opengl.cpp | 4 +- .../be_program_builder_vk_offline.cpp | 5 +- .../be_program_builder_vulkan.cpp | 211 + .../be_program_builder_vulkan.h | 10 +- .../be_static_isa_analyzer.cpp | 21 +- .../be_string_constants.h | 11 +- .../radeon_gpu_analyzer_backend/be_utils.cpp | 72 +- source/radeon_gpu_analyzer_backend/be_utils.h | 10 + .../emulator/parser/be_isa_parser.cpp | 47 +- .../kc_cli_commander_dx11.cpp | 60 +- .../kc_cli_commander_dx11.h | 2 +- .../kc_cli_commander_lightning.cpp | 70 +- .../kc_cli_commander_lightning.h | 8 + .../kc_cli_commander_opengl.cpp | 2 +- .../kc_cli_commander_vulkan.cpp | 229 +- .../kc_cli_commander_vulkan.h | 6 +- source/radeon_gpu_analyzer_cli/kc_config.h | 5 +- .../kc_parse_cmd_line.cpp | 8 +- source/radeon_gpu_analyzer_cli/kc_utils.cpp | 7 + source/radeon_gpu_analyzer_cli/kc_utils.h | 3 + .../qt/rg_build_view.h | 6 + .../qt/rg_isa_disassembly_tab_view.h | 15 + .../qt/rg_isa_disassembly_table_model.h | 30 + .../qt/rg_isa_disassembly_table_view.h | 18 + .../qt/rg_isa_disassembly_view.h | 26 +- .../qt/rg_main_window.h | 13 + .../qt/rg_output_file_utils.h | 4 +- .../radeon_gpu_analyzer_gui/rg_build_view.cpp | 8 + .../rg_build_view_opencl.cpp | 6 + .../rg_build_view_vulkan.cpp | 6 + .../rg_config_file.cpp | 15 + .../rg_config_manager.cpp | 33 +- .../radeon_gpu_analyzer_gui/rg_data_types.h | 4 +- .../radeon_gpu_analyzer_gui/rg_definitions.h | 7 +- .../rg_global_settings_view.cpp | 4 +- .../rg_isa_disassembly_custom_table_view.cpp | 23 + .../rg_isa_disassembly_tab_view.cpp | 27 + .../rg_isa_disassembly_table_model.cpp | 128 +- .../rg_isa_disassembly_table_view.cpp | 78 +- .../rg_isa_disassembly_view.cpp | 125 + .../rg_main_window.cpp | 50 +- .../rg_output_file_utils.cpp | 64 +- .../rg_source_code_editor.cpp | 1 - .../rg_string_constants.h | 8 +- .../rg_target_gpus_dialog.cpp | 9 +- source/radeon_gpu_analyzer_gui/rg_utils.cpp | 2 +- source/utils/shader_analysis/linux/x64/shae | Bin 1002096 -> 1313664 bytes .../shader_analysis/windows/x64/shae.exe | Bin 1150464 -> 1498112 bytes updates/RGA-Updates.json | 105 +- 256 files changed, 15775 insertions(+), 26439 deletions(-) create mode 100644 documentation/source/images/030_live_vgpr_show_max_vgpr.png create mode 100644 documentation/source/images/031_live_vgpr_show_max_vgpr_context_menu.png delete mode 100644 external/amdt_base_tools/Include/gtRedBlackTree.h delete mode 100644 external/amdt_base_tools/src/gtIAllocationFailureObserver.cpp delete mode 100644 external/amdt_base_tools/src/gtRedBlackTree.cpp delete mode 100644 external/amdt_os_wrappers/Include/osAtomic.h delete mode 100644 external/amdt_os_wrappers/Include/osBugReporter.h delete mode 100644 external/amdt_os_wrappers/Include/osBundle.h delete mode 100644 external/amdt_os_wrappers/Include/osCGIInputDataReader.h delete mode 100644 external/amdt_os_wrappers/Include/osCallStack.h delete mode 100644 external/amdt_os_wrappers/Include/osCallStackFrame.h delete mode 100644 external/amdt_os_wrappers/Include/osCallsStackReader.h delete mode 100644 external/amdt_os_wrappers/Include/osChannelEncryptor.h delete mode 100644 external/amdt_os_wrappers/Include/osCondition.h delete mode 100644 external/amdt_os_wrappers/Include/osConsole.h delete mode 100644 external/amdt_os_wrappers/Include/osCpuid.h delete mode 100644 external/amdt_os_wrappers/Include/osExceptionReason.h delete mode 100644 external/amdt_os_wrappers/Include/osHTTPClient.h delete mode 100644 external/amdt_os_wrappers/Include/osIOKitForiPhoneDevice.h delete mode 100644 external/amdt_os_wrappers/Include/osKeyboardListener.h delete mode 100644 external/amdt_os_wrappers/Include/osMacSystemResourcesSampler.h delete mode 100644 external/amdt_os_wrappers/Include/osMessageBox.h delete mode 100644 external/amdt_os_wrappers/Include/osMutex.h delete mode 100644 external/amdt_os_wrappers/Include/osMutexLocker.h delete mode 100644 external/amdt_os_wrappers/Include/osNULLSocket.h delete mode 100644 external/amdt_os_wrappers/Include/osNetworkAdapter.h delete mode 100644 external/amdt_os_wrappers/Include/osOutOfMemoryHandling.h delete mode 100644 external/amdt_os_wrappers/Include/osPipeExecutor.h delete mode 100644 external/amdt_os_wrappers/Include/osPipeSocket.h delete mode 100644 external/amdt_os_wrappers/Include/osPipeSocketClient.h delete mode 100644 external/amdt_os_wrappers/Include/osPipeSocketServer.h delete mode 100644 external/amdt_os_wrappers/Include/osRawMemoryBuffer.h delete mode 100644 external/amdt_os_wrappers/Include/osSharedMemorySocket.h delete mode 100644 external/amdt_os_wrappers/Include/osSharedMemorySocketClient.h delete mode 100644 external/amdt_os_wrappers/Include/osSharedMemorySocketServer.h delete mode 100644 external/amdt_os_wrappers/src/common/osBugReporter.cpp delete mode 100644 external/amdt_os_wrappers/src/common/osCGIInputDataReader.cpp delete mode 100644 external/amdt_os_wrappers/src/common/osCallStack.cpp delete mode 100644 external/amdt_os_wrappers/src/common/osCallStackFrame.cpp delete mode 100644 external/amdt_os_wrappers/src/common/osCpuid.cpp delete mode 100644 external/amdt_os_wrappers/src/common/osDirectorySerializer.cpp delete mode 100644 external/amdt_os_wrappers/src/common/osExceptionReason.cpp delete mode 100644 external/amdt_os_wrappers/src/common/osGeneralFunctions.cpp delete mode 100644 external/amdt_os_wrappers/src/common/osHTTPClient.cpp delete mode 100644 external/amdt_os_wrappers/src/common/osMessageBox.cpp delete mode 100644 external/amdt_os_wrappers/src/common/osMutex.cpp delete mode 100644 external/amdt_os_wrappers/src/common/osMutexLocker.cpp delete mode 100644 external/amdt_os_wrappers/src/common/osNULLSocket.cpp delete mode 100644 external/amdt_os_wrappers/src/common/osNetworkAdapter.cpp delete mode 100644 external/amdt_os_wrappers/src/common/osOSWrappersDLLBuild.cpp delete mode 100644 external/amdt_os_wrappers/src/common/osOutOfMemoryHandling.cpp delete mode 100644 external/amdt_os_wrappers/src/common/osPortAddress.cpp delete mode 100644 external/amdt_os_wrappers/src/common/osRawMemoryBuffer.cpp delete mode 100644 external/amdt_os_wrappers/src/common/osSingeltonsDelete.cpp delete mode 100644 external/amdt_os_wrappers/src/common/osSingeltonsDelete.h delete mode 100644 external/amdt_os_wrappers/src/common/osStream.cpp delete mode 100644 external/amdt_os_wrappers/src/common/osSynchronizationObject.cpp delete mode 100644 external/amdt_os_wrappers/src/common/osSynchronizationObjectLocker.cpp delete mode 100644 external/amdt_os_wrappers/src/common/osTCPSocketServer.cpp delete mode 100644 external/amdt_os_wrappers/src/common/osTCPSocketServerConnectionHandler.cpp delete mode 100644 external/amdt_os_wrappers/src/common/osTransferableObjectType.cpp delete mode 100644 external/amdt_os_wrappers/src/common/osWrappersInitFunc.cpp delete mode 100644 external/amdt_os_wrappers/src/iphone/osApplication.mm delete mode 100644 external/amdt_os_wrappers/src/linux/osCallsStackReader.cpp delete mode 100644 external/amdt_os_wrappers/src/linux/osCondition.cpp delete mode 100644 external/amdt_os_wrappers/src/linux/osConsole.cpp delete mode 100644 external/amdt_os_wrappers/src/linux/osDaemon.cpp delete mode 100644 external/amdt_os_wrappers/src/linux/osDesktop.cpp delete mode 100644 external/amdt_os_wrappers/src/linux/osKeyboardListener.cpp delete mode 100644 external/amdt_os_wrappers/src/linux/osNetworkAdapter.cpp delete mode 100644 external/amdt_os_wrappers/src/linux/osPipeExecutor.cpp delete mode 100644 external/amdt_os_wrappers/src/linux/osPipeSocket.cpp delete mode 100644 external/amdt_os_wrappers/src/linux/osPipeSocketClient.cpp delete mode 100644 external/amdt_os_wrappers/src/linux/osPipeSocketServer.cpp delete mode 100644 external/amdt_os_wrappers/src/linux/osSingleApplicationInstance.cpp delete mode 100644 external/amdt_os_wrappers/src/linux/osSynchronizationObjectImpl.h delete mode 100644 external/amdt_os_wrappers/src/win32/osAtomicImpl.h delete mode 100644 external/amdt_os_wrappers/src/win32/osCallsStackReader.cpp delete mode 100644 external/amdt_os_wrappers/src/win32/osConsole.cpp delete mode 100644 external/amdt_os_wrappers/src/win32/osDaemon.cpp delete mode 100644 external/amdt_os_wrappers/src/win32/osDesktop.cpp delete mode 100644 external/amdt_os_wrappers/src/win32/osFilePermissions.cpp delete mode 100644 external/amdt_os_wrappers/src/win32/osHTTPRequest.cpp delete mode 100644 external/amdt_os_wrappers/src/win32/osKeyboardListener.cpp delete mode 100644 external/amdt_os_wrappers/src/win32/osMutexImpl.cpp delete mode 100644 external/amdt_os_wrappers/src/win32/osMutexImpl.h delete mode 100644 external/amdt_os_wrappers/src/win32/osNetworkAdapter.cpp delete mode 100644 external/amdt_os_wrappers/src/win32/osPipeSocket.cpp delete mode 100644 external/amdt_os_wrappers/src/win32/osPipeSocketClient.cpp delete mode 100644 external/amdt_os_wrappers/src/win32/osPipeSocketServer.cpp delete mode 100644 external/amdt_os_wrappers/src/win32/osPrivateData.h delete mode 100644 external/amdt_os_wrappers/src/win32/osSharedMemorySocket.cpp delete mode 100644 external/amdt_os_wrappers/src/win32/osSharedMemorySocketClient.cpp delete mode 100644 external/amdt_os_wrappers/src/win32/osSharedMemorySocketServer.cpp delete mode 100644 external/amdt_os_wrappers/src/win32/osSynchronizationObjectImpl.cpp delete mode 100644 external/amdt_os_wrappers/src/win32/osSynchronizationObjectImpl.h delete mode 100644 external/amdt_os_wrappers/src/win32/osToAndFromString.cpp create mode 100644 external/dx11/amdxx/amdxx64.dll delete mode 100755 external/lc/opencl/linux/bin/clang-14 create mode 100644 external/lc/opencl/linux/bin/clang-16 delete mode 100755 external/lc/opencl/linux/lib/bitcode/irif.amdgcn.bc create mode 100644 external/lc/opencl/linux/lib/bitcode/oclc_isa_version_1035.amdgcn.bc create mode 100644 external/lc/opencl/linux/lib/bitcode/oclc_isa_version_1100.amdgcn.bc delete mode 100644 external/lc/opencl/windows/lib/bitcode/irif.amdgcn.bc create mode 100644 external/lc/opencl/windows/lib/bitcode/oclc_isa_version_1035.amdgcn.bc create mode 100644 external/lc/opencl/windows/lib/bitcode/oclc_isa_version_1100.amdgcn.bc delete mode 100644 external/vulkan_offline/linux/spvgen.so delete mode 100644 external/vulkan_offline/windows/spvgen.dll create mode 100644 source/radeon_gpu_analyzer_backend/be_amddxxmodule_wrapper.h diff --git a/.gitignore b/.gitignore index d510b17..02659a4 100755 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,11 @@ build/CMake build/windows build/linux -Output +output .vscode -Output_Test +output_test *.vs +build_output BuildOutput documentation/build *.csproj.user @@ -15,3 +16,4 @@ external/code_sanitizer *.msi RGA-Installer-cache source/common/vulkan_layer_launcher/RGALayerLauncher/bin + diff --git a/CMakeLists.txt b/CMakeLists.txt index 8b2ca07..f8a2496 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -72,18 +72,18 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR ${CMAKE_SYSTEM_NAME} STREQUAL "Darwi endif() # Output directories - set(BUILD_CONFIG "Release") + set(BUILD_CONFIG "release") if (CMAKE_BUILD_TYPE STREQUAL "Debug") - set(BUILD_CONFIG "Debug") + set(BUILD_CONFIG "debug") endif() if (GUI_AUTOMATION) - set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/Output_Test/${BUILD_CONFIG}/bin") - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/Output_Test/${BUILD_CONFIG}/lib") - set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/Output_Test/${BUILD_CONFIG}/arch") + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/output_test/${BUILD_CONFIG}/bin") + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/output_test/${BUILD_CONFIG}/lib") + set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/output_test/${BUILD_CONFIG}/arch") else() - set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/Output/${BUILD_CONFIG}/bin") - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/Output/${BUILD_CONFIG}/lib") - set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/Output/${BUILD_CONFIG}/arch") + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/output/${BUILD_CONFIG}/bin") + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/output/${BUILD_CONFIG}/lib") + set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/output/${BUILD_CONFIG}/arch") endif() elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Windows") @@ -93,13 +93,13 @@ elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Windows") # Output directories - use Windows path separaters so xcopy commands work if (GUI_AUTOMATION) - set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}\\Output_Test\\$<$:Debug>$<$:Release>\\bin) - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}\\Output_Test\\$<$:Debug>$<$:Release>\\lib) - set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}\\Output_Test\\$<$:Debug>$<$:Release>\\arch) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}\\output_test\\$<$:debug>$<$:release>\\bin) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}\\output_test\\$<$:debug>$<$:release>\\lib) + set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}\\output_test\\$<$:debug>$<$:release>\\arch) else() - set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}\\Output\\$<$:Debug>$<$:Release>\\bin) - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}\\Output\\$<$:Debug>$<$:Release>\\lib) - set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}\\Output\\$<$:Debug>$<$:Release>\\arch) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}\\output\\$<$:debug>$<$:release>\\bin) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}\\output\\$<$:debug>$<$:release>\\lib) + set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}\\output\\$<$:debug>$<$:release>\\arch) endif() # Use multiple cores to compile all projects. @@ -147,5 +147,5 @@ endif() # Add Tests if(AMD_INTERNAL) - add_subdirectory (${PROJECT_SOURCE_DIR}/../RGA-Internal/tests ${CMAKE_CURRENT_BINARY_DIR}/tests) + add_subdirectory (${PROJECT_SOURCE_DIR}/../rga_internal_utils/tests ${CMAKE_CURRENT_BINARY_DIR}/tests) endif() diff --git a/README.md b/README.md index f033839..8f43ecc 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,6 @@ The supported modes by the **command-line tool** are: * Vulkan Offline - using a static compiler, accepts GLSL/SPIR-V as input. Note: to ensure that the results that RGA provides are accurate and reflect the real-world case, please use the new Vulkan live driver mode (which is also supported in the GUI application). * OpenCL - AMD's LLVM-based Lightning Compiler for Offline OpenCL * OpenGL -* AMDIL ## System Requirements ## @@ -36,7 +35,10 @@ The supported modes by the **command-line tool** are: To run the tool, you would need to have the AMD Radeon Adrenalin Software (Windows) or amdgpu-pro driver (Linux) installed for all modes, except for the following "offline" modes, which are independent of the driver and hardware: * Vulkan offline mode -* OpenCL offline mode +* OpenCL mode +* OpenGL mode +* DX11 mode + For the non-offline modes, it is strongly recommended to run with the latest drivers so that the latest compiler is used and the latest architectures can be targeted. @@ -55,11 +57,9 @@ As a preliminary step, make sure that you have the following installed on your s cd to the build sub-folder, and run: -``` prebuild.bat --qt --vs 2017 -``` -Where `` is the path to the Qt msvc2017_64 folder, such as `C:\Qt\Qt5.15.2\msvc2017_64`. +Where is the path to the Qt msvc2017_64 folder, such as C:\Qt\Qt5.15.2\msvc2017_64. Running the prebuild script will fetch all the dependencies and generate the solution file for Visual Studio. After successfully running the preuild script, open RGA.sln from build\windows\vs2019 (or vs2017), and build: @@ -67,11 +67,11 @@ After successfully running the preuild script, open RGA.sln from build\windows\v * RadeonGPUAnalyzerGUI project for the GUI app Some useful options of the prebuild script: -* `--vs `: generate the solution files for a specific Visual Studio version. For example, to target VS 2019, add --vs 2019 to the command. -* `--qt `: full path to the folder from where you would like the Qt binaries to be retrieved. By default, CMake would try to auto-detect Qt on the system. -* `--vk-include` and `--vk-lib`: full paths to where the Vulkan SDK include and Vulkan lib folders. By default, CMake would try to auto-detect the Vulkan SDK on the system. -* `--cli-only`: only build the command line tool (do not build the GUI app) -* `--no-fetch`: do not attempt to update the third-party repositories +* --vs : generate the solution files for a specific Visual Studio version. For example, to target VS 2019, add --vs 2019 to the command. +* --qt : full path to the folder from where you would like the Qt binaries to be retrieved. By default, CMake would try to auto-detect Qt on the system. +* --vk-include and --vk-lib: full paths to where the Vulkan SDK include and Vulkan lib folders. By default, CMake would try to auto-detect the Vulkan SDK on the system. +* --cli-only: only build the command line tool (do not build the GUI app) +* --no-fetch: do not attempt to update the third-party repositories If you are intending to analyze DirectX 11 shaders using RGA, copy the x64 version of Microsoft's D3D compiler to a subdirectory named "utils" under the RGA executable's directory (for example, D3DCompiler_47.dll). @@ -82,9 +82,7 @@ If for some reason you do not want to use the prebuild.bat script, you can also Start by running the FetchDependencies.py script to fetch the solution's dependencies. To generate the solution file for VS 2017 in x64 configuration, use: -``` -cmake.exe -G "Visual Studio 15 2017 Win64" -``` + cmake.exe -G "Visual Studio 15 2017 Win64" If you are intending to analyze DirectX shaders using RGA, copy the x64 version of Microsoft's D3D compiler to a subdirectory named "utils" under the RGA executable's directory (for example, D3DCompiler_47.dll). @@ -92,43 +90,41 @@ named "utils" under the RGA executable's directory (for example, D3DCompiler_47. ### Building on Ubuntu ### * One time setup: * Install the Vulkan SDK (version 1.1.97.0 or above). To download the Vulkan SDK, visit https://vulkan.lunarg.com/ - * `sudo apt-get install libboost-all-dev` - * `sudo apt-get install gcc-multilib g++-multilib` - * `sudo apt-get install libglu1-mesa-dev mesa-common-dev libgtk2.0-dev` - * `sudo apt-get install zlib1g-dev libx11-dev:i386` + * sudo apt-get install libboost-all-dev + * sudo apt-get install gcc-multilib g++-multilib + * sudo apt-get install libglu1-mesa-dev mesa-common-dev libgtk2.0-dev + * sudo apt-get install zlib1g-dev libx11-dev:i386 * Install CMake 3.10 or above. For auto-detecting the Vulkan SDK version 3.7 or above is required. - * Install Python 3.6 (or above) + * Install python 3.6 (or above) * To build the GUI app, you should also have Qt installed * Build: - `cd` to the Build sub-folder + cd to the build sub-folder On Linux, it is recommended to explicitly pass to CMake the location of the Vulkan SDK include and lib directories as well as the location of Qt. For example: -```bash -./prebuild.sh --qt ~/Qt-5.15.2/5.15.2/gcc_64 --vk-include ~/work/vulkan-sdk/1.1.97.0/x86_64/include/ --vk-lib ~/work/vulkan-sdk/1.1.97.0/x86_64/lib/ -``` + ./prebuild.sh --qt ~/Qt-5.15.2/5.15.2/gcc_64 --vk-include ~/work/vulkan-sdk/1.1.97.0/x86_64/include/ --vk-lib ~/work/vulkan-sdk/1.1.97.0/x86_64/lib/ This will fetch all the dependencies and generate the make files. - Then, `cd `to the auto-generated subfolder build/linux/make and run `make`. + Then, cd to the auto-generated subfolder build/linux/make and run make. -=- - If for some reason you do not want to use the `prebuild.sh` script, you can also manually fetch the dependencies and generate the makefiles: + If for some reason you do not want to use the prebuild.sh script, you can also manually fetch the dependencies and generate the makefiles: - * run: `python3 fetch_dependencies.py` - * run: `cmake –DCMAKE_BUILD_TYPE=Release` (or: `Debug`) `` + * run: python3 fetch_dependencies.py + * run: cmake –DCMAKE_BUILD_TYPE=Release (or: Debug) It is recommended to create a directory to hold all build files, and launch cmake from that directory. For example: - * `cd` to the RGA repo directory - * `mkdir _build` - * `cd _build` - * `cmake –DCMAKE_BUILD_TYPE=Release ../` - * run: `make` + * cd to the RGA repo directory + * mkdir _build + * cd _build + * cmake –DCMAKE_BUILD_TYPE=Release ../ + * run: make ## Running ## ### GUI App ### @@ -139,21 +135,20 @@ Run the RadeonGPUAnalyzerGUI executable. The app provides a quickstart guide and Run the rga executable. * Usage: - * General: `rga -h` - * DirectX 12: `rga -s dx12 -h` - * DirectX 11: `rga -s dx11 -h` - * DirectX Raytracing: `rga -s dxr -h` + * General: rga -h + * DirectX 12: rga -s dx12 -h + * DirectX 11: rga -s dx11 -h + * DirectX Raytracing: rga -s dxr -h Note: RGA's DX11 mode requires Microsoft's D3D Compiler DLL in runtime. If you copy the relevant D3D Compiler DLL to the utils subdirectory under the executable's directory, RGA will use that DLL in runtime. The default D3D compiler that RGA public releases ship with is d3dcompiler_47.dll. - * OpenGL: `rga -s opengl -h` - * OpenCL offline: `rga -s opencl -h` - * Vulkan live-driver: `rga -s vulkan -h` - * Vulkan offline - GLSL: `rga -s vk-offline -h` - * Vulkan offline - SPIR-V binary input: `rga -s vk-offline-spv -h` - * Vulkan offline - SPIRV-V textual input: `rga -s vk-offline-spv-txt -h` - * AMD IL: `rga -s amdil -h` + * OpenGL: rga -s opengl -h + * OpenCL offline: rga -s opencl -h + * Vulkan live-driver: rga -s vulkan -h + * Vulkan offline - glsl: rga -s vk-offline -h + * Vulkan offline - SPIR-V binary input: rga -s vk-offline-spv -h + * Vulkan offline - SPIRV-V textual input: rga -s vk-offline-spv-txt -h ## Support ## For support, please visit the RGA repository github page: https://github.com/GPUOpen-Tools/RGA diff --git a/build/dependency_map.py b/build/dependency_map.py index 3202c32..9c799d7 100644 --- a/build/dependency_map.py +++ b/build/dependency_map.py @@ -15,7 +15,9 @@ github_root = "https://github.com/GPUOpen-Tools/" # repositories. -git_mapping = {} +git_mapping = { + "update_check_api" : ["Common/Src/update_check_api", "amd-2.1.0"] +} github_mapping = { # Lib. @@ -26,13 +28,12 @@ "common_lib_ext_tinyxml2_5.0.1" : ["Common/Lib/Ext/tinyxml2", "master"], "cxxopts" : ["Common/Lib/Ext/cxxopts", "master"], "volk" : ["Common/Lib/Ext/volk", "master"], - "device_info" : ["Common/Src/DeviceInfo", "rga-v2.6.1"], - "update_check_api" : ["Common/Src/update_check_api", "v2.0.1"], # Src. "adl_util" : ["Common/Src/ADLUtil", "master"], - "dynamic_library_module" : ["Common/Src/DynamicLibraryModule", "master"], "tsingleton" : ["Common/Src/TSingleton", "master"], "common_src_miniz" : ["Common/Src/Miniz", "master"], + "device_info" : ["Common/Src/DeviceInfo", "5e6c83cc74e4588bdf44e1f3c74d419b46bb1a0c"], + "dynamic_library_module" : ["Common/Src/DynamicLibraryModule", "amd-rga-v2.7"], # QtCommon. "qt_common" : ["QtCommon", "rga-2.5"], } diff --git a/build/fetch_dependencies.py b/build/fetch_dependencies.py index 33f1ded..f21355a 100755 --- a/build/fetch_dependencies.py +++ b/build/fetch_dependencies.py @@ -56,7 +56,7 @@ print("Error: Unable to determine origin for RGA git project") exit(1) -# Temporary for development during server migration. +# Used for development using alternate github servers. gerrit_root = "git@github.amd.com:Developer-Solutions/" @@ -268,7 +268,7 @@ def do_fetch_dependencies(arguments): # Strip everything after the last '/' from the URL to retrieve the root amd_github_root = (amd_github_url.rsplit('/', 1))[0] + '/' - + # If cloning from github.com - use the master branch as the default branch - otherwise use amd-master git_branch = "amd-master" if "github.com" in amd_github_url: diff --git a/build/prebuild.bat b/build/prebuild.bat index 4f0d337..545e9e6 100755 --- a/build/prebuild.bat +++ b/build/prebuild.bat @@ -126,15 +126,15 @@ goto :shift_arg :run_clean if exist %SCRIPT_DIR%windows ( echo INFO: Deleting %SCRIPT_DIR%\windows folder - del /s /f /q %SCRIPT_DIR%\windows + rmdir /s /q %SCRIPT_DIR%\windows ) if exist %SCRIPT_DIR%..\output ( echo INFO: Deleting %SCRIPT_DIR%..\output folder - del /s /f /q %SCRIPT_DIR%..\output + rmdir /s /q %SCRIPT_DIR%..\output ) if exist %SCRIPT_DIR%..\output_test ( echo INFO: Deleting %SCRIPT_DIR%..\output_test folder - del /s /f /q %SCRIPT_DIR%..\output_test + rmdir /s /q %SCRIPT_DIR%..\output_test ) exit /b 0 @@ -220,3 +220,4 @@ if not !ERRORLEVEL!==0 ( ) cd %CURRENT_DIR% echo Done. + diff --git a/build/util/linux/copy_post_build_cli.sh b/build/util/linux/copy_post_build_cli.sh index 18afe0b..aace580 100755 --- a/build/util/linux/copy_post_build_cli.sh +++ b/build/util/linux/copy_post_build_cli.sh @@ -19,7 +19,6 @@ if [ ! -d "$X64_DIR" ]; then fi cp ../../../external/vulkan_offline/linux/* $X64_DIR/ chmod +x $X64_DIR/amdspv -chmod +x $X64_DIR/spvgen.so # Copy the OpenGL backend. cp ../../../external/opengl/glc/linux/glc $X64_DIR/ @@ -29,11 +28,11 @@ chmod +x $X64_DIR/glc if [ ! -d "$X64_DIR/lc" ]; then mkdir -p $X64_DIR/lc fi -mkdir -p $X64_DIR/lc/opencl/lib/clang/14.0.0/include +mkdir -p $X64_DIR/lc/opencl/lib/clang/16.0.0/include cp -rf ../../../external/lc/opencl/linux/* $X64_DIR/lc/opencl rm -f $X64_DIR/lc/opencl/include/opencl-c-base.h cp -f ../../../external/lc/opencl/additional-targets $X64_DIR/lc/opencl/ -cp -f ../../../external/lc/opencl/linux/include/opencl-c-base.h $X64_DIR/lc/opencl/lib/clang/14.0.0/include/ +cp -f ../../../external/lc/opencl/linux/include/opencl-c-base.h $X64_DIR/lc/opencl/lib/clang/16.0.0/include/ # Copy the LC disassembler. if [ ! -d "$X64_DIR/lc/disassembler" ]; then @@ -41,7 +40,7 @@ if [ ! -d "$X64_DIR/lc/disassembler" ]; then fi cp ../../../external/lc/disassembler/linux/amdgpu-dis $X64_DIR/lc/disassembler -# make sure lc/opencl/bin/clang is link to clang-14 +# make sure lc/opencl/bin/clang is link to clang-16 CURDIR=`pwd` rm -f $X64_DIR/lc/opencl/bin/clang cd $X64_DIR/lc/opencl/bin/ @@ -56,17 +55,17 @@ if [ -e llvm-readelf ]; then rm -f llvm-readelf fi # create new symlinks -ln -s clang-14 clang +ln -s clang-16 clang ln -s lld ld.lld ln -s llvm-readobj llvm-readelf cd $CURDIR -chmod +x $X64_DIR/lc/opencl/bin/lld $X64_DIR/lc/opencl/bin/clang-14 $X64_DIR/lc/opencl/bin/llvm-objdump $X64_DIR/lc/opencl/bin/llvm-readobj +chmod +x $X64_DIR/lc/opencl/bin/lld $X64_DIR/lc/opencl/bin/clang-16 $X64_DIR/lc/opencl/bin/llvm-objdump $X64_DIR/lc/opencl/bin/llvm-readobj chmod +x $X64_DIR/lc/opencl/lib/bitcode/*.bc # Copy the static analysis backend. if [ "$INTERNAL" = true ]; then - cp ../../../../RGA-Internal/core/shader_analysis/linux/x64/shae-internal $X64_DIR/ + cp ../../../../rga_internal_utils/core/shader_analysis/linux/x64/shae-internal $X64_DIR/ chmod +x $X64_DIR/shae-internal if [ -e $X64_DIR/shae ]; then rm bin/shae @@ -108,3 +107,4 @@ cp ../../../RGA_NOTICES.txt $OUTPUT_DIR/ # Copy README.md and Release notes cp ../../../README.md $OUTPUT_DIR/ cp ../../../documentation/RGA_RELEASE_NOTES.txt $OUTPUT_DIR/ + diff --git a/build/util/linux/copy_post_build_gui.sh b/build/util/linux/copy_post_build_gui.sh index d418872..da84990 100755 --- a/build/util/linux/copy_post_build_gui.sh +++ b/build/util/linux/copy_post_build_gui.sh @@ -37,7 +37,9 @@ chmod +x $OUTPUT_DIR/RadeonGPUAnalyzer # Copy the automation files/folders. if [ "$AUTOMATION" = "-automation" ]; then - unzip -o -d $OUTPUT_DIR/ ../../../../rga_internal_utils/tests/rga_gui_test_data.zip + if [ -f ../../../../rga_internal_utils/tests/rga_gui_test_data.zip ]; then + unzip -o -d $OUTPUT_DIR/ ../../../../rga_internal_utils/tests/rga_gui_test_data.zip + fi cp ../../../../rga_internal_utils/tests_gui/run.py $OUTPUT_DIR/ chmod +x $OUTPUT_DIR/run.py fi diff --git a/build/util/windows/copy_post_build_cli.bat b/build/util/windows/copy_post_build_cli.bat index 75c4a0e..cd69afa 100755 --- a/build/util/windows/copy_post_build_cli.bat +++ b/build/util/windows/copy_post_build_cli.bat @@ -1,13 +1,13 @@ @echo off -rem Make all variables defined in this script local. +REM Make all variables defined in this script local. SETLOCAL SETLOCAL ENABLEEXTENSIONS set OUTPUT_DIR=%1 -rem Parse arguments -rem if (%2 == "-debug" || %3 == "-debug) +REM Parse arguments +REM if (%2 == "-debug" || %3 == "-debug) IF "%2"=="-debug" goto :set_debug IF "%3"=="-debug" goto :set_debug goto :no_debug @@ -34,14 +34,16 @@ for /F "tokens=* USEBACKQ" %%F in (`python ..\..\..\build\util\get_version.py -- set MINOR=%%F ) -rem Create the output folders: +REM Create the output folders IF NOT exist %OUTPUT_DIR%\ mkdir %OUTPUT_DIR%\ IF NOT exist %OUTPUT_DIR%\utils\ mkdir %OUTPUT_DIR%\utils\ IF NOT exist %OUTPUT_DIR%\utils\dx12\ mkdir %OUTPUT_DIR%\utils\dx12\ IF NOT exist %OUTPUT_DIR%\utils\dx12\dxc\ mkdir %OUTPUT_DIR%\utils\dx12\dxc\ +IF NOT exist %OUTPUT_DIR%\utils\dx11\ mkdir %OUTPUT_DIR%\utils\dx11\ IF NOT exist %OUTPUT_DIR%\utils\lc\ mkdir %OUTPUT_DIR%\utils\lc\ IF NOT exist %OUTPUT_DIR%\utils\lc\disassembler\ mkdir %OUTPUT_DIR%\utils\lc\disassembler\ -IF NOT exist %OUTPUT_DIR%\utils\lc\opencl\ mkdir %OUTPUT_DIR%\utils\lc\opencl\lib\clang\14.0.0\include\ +IF NOT exist %OUTPUT_DIR%\utils\lc\opencl\ mkdir %OUTPUT_DIR%\utils\lc\opencl\lib\clang\16.0.0\include\ +IF NOT exist %OUTPUT_DIR%\utils\vulkan mkdir %OUTPUT_DIR%\utils\vulkan\ echo XCopy /r /d /y "..\..\..\external\opengl\glc\windows\glc.exe" "%OUTPUT_DIR%\utils\" @@ -49,13 +51,14 @@ XCopy /r /d /y "..\..\..\source\utils\shader_analysis\windows\x64\shae.exe" "%OU XCopy /r /d /y "..\..\..\source\utils\dx11\bin\dx11_adapter.exe" "%OUTPUT_DIR%\utils\" XCopy /r /e /d /y "..\..\..\external\lc\opencl\windows\*" "%OUTPUT_DIR%\utils\lc\opencl\" del /f "%OUTPUT_DIR%\utils\lc\opencl\include\opencl-c-base.h" -XCopy /r /d /y "..\..\..\external\lc\opencl\windows\include\opencl-c-base.h" "%OUTPUT_DIR%\utils\lc\opencl\lib\clang\14.0.0\include\" +XCopy /r /d /y "..\..\..\external\lc\opencl\windows\include\opencl-c-base.h" "%OUTPUT_DIR%\utils\lc\opencl\lib\clang\16.0.0\include\" XCopy /r /d /y "..\..\..\external\lc\opencl\additional-targets" "%OUTPUT_DIR%\utils\lc\opencl\" XCopy /r /d /y "..\..\..\external\lc\disassembler\windows\amdgpu-dis.exe" "%OUTPUT_DIR%\utils\lc\disassembler\" XCopy /r /e /d /y "..\..\..\external\vulkan\tools\windows\bin\*.exe" "%OUTPUT_DIR%\utils\vulkan\" XCopy /r /e /d /y "..\..\..\external\dxc\*" "%OUTPUT_DIR%\utils\dx12\dxc\" XCopy /r /e /d /y "..\..\..\external\dx12\withdll.exe" "%OUTPUT_DIR%\utils\dx12\" XCopy /r /e /d /y "..\..\..\external\dx12\umdrepoint.dll" "%OUTPUT_DIR%\utils\dx12\" +XCopy /r /e /d /y "..\..\..\external\dx11\amdxx\amdxx64.dll" "%OUTPUT_DIR%\utils\dx11\" XCopy /r /d /y "..\..\..\License.txt" "%OUTPUT_DIR%\License.txt*" XCopy /r /d /y "..\..\..\RGA_NOTICES.txt" "%OUTPUT_DIR%\RGA_NOTICES.txt*" XCopy /r /d /y "..\..\..\README.md" "%OUTPUT_DIR%\README.md*" @@ -63,4 +66,3 @@ XCopy /r /d /y "..\..\..\documentation\RGA_RELEASE_NOTES.txt" "%OUTPUT_DIR%\RGA_ XCopy /r /d /y "..\..\..\..\Common\Src\update_check_api\rtda\windows\rtda.exe" "%OUTPUT_DIR%\rtda.exe*" XCopy /r /d /y "..\..\..\external\vulkan_offline\windows\amdspv.exe" "%OUTPUT_DIR%\utils\" -XCopy /r /d /y "..\..\..\external\vulkan_offline\windows\spvgen.dll" "%OUTPUT_DIR%\utils\" diff --git a/documentation/RGA_RELEASE_NOTES.docx b/documentation/RGA_RELEASE_NOTES.docx index 2edcd642ba6312adc7fd413be7202642d30cc822..c2e4b6eda542fa06420ed59776b660de6e6ad8f3 100644 GIT binary patch delta 26449 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

8ku5uH1g{d#7C=pqwh|zA!L-)c87ho+h=lt4I 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 to next maximum VGPR pressure line (Ctrl+F4), or: + o Right-click on any ISA disassembly line -> Go to next maximum VGPR pressure line (Ctrl+F4). +- DirectX®11 mode (-s dx11) is now an offline mode and works regardless of the installed driver. Support in this mode was limited to VS, PS and CS. +- Updates to Vulkan and OpenGL® backend components. +- OpenCL™ mode now uses an updated version of AMD’s LLVM-based Lightning Compiler. + +Notes: +- AMDIL input is no longer supported by the tool with the new DX11 mode. +- On Ubuntu, the minimum required OS version is Ubuntu 22.04. -Note: on Ubuntu, the minimum required OS version is Ubuntu 20.04. Known Issues ============ -Vulkan Live Driver Mode +Vulkan Live Driver Mode ----------------------- +- Certain 16-bit instruction may appear as “Unknown” in the disassembly. - Source to disassembly correlation is not supported by AMD's shader compiler and is therefore not supported in the UI. - Keyboard navigation is not supported from some views in the GUI application. - The RGA layer is a beta feature. It fails to extract the shaders and pipeline state from certain Vulkan apps. - Notifications about the fact that modified SPIR-V binary does not match the disassembly will not appear for loaded projects (in case that you changed the SPIR-V code, did not build and re-loaded the project). -- Cycle estimate for certain VALU instructions appears as �Varies� instead of 4. +- Cycle estimate for certain VALU instructions appears as “Varies” instead of 4. +- Linux only: attempt to compile shaders with invalid pipeline state may result in very long compilation time. This is going to be addressed by an upcoming driver release. +- Linux only: if no amdgpu-pro driver is installed on the system, the bundled driver will only support targets up to RDNA2. Offline OpenCL Mode ------------------- - OpenCL C++ kernels are not yet supported by the Lightning Compiler. -- Cycle estimate for certain VALU instructions appears as �Varies� instead of 4. +- Cycle estimate for certain VALU instructions appears as “Varies” instead of 4. + +OpenGL Mode +----------- +Resource usage statistics for OpenGL mode only displays usage of SGPRs and VGPRs. +======= +- Cycle estimate for certain VALU instructions appears as “Varies” instead of 4. DirectX 12 Mode --------------- @@ -31,7 +46,7 @@ DirectX 12 Mode Vulkan Offline Modes (vk-offline, vk-spv-offline, vk-spv-txt-offline) --------------------------------------------------------------------- -SPIR-V support limitations: +SPIR-V support limitations: a. The Vulkan Offline modes currently only support the following SPIR-V capabilities: CapabilityMatrix CapabilityShader @@ -158,11 +173,13 @@ SPV_KHR_non_semantic_info SPV_KHR_physical_storage_buffer SPV_KHR_terminate_invocation SPV_KHR_FRAGMENT_SHADING_RATE +SPV_KHR_workgroup_memory_explicit_layout SPV_EXT_nonuniform_qualifier SPV_EXT_shader_stencil_export SPV_EXT_shader_viewport_index_layer SPV_EXT_demote_to_helper_invocation SPV_EXT_shader_image_atomic_int64 +SPV_EXT_mesh_shader SPV_AMD_shader_ballot SPV_AMD_shader_trinary_minmax SPV_AMD_shader_explicit_vertex_parameter @@ -179,32 +196,26 @@ SPV_ARB_shader_ballot SPV_GOOGLE_decorate_string SPV_GOOGLE_hlsl_functionality1 SPV_GOOGLE_user_type +SPV_NV_cooperative_matrix SPV_GOOGLE_user_type -- In Vulkan offline mode, in the case where no output file name is provided and post-processing (live register analysis or control-flow graph generation) is enabled, a false error message is printed. - GUI Application --------------- - VGPR Pressure feature: certain instructions (image_* in particular) may report more live registers than actually used. -- �Correlation Disabled� notification in the source code editor is not being saved for projects after they were closed. +- “Correlation Disabled” notification in the source code editor is not being saved for projects after they were closed. - Certain SALU instructions are being misclassified as VALU instructions. - Certain GDS instructions are being misclassified as SALU. - Changing disassembly columns can be sluggish on certain systems in projects with multiple .cl files. - On systems with default Unicode path for the RGA projects folder, the tool will not be able to save files. A workaround has been provided in version 2.6.1 (allowing the user to change the folder in which projects are saved). -- Cannot rename source files whose file name contains a whitespace character. Notes for OpenCL Mode Users =========================== -The Offline OpenCL mode uses the Lightning Compiler package that ships with RGA, which is based on clang. -As of version 2.0, RGA allows developers to replace the Lightning Compiler package that ships with the product with a user-provided LLVM-based package. For more information, see the Radeon GPU Analyzer GUI app's help manual, or run the command line tool with �s opencl �h as arguments (look for the �Alternative OpenCL Lightning Compiler� section). - -Notes for DirectX 11 Mode Users -=============================== -RGA's DirectX 11 (-s dx11) mode will use the driver that is associated with the primary display adapter, by default. If your primary display adapter is not an AMD GPU, or if you would like RGA to use a driver that is associated with a different display adapter that is installed on your system, use the --adapters and --set-adapter command line switches to instruct RGA to use the relevant driver. +The Offline OpenCL mode uses the Lightning Compiler package that ships with RGA, which is based on clang. +As of version 2.0, RGA allows developers to replace the Lightning Compiler package that ships with the product with a user-provided LLVM-based package. For more information, see the Radeon GPU Analyzer GUI app's help manual, or run the command line tool with –s opencl –h as arguments (look for the “Alternative OpenCL Lightning Compiler” section). System Requirements =================== -It is generally recommended to use RGA with the latest Radeon Software version. Specifically, to target the RDNA architecture, the latest Radeon Software version is required (except the Offline Vulkan, OpenGL and OpenCL modes, which are independent of the driver). +It is generally recommended to use RGA with the latest Radeon Software version. Specifically, to target the RDNA architecture, the latest Radeon Software version is required (except for all Vulkan® modes, OpenCL mode, OpenGL mode and DX11 mode which are independent of the driver). Vulkan Mode ----------- @@ -214,17 +225,21 @@ b. Latest Adrenalin or amdgpu-pro driver is required. Vulkan Offline Modes (vk-offline, vk-spv-offline, vk-spv-txt-offline) --------------------------------------------------------------------- -All Vulkan offline modes (vk-offline, vk-spv-offline and vk-spv-txt-offline) are independent of the installed driver and graphics hardware and should work on any x86-based system. - -OpenGL Offline Mode (opengl) ----------------------------- -The new OpenGL mode (introduced in RGA 2.6.2) is independent of the installed driver and graphics hardware and should work on any x86-based system. +All Vulkan offline modes (vk-offline, vk-spv-offline and vk-spv-txt-offline) are independent of the installed driver and graphics hardware and should work on any x86-based system. -DirectX 12 and DirectX 11 Modes -------------------------------- +DirectX 12 +---------- It is recommended to use the latest Adrenalin drivers for the best experience in DirectX 12 and DirectX 11 modes. -Offline OpenCL Mode -------------------- -Offline OpenCL mode (-s opencl) is independent of the installed driver and graphics hardware and should work on any x86-based system. +DirectX 11 +---------- +DirectX 11 mode (-s dx11) is independent of the installed driver and graphics hardware and should work on any x86-based system. + +OpenCL Mode +----------- +OpenCL mode (-s opencl) is independent of the installed driver and graphics hardware and should work on any x86-based system. + +OpenGL Mode +----------- +OpenGL mode (-s opengl) is independent of the installed driver and graphics hardware and should work on any x86-based system. diff --git a/documentation/source/conf.py b/documentation/source/conf.py index f4630ac..9c4bd4e 100644 --- a/documentation/source/conf.py +++ b/documentation/source/conf.py @@ -60,9 +60,9 @@ # built documents. # # The short X.Y version. -version = '2.6.2' +version = '2.7' # The full version, including alpha/beta/rc tags. -release = '2.6.2' +release = '2.7' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/documentation/source/help_manual.rst b/documentation/source/help_manual.rst index ce5d3b0..147b20e 100644 --- a/documentation/source/help_manual.rst +++ b/documentation/source/help_manual.rst @@ -370,6 +370,28 @@ Each range is assigned a unique color starting with light green for the first ra .. image:: images/024_live_vgpr_range_colors.png +You can cycle through all the lines which have maximum VGPR pressure by pressing the +F4 function key, or from the application's Edit menu by selecting the +"Go to next maximum VGPR pressure line" item, or by pressing the Ctrl+F4 shortcut. +The lines will be highlighted as shown in the image below. + +.. image:: images/030_live_vgpr_show_max_vgpr.png + +Selecting the "Go to next maximum VGPR pressure line" option in the disassembly view's +context menu also allows you to cycle through maximum live VGPR pressure lines. This option +is shown in the image below. + +.. image:: images/031_live_vgpr_show_max_vgpr_context_menu.png + +Switching between kernels will reset the feature, and you will have to use one of the +options mentioned above to see the maximum live VGPR pressure lines again. +At this point the first maximum VGPR line for the current kernel will be highlighted. +If the "VGPR pressure" column is currently hidden, pressing the F4 or Ctrl+F4 keys will +have no effect, and the Edit menu item to show this feature will also be disabled. + +Pressing the Shift+F4 key combination shows the matches in the reverse order. + + OpenCL™ Offline Mode -------------------- diff --git a/documentation/source/images/030_live_vgpr_show_max_vgpr.png b/documentation/source/images/030_live_vgpr_show_max_vgpr.png new file mode 100644 index 0000000000000000000000000000000000000000..948fd45e0de29412892fbb7ba868bc1ede0dbd9b GIT binary patch literal 47851 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 S4s(gA*NdyMKmT|2(f0Ao literal 0 HcmV?d00001 diff --git a/documentation/source/images/031_live_vgpr_show_max_vgpr_context_menu.png b/documentation/source/images/031_live_vgpr_show_max_vgpr_context_menu.png new file mode 100644 index 0000000000000000000000000000000000000000..1ae9133a5e275356164c7c976e539e4c950480e4 GIT binary patch literal 15910 zcmZ|0byQSs7xzyiQX(SK2-4jkB~l_S-3SaVDP1B8LrZr{$G{-n(jg(;5<@o(Lk+wK z@8^D=_4}>&{bSawGjrlPSM2@Wdw;G_H5GaMhvW}YP*Cs{-pIT|K|zH9pJxxSfM3kS z4)TF7RM&U%uTd(7DYtWjEtT~+Lhw{cTcvG zj7&WJNmuyfG;l0J>!_x7M@&Sd{~ zE9={Jj7>8rD=a+``;;B|-D;kF7m?t?;}0oVQ(o;QKfQ6?pZNn7o4e8p_t5J{>fagL zOW4h|bskpx2h0g-tp0ntX4rPaIKhCvatlf)7vQs>lBMV zN%IABq|Ip%0OKlatVwvNTo|E;u@A#a@oC zMZ>(me5Pt$ZNGmX7M|p9)8>gq|8TeP6+LHh3&mZFV~X%h<@zJty00Q@7442L*{%># z%i;W;+}`>7Cg+l}(UG5Gdo}FU)LT5Wy2ZMu9v2xR2`gtl2{q0+gV@K_lI~rmdaZqH zLCBY~NzdCtE@!?HOsMeo;B4!9G-N5`n^p5HgAs$oDaEy-AB8?sY4GUH$BPSl$Z?d` z;@J{ZZE&bMjHHLR*vCIU)-p-L=(O$Gy6u1< z9cK?mD=%KC7y%a2+Ak5J!su!a3ZL989VHqVg*AhE@&X(PQ@aUeY!)NtibE!Euwo+h zg$D{kb=CAf^Ra%d(KJ#7rn+y&FG|m!-nEnR7)wWi9EYD~xKzuW`O^^+%$bgGn~;HWWW+&BxX_-K=#0JUWc5Uun+eVh)%)2&2J3(o+|Xb;MXD7 zYFIfGZj5l@@4t&2B)h_TYrAMZ=Z1wUu-vI(S0(l%wtU7=bn^T~b&a>g@E2Pu&8HPp z9WHw9HcP}z=C&c1P=b6#U#VH=yyVi?T~Q74ROyTrQbq|6XT&$1dVC+HaSgLc$250+ z6y&syq*%XRpDj#Du4~q&ODV;LH7k;vD*Y}Yg9m8AVZIvfuRDKrVJ1MAG$<`W!H?8G zSj`nORfyzJeJ`6n`gy(g!ns}49;bPSmYrZ@iuL3TK^sn_&9cYUe_#A<{Njml0?{r) zf9Z)t1JRv_Pz zqMTs+Bgfdi5COGinyAmCz^C>P;R&Ug!{LF5>sBCzn_Y?w{p_P3P>-b)Wb`e|yhvLHFG{4xBIh~}$Jlyd3Ke)r83q4y zjHltWLIT=znLFko8TA8iRuH>yF_y3Rrq<{+o^^HMW+$B$HM(oVZ$4j(r-~W&vz3+bM_2?#po6ixp zO5`dQB!X(9CVQoca*Ez-Idcl`(;92^eAJs$9RzKmZ#dhCn*3&7s#x+Bup1iFYu?En zpZP=#MJ;SP>QNW+njwudDoVqSPe;D+DH$A7i%y(;eT+}!v>Pe+i4`YQ-yH(_?y~sH z0{?xHzA=`Wn}{4|_*na3w$VHAGg1WuD=nXOe#Z}LmKQ2XTrBxrWQM*3I{g*Y(hyc> z)@SaXl@A$$w6qw`$D1gyx)p*kN<4GPtH0yp2?En;!LGPMW>2?|LccHxip zbG%!~g7&4K?htK7HG4!^*ORZd;piE$*}ZBp+#Px}dv)1vCOC&jd_7a4eaed|d2N0{~7H3bbj_zQ%s(_1pYwT3C!*(dPX6gMOL zayqE;zq;c-D`nti?EdSMpwM^JOYz4JzY7T-@QftbC%=nc4y zC5P7eUM5Wj$jCH=N~QQpVZl@#+YIn!=c_mAfhP@kDHvTB9$m;GYZ!{;3Kfsu z7M1nZnRNQt@)Hro(0tF%nWoY;<|A`-NR4nq6&P4=IS+Tnu($g*ZOqZ8GybJrw>(|Q zPA>0FB;DH? zmtCi+yub0A%)8M;|9CG@iGC{G?VQ>j^~g4JyTCBDBC9MseyCDX4D_r226en5E}ZtV z9beqX4S!f@?BpCj`xL2G+q79S;J;?iB`0af9#pzHOu?B_ zDlqTos_{ILw5Z3RRDO*b&dD_$51RCH?0DcyAIRzih^Cw#24?w%+zDm~S9G_MfB?J< zHfcf?nX&OoCEgthuW6<#A+MoouefX$2m|vn^)q?*(_Tqb{@~8RGQx@D_=!Lr;Wdr> z$>a?TjVGj)5xC`#w^9XVLhG^XZstve-uV&D1TBc*+W^$kS{5bCpAN|^#Of91Ay57@ zX?z2XgdWGxa5KkoRpyWqU7}KW69JMA9FGB8Iv3)0SS!^{${A*Or*9lU`V{Qde;GM{ zft9-I<*j>Ef0gd};qWztoXRzGW5ix8N>Cux1*gg3Meg1k3FdHGjk$#A0pTVqCEd4! zO%ZO9g*>3yxUKmY#sXi3XSO)hY?-heH}j1ARa&)GHT=YSlMC^td;)bMM%d9ad9hsw zQ1=>Rz|dZCW&>!ePE|ItF_ktH<%b7~n_@VRUZjFP;~=i_YuApCzB-FNlN8Nh6~kAh zL+x5}6vI8TvpKMa2vXVjasyiovpC(;J(^cm$DZ-qai7{fHH}-qc?C+1o0(tA*}OuIcxux*%@$eO4JG9;aFp zjHUKYy0{j?Uq0~mqNJ8LCe%Dgd#UG)7;xK-StP5Tj4930gaDwwIsjczTan~i` z|6w8em^aYsO>S@uewbO!lfO@zXxCeN%Ku9h>*O%!QG#vkP^*Ece2&9;i)}I(987`8 zHoW>m?MYq#-Ri4;Wph+P9T&LlFnQpKi9AwktAoGa?t2P5#9FCUaHQOW(8eD{qeWC}g}R{u*QTJ}3_(GYSm9QA3?+PBb?bpfM@pFcl6tmsf7+B=kP zI4)A-k<>%p#7#zLAM8{e!S{I(X3tgDWb@K*IqgaG4lKwF7dOc0RQS&`um-}kNZ@aj zI4>T-d+BT+fWg)?PF|ki2bA;hvI$!Bm8VT8^h+KGRbU(FnD&~@$EPFOdU#d0J@qt*rrQ1Kd3!yZbEg@bR}ec*2CXV|`59Ep5Hw0uU? zK#WszJUhLPdp}oiKK*NifyJ~dM|Xmb1vZzgdy_+%+z0GKRmR+*w=XrOGD|>WHf$eIMc8X#Mk@8Yawlx=i*ICR z*Qnz`jK$)P`T=@P@05a+5=l$bWXTI=+~|ow(RON4lL@)s-5%y(jta52ykKCBgEhEU zzX7~}RE5-R6G)})72AAq-CR6e-+R~x?DUL!hu>N7CE+uPja833ujrJr}m#T z-#<+z9%qTdTd(n51Y>E2DDFd^-USyCkdcs_qJmdulimwDy0?-^2D!P8(hog^p7E5M zzMT8zN1@oWFUPXo$U_CgX=WH8y>Hs3RBF~%cLfCt--Qep&?|?N)6Qnok$?p{Ua5xk z|8oxNKLMku8l#CR@ZUN%-oQGp{g$kZ|F_y;W8mB;S?iyn`KRCsvFn!w{E3BiODacF zOzV8m-JY*~g9hLoZNNk_qsKlNNI5v?j)Y-G=lx)#Nx-yC4(9o{^EhUUi`lwAy7?q; zpIB5bi+*a%?@li38FlKZpa^C5F${ug=!9+WoO7?iYWlFF#D2=#Jtk70YQO?*Ry=Vl z2JV{&+}G|jY_Iy>-BK(BL8bq>z!hdBKR!?T!)r$i=50kfhtqM+c~;^9*iuj!uvlV@ zSiHB-xf6_p3Ywc^ij1i$7!T)vJaEJGhG_EQ)}2WJiz*(KlaMeJ7(!YKQ1{OHXmVz3 z1;y9+B&&iXzXP6gZh`ZF zYdi2?AK|?Um>C6TFl~RfFEPhFmsxb<*X=P-Toq?VWZ7q(ql+bqt2@lRDp$DmLLOm$ z=<@W)Y=5F_(e$Bsxc;H;IP@zpw{K`Mr7rzUZJx7IW>O)IuVu^Zo3@Yte8B&ly4rMX zDJxTBaVIdbho1TCjoSI?Rl`^k;>6s2_o~!j5KYNXn$VG)e zZ)MkCqR-RDq2SSy{K5p1rP~v!GfD@&+=7o6W@t)ZAxz1sYyVvp5?*`cJ!!m6J-_%!j-1K2f!*mz1;~iKss0<7q9Ie#lQmMSLZFy$c;tfh4orK3bM-q}`N|Io z7`d&ZrBOvoe}O#p39n9u>T1g%M+erf6ST?t{)N<;P5~Xgngs)HwB;jx+4Lbd!!}43 z$J&=y>DGJ1gSnCPbh-AI4W3`?zVr_eKJCYgp$F zcS#46Dm6P5D=tBm~p{*9N4lm+FrC8!6Y58VHI9?r2JC(#OFtxpEpzU$&MyxbEN^ z%P?_fPYS6P=3d;dxB=?v>;?Csc!jX(oZm6FZ@n#`%}cka*{0vmw+3nxb=2pyz>Q{q z?Ax5_UID9E1Uddgwl zKQ-DrS{8|qt4eB-SKc$e#hzKtt1gtnsmd*phad6UNST}*qCS^@u<{%Vhr7BBrqmqyz0_3qjU^n|38b2{^C9(~-1<@ZQ9CBr;pwkIE)z1}W+oWx-*Jo4 zRGV^;_7@de%?FJ@K_BFO1;3#k)O!oa1X@Yb217I`mF?F$9wxE4}aH_fUcRBASVS8o4htvi*lVM0db?VzwH zyj9JKt280d;y`RwjNomlx#q ziGtEs4xb1g|DQ!aInBS`PuxE*Y19rlcm8!*EfWf@&oa`OcJAOluE!(su%MUc#%k#A zx0^@m%3)e!B#r7`Pj+lGU%5dEuPPVr(sRAu$>mFEBpL~6=hX%wn26Oa^N&)Y&GHvQ z$>}-S1>$FUrH}R%+-QlMO{$+}gAm_XJijo3G;L|9p@e}4HSH(17`s5On%OnC1d@ja z#nU_?o7jO(5NkSKJB}LOOc(bXipLkSJWDZ*R?*jq96vTnm_=Z5g+*MV>0j>cK4+*& zGW^HI>%&{=%c1)pDJ0*-PT?#wZ>!5qUtaU>**2@BJv+=A&pJJ^f<<(-g3af zh-F}B<1n9DG0||452GjV_d=%z+W+iE33~XhZ~#d%Z%>8bCl?Yv5Zwtb!fpU7t>OuT z-r~Y`JVPO%Bysn>ot|$b4@TCBaa2a%i}RlyDibCxgfL(C^KUXHle4(K6-g*e7!#&ST8MDT87X*n=3;GIDzxbIFb>gMZ}qvsn}xIq3Kd^frXi2H9G z>oH+PJ9dCl9w7Mt6cu9e22NVdka`p9gnQo*cLPi=HV~oF_^!CR*S~pGfz$Pb9BzmL zZq}4~%e6RJ6Dv0Y@?j#*^i058$c1lVFe?Rwa*&q!42WknY!&y>)CbWWE1 z>^vlnnwrxLH7FgDKCFw^VS8J(a*^5RH2^AWcS!#kjNL7q_o#3rt!HF$EKhFE$u~=c zt%Ome__V`;uTn#~GdRIapGdph zBych0r~Fx7h`V|BmDZGTdz7G=bT)$~sKROo+KkjaiDHFd&QOwYr!Uc?_Xo|ity7JQ zZDva~zsI!v<8|p@4z$}~+KuTv+|;3W?b?2tFnK(CAYrh^r~1}tu0`nJu=fXteiyDlTmHK#yPEnCuXmQ|-lUt8ZR*}WkDff|h*uyj|9M4H zc;v8!PB*i!iEVrOLj+f*UF7@cc6G{!64B)5)WJ9i^PYo;c8LWEg;4#JZY?mSkYV!h zwm9pq$)UT{^zo_LO~jGQ({g>TsfFNa#B6!i3qBPN=>)Q7GsIGT8_js_x8=5H#=NS2 zq;pP>#B=mS?1lKa=D&f>TyO^H)mvUJ^eMLf6zA@rnx3*r+%_**QL}DVX4~hX=aIcB z_H8$B>y4ckV?l;(yzh@#NZWUfU)!#iB= zm6G2i)-h!1$Gq>9aJddc8D>X(OzZriI}K+$8qUHE0*8G>*%60w$-bTW6cchw{rXk z^1|lT>OXckn(1>j)C!zSnw=8L@Cy+|#1Y9^36zptJy~;~9w66 zuEskzyt;1vQTIi6sk94;^jvLT9BKxJ6q=NfZO>1A>f%EJ%ND`k(XT3boB&B^7u%;5 z$Hw2VnS&2u@l0`}2YSGjI8B;{ZBrRbWzn0eL@SqWpXR6uI7m=0JW`t+_V$`NGPTyP z=ZWvw7GK3!D}Rciv<8nJ?)XenGN41Ta^}TjY!sfbrfnA5r?Btoo3(iLtGMHI<`XvT zBH@tE)MCK>Q2FBen6Ag2&vhQ?8{#GhO0!`1=}39?v^FwC+nTRQg}sfhwN!l!F~0ah zaQs`Ywq}C09zPP3>p9{5Lz7$Brt|f_UOyAx&o(FBZ@%eCyB$oX%~EO-O)=o82q zXvw_wilQ`L-E(!;$}4X$+1!2p`1n2CjdGoyOB%r~|1tlWo&L{zmqv7{I{^6Xw79(& zxqk2;MJ1)W5SBRu0@RTD*8Lg5)9@kz;}Lu8EZAzy`J#C6xr9KvY}@rQY1M~iFM;njE&{dz zzB2d^qUNt2r2bmt*nJ|hA8vh{pSn)rLN)oa@O|3(q0dkwl@s;;NOG&jNSnyGOJmrQ zL(FwZtzn7%JTfFUHX(Zmc$}~oN{J`FiR0xnd?vUK{7dykfGt$$n3DN7gW@2!gTPd} zFGc>^gws>M@-xwTryP0wZU5<8-nVZzx6v!+y%`gWY$SDY_wHgu)V>r7*dqyEPF3_A zPCQvwfD4i=UysbSex)I~#)BclT9Bs!I2XYd9?j3MqA*JZL2F z#U5{cei!X%5UqFR7yq#(IC~NGib6FTL&~>3sE!Fq1wjSDM$?9#&99hi+Rn=oF`?ye ztl(`eBM95)NS(6Cu^6+@L{azdOg17iV*%3Oc-yWU(i9O?i@skbVTdF#`oJ=>mz0gp zRMqynxwk0S6`B4W`q{5k`mkCvOK;;jA79G=*BP~*K&e)X2)i_xbu($@vL7~9axhWZ zV5k>q6*0XD)2y%zyuaiQrsox`k0}>E3*y{@7w~2U+(m^urA- zQsVV)pr5Y0>~*2iOr)yuV?Z_uPH8MV?)5YT1RQ`wLNk*Pe*C|^Fy=o&l8W#IHr&5~ zWDj};cOT38OFHa6kzz-TaQf0DFxbw}s_qSY_>{e662cpJ(q^M^qy=}p$aZ{5tF>hX z*N5v2;?_f_d}-r1a!%I$V?>H=dCS9w2RHFnQ9iEVApH#5f^ZG$N`k`ELyAk>*p8+o zvd;>yyM19kU1v3~;Ho;|cwG);bfGTBSgqv)+q&1XH+YgYEIO9aB}yVA=y$Y<1{RNM zVROgED)ym6R%mD-K4%z|nx9>3`rXin4-D1Jc7L=2U;7sr*>iF2a@C5~rj|;pt`7LQ zP+7P;)cJM0+_|uwtIj~8iMcq^eo$-olR&5Bj2+&k<;=TvvG+ zt%BwpR!Ls=U&iPj+}WRsk_q9MH?6k#%BmO!x!A#9ufw(>Kq~L|B#C_*$;dUId`0vo zY)1sFS4|L>^*}G#|C4!QD~JEZNp|*`TX?zS%Tk&;a#zx{jJwEx@ECt7 z{K2IBp?|0VMa{pj9cD-4M&vQdS01j%te6#yG~x>P(=Z_rKO&!S=gSy9JM_V7t_!Ld-nHW4mlw}d2PPjVU>Uppj!8nW*QNx} z5R>LQ>?kH{BH08!|EM+_k)oq$4YGCP9y6{ba|-K6&lvhr!`oD8kxDM9*~e<%9Q=pN z;Mgvi*GP4K&KJc)`1n!a`Mg~aHJ`GVS@vxWsM@dlW*U6g7HRbpwa3A5;dc#Jx5#pz zB3{4Ra(HW2a1y<{^5>=c-Jer7SD`Z9)%Bxr_S;*sHJ1owOH~{SiOFfY3r+}Cbf+?5 zG0|^`n)o(@k~q7nSXb$Fnsw$G-H>xj^L9wlT+Il1SxAkSr)Dj*+^L>ApQ=w8`w>y) z(nA5tu;*hVDaBqgG&frCs=kwNQBT_sGrBSJyw#g-3nNM18C49uQPTU~tWtWb998!7 z>HNq2>Vh8G*umPUAbSkKsdpS7+#k0csLiua!8LmKOXE^*2&aNeR~dHegbxjL;`aL5gZaG@4^^2gySgb= zXY+sGv_X+oZP`+uW`aiEis>2~F%>tXb;3VY8Y3QZD|_=M`p+kZdH)By6rbjP4JG31 z3lwN`l$QLlMYAaUm95y}DojZcwL)PMp^c0%Q ziW#ia9#X_gp-p{lbrCc8E!(lI`!RS(DiM)a{j3x;0DT^*(GdEOCcVbZPF_aKWz~Y@ z+)q#|v#QQbO!HG6;H;BFt4Plxv@PG8QNv;gNaHALN>suv5ps^dE z)+>c~TQag&J?@jkul?j&{V_0p#3jj`o6l}MUs_H=_j>p8eeAYHRP4%es4>*Gp1h+m zsG!7z>;>ZaC=zW-=}8dptLbQIMCjL5F|M22ZtSOKw<(2_p5mWWV##*@C{gzL5Ll6? zR$?1eQQA41{nF*29c0~*Qj}xsKgsN@U=>hK6rwScSk?-hav;Me8Z5CMd~8_qOO;KB z-KujUX_V6XcOrv~wzKMvv{6yn-U@L`pGj1<*M?+vHiOW?{4m)`Ecij=vb#NH65D$J zCSUtsbT>a%Z z*5ag5$*TH>WqE6Ma<~aCh#FcxxhezSZl++1uih*KGeC|_i`sQpflxJiXah#Ej6p_dQ6^7 zLpuZWZXKDdVD4|UGUujmwjcA`$~ck)R{fX=M#d%VrXLL1vQMR3zwS)gG#eS0y1Xh3 zoU?_CxJq-0mpV#3(Q6g6`NmP9rN=ve7}e@fCV+yg)d28+`SPnkQAps&Z^*BK5>rL` zV#63GbB=2{v)P~bxt;V%Nf0FWGj!=CdC0!LCl(mNboDnw@@; znh=1C&mhk&srjpHc`3dWRWG%E1CvsY5`UyCRGt&lf{yN_u8R*e@DP9=_|v&H?(5xU zK*{Jnqb$wNyeu<#?&|5AcRTl3GjE*1lR8xXcSZ!1{Zru~W7 z<{ei5mOrxP3clhE9HJ}Ys;?Zqnz=}n9X_NxH`EGxcf9CXy{c&YYP&5s)vvv}RK9az z(tcyH3%=XT5C#q=G}eep>SNS#UksJUop2IlsAuQ>)YhQTLWj;PE2f>rw-a zxVPqTYp#~3-5-uJ)_0w)OlW%D4rSIv^DE_A%x^7`A&VaJ@o9!ZC;jHr+)MEaf{9Bx z1%12ef7yvBt^QE3mN9!j```$IoC%e5EY>ijj(VXzld!b}vJ55K`p}f<6DX7j#8(p$ z*F-yRI+Q~?ztrzEo({Dmr#QcbT0d~bA3!X)g;4*{_lNW_)18*}E@lQ5=tRM~S3!Dc z<~6UZTZVnHS+zq{QQZGlQ8F^3US+7uN^B6|HFQ}Fqm>EQpt5D`kc|x5sU+bAV5}@O$(MABPDkp zU$``6xbhwgnE1^Cxe#`bGsOCb){Vp0S@IvsZyYAQyJi>@5k&Z?Kq~)-8lgVn!f3Su zhwjq9RUWbed-ixG>@3S%4+#RQazAgHEkmMR%ie@-0^7?_2CN0(7 zc+kXlQuU5K<5uF-<9W&wTPv=;E*a6A@Jid3Z6Bg2>bXdgU7Zw_)phqryR^Kp&F+(C zlIkUqDHl&*O%8;RVU4j*Z*6q~6CIrUBa7zKU4At50WGp|5fZjeLHeep`stLnRhp2a^%Os5@* z=Kw^5f(c_)#ym^+=?6p3$5Lw?Yo;~?Lv*k9G_g%n)ak+04Ub#ISKCN*O)1I3wcjJd zG&~W_7Xd$!$wYf&Q}C@E+Qc#wx;*H!gRc?&iW{;R6e19^kvzFyrPh<)JXRDgtxasX zd{t`n0x2L?_rn^B!t#&@taN;n8|u$bG(RwW?{mu{GIl@p$l+<3zA;MfAK8<5@jB|` zlaS9VZczq9Fn7AdF=lStOOoEpFk&nsO13VKh{V26TkjXm_qoW&J$9kWx#u*wl$(#^ zVI0!D*P0MHuNDt>%aY;>&Ht3&UiP1?T5>>ccdYj!Hfsy(r@0cj-WO~8aVEj&qEsm& z^3?GbMvcw&m&j!~5Uq?GYVw!5XMc;sU$0M4kw`Re{gnXqxTgSDJR5eCZMfLRB1$p zysCs2IEru=ir5s$cw;Y{(XL#)7pIg6FRoi7LMOmv;s=k1S@Xr|7P_$`--*64JHg=U zN-C70`kd|ne*Jjr18;^!1X-lqxKq)NaWlE1eA*I)@o<@FW2a^$bM>r7^2*fjB5OJ{ zIxhTf2O>(LLqXmgx}muKszm0Y`WQ^lTS8Vv_s2VwZpVqzIw=< z;ScbSEWA<1LTbzzyk^dg~&RuNA+1ET>RU1gNN}IA3t@8U-kP>n8@9-NEVgl}IWd(IL6k*God% zX(Mx!k@$^lDJ?g(o(GZ@2l@U^ z(kQzy-r@g$1_zi*Q|J_DyW4Yv-s+2aWDlB4t^Qoj)o6s+WkTl!D=C`LcjKD1ShNPI z`W;&DzEHWcJ@RdpQ<|(sK2$^(;M%4338;EI-ADxLeYDH)R(mZtt3BbI3EXej zN7|)Vlfk&hVCxxE-c88yKuD8fP6jLEK0VZVozvg6axTN=z9`(q%}hvtLVoeqv@joj zq6Q%R$7|+-q0EC5;=iGDQ`W^wGM#9Au;;-kyhQj+L-(*gGh1w5JS5NNdbg6$)}cbQ4g`emT48(3@)YazODhP+1^XnHe4A6KBry*;BCZ@8ghy zHmfMkDJoM@-(HtTA4xi1L&?L=A$M0yH@}vBjq$rrsP%8>ZJyjjzx!jw zQU7wYEqB$<_AwD?0Ze4lK2v4V@m;~Zrj3_*+1(&Bbw?6N4aIVVS=8GT0W8;(yL=XA z(L~bco|J3nXprx`Z&Ei|?gB(5pPbcvT0DQw8cCZWeS6WHR`0$~-;7uiI7VRI=g*%} zQW`5`CN5n)x^|$*56-0$J(nNKL}Ci8ccTzY3*;P1`q4~|PcqXD)N}c+s69{Ap#df**qFHD`V>eE!>%EU}g7Z)$NagMyjjitG9ds{mA>y-bFD`~s9bX;A> zi5&aTMOdLPSMu&sgM&NZY^?X=%e+x z;py}|BdN8{(xWCC%J!(cqWjk(L!AM4`V;iUA{gxhL&kLYsJb(fMhoOpYN$jbhd;j_ z;=#5cn-OdcbHj04d}fqs_ev#Otk(;xC+~4yC3iM-)s$%mvJ`SciQ5;upa4@ewu<4J z<#n!aG36V+Y1|jQKCUu8fod6}WvzvCwZ22}M%nc^4<8!x!uoc5xCK6jC2MnwH!}Pf zvmQJxf5$TrZjEAD$=@7SCsyaBU$EK3p>A>LN~dwlFIUiPH6pLux}aEa!=||@9%5wM zr{;D+3k2{eMCz%42~v5}^+DDq2`G{2eCGr<&45(r4%!nZf3C@V5;Le}rbp!+hXG~W zeEn2DQ0~yTlu8Of;l|(BC;!3?b=L|fCobzV;n?PYkJ&pGyh0?FOf=AdC;{h&G4N4MX7HpM;IQR_r zHwmuC1}QRLvOfJ`qO*oQswXCKWBnG$9hZ_i^Uo@c7mJBv(#LHn>OJ_E)0|%Thtss9 zi^gQg@_e8i#AW(RM&Qj~LJfegUjmRtQhvyHl~dQ^fFMhF0IykMp?H-d;Z(lSS8K%C zmWox&YS+&P|0}7|06hp;Fl8WlG-i}H+N^`|6M!xv9(z992cdhu#q9sfNWSBx92{Q= z=U~-EhzoxD{lutu>Pj(jk*^{%7{`_pfDj5AuwlQM&S)>%8Cu@XK4F(0w~(WFM8xyEm;@20+T z6sCv>X_EU8E>7UEq{mWqR0Sd04>A`rR+UoFqim_2-Y;7EdoyCfjPhIyss~ z|4=9)P$%Q#I!rwL!^Q(K=jS^GtzQ%-+uqSzd)~u&@l-ZV46K{rKTXZ9Y2B`IOcl&4(Fx`8BFsBml$1_b)@=6{H1JPkj5LB;AwrJfauLv6otO$ zl@@>!T;7#^!0rxIZ4Q`{ve%eg+lc5g1Z5^!VJLW2`V!4gG_MZ=nX~`_ThUKOr;#Ii z)k{;qxKQzzKf`jA%9*N4*KNvl=zR!~xG$YBu-RwFq;;23CLAnl#l-F*%z?}opP>(8 zPq}h(3_vL%o2Yc{`+9uZ%G3QQqQ#eKTTc&pN+LyVuPZ&(EV8M%azsYI90aonyQ&aY zo*b*rFsr&H^NM}bLSWcz)#N=Z=L%(MWhj_A62Kb?-#bt0 zO{lz^?B=ywGRJS#3W33AHeG6~hPwLKx>Gt`i%4g$vY+lj{w$Eih^f|EP5=Z>$~RB7 z0}=2QpQ_#D@3G15;E>S?B>yltV%EU4l_Kyl(H3!|zv$DrLOC7rkXegH7@s<5c*?*; z`a`c6d#$18Q}0`RD>I8Z;8w+d9>+%-NS8$x{Xnr>;QUT*w9REV2#WMv4(&YsF)}BB zR!tr*z?3@bw9zng`cbX*)+W1F-*0$fRB>b{jZij`OO@Or+)gXeJ#xVp-=Oes9wDx+ zAM2}2K;`UaDEK$~F~GSePM-#L76j{_%$1crlpq?LVPopMj$wl54F7f-!u9&L6!J>Q zV10x4FKe0R)PygH}bUrP5?g7w0XbROkfQ`A|)A%2vr9E4z^&V1L$F}jy)p2Nu zD%gjZEdbji03w|npnc*g-aU@@nO`17TWriGkBPYDWLFDxUFZ=Soq+T-J;XMehdpr5 zr5+z^-BvgY{fm%&=FH!HB~AGkP6AMQ?0-pBVV0z-ievr)_HlG86XoXwg4FV9sXI!( z4r^SW^260OD=Ax$=&w57JSl!39$$fu|KYyHe+hZs={{Q%B0K~^wu4QTpFF|w!+%V! zP&VN?7FRAY=_qTp4v}zqN*P{P&k0}&(=uPdpZSHQ#GoeC`aSqat+D%_;Ecr>n|$@Y zj&=_dJBV5i7}A&c&Fe?4*w50}c5oAI*w>cJV*IXnJwbwQbuIe`Uo4^(gvjxNP^-bA zq_SGl@~o_WuMG~)q3W-W?Q5tB^OTfT;rFZ&13*%eE(*NGcpYO@Yp8AhB&I>)>uiM- z4-qfzpckV2-VUeBVQid3QNV!|N|V1e_bN|POs zyj#|@KP@e|Em!hu+Wd?rX`53`Pjeuv#ylG@hr=&b$jtFmyD{l@mG!-+0s(`m4iE?Z zJ8P-i%m>Y11S4eNJ5CAi%Zx37TKQ!gPiH?A@n}uBnUV$`7j-eS;}y}e8z|iqF+1ed zOSGkr0Al^YP6f5%NiAda?mgo7oKtGn+woAi9Q5(RyNoU7@@cr_ueQjdEBB9Fwbnq2 z%nORD9m%SS)qoo3^dTDDgcE87!_tlf1e-T#zo#7&5k4B}tUNEz0 zlCf$3cOyqsoIhLa((6=I05k5R%JNhGFUR|@Ao#EOH!%g!@{^z+z+NK2##{gPzVyur5E%gYc#Mo%VhbB8m}{A+St?NVa;{a%i;3ObwQdwTmX8rQHZhnyX|$KMEN z+NdPgGs&o`OWy$PzyoqWQAR=~yG{C};dHufpUsQ6jaXJ+y18Vic&^Q8y#SmpRs%L@ z9zdM`GHnvgxo%Yt;?-p#BeXmT1^x7%aUZIEf869X70vh|arM|!g59wFA>koXi-N_{F!Z|5Z@urW^g zBkf;Id6H*zS8Fk*;aqF}s9sd6;B3x20G<#Rlc{a>Cuo}Zma}st z#h*}$N|(#80Jvh_MK|+;!92qbV35W}v2OxEui(x851!ob^+r*URgtN9ZTk8D0P)F& A&Hw-a literal 0 HcmV?d00001 diff --git a/external/.gitattributes b/external/.gitattributes index 3b72235..53eff01 100644 --- a/external/.gitattributes +++ b/external/.gitattributes @@ -22,7 +22,6 @@ dx10_asm/lib/VS2015/x64/Debug_Static/DX10ASMLib_s.lib filter=lfs diff=lfs merge= dx10_asm/lib/VS2015/x64/Debug/DX10ASMLib.lib filter=lfs diff=lfs merge=lfs -text dx10_asm/lib/VS2015/x64/Release/DX10ASMLib.lib filter=lfs diff=lfs merge=lfs -text dx10_asm/lib/VS2015/x64/Release/DX10ASMLib_s.lib filter=lfs diff=lfs merge=lfs -text -lc/opencl/linux/bin/clang-14 filter=lfs diff=lfs merge=lfs -text yaml-cpp/lib/win32/Debug/libyaml-cppmdd.lib filter=lfs diff=lfs merge=lfs -text yaml-cpp/lib/win64/Debug/libyaml-cppmdd.lib filter=lfs diff=lfs merge=lfs -text boost/boost_1_59_0/lib/VC14/x86/libboost_regex-vc140-mt-s-1_59.lib filter=lfs diff=lfs merge=lfs -text @@ -62,3 +61,7 @@ boost/boost_1_59_0/lib/VC14/x86_64/libboost_date_time-vc140-mt-gd-1_59.lib filte boost/boost_1_59_0/lib/VC14/x86/libboost_date_time-vc140-mt-sgd-1_59.lib filter=lfs diff=lfs merge=lfs -text opengl/glc/linux/glc filter=lfs diff=lfs merge=lfs -text opengl/glc/windows/glc.exe filter=lfs diff=lfs merge=lfs -text +lc/opencl/linux/lib/bitcode/opencl.amdgcn.bc filter=lfs diff=lfs merge=lfs -text +lc/opencl/windows/lib/bitcode/opencl.amdgcn.bc filter=lfs diff=lfs merge=lfs -text +dx11/amdxx/amdxx64.dll filter=lfs diff=lfs merge=lfs -text +lc/opencl/linux/bin/clang-16 filter=lfs diff=lfs merge=lfs -text diff --git a/external/amdt_base_tools/Include/gtRedBlackTree.h b/external/amdt_base_tools/Include/gtRedBlackTree.h deleted file mode 100644 index 2feb28d..0000000 --- a/external/amdt_base_tools/Include/gtRedBlackTree.h +++ /dev/null @@ -1,133 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file gtRedBlackTree.h -/// -//===================================================================== - -//------------------------------ gtRedBlackTree.h ------------------------------ - -#ifndef __GTREDBLACKTREE_H -#define __GTREDBLACKTREE_H - -// Local: -#include -#include -#include -#include - - -// ---------------------------------------------------------------------------------- -// Class Name: gtRedBlackTreeValue -// General Description: -// An abstract base class representing a single value contained in the red black tree. -// Sub class must implement a getKey() function to return an integer key representing the value. -// The key for a tree value should never change. -// -// Author: AMD Developer Tools Team -// Creation Date: 28/6/2010 -// ---------------------------------------------------------------------------------- -class GT_API gtRedBlackTreeValue -{ -public: - gtRedBlackTreeValue(); - virtual ~gtRedBlackTreeValue(); - virtual gtUInt64 getKey() const = 0; -}; - - -// ---------------------------------------------------------------------------------- -// Class Name: gtRedBlackTreeNode -// General Description: -// Red black tree internal node type. -// Holds a gtRedBlackTreeValue and tree related data. -// -// Author: AMD Developer Tools Team -// Creation Date: 28/6/2010 -// ---------------------------------------------------------------------------------- -class GT_API gtRedBlackTreeNode -{ -public: - gtRedBlackTreeValue* getValue() const { return _pValue; }; - -protected: - gtRedBlackTreeNode(); - gtRedBlackTreeNode(gtRedBlackTreeValue* pValue); - ~gtRedBlackTreeNode(); - -protected: - // The value which this node represents: - gtRedBlackTreeValue* _pValue; - - // An integer key representing the value that this node represents: - gtUInt64 _key; - - // Is the node "red" or "black" colored: - // true - the node is red - // false - the node is black - bool _isRed; - - gtRedBlackTreeNode* _pLeftChild; - gtRedBlackTreeNode* _pRightChild; - gtRedBlackTreeNode* _pParent; - -private: - friend class gtRedBlackTree; -}; - - -// ---------------------------------------------------------------------------------- -// Class Name: gtRedBlackTree -// General Description: -// Represents a red black tree: a special type of self-balancing binary tree, ensuring -// that the longest path from the _pRootNode to any leaf is no more than twice as long as the -// shortest path from the _pRootNode to any other leaf in that tree. This yields the following -// run-time complexity: -// - insert value - O(log n) -// - remove value - O(log n) -// - search - O(log n) -// - Memory consumption - O(n) -// -// For more details see: http://en.wikipedia.org/wiki/Red-black_tree -// -// Author: AMD Developer Tools Team -// Creation Date: 29/6/2010 -// ---------------------------------------------------------------------------------- -class GT_API gtRedBlackTree -{ -public: - gtRedBlackTree(); - ~gtRedBlackTree(); - - void clear(); - void deleteNode(gtRedBlackTreeNode* pNode); - gtRedBlackTreeNode* insert(gtAutoPtr& aptrNode); - gtRedBlackTreeNode* search(gtUInt64 key) const; - gtRedBlackTreeNode* searchEqualOrLowerThan(gtUInt64 key) const; - gtRedBlackTreeNode* getPredecessorOf(gtRedBlackTreeNode* pNode) const; - gtRedBlackTreeNode* getSuccessorOf(gtRedBlackTreeNode* pNode) const; - void enumerate(gtUInt64 low, gtUInt64 high, gtStack& nodes) const; - -protected: - void checkAssumptions() const; - void leftRotate(gtRedBlackTreeNode* pNode); - void rightRotate(gtRedBlackTreeNode* pNode); - void treeInsertHelp(gtRedBlackTreeNode* pNode); - void deleteFixUp(gtRedBlackTreeNode* pNode); - -private: - void initializeRootAndNilNodes(); - -protected: - // A sentinel is used for root and for nil. - // _pRootNode->_pLeftChild should always point to the node which is the root of the "real" tree. - // _pNilNode points a node which should always be black but has arbitrary children and parent and no key or info. - // The point of using these sentinels is so that the root and nil nodes do not require special cases in the code. - gtRedBlackTreeNode* _pRootNode; - gtRedBlackTreeNode* _pNilNode; -}; - - -#endif //__GTREDBLACKTREE_H - diff --git a/external/amdt_base_tools/src/gtIAllocationFailureObserver.cpp b/external/amdt_base_tools/src/gtIAllocationFailureObserver.cpp deleted file mode 100644 index 598313e..0000000 --- a/external/amdt_base_tools/src/gtIAllocationFailureObserver.cpp +++ /dev/null @@ -1,24 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file gtIAllocationFailureObserver.cpp -/// -//===================================================================== - -//------------------------------ gtIAllocationFailureObserver.cpp ------------------------------ - -// Local: -#include - - -// --------------------------------------------------------------------------- -// Name: gtIAllocationFailureObserver::~gtIAllocationFailureObserver -// Description: Destructor. -// Author: AMD Developer Tools Team -// Date: 1/2/2009 -// --------------------------------------------------------------------------- -gtIAllocationFailureObserver::~gtIAllocationFailureObserver() -{ -} - diff --git a/external/amdt_base_tools/src/gtRedBlackTree.cpp b/external/amdt_base_tools/src/gtRedBlackTree.cpp deleted file mode 100644 index 8d95a98..0000000 --- a/external/amdt_base_tools/src/gtRedBlackTree.cpp +++ /dev/null @@ -1,904 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file gtRedBlackTree.cpp -/// -//===================================================================== - -//------------------------------ gtRedBlackTree.cpp ------------------------------ - -// Local: -#include -#include -#include - -// Perform extra sanity checking to make sure certain assumptions are satisfied while in debug build configuration: -#if AMDT_BUILD_CONFIGURATION == AMDT_DEBUG_BUILD - #define GT_CHECK_RB_TREE_ASSUMPTIONS 1 -#endif - -// --------------------------------------------------------------------------- -// Name: gtRedBlackTreeValue::gtRedBlackTreeValue -// Description: Constructor -// Author: AMD Developer Tools Team -// Date: 29/6/2010 -// --------------------------------------------------------------------------- -gtRedBlackTreeValue::gtRedBlackTreeValue() -{ -} - - -// --------------------------------------------------------------------------- -// Name: gtRedBlackTreeValue::~gtRedBlackTreeValue -// Description: Destructor -// Author: AMD Developer Tools Team -// Date: 29/6/2010 -// --------------------------------------------------------------------------- -gtRedBlackTreeValue::~gtRedBlackTreeValue() -{ -} - - -// --------------------------------------------------------------------------- -// Name: gtRedBlackTreeNode::gtRedBlackTreeNode -// Description: Constructor -// Author: AMD Developer Tools Team -// Date: 29/6/2010 -// --------------------------------------------------------------------------- -gtRedBlackTreeNode::gtRedBlackTreeNode() - : _pValue(NULL), _key(0), _isRed(false), _pLeftChild(NULL), _pRightChild(NULL), _pParent(NULL) -{ -} - - -// --------------------------------------------------------------------------- -// Name: gtRedBlackTreeNode::gtRedBlackTreeNode -// Description: Constructor -// Arguments: pValue - A value to be contained in the tree node. -// Author: AMD Developer Tools Team -// Date: 29/6/2010 -// --------------------------------------------------------------------------- -gtRedBlackTreeNode::gtRedBlackTreeNode(gtRedBlackTreeValue* pValue) - : _pValue(pValue), _key(pValue->getKey()), _isRed(false), _pLeftChild(NULL), _pRightChild(NULL), _pParent(NULL) -{ -} - - -// --------------------------------------------------------------------------- -// Name: gtRedBlackTreeNode::~gtRedBlackTreeNode -// Description: Destructor. -// Author: AMD Developer Tools Team -// Date: 29/6/2010 -// --------------------------------------------------------------------------- -gtRedBlackTreeNode::~gtRedBlackTreeNode() -{ - if (_pValue != NULL) - { - delete _pValue; - _pValue = NULL; - } -} - - -// --------------------------------------------------------------------------- -// Name: gtRedBlackTree::gtRedBlackTree -// Description: Constructor -// Author: AMD Developer Tools Team -// Date: 29/6/2010 -// --------------------------------------------------------------------------- -gtRedBlackTree::gtRedBlackTree() - : _pRootNode(NULL), _pNilNode(NULL) -{ - // Create the Nil node: - _pNilNode = new gtRedBlackTreeNode; - - - // Create the root node: - _pRootNode = new gtRedBlackTreeNode; - - - // Initialize the root and Nil nodes: - initializeRootAndNilNodes(); -} - - -// --------------------------------------------------------------------------- -// Name: gtRedBlackTree::~gtRedBlackTree -// Description: Destructor -// Author: AMD Developer Tools Team -// Date: 29/6/2010 -// --------------------------------------------------------------------------- -gtRedBlackTree::~gtRedBlackTree() -{ - // Initialize the tree: - clear(); - - // Delete the nil and root nodes: - delete _pNilNode; - _pNilNode = NULL; - delete _pRootNode; - _pRootNode = NULL; -} - - -// --------------------------------------------------------------------------- -// Name: gtRedBlackTree::clear -// Description: Deletes all tree nodes and initializes the tree. -// Author: AMD Developer Tools Team -// Date: 12/7/2010 -// --------------------------------------------------------------------------- -void gtRedBlackTree::clear() -{ - // Contains nodes that should be deleted: - gtStack nodesToBeDeleted; - - // Initialize the destruction by marking the root's direct children as "should be deleted": - if (_pRootNode->_pLeftChild != _pNilNode) - { - nodesToBeDeleted.push(_pRootNode->_pLeftChild); - } - - if (_pRootNode->_pRightChild != _pNilNode) - { - nodesToBeDeleted.push(_pRootNode->_pRightChild); - } - - // Traverse the sub trees and destruct them: - while (!nodesToBeDeleted.empty()) - { - gtRedBlackTreeNode* pCurrNode = nodesToBeDeleted.top(); - nodesToBeDeleted.pop(); - - if (pCurrNode != NULL) - { - if (pCurrNode->_pLeftChild != _pNilNode) - { - nodesToBeDeleted.push(pCurrNode->_pLeftChild); - } - - if (pCurrNode->_pRightChild != _pNilNode) - { - nodesToBeDeleted.push(pCurrNode->_pRightChild); - } - - delete pCurrNode; - pCurrNode = NULL; - } - } - - // Initialize the fields of the root and the Nil nodes: - initializeRootAndNilNodes(); -} - - -// --------------------------------------------------------------------------- -// Name: gtRedBlackTree::deleteNode -// Description: -// Removes a node from the tree, deletes it and it's held data. -// -// Arguments: pNode - The node to be deleted from the tree. -// Author: AMD Developer Tools Team -// Date: 29/6/2010 -// --------------------------------------------------------------------------- -void gtRedBlackTree::deleteNode(gtRedBlackTreeNode* pNode) -{ - gtRedBlackTreeNode* pAidNodeB = ((pNode->_pLeftChild == _pNilNode) || (pNode->_pRightChild == _pNilNode)) ? pNode : getSuccessorOf(pNode); - gtRedBlackTreeNode* pAidNodeA = (pAidNodeB->_pLeftChild == _pNilNode) ? pAidNodeB->_pRightChild : pAidNodeB->_pLeftChild; - - // Assignment of pAidNodeB->_pParent to pAidNodeA->_pParent is intentional: - if (_pRootNode == (pAidNodeA->_pParent = pAidNodeB->_pParent)) - { - _pRootNode->_pLeftChild = pAidNodeA; - } - else - { - if (pAidNodeB == pAidNodeB->_pParent->_pLeftChild) - { - pAidNodeB->_pParent->_pLeftChild = pAidNodeA; - } - else - { - pAidNodeB->_pParent->_pRightChild = pAidNodeA; - } - } - - if (pAidNodeB != pNode) - { - // pAidNodeB should not be _pNilNode in this case - GT_ASSERT_EX((pAidNodeB != _pNilNode), L"pAidNodeB is _pNilNode in deleteNode \n"); - - // pAidNodeB is the node to splice out and pAidNodeA is its child: - pAidNodeB->_pLeftChild = pNode->_pLeftChild; - pAidNodeB->_pRightChild = pNode->_pRightChild; - pAidNodeB->_pParent = pNode->_pParent; - pNode->_pLeftChild->_pParent = pNode->_pRightChild->_pParent = pAidNodeB; - - if (pNode == pNode->_pParent->_pLeftChild) - { - pNode->_pParent->_pLeftChild = pAidNodeB; - } - else - { - pNode->_pParent->_pRightChild = pAidNodeB; - } - - if (!(pAidNodeB->_isRed)) - { - pAidNodeB->_isRed = pNode->_isRed; - deleteFixUp(pAidNodeA); - } - else - { - pAidNodeB->_isRed = pNode->_isRed; - } - - delete pNode; - pNode = NULL; - - // Sanity check: - GT_ASSERT_EX(!_pNilNode->_isRed, L"_pNilNode not black in gtRedBlackTree::Delete"); - -#ifdef GT_CHECK_RB_TREE_ASSUMPTIONS - { - // Deeper sanity check: - checkAssumptions(); - } -#endif - } - else - { - if (!(pAidNodeB->_isRed)) - { - deleteFixUp(pAidNodeA); - } - - delete pAidNodeB; - pAidNodeB = NULL; - - // Sanity check: - GT_ASSERT_EX(!_pNilNode->_isRed, L"_pNilNode not black in gtRedBlackTree::Delete"); - -#ifdef GT_CHECK_RB_TREE_ASSUMPTIONS - { - // Deeper sanity check: - checkAssumptions(); - } -#endif - } -} - - -// --------------------------------------------------------------------------- -// Name: gtRedBlackTree::insert -// Description: -// Inserts a new value into the tree. Before calling insert pValue should have its _key set. -// This function returns a pointer to the newly inserted node which is guaranteed -// to be valid until this node is deleted. What this means is if another data structure -// stores this pointer then the tree does not need to be searched when this is to be deleted. -// -// Arguments: pValue - The value to be inserted into the tree. -// Return Val: gtRedBlackTreeNode* - The tree node representing the inserted value. -// Author: AMD Developer Tools Team -// Date: 29/6/2010 -// --------------------------------------------------------------------------- -gtRedBlackTreeNode* gtRedBlackTree::insert(gtAutoPtr& aptrNode) -{ - // Will point the tree node associated with the input value: - gtRedBlackTreeNode* pValueAssociatedNode = NULL; - - // Get ownership on the value's memory: - gtRedBlackTreeValue* pValue = aptrNode.releasePointedObjectOwnership(); - GT_IF_WITH_ASSERT(pValue != NULL) - { - // Create a node that will contain the value to be inserted: - pValueAssociatedNode = new gtRedBlackTreeNode(pValue); - - - // Insert the node into the tree and mark it as "red": - treeInsertHelp(pValueAssociatedNode); - pValueAssociatedNode->_isRed = true; - - gtRedBlackTreeNode* pAidNode = NULL; - - while (pValueAssociatedNode->_pParent->_isRed) - { - // Use sentinel instead of checking for _pRootNode: - if (pValueAssociatedNode->_pParent == pValueAssociatedNode->_pParent->_pParent->_pLeftChild) - { - pAidNode = pValueAssociatedNode->_pParent->_pParent->_pRightChild; - - if (pAidNode->_isRed) - { - pValueAssociatedNode->_pParent->_isRed = false; - pAidNode->_isRed = false; - pValueAssociatedNode->_pParent->_pParent->_isRed = true; - pValueAssociatedNode = pValueAssociatedNode->_pParent->_pParent; - } - else - { - if (pValueAssociatedNode == pValueAssociatedNode->_pParent->_pRightChild) - { - pValueAssociatedNode = pValueAssociatedNode->_pParent; - leftRotate(pValueAssociatedNode); - } - - pValueAssociatedNode->_pParent->_isRed = false; - pValueAssociatedNode->_pParent->_pParent->_isRed = true; - rightRotate(pValueAssociatedNode->_pParent->_pParent); - } - } - else - { - // Case for pValueAssociatedNode->_pParent == pValueAssociatedNode->_pParent->_pParent->_pRightChild: - // This part is just like the section above with _pLeftChild and _pRightChild interchanged - pAidNode = pValueAssociatedNode->_pParent->_pParent->_pLeftChild; - - if (pAidNode->_isRed) - { - pValueAssociatedNode->_pParent->_isRed = false; - pAidNode->_isRed = false; - pValueAssociatedNode->_pParent->_pParent->_isRed = true; - pValueAssociatedNode = pValueAssociatedNode->_pParent->_pParent; - } - else - { - if (pValueAssociatedNode == pValueAssociatedNode->_pParent->_pLeftChild) - { - pValueAssociatedNode = pValueAssociatedNode->_pParent; - rightRotate(pValueAssociatedNode); - } - - pValueAssociatedNode->_pParent->_isRed = false; - pValueAssociatedNode->_pParent->_pParent->_isRed = true; - leftRotate(pValueAssociatedNode->_pParent->_pParent); - } - } - } - - _pRootNode->_pLeftChild->_isRed = false; - -#ifdef GT_CHECK_RB_TREE_ASSUMPTIONS - { - // Deeper sanity check: - checkAssumptions(); - } -#endif - - // Sanity check: - GT_ASSERT_EX(!_pNilNode->_isRed, L"_pNilNode not red in gtRedBlackTree::insert"); - GT_ASSERT_EX(!_pRootNode->_isRed, L"_pRootNode not _isRed in gtRedBlackTree::insert"); - } - - return pValueAssociatedNode; -} - - -// --------------------------------------------------------------------------- -// Name: gtRedBlackTree::search -// Description: Inputs a key and searches the tree for a node representing this key. -// Arguments: key - The input key. -// Return Val: gtRedBlackTreeNode* - Will get the node representing the input key, or NULL if such -// key does not exist in the tree. -// Author: AMD Developer Tools Team -// Date: 12/7/2010 -// --------------------------------------------------------------------------- -gtRedBlackTreeNode* gtRedBlackTree::search(gtUInt64 key) const -{ - gtRedBlackTreeNode* retVal = NULL; - - // Start the search from the root node: - gtRedBlackTreeNode* pCurrNode = _pRootNode; - - // While we didn't get to the Nil node: - while (pCurrNode != _pNilNode) - { - // Get the current node's key: - gtUInt64 currNodeKey = pCurrNode->_key; - - if (currNodeKey == key) - { - // The current node's key is the key that we are looking for: - retVal = pCurrNode; - break; - } - else if (key < currNodeKey) - { - // Drill into the left node: - pCurrNode = pCurrNode->_pLeftChild; - } - else - { - // Drill into the right node: - pCurrNode = pCurrNode->_pRightChild; - } - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: gtRedBlackTree::searchEqualOrLowerThan -// Description: Inputs a key and searches the tree for a node representing this key. -// If such node does not exist, returns (if exists) the node who's key -// is the highest key which is lower than the input key. -// Arguments: key - The input key. -// Return Val: gtRedBlackTreeNode* - Will get the found node, or NULL if such node does not exist. -// Author: AMD Developer Tools Team -// Date: 14/7/2010 -// --------------------------------------------------------------------------- -gtRedBlackTreeNode* gtRedBlackTree::searchEqualOrLowerThan(gtUInt64 key) const -{ - gtRedBlackTreeNode* retVal = NULL; - - // Start the search from the root node: - gtRedBlackTreeNode* pCurrNode = _pRootNode; - - // While we didn't get to the Nil node: - while (pCurrNode != _pNilNode) - { - // Get the current node's key: - gtUInt64 currNodeKey = pCurrNode->_key; - - if (currNodeKey == key) - { - // The current node's key is the key that we are looking for: - retVal = pCurrNode; - break; - } - else if (key < currNodeKey) - { - // Drill into the left node: - pCurrNode = pCurrNode->_pLeftChild; - } - else - { - // We found a node who's key is lower than the key we are looking for. - // Use it as our return candidate until we find a better one: - retVal = pCurrNode; - - // Drill into the right node: - pCurrNode = pCurrNode->_pRightChild; - } - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: gtRedBlackTree::getPredecessorOf -// Description: Inputs a node and returns it's predecessor. -// Arguments: pNode - The input node. -// Return Val: gtRedBlackTreeNode* - Will get the node's predecessor, or NULL if no predecessor exist. -// Author: AMD Developer Tools Team -// Date: 29/6/2010 -// --------------------------------------------------------------------------- -gtRedBlackTreeNode* gtRedBlackTree::getPredecessorOf(gtRedBlackTreeNode* pNode) const -{ - gtRedBlackTreeNode* pPredecessorNode = NULL; - - if (_pNilNode != (pPredecessorNode = pNode->_pLeftChild)) - { - // Assignment to pPredecessorNode is intentional: - while (pPredecessorNode->_pRightChild != _pNilNode) - { - // Returns the maximum of the _pLeftChild subtree of pNode: - pPredecessorNode = pPredecessorNode->_pRightChild; - } - } - else - { - pPredecessorNode = pNode->_pParent; - - while (pNode == pPredecessorNode->_pLeftChild) - { - if (pPredecessorNode == _pRootNode) - { - return NULL; - } - - pNode = pPredecessorNode; - pPredecessorNode = pPredecessorNode->_pParent; - } - } - - if (pPredecessorNode == _pNilNode) - { - pPredecessorNode = NULL; - } - - return pPredecessorNode; -} - - -// --------------------------------------------------------------------------- -// Name: gtRedBlackTree::getSuccessorOf -// Description: Inputs a node and returns it's successor. -// Arguments: pNode - The input node. -// Return Val: gtRedBlackTreeNode* - Will get the node's successor, or NULL if no successor exist. -// Author: AMD Developer Tools Team -// Date: 29/6/2010 -// --------------------------------------------------------------------------- -gtRedBlackTreeNode* gtRedBlackTree::getSuccessorOf(gtRedBlackTreeNode* pNode) const -{ - gtRedBlackTreeNode* pSuccessorNode = NULL; - - if (_pNilNode != (pSuccessorNode = pNode->_pRightChild)) - { - // Assignment to pSuccessorNode is intentional: - while (pSuccessorNode->_pLeftChild != _pNilNode) - { - // Returns the minimum of the _pRightChild subtree of pNode: - pSuccessorNode = pSuccessorNode->_pLeftChild; - } - } - else - { - pSuccessorNode = pNode->_pParent; - - while (pNode == pSuccessorNode->_pRightChild) - { - // Sentinel used instead of checking for _pNilNode: - pNode = pSuccessorNode; - pSuccessorNode = pSuccessorNode->_pParent; - } - - if (pSuccessorNode == _pRootNode) - { - pSuccessorNode = _pNilNode; - } - } - - if (pSuccessorNode == _pNilNode) - { - pSuccessorNode = NULL; - } - - return pSuccessorNode; -} - - -// --------------------------------------------------------------------------- -// Name: gtRedBlackTree::enumerate -// Description: -// Returns a stack containing pointers to tree nodes containing values which are -// in the [low,high] range. -// The caller is responsible for deallocating the stack. -// -// Arguments: low, high - Defined the [low,high] range. -// nodes - Will get the output stack. -// Author: AMD Developer Tools Team -// Date: 29/6/2010 -// --------------------------------------------------------------------------- -void gtRedBlackTree::enumerate(gtUInt64 low, gtUInt64 high, gtStack& nodes) const -{ - gtRedBlackTreeNode* pCurrNode = _pRootNode->_pLeftChild; - gtRedBlackTreeNode* pLastBest = NULL; - - while (_pNilNode != pCurrNode) - { - if (pCurrNode->_key > high) - { - pCurrNode = pCurrNode->_pLeftChild; - } - else - { - pLastBest = pCurrNode; - pCurrNode = pCurrNode->_pRightChild; - } - } - - while ((pLastBest != NULL) && (low <= pLastBest->_key)) - { - nodes.push(pLastBest); - pLastBest = getPredecessorOf(pLastBest); - } -} - - -// --------------------------------------------------------------------------- -// Name: gtRedBlackTree::checkAssumptions -// Description: Verifies that the tree meets the basic red-black tree assumptions. -// Author: AMD Developer Tools Team -// Date: 29/6/2010 -// --------------------------------------------------------------------------- -void gtRedBlackTree::checkAssumptions() const -{ - GT_ASSERT(_pNilNode->_key == 0); - GT_ASSERT(_pRootNode->_key == GT_UINT64_MAX); - GT_ASSERT(_pNilNode->_pValue == NULL); - GT_ASSERT(_pRootNode->_pValue == NULL); - GT_ASSERT(_pNilNode->_isRed == false); - GT_ASSERT(_pRootNode->_isRed == false); -} - - -// --------------------------------------------------------------------------- -// Name: gtRedBlackTree::leftRotate -// Description: -// Rotates as described in "Introduction To Algorithms" by Cormen, Leiserson, Rivest (Chapter 14). -// Basically this makes the _pParent of pNode be to the _pLeftChild of pNode, pNode the _pParent of -// its _pParent before the rotation and fixes other pointers accordingly. -// Arguments: pNode - The node to be "rotated" -// Author: AMD Developer Tools Team -// Date: 29/6/2010 -// --------------------------------------------------------------------------- -void gtRedBlackTree::leftRotate(gtRedBlackTreeNode* pNode) -{ - // I originally wrote this function to use the sentinel for _pNilNode to avoid checking for _pNilNode. However this introduces a - // very subtle bug because sometimes this function modifies the _pParent pointer of _pNilNode. This can be a problem if a - // function which calls leftRotate also uses the _pNilNode sentinel and expects the _pNilNode sentinel's _pParent pointer to be unchanged - // after calling this function. For example, when deleteFixUP calls leftRotate it expects the _pParent pointer of _pNilNode to be unchanged. - gtRedBlackTreeNode* pAidNode = pNode->_pRightChild; - pNode->_pRightChild = pAidNode->_pLeftChild; - - // Used to use sentinel here and do an unconditional assignment instead of testing for _pNilNode: - if (pAidNode->_pLeftChild != _pNilNode) - { - pAidNode->_pLeftChild->_pParent = pNode; - } - - pAidNode->_pParent = pNode->_pParent; - - // Instead of checking if pNode->_pParent is the _pRootNode as in the book, we count on the _pRootNode sentinel to implicitly take care of this case: - if (pNode == pNode->_pParent->_pLeftChild) - { - pNode->_pParent->_pLeftChild = pAidNode; - } - else - { - pNode->_pParent->_pRightChild = pAidNode; - } - - pAidNode->_pLeftChild = pNode; - pNode->_pParent = pAidNode; - - // Sanity check: - GT_ASSERT_EX(!_pNilNode->_isRed, L"_pNilNode not red in gtRedBlackTree::leftRotate"); - -#ifdef GT_CHECK_RB_TREE_ASSUMPTIONS - { - // Deeper sanity check: - checkAssumptions(); - } -#endif -} - - -// --------------------------------------------------------------------------- -// Name: gtRedBlackTree::rightRotate -// Description: -// Rotates as described in "Introduction To Algorithms" by Cormen, Leiserson, Rivest (Chapter 14). -// Basically this makes the _pParent of pNode be to the _pLeftChild of pNode, pNode the _pParent of -// its _pParent before the rotation and fixes other pointers accordingly. -// Arguments: pNode - The node to be "rotated" -// Author: AMD Developer Tools Team -// Date: 29/6/2010 -// --------------------------------------------------------------------------- -void gtRedBlackTree::rightRotate(gtRedBlackTreeNode* pNode) -{ - // I originally wrote this function to use the sentinel for _pNilNode to avoid checking for _pNilNode. - // However this introduces a very subtle bug because sometimes this function modifies the _pParent pointer of _pNilNode. - // This can be a problem if a function which calls leftRotate also uses the _pNilNode sentinel and expects the _pNilNode - // sentinel's _pParent pointer to be unchanged after calling this function. For example, when deleteFixUP calls leftRotate - // it expects the _pParent pointer of _pNilNode to be unchanged. - gtRedBlackTreeNode* pAidNode = pNode->_pLeftChild; - pNode->_pLeftChild = pAidNode->_pRightChild; - - // Used to use sentinel here and do an unconditional assignment instead of testing for _pNilNode: - if (_pNilNode != pAidNode->_pRightChild) - { - pAidNode->_pRightChild->_pParent = pNode; - } - - // Instead of checking if pAidNode->_pParent is the _pRootNode as in the book, we count on the _pRootNode sentinel - // to implicitly take care of this case: - pAidNode->_pParent = pNode->_pParent; - - if (pNode == pNode->_pParent->_pLeftChild) - { - pNode->_pParent->_pLeftChild = pAidNode; - } - else - { - pNode->_pParent->_pRightChild = pAidNode; - } - - pAidNode->_pRightChild = pNode; - pNode->_pParent = pAidNode; - - // Sanity check: - GT_ASSERT_EX(!_pNilNode->_isRed, L"_pNilNode not red in gtRedBlackTree::rightRotate"); - -#ifdef GT_CHECK_RB_TREE_ASSUMPTIONS - { - // Deeper sanity check: - checkAssumptions(); - } -#endif -} - - -// --------------------------------------------------------------------------- -// Name: gtRedBlackTree::treeInsertHelp -// Description: -// Inserts pNode into the tree as if it were a regular binary tree using the -// algorithm described in "Introduction To Algorithms" by Cormen et al. -// This function is only intended to be called by the insert function and not by the user. -// Arguments: pNode - The node to be inserted. -// Author: AMD Developer Tools Team -// Date: 29/6/2010 -// --------------------------------------------------------------------------- -void gtRedBlackTree::treeInsertHelp(gtRedBlackTreeNode* pNode) -{ - // This function should only be called by gtRedBlackTree::insert - - pNode->_pLeftChild = _pNilNode; - pNode->_pRightChild = _pNilNode; - - gtRedBlackTreeNode* pAidNodeB = _pRootNode; - gtRedBlackTreeNode* pAidNodeA = _pRootNode->_pLeftChild; - - while (pAidNodeA != _pNilNode) - { - pAidNodeB = pAidNodeA; - - if (pAidNodeA->_key > pNode->_key) - { - pAidNodeA = pAidNodeA->_pLeftChild; - } - else - { - // pAidNodeA->_key <= pNode->_key: - pAidNodeA = pAidNodeA->_pRightChild; - } - } - - pNode->_pParent = pAidNodeB; - - if ((pAidNodeB == _pRootNode) || (pAidNodeB->_key > pNode->_key)) - { - pAidNodeB->_pLeftChild = pNode; - } - else - { - pAidNodeB->_pRightChild = pNode; - } - - // Sanity check: - GT_ASSERT_EX(!_pNilNode->_isRed, L"_pNilNode not _isRed in gtRedBlackTree::treeInsertHelp"); -} - - -// --------------------------------------------------------------------------- -// Name: gtRedBlackTree::deleteFixUp -// Description: -// Performs rotations and changes colors to restore _isRed-black properties -// after a node is deleted. -// Arguments: pNode - the child of the spliced out node in deleteNode. -// Author: AMD Developer Tools Team -// Date: 29/6/2010 -// --------------------------------------------------------------------------- -void gtRedBlackTree::deleteFixUp(gtRedBlackTreeNode* pNode) -{ - gtRedBlackTreeNode* pRootLeftChild = _pRootNode->_pLeftChild; - gtRedBlackTreeNode* pAidNode = NULL; - - while ((!pNode->_isRed) && (pRootLeftChild != pNode)) - { - if (pNode == pNode->_pParent->_pLeftChild) - { - pAidNode = pNode->_pParent->_pRightChild; - - if (pAidNode->_isRed) - { - pAidNode->_isRed = false; - pNode->_pParent->_isRed = true; - leftRotate(pNode->_pParent); - pAidNode = pNode->_pParent->_pRightChild; - } - - if ((!pAidNode->_pRightChild->_isRed) && (!pAidNode->_pLeftChild->_isRed)) - { - pAidNode->_isRed = true; - pNode = pNode->_pParent; - } - else - { - if (!pAidNode->_pRightChild->_isRed) - { - pAidNode->_pLeftChild->_isRed = false; - pAidNode->_isRed = true; - rightRotate(pAidNode); - pAidNode = pNode->_pParent->_pRightChild; - } - - pAidNode->_isRed = pNode->_pParent->_isRed; - pNode->_pParent->_isRed = false; - pAidNode->_pRightChild->_isRed = false; - leftRotate(pNode->_pParent); - - // This is done to exit while loop: - pNode = pRootLeftChild; - } - } - else - { - // The code below is has _pLeftChild and _pRightChild switched from above: - pAidNode = pNode->_pParent->_pLeftChild; - - if (pAidNode->_isRed) - { - pAidNode->_isRed = false; - pNode->_pParent->_isRed = true; - rightRotate(pNode->_pParent); - pAidNode = pNode->_pParent->_pLeftChild; - } - - if ((!pAidNode->_pRightChild->_isRed) && (!pAidNode->_pLeftChild->_isRed)) - { - pAidNode->_isRed = true; - pNode = pNode->_pParent; - } - else - { - if (!pAidNode->_pLeftChild->_isRed) - { - pAidNode->_pRightChild->_isRed = false; - pAidNode->_isRed = true; - leftRotate(pAidNode); - pAidNode = pNode->_pParent->_pLeftChild; - } - - pAidNode->_isRed = pNode->_pParent->_isRed; - pNode->_pParent->_isRed = false; - pAidNode->_pLeftChild->_isRed = false; - rightRotate(pNode->_pParent); - - // This is done to exit while loop: - pNode = pRootLeftChild; - } - } - } - - pNode->_isRed = false; - -#ifdef GT_CHECK_RB_TREE_ASSUMPTIONS - { - // Deeper sanity check: - checkAssumptions(); - } -#endif - - // Sanity check: - GT_ASSERT_EX(!_pNilNode->_isRed, L"_pNilNode not black in gtRedBlackTree::deleteFixUp"); -} - - -// --------------------------------------------------------------------------- -// Name: gtRedBlackTree::initializeRootAndNilNodes -// Description: Initializes the fields of the root and the Nil nodes. -// Author: AMD Developer Tools Team -// Date: 15/7/2010 -// --------------------------------------------------------------------------- -void gtRedBlackTree::initializeRootAndNilNodes() -{ - // Initialize the Nil node: - _pNilNode->_pLeftChild = _pNilNode; - _pNilNode->_pRightChild = _pNilNode; - _pNilNode->_pParent = _pNilNode; - _pNilNode->_isRed = false; - _pNilNode->_key = 0; - _pNilNode->_pValue = NULL; - - // Initialize the root node: - _pRootNode->_pParent = _pNilNode; - _pRootNode->_pLeftChild = _pNilNode; - _pRootNode->_pRightChild = _pNilNode; - _pRootNode->_key = GT_UINT64_MAX; - _pRootNode->_isRed = false; - _pRootNode->_pValue = NULL; -} - diff --git a/external/amdt_os_wrappers/CMakeLists.txt b/external/amdt_os_wrappers/CMakeLists.txt index 5b0c9b7..0053ce8 100644 --- a/external/amdt_os_wrappers/CMakeLists.txt +++ b/external/amdt_os_wrappers/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required (VERSION 3.10) project (AMDTOSWrappers) # The version number -set (AMDTOSWRAPPERS_VERSION_MAJOR 1) +set (AMDTOSWRAPPERS_VERSION_MAJOR 2) set (AMDTOSWRAPPERS_VERSION_MINOR 0) # Project-specific preprocessor directives @@ -36,97 +36,54 @@ file(GLOB WINDOWS_SRC # Common "src/common/osApplication.cpp" "src/common/osASCIIInputFileImpl.cpp" - "src/common/osBugReporter.cpp" - "src/common/osCallStack.cpp" - "src/common/osCallStackFrame.cpp" - "src/common/osCGIInputDataReader.cpp" "src/common/osChannel.cpp" "src/common/osChannelOperators.cpp" "src/common/osCommunicationDebugManager.cpp" "src/common/osCommunicationDebugThread.cpp" - "src/common/osCpuid.cpp" "src/common/osCriticalSection.cpp" "src/common/osCriticalSectionLocker.cpp" "src/common/osDebuggingFunctions.cpp" "src/common/osDebugLog.cpp" "src/common/osDirectory.cpp" - "src/common/osDirectorySerializer.cpp" "src/common/osDNSQueryThread.cpp" - "src/common/osEmailClient.cpp" "src/common/osEnvironmentVariable.cpp" - "src/common/osExceptionReason.cpp" "src/common/osFile.cpp" "src/common/osFileImpl.cpp" "src/common/osFileLauncher.cpp" "src/common/osFileLauncherThread.cpp" "src/common/osFilePath.cpp" "src/common/osFilePathByLastAccessDateCompareFunctor.cpp" - "src/common/osGeneralFunctions.cpp" - "src/common/osHTTPClient.cpp" "src/common/osInputFileImpl.cpp" - "src/common/osMessageBox.cpp" "src/common/osModule.cpp" - "src/common/osMutex.cpp" - "src/common/osMutexLocker.cpp" - "src/common/osNetworkAdapter.cpp" - "src/common/osNULLSocket.cpp" - "src/common/osOSWrappersDLLBuild.cpp" - "src/common/osOutOfMemoryHandling.cpp" "src/common/osOutputFileImpl.cpp" - "src/common/osPortAddress.cpp" "src/common/osProcess.cpp" - "src/common/osRawMemoryBuffer.cpp" "src/common/osRawMemoryStream.cpp" "src/common/osSettingsFileHandler.cpp" - "src/common/osSingeltonsDelete.cpp" "src/common/osSocket.cpp" - "src/common/osStream.cpp" - "src/common/osSynchronizationObject.cpp" - "src/common/osSynchronizationObjectLocker.cpp" - "src/common/osSystemError.cpp" - "src/common/osTCPSocketServer.cpp" - "src/common/osTCPSocketServerConnectionHandler.cpp" "src/common/osTime.cpp" "src/common/osTimeInterval.cpp" "src/common/osTransferableObject.cpp" "src/common/osTransferableObjectCreatorsBase.cpp" "src/common/osTransferableObjectCreatorsManager.cpp" - "src/common/osTransferableObjectType.cpp" - "src/common/osWrappersInitFunc.cpp" # win-32 "src/win32/osApplication.cpp" - "src/win32/osAtomicImpl.h" - "src/win32/osCallsStackReader.cpp" - "src/win32/osConsole.cpp" "src/win32/osCriticalSectionImpl.cpp" - "src/win32/osDaemon.h" "src/win32/osDebuggingFunctions.cpp" - "src/win32/osDesktop.cpp" "src/win32/osDirectory.cpp" "src/win32/osFile.cpp" "src/win32/osFileLauncher.cpp" "src/win32/osFilePath.cpp" "src/win32/osGeneralFunctions.cpp" "src/win32/osInputFileImpl.cpp" -# "src/win32/osKeyboardListener.cpp" "src/win32/osMachine.cpp" "src/win32/osModule.cpp" - "src/win32/osMutexImpl.cpp" - "src/win32/osMutexImpl.h" - "src/win32/osNetworkAdapter.cpp" - "src/win32/osPipeSocket.cpp" - "src/win32/osPipeSocketClient.cpp" - "src/win32/osPipeSocketServer.cpp" "src/win32/osPortAddress.cpp" - "src/win32/osPrivateData.h" "src/win32/osProcess.cpp" "src/win32/osProcessSharedFile.cpp" "src/win32/osReadWriteLock.cpp" "src/win32/osSingleApplicationInstance.cpp" "src/win32/osStopWatch.cpp" - "src/win32/osSynchronizationObjectImpl.cpp" - "src/win32/osSynchronizationObjectImpl.h" "src/win32/osSystemError.cpp" "src/win32/osTCPSocket.cpp" "src/win32/osTCPSocketClient.cpp" @@ -135,12 +92,8 @@ file(GLOB WINDOWS_SRC "src/win32/osThreadLocalData.cpp" "src/win32/osTime.cpp" "src/win32/osTimer.cpp" - "src/win32/osToAndFromString.cpp" "src/win32/osUnhandledExceptionHandler.cpp" "src/win32/osUser.cpp" - "src/win32/osWin32CallStackReader.cpp" - "src/win32/osWin32DebugInfoReader.cpp" - "src/win32/osWin32DebugSymbolsManager.cpp" "src/win32/osWin32Functions.cpp" ) @@ -151,98 +104,62 @@ file(GLOB LINUX_SRC "src/osProductVersion.cpp" "src/common/osASCIIInputFileImpl.cpp" "src/common/osApplication.cpp" - "src/common/osBugReporter.cpp" "src/common/osChannel.cpp" "src/common/osChannelOperators.cpp" "src/common/osCommunicationDebugManager.cpp" "src/common/osCommunicationDebugThread.cpp" - "src/common/osCGIInputDataReader.cpp" - "src/common/osCallStack.cpp" - "src/common/osCallStackFrame.cpp" - "src/common/osCpuid.cpp" "src/common/osCriticalSectionLocker.cpp" "src/common/osCriticalSection.cpp" "src/common/osDebuggingFunctions.cpp" "src/common/osDebugLog.cpp" "src/common/osDirectory.cpp" - "src/common/osDirectorySerializer.cpp" "src/common/osDNSQueryThread.cpp" - "src/common/osEmailClient.cpp" - "src/common/osExceptionReason.cpp" "src/common/osFileImpl.cpp" "src/common/osFileLauncher.cpp" "src/common/osFileLauncherThread.cpp" "src/common/osFilePath.cpp" "src/common/osFilePathByLastAccessDateCompareFunctor.cpp" "src/common/osFile.cpp" - "src/common/osGeneralFunctions.cpp" - "src/common/osHTTPClient.cpp" "src/common/osInputFileImpl.cpp" - "src/common/osMessageBox.cpp" "src/common/osModule.cpp" "src/common/osMutexLocker.cpp" "src/common/osMutex.cpp" - "src/common/osNetworkAdapter.cpp" - "src/common/osNULLSocket.cpp" - "src/common/osOutOfMemoryHandling.cpp" "src/common/osOutputFileImpl.cpp" - "src/common/osPortAddress.cpp" "src/common/osProcess.cpp" - "src/common/osRawMemoryBuffer.cpp" "src/common/osRawMemoryStream.cpp" "src/common/osSettingsFileHandler.cpp" - "src/common/osSingeltonsDelete.cpp" "src/common/osSocket.cpp" - "src/common/osStream.cpp" -# "src/common/osSynchronizationObjectLocker.cpp" -# "src/common/osSynchronizationObject.cpp" - "src/common/osTCPSocketServerConnectionHandler.cpp" - "src/common/osTCPSocketServer.cpp" "src/common/osTime.cpp" "src/common/osTimeInterval.cpp" "src/common/osTransferableObjectCreatorsBase.cpp" "src/common/osTransferableObjectCreatorsManager.cpp" - "src/common/osTransferableObjectType.cpp" "src/common/osTransferableObject.cpp" - "src/common/osWrappersInitFunc.cpp" "src/common/osEnvironmentVariable.cpp" # linuxSources - "src/linux/osCallsStackReader.cpp" "src/linux/osCondition.cpp" - "src/linux/osConsole.cpp" "src/linux/osCriticalSectionImpl.cpp" - "src/linux/osDaemon.cpp" "src/linux/osDirectory.cpp" "src/linux/osFile.cpp" "src/linux/osFileLauncher.cpp" -# "src/linux/osKeyboardListener.cpp" + "src/linux/osGeneralFunctions.cpp" "src/linux/osLinuxProcFileSystemReader.cpp" "src/linux/osModule.cpp" + "src/linux/osMutexImpl.h" "src/linux/osMutexImpl.cpp" - "src/linux/osNetworkAdapter.cpp" - "src/linux/osPipeExecutor.cpp" -# "src/linux/osPipeSocket.cpp" -# "src/linux/osPipeSocketClient.cpp" -# "src/linux/osPipeSocketServer.cpp" "src/linux/osPortAddress.cpp" "src/linux/osProcess.cpp" "src/linux/osProcessSharedFile.cpp" "src/linux/osReadWriteLock.cpp" -# "src/linux/osSharedMemorySocketClient.cpp" -# "src/linux/osSharedMemorySocketServer.cpp" -# "src/linux/osSharedMemorySocket.cpp" "src/linux/osSingleApplicationInstance.cpp" "src/linux/osSocket.cpp" "src/linux/osStopWatch.cpp" "src/linux/osSystemError.cpp" -# "src/linux/osSynchronizationObjectImpl.cpp" "src/linux/osTCPSocketClient.cpp" "src/linux/osTCPSocketServer.cpp" "src/linux/osTCPSocket.cpp" "src/linux/osThread.cpp" "src/linux/osThreadLocalData.cpp" "src/linux/osTime.cpp" - "src/linux/osToAndFromString.cpp" "src/linux/osTimer.cpp" "src/linux/osInputFileImpl.cpp" "src/linux/osUnhandledExceptionHandler.cpp" @@ -250,7 +167,6 @@ file(GLOB LINUX_SRC # Generic Linux "src/linux/osApplication.cpp" "src/linux/osDebuggingFunctions.cpp" - "src/linux/osDesktop.cpp" "src/linux/osFilePath.cpp" "src/linux/osGeneralFunctions.cpp" "src/linux/osMachine.cpp" diff --git a/external/amdt_os_wrappers/Include/osAtomic.h b/external/amdt_os_wrappers/Include/osAtomic.h deleted file mode 100644 index d6c716a..0000000 --- a/external/amdt_os_wrappers/Include/osAtomic.h +++ /dev/null @@ -1,23 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osAtomic.h -/// -//===================================================================== -#ifndef __OSATOMIC -#define __OSATOMIC - -#include - -#if (AMDT_BUILD_TARGET == AMDT_WINDOWS_OS) - #include "../src/win32/osAtomicImpl.h" -#elif (AMDT_BUILD_TARGET == AMDT_LINUX_OS) - #if (AMDT_LINUX_VARIANT == AMDT_GENERIC_LINUX_VARIANT) - #include "../src/linux/osAtomicImpl.h" - #else - # error Error: no atomic operations defined for build target! - #endif -#endif - -#endif // __OSATOMIC diff --git a/external/amdt_os_wrappers/Include/osBugReporter.h b/external/amdt_os_wrappers/Include/osBugReporter.h deleted file mode 100644 index 0f6a147..0000000 --- a/external/amdt_os_wrappers/Include/osBugReporter.h +++ /dev/null @@ -1,84 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osBugReporter.h -/// -//===================================================================== - -//------------------------------ osBugReporter.h ------------------------------ - -#ifndef __OSBUGREPORTER_H -#define __OSBUGREPORTER_H - -// Foreward declarations: -class osPortAddress; - -// Infra: -#include - -// Local: -#include - - -// ---------------------------------------------------------------------------------- -// Class Name: osBugReporter -// General Description: -// Reports bugs to a CRM Web server. -// (CRM = Customer Relations Management) -// -// Author: AMD Developer Tools Team -// Creation Date: 24/11/2005 -// ---------------------------------------------------------------------------------- -class OS_API osBugReporter -{ -public: - osBugReporter(const gtASCIIString& CRMServerURL, const gtASCIIString& bugSubmissionCGIRelativeURL, - const gtASCIIString& projectName, const gtASCIIString& bugArea, - const gtASCIIString& bugTitle, const gtASCIIString& bugDescription, - const gtASCIIString& reporterUserName, const gtASCIIString& reporterEmail, - bool createNewBugIfTitleExists); - virtual ~osBugReporter(); - - bool reportBug(gtASCIIString& CRMSystemReturnedMessage, bool isUsingProxy, const osPortAddress& proxyServer); - -private: - void buildHTTPRequestString(gtASCIIString& requestString); - void adjustStringToContentType(gtASCIIString& requestString); - bool sendRequestToCRMSystem(const gtASCIIString& requestString, gtASCIIString& returnedPage, bool isUsingProxy, const osPortAddress& proxyServer); - bool parseReturnedPage(const gtASCIIString& returnedPage, gtASCIIString& CRMSystemReturnedMessage); - - // Do not allow the use of my default constructor: - osBugReporter(); - -private: - // The CRM server URL: - gtASCIIString _CRMServerURL; - - // The relative URL (under the CRM server) of the bug submission script: - gtASCIIString _bugSubmissionCGIRelativeURL; - - // The name of the project into which the bug will be reported: - gtASCIIString _projectName; - - // The Area into which the bug will be reported: - gtASCIIString _bugArea; - - // The bug title (uniquely identifies the bug): - gtASCIIString _bugTitle; - - // The bug description: - gtASCIIString _bugDescription; - - // The bug reporter user name: - gtASCIIString _reporterUserName; - - // The bug reporter user email: - gtASCIIString _reporterEmail; - - // Always create a new bug (even if a bug with the same title already exist): - bool _createNewBugIfTitleExists; -}; - - -#endif //__OSBUGREPORTER_H diff --git a/external/amdt_os_wrappers/Include/osBundle.h b/external/amdt_os_wrappers/Include/osBundle.h deleted file mode 100644 index c3c00d5..0000000 --- a/external/amdt_os_wrappers/Include/osBundle.h +++ /dev/null @@ -1,30 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osBundle.h -/// -//===================================================================== - -//------------------------------ osBundle.h ------------------------------ - -#ifndef __OSBUNDLE -#define __OSBUNDLE - -// MAC OS -#if ((AMDT_BUILD_TARGET == AMDT_LINUX_OS) && (AMDT_LINUX_VARIANT == AMDT_MAC_OS_X_LINUX_VARIANT)) - // Forward declarations: - typedef struct __CFBundle* CFBundleRef; - - // Local: - #include - #include - - OS_API osProcedureAddress osGetOpenGLFrameworkFunctionAddress(const char* procName); - bool osGetSystemOpenGLFrameworkBundle(CFBundleRef& refOpenGLFrameworkBundle); - OS_API void osSetOpenGLESFrameworkPath(const char* pFrameworkPath); - OS_API const char* osGetOpenGLESFrameworkPath(); - -#endif - -#endif // __OSBUNDLE diff --git a/external/amdt_os_wrappers/Include/osCGIInputDataReader.h b/external/amdt_os_wrappers/Include/osCGIInputDataReader.h deleted file mode 100644 index 2db7f8d..0000000 --- a/external/amdt_os_wrappers/Include/osCGIInputDataReader.h +++ /dev/null @@ -1,80 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osCGIInputDataReader.h -/// -//===================================================================== - -//------------------------------ osCGIInputDataReader.h ------------------------------ - -#ifndef __OSCGIINPUTDATAREADER_H -#define __OSCGIINPUTDATAREADER_H - -// Infra: -#include -#include - -// Local: -#include - - -// ---------------------------------------------------------------------------------- -// Class Name: osCGIInputDataItem -// General Description: -// Represents a data item, passed from a Web form into a CGI-bin. -// -// Author: AMD Developer Tools Team -// Creation Date: osCGIVariable -// ---------------------------------------------------------------------------------- -struct OS_API osCGIInputDataItem -{ - // The item name: - gtString _name; - - // The item value: - gtString _value; -}; - - -// ---------------------------------------------------------------------------------- -// Class Name: osCGIInputDataReader -// General Description: -// Enables reading the data items send from a web form into a CGI-bin. -// This class should be used inside the CGI-bin. -// -// Author: AMD Developer Tools Team -// Creation Date: 11/5/2008 -// ---------------------------------------------------------------------------------- -class OS_API osCGIInputDataReader -{ -public: - osCGIInputDataReader(); - virtual ~osCGIInputDataReader(); - - bool readGetInputData(); - bool readPostInputData(); - - int amountOfDataItems() const; - bool getDataItem(int itemIndex, osCGIInputDataItem& itemData) const; - bool getDataItemValue(const gtString& dataItemName, gtString& dataItemValue) const; - - bool getClientIPAddress(gtString& clientIPAddress) const; - bool getServerName(gtString& serverName) const; - bool getServerPort(unsigned int& serverPort) const; - bool getRemoteHost(gtString& serverName) const; - -private: - bool readRequestString(const gtString& requestString); - bool decodeFormRequestString(const gtString& encodedString, gtString& decodedString); - wchar_t hexToChar(wchar_t* pHexValue) const; - void debugLogRequestString(const gtString& requestString); - -private: - // Contains the data items send from the form into the CGI-bin: - gtPtrVector _dataItems; -}; - - -#endif //__OSCGIINPUTDATAREADER_H - diff --git a/external/amdt_os_wrappers/Include/osCallStack.h b/external/amdt_os_wrappers/Include/osCallStack.h deleted file mode 100644 index ae15b49..0000000 --- a/external/amdt_os_wrappers/Include/osCallStack.h +++ /dev/null @@ -1,66 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osCallStack.h -/// -//===================================================================== - -//------------------------------ osCallStack.h ------------------------------ - -#ifndef __OSCALLSTACK -#define __OSCALLSTACK - -// Infra: -#include - -// Local: -#include -#include - - -// ---------------------------------------------------------------------------------- -// Class Name: AP_API osCallStack -// General Description: -// Represents a thread call stack. -// -// Author: AMD Developer Tools Team -// Creation Date: 8/4/2004 -// ---------------------------------------------------------------------------------- -class OS_API osCallStack : public osTransferableObject -{ -public: - osCallStack(osThreadId threadId = OS_NO_THREAD_ID, bool is64BitCallStack = false); - - osThreadId threadId() const { return _threadId; }; - bool is64BitCallStack() const { return _is64BitCallStack; }; - int amountOfStackFrames() const { return (int)_stackFrames.size(); }; - void reserveStack(int stackSize) { _stackFrames.reserve(stackSize); } - const osCallStackFrame* stackFrame(int frameIndex) const; - void asString(gtString& callStackBriefString, gtString& callStackString, bool& isSpyModuleRelatedCallStack, bool allowDifferentSystemPathInSpy = true) const; - - void clearStack(); - void setThreadId(osThreadId threadId) { _threadId = threadId; }; - void setAddressSpaceType(bool is64BitCallStack) { _is64BitCallStack = is64BitCallStack; }; - void addStackFrame(const osCallStackFrame& stackFrame); - bool setStackFrame(const osCallStackFrame& stackFrame, int index); - void append(const osCallStack& subStack); - - // Overrides osTransferableObject - virtual osTransferableObjectType type() const {return OS_TOBJ_ID_CALLS_STACK;}; - virtual bool writeSelfIntoChannel(osChannel& ipcChannel) const; - virtual bool readSelfFromChannel(osChannel& ipcChannel); - -private: - // The id of the thread to which the call stack belongs: - osThreadId _threadId; - - // true for 64 bit address space call stack, false for 32 bit address space call stack: - bool _is64BitCallStack; - - // The call stack frames: - gtVector _stackFrames; -}; - - -#endif // __OSCALLSTACK diff --git a/external/amdt_os_wrappers/Include/osCallStackFrame.h b/external/amdt_os_wrappers/Include/osCallStackFrame.h deleted file mode 100644 index 54668c3..0000000 --- a/external/amdt_os_wrappers/Include/osCallStackFrame.h +++ /dev/null @@ -1,99 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osCallStackFrame.h -/// -//===================================================================== - -//------------------------------ osCallStackFrame.h ------------------------------ - -#ifndef __OSCALLSTACKFRAME -#define __OSCALLSTACKFRAME - -// Local: -#include -#include -#include -#include - - -// ---------------------------------------------------------------------------------- -// Class Name: AP_API osCallStackFrame -// General Description: -// Represents a call stack frame (a single function call data). -// -// Author: AMD Developer Tools Team -// Creation Date: 8/4/2004 -// ---------------------------------------------------------------------------------- -class OS_API osCallStackFrame : public osTransferableObject -{ -public: - osCallStackFrame(); - - virtual ~osCallStackFrame(); - - const osFilePath& moduleFilePath() const { return _moduleFilePath; }; - osInstructionPointer functionStartAddress() const { return _functionStartAddress; }; - osInstructionPointer moduleStartAddress() const { return _moduleStartAddress; }; - osInstructionPointer instructionCounterAddress() const { return _instructionCounterAddress; }; - const gtString& functionName() const { return _functionName; }; - bool isSpyFunction() const { return _isSpyFunction; }; - const osFilePath& sourceCodeFilePath() const { return _sourceCodeFilePath; }; - int sourceCodeFileLineNumber() const { return _sourceCodeFileLineNumber; }; - bool isKernelSourceCode() const {return _isKernelSourceCode;}; - - void setModuleFilePath(const osFilePath& filePath) { _moduleFilePath = filePath; }; - void setFunctionStartAddress(osInstructionPointer functionStartAddress) { _functionStartAddress = functionStartAddress; }; - void setModuleStartAddress(osInstructionPointer moduleStartAddress) { _moduleStartAddress = moduleStartAddress; }; - void setInstructionCounterAddress(osInstructionPointer instructionCounterAddress) { _instructionCounterAddress = instructionCounterAddress; }; - void setFunctionName(const gtString& functionName) { _functionName = functionName; }; - void markAsSpyFunction(bool isSpyFunc = true) { _isSpyFunction = isSpyFunc; }; - void setSourceCodeFilePath(const osFilePath& sourceCodeFilePath) { _sourceCodeFilePath = sourceCodeFilePath; }; - void setSourceCodeFileLineNumber(int lineNumber) { _sourceCodeFileLineNumber = lineNumber; }; - void setKernelSourceCode(bool isKernelCode) {_isKernelSourceCode = isKernelCode;}; - - // Overrides osTransferableObject - virtual osTransferableObjectType type() const {return OS_TOBJ_ID_CALLS_STACK_FRAME;}; - virtual bool writeSelfIntoChannel(osChannel& ipcChannel) const; - virtual bool readSelfFromChannel(osChannel& ipcChannel); - -private: - // The path of the module file (dll / exe) that contains the function that is - // executed in this stack frame: - // (It can contain a full or partial file path) - osFilePath _moduleFilePath; - - // The starting address of assembly code of the function that is executed in this stack - // frame. (This parameter will contain NULL when the function symbol info is not found) - osInstructionPointer _functionStartAddress; - - // The starting address of the module image in memory where the function was called from. - // (This parameter will contain NULL when the function symbol info is not found) - osInstructionPointer _moduleStartAddress; - - // A address of the machine code instruction on which the instruction pointer - // register points in this stack frame: - osInstructionPointer _instructionCounterAddress; - - // The name of the function that this call stack frame executes: - // (If there is no appropriate debug info this name will be empty). - gtString _functionName; - - // Contains true iff the function belongs to a "spy" dll: - bool _isSpyFunction; - - // The path of the source code file associated with this stack frame: - // (If there is no appropriate debug info it will be an empty path). - osFilePath _sourceCodeFilePath; - - // The source code file line number associated with this stack frame: - // (If there is no appropriate debug info it contain -1). - int _sourceCodeFileLineNumber; - - // Is this kernel source or c++ source? - bool _isKernelSourceCode; -}; - - -#endif // __OSCALLSTACKFRAME diff --git a/external/amdt_os_wrappers/Include/osCallsStackReader.h b/external/amdt_os_wrappers/Include/osCallsStackReader.h deleted file mode 100644 index 68d62cb..0000000 --- a/external/amdt_os_wrappers/Include/osCallsStackReader.h +++ /dev/null @@ -1,41 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osCallsStackReader.h -/// -//===================================================================== - -//------------------------------ osCallsStackReader.h ------------------------------ - -#ifndef __OSCALLSSTACKREADER_H -#define __OSCALLSSTACKREADER_H - -// Foreward declarations: -class osCallStack; - -// Local: -#include - -// ---------------------------------------------------------------------------------- -// Class Name: OS_API osCallsStackReader -// General Description: -// A class that reads a thread's calls stack into an osCallStack Parameter. -// Note that this class should USE platform-specific implementations (such as -// osWin32CallsStackReader so they should not inherit it. -// -// Author: AMD Developer Tools Team -// Creation Date: 23/10/2008 -// ---------------------------------------------------------------------------------- -class OS_API osCallsStackReader -{ -public: - osCallsStackReader(); - ~osCallsStackReader(); - - bool getCurrentCallsStack(osCallStack& callStack, bool shouldIgnoreSpyFrames = true, bool forceWindowsSymbolLoading = false); - bool getCallStack(osCallStack& callStack, void* pThreadExecutionContext, bool shouldIgnoreSpyFrames = true); -}; - -#endif //__OSCALLSSTACKREADER_H - diff --git a/external/amdt_os_wrappers/Include/osChannelEncryptor.h b/external/amdt_os_wrappers/Include/osChannelEncryptor.h deleted file mode 100644 index a15e6c2..0000000 --- a/external/amdt_os_wrappers/Include/osChannelEncryptor.h +++ /dev/null @@ -1,71 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file -/// -//===================================================================== - -//------------------------------ osChannelEncryptor.h ------------------------------ - -#ifndef __OSCHANNELENCRYPTOR_H -#define __OSCHANNELENCRYPTOR_H - -// Infra: -#include -#include - -// Local: -#include -#include - - -// ---------------------------------------------------------------------------------- -// Class Name: osChannelEncryptor -// General Description: -// A wrapper for an osChannel that encrypts its communication stream. -// -// Author: AMD Developer Tools Team -// Creation Date: 10/10/2006 -// Implementation notes: -// - We hold the osChannel that we wrap as a member. -// - We inherit osChannel to be able to imitate it fully (operators, etc) -// ---------------------------------------------------------------------------------- -class OS_API osChannelEncryptor : public osChannel -{ -public: - osChannelEncryptor(osChannel& wrappedChannel, const crBlowfishEncryptionKey& encryptionKey); - virtual ~osChannelEncryptor(); - - void restartEncryptionStream(); - - // Overrides osChannel - virtual osChannelType channelType() const; - virtual bool write(const gtByte* pDataBuffer, gtSize_t dataSize); - virtual bool read(gtByte* pDataBuffer, gtSize_t dataSize); - virtual bool readAvailableData(gtByte* pDataBuffer, gtSize_t bufferSize, gtSize_t& amountOfDataRead); - -private: - bool allocateBuffer(gtByte*& pBuffer, gtSize_t& bufferSize, gtSize_t dataSize); - - // Do not allow the use of my default constructor: - osChannelEncryptor(); - -private: - // The wrapped channel who's communication we encrypt: - osChannel& _wrappedChannel; - - // The blow fish encryptor: - crBlowfishEncryptor _blowfishEncryptor; - - // The read buffer: - gtByte* _pReadBuffer; - gtSize_t _readBufferSize; - - // The write buffer: - gtByte* _pWriteBuffer; - gtSize_t _writeBufferSize; -}; - - -#endif //__OSCHANNELENCRYPTOR_H diff --git a/external/amdt_os_wrappers/Include/osCondition.h b/external/amdt_os_wrappers/Include/osCondition.h deleted file mode 100644 index 3271feb..0000000 --- a/external/amdt_os_wrappers/Include/osCondition.h +++ /dev/null @@ -1,59 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osCondition.h -/// -//===================================================================== - -//------------------------------ osCondition.h ------------------------------ - -#ifndef __OSCONDITION -#define __OSCONDITION - -// POSIX: -#include - -// Infra: -#include - -// Local: -#include - - -// ---------------------------------------------------------------------------------- -// Class Name: osCondition -// General Description: -// A condition on which threads can wait. -// -// Author: AMD Developer Tools Team -// Creation Date: 15/1/2007 -// ---------------------------------------------------------------------------------- -class OS_API osCondition -{ -public: - osCondition(); - virtual ~osCondition(); - - bool lockCondition(); - bool unlockCondition(); - bool isConditionLocked() const { return _isConditionLocked; }; - - bool waitForCondition(); - - bool signalSingleThread(); - bool signalAllThreads(); - -private: - // Is the condition locked: - bool _isConditionLocked; - - // A mutex that controls the access to _isConditionLocked: - pthread_mutex_t _conditionMutex; - - // The OS condition object: - pthread_cond_t _conditionObj; -}; - - -#endif // __OSCONDITION diff --git a/external/amdt_os_wrappers/Include/osConsole.h b/external/amdt_os_wrappers/Include/osConsole.h deleted file mode 100644 index ac50c31..0000000 --- a/external/amdt_os_wrappers/Include/osConsole.h +++ /dev/null @@ -1,21 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osConsole.h -/// -//===================================================================== -#ifndef __osConsole_h -#define __osConsole_h - -#include - -//***********************************// -//*Console-related utility functions*// -//***********************************// - -// Blocks until the user hits a keyboard key. -void OS_API osWaitForKeyPress(); - -#endif // osConsole_h__ - diff --git a/external/amdt_os_wrappers/Include/osCpuid.h b/external/amdt_os_wrappers/Include/osCpuid.h deleted file mode 100644 index 898511c..0000000 --- a/external/amdt_os_wrappers/Include/osCpuid.h +++ /dev/null @@ -1,243 +0,0 @@ -//===================================================================== -// Copyright 2012-2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osCpuid.h -/// \brief A brief file description that Doxygen makes note of. -// -//============================================================= -// $Id: $ -// Last checkin: $DateTime: $ -// Last edited by: $Author: $ -// Change list: $Change: $ -//============================================================= -#ifndef _OSCPUID_H -#define _OSCPUID_H - -// Infra: -#include - -// Local: -#include - -/// These enumerations define the current AMD cpu family types returned by CPUID -enum -{ - /// Cpuid is unavailable or family was not returned - FAMILY_UNKNOWN = 0, - /// The extended family information is available (or it's a /ref FAMILY_K8) - FAMILY_EXTENDED = 0x0f, - /// A K7 cpu - FAMILY_K7 = 6, - /// A K8 cpu - FAMILY_K8 = 0xf, - /// A Greyhound cpu - FAMILY_GH = 0x10, - /// A Griffin cpu - FAMILY_GR = 0x11, - /// A Llano cpu - FAMILY_LN = 0x12, - /// Ontario (models 0-f), Krishna (10-1f) - FAMILY_ON = 0x14, - /// Orochi (models 0-f), Trinity (10-1f), Kaveri (30-3f), Basilisk (40-4f), Geko (50-5f), Carrizo (60-6f) - /// Pennar (70-7f), Iguana (80-8f) - FAMILY_OR = 0x15, - /// Kabini (models 0-f), Thebe (10-1f), Kryptos (20-2f), Samara (50-5f) - FAMILY_KB = 0x16, - /// A Zen cpu: Zeppelin (models 0-f) - FAMILY_ZN = 0x17, -}; - -/// These enumerations define the cpuid functions used -enum -{ - /// Retrieves basic vendor identification and standard cpuid function limits - CPUID_FN_VENDOR_ID = 0, - /// Retrieves information about basic features - CPUID_FN_BASIC_FEATURES = 1, - /// Retrieves largest extended functionality - CPUID_FN_MAX_EXT_FN = 0x80000000, - /// Retrieves information about extended features - CPUID_FN_EXT_FEATURES = 0x80000001, - /// Retrieves information about the number of logical cores supported by the processor - CPUID_FN_SIZE_ID = 0x80000008, - /// Retrieves information about IBS features - CPUID_FN_IBS_FEATURES = 0x8000001B, - /// Retrieves information about Node identifiers - CPUID_FN_NODE_ID = 0x8000001E, - /// Retrieves information about Hypervisor - CPUID_FN_HYPERVISOR_ID = 0x40000000, - /// Retrieve information about Hypervisor features - CPUID_FN_HYPERVISOR_FEATURES = 0x40000003 -}; - -/// These enumerations define the bit masks used to identify specific features from the retrieved -/// cpuid information -enum -{ - /// Whether there is a local APIC, from function /ref CPUID_FN_BASIC_FEATURES, EDX - CPUID_MASK_APIC = 0x200, - /// Whether IBS is available, from function /ref CPUID_FN_EXT_FEATURES, ECX - CPUID_MASK_IBS_AVAIL = 0x400, - /// Whether IBS op counting mode is supported for function /ref CPUID_FN_IBS_FEATURES, EAX - CPUID_MASK_IBS_OP_CNT = 0x10, - /// Whether IBS op branch target address is supported for function /ref CPUID_FN_IBS_FEATURES, EAX - CPUID_MASK_IBS_BR_TGT = 0x20, - /// Whether IBS extended count is supported for function /ref CPUID_FN_IBS_FEATURES, EAX - CPUID_MASK_IBS_EXT_CNT = 0x40, - /// Whether IBS fetch control extnded available for function /ref CPUID_FN_IBS_FEATURES, EAX - CPUID_MASK_IBS_FETCH_CTL_EXTD = 0x200, - /// Whether IBS op data 4 available for function /ref CPUID_FN_IBS_FEATURES, EAX - CPUID_MASK_IBS_OP_DATA4 = 0x400, - /// Whether a hypervisor is present, from function /ref CPUID_FN_BASIC_FEATURES, ECX - CPUID_MASK_HYPERVISOR = 0x80000000 -}; - -/// These enumeration define which offset of the dword array contains the register data from cpuid -enum -{ - /// This offset contains EAX data - EAX = 0, - /// This offset contains EBX data - EBX, - /// This offset contains ECX data - ECX, - /// This offset contains EDX data - EDX, - /// The maximum number of registers returned by cpuid - MAX_CPUID_REGS -}; - -/// These enumerations define the Hypervisor vendor IDs -enum -{ - /// Unknown hypervisor - HV_VENDOR_UNKNOWN = 0, - /// VMware Hypervisor - HV_VENDOR_VMWARE, - /// Microsoft Hyper-V - HV_VENDOR_MICROSOFT, - /// Xen Hypervisor - HV_VENDOR_XENVMM, - /// KVM Hypervisor - HV_VENDOR_KVM -}; - -/// \union FamilyModelSteppingUnion A simple way to retrieve the encoded bits for cpuid /ref CPUID_FN_BASIC_FEATURES, EAX -union FamilyModelSteppingUnion -{ - struct _info - { - /// Bits[3:0] The Cpu stepping - gtUInt32 stepping: 4; - /// Bits[7:4] The Cpu base model (model bits [3:0]) - gtUInt32 model: 4; - /// Bits[11:8] The Cpu base family - gtUInt32 family: 4; - /// Bits[15:12] Reserved - gtUInt32 unknown1: 4; - /// Bits[19:16] The Cpu extended model (model bits[7:4]) - gtUInt32 extModel: 4; - /// Bits[27:20] The Cpu extended family (family = family + extFamily) - gtUInt32 extFamily: 8; - /// Bits[31:28] Reserved - gtUInt32 unknown2: 4; - } info; - /// The value of the EAX register - gtUInt32 eax; -}; - -// ---------------------------------------------------------------------------------- -// Class Name: OS_API osCpuid -// General Description: -// Represents a the Cpuid results of a core -// -// Author: AMD Developer Tools Team -// Creation Date: 4/23/2012 -// ---------------------------------------------------------------------------------- -/// Responsible for reporting cpuid features -class OS_API osCpuid -{ -public: - /// Constructor - osCpuid(); - /// Destructor - ~osCpuid(); - - /// Returns whether the Cpu is AMD brand - bool isCpuAmd(); - /// Returns whether the Cpu has a local APIC (all modern cpus do) - bool hasLocalApic(); - /// Returns whether Ibs is available - bool isIbsAvailable(); - /// Returns whether Ibs Ops dispatch counting is available - bool isIbsOpsDispatchAvailable(); - /// Returns whether Ibs branch target addresses are available - bool isIbsOpsBrTgtAddrAvailable(); - /// Returns whether the extended count is available - bool isIbsExtCountAvailable(); - /// Returns whether Ibs Fetch control extended available - bool isIbsFetchCtlExtdAvailable(); - /// Returns whether Ibs Op Data 4 available - bool isIbsOpData4Available(); - /// Returns whether a hypervisor is present - bool hasHypervisor(); - /// Returns whether current hypervisor is supported for CPU profiling - bool isSupportedHypervisor(); - /// Returns the hypervisor vendor id - gtUInt32 getHypervisorVendorId(); - /// Returns the family of the core that the instance was created on - gtUInt32 getFamily(); - /// Returns the model of the core that the instance was created on - gtUInt32 getModel(); - /// Returns the stepping of the core that the instance was created on - gtUInt32 getStepping(); - /// Returns the Apic Id of the core that the instance was created on - gtUInt32 getApicId(); - /// Returns the core of the core that the instance was created on - gtUInt32 getcore(); - /// Returns the node Id of the core that the instance was created on - gtUInt32 getNodeId(); - /// Returns the vendor Id string of current hypervisor detected - bool getHypervisorVendorString(wchar_t* str, gtUInt32 length); - /// Returns the OS partition type (parent or child) running on MS Hyper-V - bool isHypervisorRootPartition(); - -private: - /// Whether the Cpu is AMD brand - bool m_isCpuAmd; - /// Whether the Cpu has a local APIC (all modern cpus do) - bool m_hasLocalApic; - /// Whether Ibs is available - bool m_isIbsAvailable; - /// Whether Ibs Ops dispatch counting is available - bool m_isIbsDispatchAvailable; - /// Whether Ibs branch target addresses are available - bool m_isIbsBrTgtAddrAvailable; - /// Whether the extended count is available - bool m_isIbsExtCountAvailable; - /// Whether a hypervisor is present - bool m_hasHypervisor; - /// Whether Ibs Fetch control extended available - bool m_isIbsFetchCtlExtdAvailable; - /// Whether Ibs Op Data 4 available - bool m_isIbsOpData4Available; - /// The family of the core that the instance was created on - gtUInt32 m_family; - /// The model of the core that the instance was created on - gtUInt32 m_model; - /// The stepping of the core that the instance was created on - gtUInt32 m_stepping; - /// The Apic Id of the core that the instance was created on - gtUInt32 m_apicId; - /// The core that the instance was created on - gtUInt32 m_core; - /// The NUMA node of the core that the instance was created on - gtUInt32 m_node; - /// Hypervisor vendor id - gtUInt32 m_hypervisorVendorId; - /// In case of Microsoft Hv, if current virtual OS is root or child partition - bool m_isMshvRootPartition; -}; - -#endif //_OSCPUID_H diff --git a/external/amdt_os_wrappers/Include/osExceptionReason.h b/external/amdt_os_wrappers/Include/osExceptionReason.h deleted file mode 100644 index e3c5e91..0000000 --- a/external/amdt_os_wrappers/Include/osExceptionReason.h +++ /dev/null @@ -1,405 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osExceptionReason.h -/// -//===================================================================== - -//------------------------------ osExceptionReason.h ------------------------------ - -#ifndef __OSEXCEPTIONREASON_H -#define __OSEXCEPTIONREASON_H - -// Infra: -#include - -// Local: -#include -#include - - -// ---------------------------------------------------------------------------------- -// Class Name: osExceptionReason -// General Description: -// Represents an exception reason. -// -// Author: AMD Developer Tools Team -// Creation Date: 30/3/2004 -// ---------------------------------------------------------------------------------- -enum osExceptionReason -{ - OS_UNKNOWN_EXCEPTION_REASON, // An unknown exception was encountered. - - OS_STANDALONE_THREAD_STOPPED, // Exception on standalone thread was stopped - - OS_INSUFFICIENT_MEMORY, // Insufficient memroy (used in cases an exception like std::bad_alloc is being thrown). - - OS_ACCESS_VIOLATION, // The thread tried to read from or write to a virtual address - // to which it does not have access. - - OS_ARRAY_BOUNDS_EXCEEDED, // The thread tried to access an array element that is out of - // bounds and the underlying hardware supports bounds checking. - - OS_DATATYPE_MISALIGNMENT, // The thread tried to read or write data that is misaligned - // on hardware that does not provide alignment. - // For example, 16-bit values must be aligned on 2-byte boundaries; - // 32-bit values on 4-byte boundaries, and so on. - - OS_FLT_DENORMAL_OPERAND, // One of the operands in a floating-point operation is denormal. - // A denormal value is one that is too small to represent as a - // standard floating-point value. - - OS_FLT_DIVIDE_BY_ZERO, // The thread tried to divide a floating-point value by a - // floating-point divisor of zero. - - OS_FLT_INEXACT_RESULT, // The result of a floating-point operation cannot be represented - // exactly as a decimal fraction. - - OS_FLT_INVALID_OPERATION, // This exception represents any floating-point exception not - // included in this list. - - OS_FLT_OVERFLOW, // The exponent of a floating-point operation is greater than the magnitude allowed by the corresponding type. - - OS_FLT_STACK_CHECK, // The stack overflowed or underflowed as the result of a floating-point operation. - - OS_FLT_UNDERFLOW, // The exponent of a floating-point operation is less than the magnitude allowed by the corresponding type. - - OS_ILLEGAL_INSTRUCTION, // The thread tried to execute an invalid instruction. - - OS_IN_PAGE_ERROR, // The thread tried to access a page that was not present, and - // the system was unable to load the page. - // For example, this exception might occur if a network connection - // is lost while running a program over the network. - - OS_INT_DIVIDE_BY_ZERO, // The thread tried to divide an integer value by an integer - // divisor of zero. - - OS_INT_OVERFLOW, // The result of an integer operation caused a carry out of - // the most significant bit of the result. - - OS_INVALID_DISPOSITION, // An exception handler returned an invalid disposition to the - // exception dispatcher. Programmers using a high-level language - // such as C should never encounter this exception. - - OS_NONCONTINUABLE_EXCEPTION, // The thread tried to continue execution after a noncontinuable - // exception occurred. - - OS_PRIV_INSTRUCTION, // The thread tried to execute an instruction whose operation - // is not allowed in the current machine mode. - - OS_SINGLE_STEP, // A trace trap or other single-instruction mechanism signaled - // that one instruction has been executed. - - OS_STACK_OVERFLOW, // The thread used up its stack. - - OS_DLL_NOT_FOUND, // A required dll file was not found. - - // Linux signals: - - OS_SIGHUP_SIGNAL, // Hangup detected on controlling terminal. - - OS_SIGINT_SIGNAL, // Interrupt from keyboard - - OS_SIGQUIT_SIGNAL, // Quit from keyboard - - OS_SIGILL_SIGNAL, // Illegal Instruction - - OS_SIGTRAP_SIGNAL, // Trace/breakpoint trap - - OS_SIGABRT_SIGNAL, // Abort signal from abort(3) - - OS_SIGBUS_SIGNAL, // Bus error. - - OS_SIGFPE_SIGNAL, // Floating point exception. - - OS_SIGKILL_SIGNAL, // Kill signal. - - OS_SIGSEGV_SIGNAL, // Invalid memory reference. - - OS_SIGPIPE_SIGNAL, // Broken pipe: write to pipe with no readers. - - OS_SIGALRM_SIGNAL, // Timer signal from alarm(2). - - OS_SIGTERM_SIGNAL, // Termination signal. - - OS_SIGUSR1_SIGNAL, // User-defined signal 1. - - OS_SIGUSR2_SIGNAL, // User-defined signal 2. - - OS_SIGEMT_SIGNAL, // Emulation trap - - OS_SIGSYS_SIGNAL, // Bad system call - - OS_SIGURG_SIGNAL, // Urgent I/O condition - - OS_SIGSTOP_SIGNAL, // Stopped (signal) - - OS_SIGTSTP_SIGNAL, // Stopped (user) - - OS_SIGCONT_SIGNAL, // Continued - - OS_SIGCHLD_SIGNAL, // Child status changed - - OS_SIGTTIN_SIGNAL, // Stopped (tty input) - - OS_SIGTTOU_SIGNAL, // Stopped (tty output) - - OS_SIGIO_SIGNAL, // I/O possible - - OS_SIGXCPU_SIGNAL, // CPU time limit exceeded - - OS_SIGXFSZ_SIGNAL, // File size limit exceeded - - OS_SIGVTALRM_SIGNAL, // Virtual timer expired - - OS_SIGPROF_SIGNAL, // Profiling timer expired - - OS_SIGWINCH_SIGNAL, // Window size changed - - OS_SIGLOST_SIGNAL, // Resource lost - - OS_SIGPWR_SIGNAL, // Power fail/restart - - OS_SIGPOLL_SIGNAL, // Pollable event occurred - - OS_SIGWIND_SIGNAL, // SIGWIND - - OS_SIGPHONE_SIGNAL, // SIGPHONE - - OS_SIGWAITING_SIGNAL, // Process's LWPs are blocked - - OS_SIGLWP_SIGNAL, // Signal LWP - - OS_SIGDANGER_SIGNAL, // Swap space dangerously low - - OS_SIGGRANT_SIGNAL, // Monitor mode granted - - OS_SIGRETRACT_SIGNAL, // Need to relinquish monitor mode - - OS_SIGMSG_SIGNAL, // Monitor mode data available - - OS_SIGSOUND_SIGNAL, // Sound completed - - OS_SIGSAK_SIGNAL, // Secure attention - - OS_SIGPRIO_SIGNAL, // SIGPRIO - - OS_SIGCANCEL_SIGNAL, // LWP internal signal - - OS_EXC_BAD_ACCESS_SIGNAL, // Could not access memory - - OS_EXC_BAD_INSTRUCTION_SIGNAL, // Illegal instruction/operand - - OS_EXC_ARITHMETIC_SIGNAL, // Arithmetic exception - - OS_EXC_EMULATION_SIGNAL, // Emulation instruction - - OS_EXC_SOFTWARE_SIGNAL, // Software generated exception - - OS_EXC_BREAKPOINT_SIGNAL, // Breakpoint - - OS_SIG32_SIGNAL, // Real-time event 32 - - OS_SIG33_SIGNAL, // Real-time event 33 - - OS_SIG34_SIGNAL, // Real-time event 34 - - OS_SIG35_SIGNAL, // Real-time event 35 - - OS_SIG36_SIGNAL, // Real-time event 36 - - OS_SIG37_SIGNAL, // Real-time event 37 - - OS_SIG38_SIGNAL, // Real-time event 38 - - OS_SIG39_SIGNAL, // Real-time event 39 - - OS_SIG40_SIGNAL, // Real-time event 40 - - OS_SIG41_SIGNAL, // Real-time event 41 - - OS_SIG42_SIGNAL, // Real-time event 42 - - OS_SIG43_SIGNAL, // Real-time event 43 - - OS_SIG44_SIGNAL, // Real-time event 44 - - OS_SIG45_SIGNAL, // Real-time event 45 - - OS_SIG46_SIGNAL, // Real-time event 46 - - OS_SIG47_SIGNAL, // Real-time event 47 - - OS_SIG48_SIGNAL, // Real-time event 48 - - OS_SIG49_SIGNAL, // Real-time event 49 - - OS_SIG50_SIGNAL, // Real-time event 50 - - OS_SIG51_SIGNAL, // Real-time event 51 - - OS_SIG52_SIGNAL, // Real-time event 52 - - OS_SIG53_SIGNAL, // Real-time event 53 - - OS_SIG54_SIGNAL, // Real-time event 54 - - OS_SIG55_SIGNAL, // Real-time event 55 - - OS_SIG56_SIGNAL, // Real-time event 56 - - OS_SIG57_SIGNAL, // Real-time event 57 - - OS_SIG58_SIGNAL, // Real-time event 58 - - OS_SIG59_SIGNAL, // Real-time event 59 - - OS_SIG60_SIGNAL, // Real-time event 60 - - OS_SIG61_SIGNAL, // Real-time event 61 - - OS_SIG62_SIGNAL, // Real-time event 62 - - OS_SIG63_SIGNAL, // Real-time event 63 - - OS_SIG64_SIGNAL, // Real-time event 64 - - OS_SIG65_SIGNAL, // Real-time event 65 - - OS_SIG66_SIGNAL, // Real-time event 66 - - OS_SIG67_SIGNAL, // Real-time event 67 - - OS_SIG68_SIGNAL, // Real-time event 68 - - OS_SIG69_SIGNAL, // Real-time event 69 - - OS_SIG70_SIGNAL, // Real-time event 70 - - OS_SIG71_SIGNAL, // Real-time event 71 - - OS_SIG72_SIGNAL, // Real-time event 72 - - OS_SIG73_SIGNAL, // Real-time event 73 - - OS_SIG74_SIGNAL, // Real-time event 74 - - OS_SIG75_SIGNAL, // Real-time event 75 - - OS_SIG76_SIGNAL, // Real-time event 76 - - OS_SIG77_SIGNAL, // Real-time event 77 - - OS_SIG78_SIGNAL, // Real-time event 78 - - OS_SIG79_SIGNAL, // Real-time event 79 - - OS_SIG80_SIGNAL, // Real-time event 80 - - OS_SIG81_SIGNAL, // Real-time event 81 - - OS_SIG82_SIGNAL, // Real-time event 82 - - OS_SIG83_SIGNAL, // Real-time event 83 - - OS_SIG84_SIGNAL, // Real-time event 84 - - OS_SIG85_SIGNAL, // Real-time event 85 - - OS_SIG86_SIGNAL, // Real-time event 86 - - OS_SIG87_SIGNAL, // Real-time event 87 - - OS_SIG88_SIGNAL, // Real-time event 88 - - OS_SIG89_SIGNAL, // Real-time event 89 - - OS_SIG90_SIGNAL, // Real-time event 90 - - OS_SIG91_SIGNAL, // Real-time event 91 - - OS_SIG92_SIGNAL, // Real-time event 92 - - OS_SIG93_SIGNAL, // Real-time event 93 - - OS_SIG94_SIGNAL, // Real-time event 94 - - OS_SIG95_SIGNAL, // Real-time event 95 - - OS_SIG96_SIGNAL, // Real-time event 96 - - OS_SIG97_SIGNAL, // Real-time event 97 - - OS_SIG98_SIGNAL, // Real-time event 98 - - OS_SIG99_SIGNAL, // Real-time event 99 - - OS_SIG100_SIGNAL, // Real-time event 100 - - OS_SIG101_SIGNAL, // Real-time event 101 - - OS_SIG102_SIGNAL, // Real-time event 102 - - OS_SIG103_SIGNAL, // Real-time event 103 - - OS_SIG104_SIGNAL, // Real-time event 104 - - OS_SIG105_SIGNAL, // Real-time event 105 - - OS_SIG106_SIGNAL, // Real-time event 106 - - OS_SIG107_SIGNAL, // Real-time event 107 - - OS_SIG108_SIGNAL, // Real-time event 108 - - OS_SIG109_SIGNAL, // Real-time event 109 - - OS_SIG110_SIGNAL, // Real-time event 110 - - OS_SIG111_SIGNAL, // Real-time event 111 - - OS_SIG112_SIGNAL, // Real-time event 112 - - OS_SIG113_SIGNAL, // Real-time event 113 - - OS_SIG114_SIGNAL, // Real-time event 114 - - OS_SIG115_SIGNAL, // Real-time event 115 - - OS_SIG116_SIGNAL, // Real-time event 116 - - OS_SIG117_SIGNAL, // Real-time event 117 - - OS_SIG118_SIGNAL, // Real-time event 118 - - OS_SIG119_SIGNAL, // Real-time event 119 - - OS_SIG120_SIGNAL, // Real-time event 120 - - OS_SIG121_SIGNAL, // Real-time event 121 - - OS_SIG122_SIGNAL, // Real-time event 122 - - OS_SIG123_SIGNAL, // Real-time event 123 - - OS_SIG124_SIGNAL, // Real-time event 124 - - OS_SIG125_SIGNAL, // Real-time event 125 - - OS_SIG126_SIGNAL, // Real-time event 126 - - OS_SIG127_SIGNAL, // Real-time event 127 - - OS_SIGINFO_SIGNAL, // Information request - - OS_AMOUNT_OF_EXCEPTION_REASONS -}; - -OS_API osExceptionReason osExceptionCodeToExceptionReason(osExceptionCode exceptionCode); -OS_API osExceptionCode osExceptionReasonToExceptionCode(osExceptionReason exceptionReason); -OS_API void osExceptionReasonToString(osExceptionReason exceptionReason, gtString& reasonAsString); -OS_API void osExceptionReasonToExplanationString(osExceptionReason exceptionReason, gtString& reasonAsExplanationString); - -#endif //__OSEXCEPTIONREASON_H - diff --git a/external/amdt_os_wrappers/Include/osHTTPClient.h b/external/amdt_os_wrappers/Include/osHTTPClient.h deleted file mode 100644 index 998674e..0000000 --- a/external/amdt_os_wrappers/Include/osHTTPClient.h +++ /dev/null @@ -1,84 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osHTTPClient.h -/// -//===================================================================== - -//------------------------------ osHTTPClient.h ------------------------------ - -#ifndef __OSHTTPCLIENT_H -#define __OSHTTPCLIENT_H - -#include -#include -#include -#include - -// ---------------------------------------------------------------------------------- -// Class Name: OS_API osHTTPClient -// General Description: Provides connection by HTTP -// Author: AMD Developer Tools Team -// Creation Date: 14/4/2008 -// ---------------------------------------------------------------------------------- -class OS_API osHTTPClient -{ -public: - osHTTPClient(); - osHTTPClient(const osPortAddress& portAddress); - ~osHTTPClient(); - - void setServerAndPort(const osPortAddress& portAddress) {_httpServerAddress = portAddress;}; - const osPortAddress& getServerAndPort() {return _httpServerAddress;}; - bool connect(); - bool disconnect(); - void clearGETRequestArguments(); - void addGETRequestArgument(const gtASCIIString& argumentName, const gtASCIIString& argumentValue); - bool requestPage(const gtASCIIString& pageRelativeURL, gtASCIIString& outputPage, bool isUsingProxy, const gtASCIIString& serverAddress = "", bool isGraphicsServer = false); - gtASCIIString getLastErrorCode() { return _errorCode; }; - - // Handling POST requests: - void setPostBuffer(const gtASCIIString& postBuffer) {_postBuffer = postBuffer;}; - const gtASCIIString& getPostBuffer() {return _postBuffer;}; - bool RequestPagePost(const gtASCIIString& pageRelativeURL, gtASCIIString& outputPage, bool isUsingProxy, const gtASCIIString& serverAddress = ""); - bool ReadTCPSocketIntoPage(gtASCIIString& outputPage, unsigned int uBufferSize = _READ_BUFFER_SIZE); - - bool ReadTCPSocketIntoBuffer(unsigned char*& pReturnData, unsigned long& dataBufferSize, unsigned int uBufferSize = _READ_BUFFER_SIZE); - - bool TrimHTTPResult(unsigned char*& pBuffer, unsigned long& dataBufferSize, bool packetLoss); - - /// Request for a page post with binary data - bool RequestPageWithBinaryData(const gtASCIIString& pageRelativeURL, unsigned char*& pReturnData, unsigned long& dataBufferSize, bool isUsingProxy, const gtASCIIString& serverAddress = "", bool isGraphicsServer = false); - - osTCPSocketClient& GetTCPSocket() { return _tcpClient; } - -private: - void encodeGETRequestString(const gtASCIIString& requestURLString, gtASCIIString& encodedString); - -private: - // A TCP IP client, used to perform the HTTP request: - osTCPSocketClient _tcpClient; - - // Contains the HTTP server address: - osPortAddress _httpServerAddress; - - // POST request data buffer: - gtASCIIString _postBuffer; - - // GET request arguments and a URL encoded string: - gtASCIIString _GETRequestArgumentsString; - - // Contains the HTTP request result buffer: - gtASCIIString _httpResultBuffer; - - // Contains the error code, returned from the HTTP server: - gtASCIIString _errorCode; - - // default read buffer size for TCP read - static const unsigned int _READ_BUFFER_SIZE = 1024; - static const unsigned int _READ_BUFFER_SIZE_GRAPHICS_SERVER = 131072; -}; - -#endif //__OSHTTPCLIENT_H - diff --git a/external/amdt_os_wrappers/Include/osIOKitForiPhoneDevice.h b/external/amdt_os_wrappers/Include/osIOKitForiPhoneDevice.h deleted file mode 100644 index 13b8a84..0000000 --- a/external/amdt_os_wrappers/Include/osIOKitForiPhoneDevice.h +++ /dev/null @@ -1,47 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file -/// -//===================================================================== - -//------------------------------ osIOKitForiPhoneDevice.h ------------------------------ - -#ifndef __OSIOKITFORIPHONEDEVICE_H -#define __OSIOKITFORIPHONEDEVICE_H - -// ----------------------------------------------------------------------------------------- -// Yaki 12/1/2009 -// IOKit header files are not available in the public iPhone OS SDK. -// Apple people told us that the IOKit header files should be identical to the desktop ones. -// Therefore, we copied the used IOKit and dependent types and functions definitions from the -// desktop header files and placed them here. -// ----------------------------------------------------------------------------------------- - -#define MACH_PORT_NULL 0 -#define kIOReturnSuccess KERN_SUCCESS - -typedef int kern_return_t; -typedef mach_port_t io_object_t; -typedef io_object_t io_iterator_t; -typedef io_object_t io_registry_entry_t; -typedef UInt32 IOOptionBits; - -class IOService; -class IONotifier; - -extern "C" -{ - typedef bool (*IOServiceMatchingNotificationHandler)(void* target, void* refCon, IOService* newService, IONotifier* notifier); - kern_return_t IOMasterPort(mach_port_t bootstrapPort, mach_port_t* masterPort); - CFMutableDictionaryRef IOServiceMatching(const char* name); - kern_return_t IOServiceGetMatchingServices(mach_port_t masterPort, CFDictionaryRef matching, io_iterator_t* existing); - io_object_t IOIteratorNext(io_iterator_t iterator); - kern_return_t IOObjectRelease(io_object_t object); - CFTypeRef IORegistryEntryCreateCFProperty(io_registry_entry_t entry, CFStringRef key, CFAllocatorRef allocator, IOOptionBits options); -}; - - -#endif //__OSIOKITFORIPHONEDEVICE_H - diff --git a/external/amdt_os_wrappers/Include/osKeyboardListener.h b/external/amdt_os_wrappers/Include/osKeyboardListener.h deleted file mode 100644 index c54e4b2..0000000 --- a/external/amdt_os_wrappers/Include/osKeyboardListener.h +++ /dev/null @@ -1,87 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osKeyboardListener.h -/// -//===================================================================== - -//------------------------------ osKeyboardListener.h ------------------------------ - -#ifndef __OSKEYBOARDLISTENER -#define __OSKEYBOARDLISTENER - -#include -#include -#include -#include - -#define OS_KEYBOARD_LISTENER osKeyboardListener::Instance() - -#if AMDT_BUILD_TARGET == AMDT_WINDOWS_OS -#include - -//singleton class that intercepts keyboard events from current(main) thread main window -class OS_API osKeyboardListener -{ -public: - //receives keyboard virtual code https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx - //Other parameters , read : https://msdn.microsoft.com/en-us/library/windows/desktop/ms644984(v=vs.85).aspx - //function must be executed immediately, preferably in separate thread - typedef class OS_API std::function OnKeyboardPressed; - - virtual ~osKeyboardListener(); - - static osKeyboardListener& Instance(); - - //Set callback function,which is to be called from keyboard pressed Hook - void SetOnKbPressedCallback(OnKeyboardPressed callback); - //Getter for callback function - OnKeyboardPressed GetOnKbPressedCallback() {return m_callback;} - //Getter for hook pointer - HHOOK GetKbHook(); - -private: - osKeyboardListener(); - - //Members -private: - //hook pointer, to be used when calling original function - HHOOK m_KeyboardProcHook; - //call back to be used on keyboard event - OnKeyboardPressed m_callback; - - -}; -//Li -#elif AMDT_BUILD_TARGET == AMDT_LINUX_OS -#include - -class OS_API osKeyboardListener -{ -public: - //read for possible input values for the callback: - //https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/input-event-codes.h - typedef class OS_API std::function OnKeyboardPressed; -public: - virtual ~osKeyboardListener(); - - static osKeyboardListener& Instance(); - //Set callback function,which is to be called from keyboard pressed Hook - void SetOnKbPressedCallback(OnKeyboardPressed callback); - //Getter for callback function - OnKeyboardPressed GetOnKbPressedCallback() {return m_callback;} -private: - osKeyboardListener(); - void Listen(int fd); - int GetKeyboardDescriptor(); -private: - bool m_Stop = false; - //call back to be used on keyboard event - OnKeyboardPressed m_callback = nullptr; - std::unique_ptr m_pListener = nullptr; -}; - -#endif -#endif - diff --git a/external/amdt_os_wrappers/Include/osMacSystemResourcesSampler.h b/external/amdt_os_wrappers/Include/osMacSystemResourcesSampler.h deleted file mode 100644 index ceff493..0000000 --- a/external/amdt_os_wrappers/Include/osMacSystemResourcesSampler.h +++ /dev/null @@ -1,55 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osMacSystemResourcesSampler.h -/// -//===================================================================== - -//------------------------------ osMacSystemResourcesSampler.h ------------------------------ - -#ifndef __OSMACSYSTEMRESOURCESSAMPLER_H -#define __OSMACSYSTEMRESOURCESSAMPLER_H - -// Infra: -#include - -// Local: -#include -#include -#include - - -// ---------------------------------------------------------------------------------- -// Class Name: OS_API osMacSystemResourcesSampler : public osSystemResourcesDataSampler -// General Description: A class used to sample CPU and memory data on the Mac -// Author: AMD Developer Tools Team -// Creation Date: 22/11/2009 -// ---------------------------------------------------------------------------------- -class OS_API osMacSystemResourcesSampler : public osSystemResourcesDataSampler -{ -public: - osMacSystemResourcesSampler(); - virtual ~osMacSystemResourcesSampler(); - - // CPUs - virtual bool updateCPUsData(); - virtual int cpusAmount() const; - virtual bool getGlobalCPUData(osCPUSampledData& cpuStatistics) const; - virtual bool getCPUData(int cpuIndex, osCPUSampledData& cpuStatistics) const; - - // Memory - virtual bool updatePhysicalMemoryData(); - virtual bool getPhysicalMemoryData(osPhysicalMemorySampledData& memoryStatistics) const; - -private: - // Number of CPUs this class samples: - int _amountOfCPUs; - - // The last sampled CPU data: - gtVector _cpusSampledData; - -}; - -#endif //__OSMACSYSTEMRESOURCESSAMPLER_H - diff --git a/external/amdt_os_wrappers/Include/osMessageBox.h b/external/amdt_os_wrappers/Include/osMessageBox.h deleted file mode 100644 index bdc3cdf..0000000 --- a/external/amdt_os_wrappers/Include/osMessageBox.h +++ /dev/null @@ -1,70 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osMessageBox.h -/// -//===================================================================== - -//------------------------------ osMessageBox.h ------------------------------ - -#ifndef __OSMESSAGEBOX -#define __OSMESSAGEBOX - -// Infra: -#include - -// Local: -#include -#include - - -// ---------------------------------------------------------------------------------- -// Class Name: OS_API osMessageBox -// General Description: Implement a simple message box. -// Author: AMD Developer Tools Team -// Creation Date: 6/10/2004 -// ---------------------------------------------------------------------------------- -class OS_API osMessageBox -{ -public: - - // Describes default OS Message box icons: - enum osMessageBoxIcon - { - OS_EXCLAMATION_POINT_ICON, // Exclamation point icon (!) - OS_DISPLAYED_INFO_ICON, // Information icon (i) - OS_QUESTION_MARK_ICON , // Question mark icon (?) - OS_STOP_SIGN_ICON // Stop sign icon (usually displayed on errors). - }; - - osMessageBox(const gtString& title, const gtString& message, osMessageBoxIcon icon = OS_DISPLAYED_INFO_ICON, /*oaWindowHandle*/ void* hParentWindow = 0); - void display(); - - typedef void(*osMessageBoxCB)(const gtString& title, const gtString& message, osMessageBoxIcon icon, /*oaWindowHandle*/ void* hParentWindow); - static void defaultMessageBoxDisplayCB(const gtString& title, const gtString& message, osMessageBoxIcon icon, /*oaWindowHandle*/ void* hParentWindow); - static void setMessageBoxDisplayCB(osMessageBoxCB pCB); - -private: - // Do not allow the use of my default constructor: - osMessageBox(); - -private: - // The message box title: - gtString _title; - - // The message that will be displayed in the message box: - gtString _message; - - // The icon that will be displayed in the message box: - osMessageBoxIcon _icon; - - // The message box parent window: - void* _hParentWindow; - - // The message box display callback: - static osMessageBoxCB ms_cb; -}; - - -#endif // __OSMESSAGEBOX diff --git a/external/amdt_os_wrappers/Include/osMutex.h b/external/amdt_os_wrappers/Include/osMutex.h deleted file mode 100644 index 4b5e4e9..0000000 --- a/external/amdt_os_wrappers/Include/osMutex.h +++ /dev/null @@ -1,55 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osMutex.h -/// -//===================================================================== - -//------------------------------ osMutex.h ------------------------------ - -#ifndef __OSMUTEX -#define __OSMUTEX - -// Pre-declarations: -class osMutexImpl; - -// Local: -#include - - -// ---------------------------------------------------------------------------------- -// Class Name: osMutex -// -// General Description: -// A "mutex" object. Mutex objects enables coordinated access to a resource that -// is shared by few threads. -// "Mutex" comes from "Mutually-exclusive access" to a shared resource. -// Only one thread at a time can "lock" the mutex. Other threads that will try to -// "lock" the mutex will halt until the mutex is "unlocked" by the locking thread. -// -// Notice: -// a. Prefer using osMutexLocker on using osMutex directly (see osMutexLocker for more details). -// b. On Windows, critical sections are only visible inside one process and a bit more -// efficient than mutexes. -// I.E: On Windows: -// - If you need to synchronize threads within one process - use critical section objects. -// - If you need to synchronize threads within few process - use mutex objects. -// -// Author: AMD Developer Tools Team -// Creation Date: 29/3/2004 -// ---------------------------------------------------------------------------------- -class OS_API osMutex -{ -public: - osMutex(); - virtual ~osMutex(); - bool lock(); - bool unlock(); - -private: - // This class OS specific implementation: - osMutexImpl* _pImplementation; -}; - -#endif // __OSMUTEX diff --git a/external/amdt_os_wrappers/Include/osMutexLocker.h b/external/amdt_os_wrappers/Include/osMutexLocker.h deleted file mode 100644 index 563c3dc..0000000 --- a/external/amdt_os_wrappers/Include/osMutexLocker.h +++ /dev/null @@ -1,67 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osMutexLocker.h -/// -//===================================================================== - -//------------------------------ osMutexLocker.h ------------------------------ - -#ifndef __OSMUTEXLOCKER -#define __OSMUTEXLOCKER - -// Local: -#include - -// ---------------------------------------------------------------------------------- -// Class Name: OS_API osMutexLocker -// General Description: -// Aid class that enables "exception safe" locking of a mutex. -// Its constructor locks the mutex and destructor unlocks the mutex. -// This causes mutex unlocking in case of an exception. -// Example: -// void foo(osMutex& myMutex) -// { -// osMutexLocker mutexLucker(myMutex); -// -// < doing something > -// -// } -// -// In the above example, the mutex will be unlocked in the following scenarios: -// a. The thread exits the function: Exiting the function executes the mutexLucker -// destructor, which unlocks the mutex. -// b. An exception is thrown while < doing something > is executed. -// If there is no exception handler in the function, the exception will be "thrown out" -// of the function, calling all the destructors of the function stack variables. -// Among these destructors is the mutexLucker destructor, which will unlocks the mutex. -// -// The user can also call unlockMutex() manually to unlock the mutex before the -// osMutexLocker destructor is called. -// -// Author: AMD Developer Tools Team -// Creation Date: 29/3/2004 -// ---------------------------------------------------------------------------------- -class OS_API osMutexLocker -{ -public: - osMutexLocker(osMutex& mutexObj); - ~osMutexLocker(); - - bool unlockMutex(); - -private: - // Disallow use of default constructor, copy constructor and assignment operator: - osMutexLocker() = delete; - osMutexLocker(const osMutexLocker&) = delete; - osMutexLocker& operator=(const osMutexLocker&) = delete; - - // The mutex on which this class operates: - osMutex& _mutex; - - // Contains true iff the mutex was already unlocked by this class: - bool _wasMutexUnlocked; -}; - -#endif // __OSMUTEXLOCKER diff --git a/external/amdt_os_wrappers/Include/osNULLSocket.h b/external/amdt_os_wrappers/Include/osNULLSocket.h deleted file mode 100644 index 4223bc0..0000000 --- a/external/amdt_os_wrappers/Include/osNULLSocket.h +++ /dev/null @@ -1,48 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osNULLSocket.h -/// -//===================================================================== - -//------------------------------ osNULLSocket.h ------------------------------ - -#ifndef __OSNULLSOCKET -#define __OSNULLSOCKET - -// Local: -#include - - -// ---------------------------------------------------------------------------------- -// Class Name: osNULLSocket : public osSocket -// General Description: -// A NULL socket - a socket that does nothing and triggers an assertion when -// reading or writing to it. -// -// Author: AMD Developer Tools Team -// Creation Date: 25/8/2005 -// ---------------------------------------------------------------------------------- -class OS_API osNULLSocket : public osSocket -{ -public: - osNULLSocket(const gtString& socketName): osSocket(socketName) {}; - - // Overrides osChannel: - virtual osChannelType channelType() const; - - // Overrides osSocket: - virtual bool open(); - virtual bool close(); - virtual bool isOpen() const; - -protected: - // Overrides osChannel: - virtual bool writeImpl(const gtByte*, gtSize_t); - virtual bool readImpl(gtByte*, gtSize_t); - virtual bool readAvailableDataImpl(gtByte*, gtSize_t, gtSize_t&); - -}; - -#endif // __OSNULLSOCKET diff --git a/external/amdt_os_wrappers/Include/osNetworkAdapter.h b/external/amdt_os_wrappers/Include/osNetworkAdapter.h deleted file mode 100644 index 7348edd..0000000 --- a/external/amdt_os_wrappers/Include/osNetworkAdapter.h +++ /dev/null @@ -1,50 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osNetworkAdapter.h -/// -//===================================================================== - -//------------------------------ osNetworkAdapter.h ------------------------------ - -#ifndef __OSNETWORKADAPTER_H -#define __OSNETWORKADAPTER_H - -// Infra: -#include -#include -#include - -// Local: -#include - - -// ---------------------------------------------------------------------------------- -// Class Name: osNetworkAdapter -// General Description: -// Represents a single network adapter. -// -// Author: AMD Developer Tools Team -// Creation Date: 12/4/2005 -// ---------------------------------------------------------------------------------- -struct osNetworkAdapter -{ - // The adapter name: - gtString _name; - - // The adapter MAC address = network hardware ID: - // (Empty if not valid) - gtString _MACAddress; - - // The adapter TCP / IP address - gtString _TCPIPAddress; -}; - - -OS_API bool osGetCurrentMachineNetworkAdapters(gtPtrVector& networkAdapters); -OS_API bool osGetCurrentMachineIPAddresses(gtVector& ipAddresses, bool includeLocalLoopback); - - -#endif //__OSNETWORKADAPTER_H - diff --git a/external/amdt_os_wrappers/Include/osOutOfMemoryHandling.h b/external/amdt_os_wrappers/Include/osOutOfMemoryHandling.h deleted file mode 100644 index d065f79..0000000 --- a/external/amdt_os_wrappers/Include/osOutOfMemoryHandling.h +++ /dev/null @@ -1,17 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osOutOfMemoryHandling.h -/// -//===================================================================== -#ifndef __osOutOfMemoryHandling_h -#define __osOutOfMemoryHandling_h -#include -#include - -// This function extracts the current thread's call stack, writes it down to the log -// (using AMDTOSWrappers log facilities), and terminates the current process. -OS_API void osDumpCallStackAndExit(); - -#endif // osOutOfMemoryHandling_h__ diff --git a/external/amdt_os_wrappers/Include/osPipeExecutor.h b/external/amdt_os_wrappers/Include/osPipeExecutor.h deleted file mode 100644 index 5ffd935..0000000 --- a/external/amdt_os_wrappers/Include/osPipeExecutor.h +++ /dev/null @@ -1,37 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osPipeExecutor.h -/// -//===================================================================== - -//------------------------------ osPipeExecutor.h ------------------------------ - -#ifndef __OSPIPEEXECUTOR_H -#define __OSPIPEEXECUTOR_H - -// Local: -#include - -// Foreward declarations: -class gtString; - -// ---------------------------------------------------------------------------------- -// Class Name: osPipeExecutor -// General Description: A class that runs string commands as if inputted in a terminal -// / command prompt window and returns their output -// Author: AMD Developer Tools Team -// Creation Date: 29/10/2008 -// ---------------------------------------------------------------------------------- -class OS_API osPipeExecutor -{ -public: - osPipeExecutor(); - ~osPipeExecutor(); - - bool executeCommand(const gtString& command, gtString& output); -}; - -#endif //__OSPIPEEXECUTOR_H - diff --git a/external/amdt_os_wrappers/Include/osPipeSocket.h b/external/amdt_os_wrappers/Include/osPipeSocket.h deleted file mode 100644 index 95b24f7..0000000 --- a/external/amdt_os_wrappers/Include/osPipeSocket.h +++ /dev/null @@ -1,83 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osPipeSocket.h -/// -//===================================================================== - -//------------------------------ osPipeSocket.h ------------------------------ - -#ifndef __OSPIPESOCKET_H -#define __OSPIPESOCKET_H - -// Forward decelerations: -class osFilePath; - -// Infra: -#include -#include - -// Local: -#include -#include - - -// ---------------------------------------------------------------------------------- -// Class Name: osPipeSocket : public osSocket -// General Description: -// A socket that is implemented by the use of the native OS pipes. -// This enables efficient communication between two processes running on the same -// machine. -// -// Author: AMD Developer Tools Team -// Creation Date: 21/12/2006 -// ---------------------------------------------------------------------------------- -class OS_API osPipeSocket : public osSocket -{ -public: - osPipeSocket(const gtString& pipeName, const gtString& socketName); - virtual ~osPipeSocket(); - - // Overrides osChannel: - virtual osChannelType channelType() const; - virtual long defaultReadOperationTimeOut() const; - virtual long defaultWriteOperationTimeOut() const; - - // Overrides osSocket: - virtual bool isOpen() const; - virtual bool close(); - - void getServerFilePath(gtString& filePath); - void getClientFilePath(gtString& filePath); - -protected: - void getPipeFIFOFilesPaths(gtString& clientToServer, gtString& serverToClient); - bool readDataFromPipe(gtByte* pDataBuffer, gtSize_t bufferSize, bool readOnlyAvailableData, gtSize_t& readDataSize); - - // Overrides osSocket: - virtual bool writeImpl(const gtByte* pDataBuffer, gtSize_t dataSize); - virtual bool readImpl(gtByte* pDataBuffer, gtSize_t dataSize); - virtual bool readAvailableDataImpl(gtByte* pDataBuffer, gtSize_t bufferSize, gtSize_t& amountOfDataRead); - -protected: - // The pipe name: - gtString _pipeName; - - // Contains true iff this pipe is open: - bool _isOpen; - - // Contains true iff this pipe is currently waiting for a connection: - bool _isDuringPipeConnectionWait; - - // We use 2 half duplex pipes to implement a full duplex pipe: - osPipeHandle _incomingPipe; - osPipeHandle _outgoingPipe; - - // Contains 0 iff the pipe didn't encountered an error condition: - int _errorsCount; -}; - - -#endif //__OSPIPESOCKET_H - diff --git a/external/amdt_os_wrappers/Include/osPipeSocketClient.h b/external/amdt_os_wrappers/Include/osPipeSocketClient.h deleted file mode 100644 index d07c7a3..0000000 --- a/external/amdt_os_wrappers/Include/osPipeSocketClient.h +++ /dev/null @@ -1,43 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osPipeSocketClient.h -/// -//===================================================================== - -//------------------------------ osPipeSocketClient.h ------------------------------ - -#ifndef __OSPIPESOCKETCLIENT_H -#define __OSPIPESOCKETCLIENT_H - -// Local: -#include - - -// ---------------------------------------------------------------------------------- -// Class Name: OS_API osPipeSocketClient : public osPipeSocket -// General Description: -// The client side of a pipe based socket. -// Connects itself to a waiting pipe socket server. -// Author: AMD Developer Tools Team -// Creation Date: 31/12/2006 -// ---------------------------------------------------------------------------------- -class OS_API osPipeSocketClient : public osPipeSocket -{ -public: - osPipeSocketClient(const gtString& pipeName, const gtString& socketName); - osPipeSocketClient(osPipeHandle incomingPipe, osPipeHandle outgoingPipe, const gtString& socketName); - virtual ~osPipeSocketClient(); - - // Overrides osSocket: - virtual bool open(); - -private: - // Do not allow the use of my default constructor: - osPipeSocketClient(); -}; - - -#endif //__OSPIPESOCKETCLIENT_H - diff --git a/external/amdt_os_wrappers/Include/osPipeSocketServer.h b/external/amdt_os_wrappers/Include/osPipeSocketServer.h deleted file mode 100644 index 636c9a3..0000000 --- a/external/amdt_os_wrappers/Include/osPipeSocketServer.h +++ /dev/null @@ -1,47 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osPipeSocketServer.h -/// -//===================================================================== - -//------------------------------ osPipeSocketServer.h ------------------------------ - -#ifndef __OSPIPESOCKETSERVER_H -#define __OSPIPESOCKETSERVER_H - -// Local: -#include - - -// ---------------------------------------------------------------------------------- -// Class Name: osPipeSocketServer : public osPipeSocket -// General Description: -// The server side of a pipe based socket. -// Is responsible for creating the pipe and waiting for a client connection. -// -// Author: AMD Developer Tools Team -// Creation Date: 21/12/2006 -// ---------------------------------------------------------------------------------- -class OS_API osPipeSocketServer : public osPipeSocket -{ -public: - osPipeSocketServer(const gtString& pipeName); - virtual ~osPipeSocketServer(); - - // Overrides osSocket: - virtual bool open(); - virtual bool close(); - - // Self functions: - bool waitForClientConnection(); - -private: - // Contains true iff the FIFO files were created successfully: - bool _fifoFilesExists; -}; - - -#endif //__OSPIPESOCKETSERVER_H - diff --git a/external/amdt_os_wrappers/Include/osRawMemoryBuffer.h b/external/amdt_os_wrappers/Include/osRawMemoryBuffer.h deleted file mode 100644 index 30223b1..0000000 --- a/external/amdt_os_wrappers/Include/osRawMemoryBuffer.h +++ /dev/null @@ -1,60 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file -/// -//===================================================================== - -//------------------------------ osRawMemoryBuffer.h ------------------------------ - -#ifndef __OSRAWMEMORYBUFFER_H -#define __OSRAWMEMORYBUFFER_H - -// Forward declarations: -class osFilePath; - -// Local: -#include -#include - - -// ---------------------------------------------------------------------------------- -// Class Name: OS_API osRawMemoryBuffer : public osTransferableObject -// General Description: An opaque class holding an arbitrary amount of data, making -// it readable and writable from / to osChannels and files. -// Author: AMD Developer Tools Team -// Creation Date: 5/11/2009 -// ---------------------------------------------------------------------------------- -class OS_API osRawMemoryBuffer : public osTransferableObject -{ -public: - osRawMemoryBuffer(); - osRawMemoryBuffer(const osRawMemoryBuffer& other); - ~osRawMemoryBuffer(); - osRawMemoryBuffer& operator=(const osRawMemoryBuffer& other); - - // Overrides osTransferableObject: - virtual osTransferableObjectType type() const; - virtual bool writeSelfIntoChannel(osChannel& ipcChannel) const; - virtual bool readSelfFromChannel(osChannel& ipcChannel); - osTransferableObject* clone() const; - - // Read to / from file: - bool fromFile(const osFilePath& filePath); - bool toFile(const osFilePath& filePath, bool createIfNeeded = true) const; - bool appendToFile(const osFilePath& filePath, bool createIfNeeded = true) const; - -private: - void clearBuffer(); - -private: - // The data in the buffer: - gtByte* _pData; - - // The data size: - gtSize_t _dataSize; -}; - -#endif //__OSRAWMEMORYBUFFER_H - diff --git a/external/amdt_os_wrappers/Include/osSharedMemorySocket.h b/external/amdt_os_wrappers/Include/osSharedMemorySocket.h deleted file mode 100644 index 5c558f7..0000000 --- a/external/amdt_os_wrappers/Include/osSharedMemorySocket.h +++ /dev/null @@ -1,145 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file -/// -//===================================================================== - -//------------------------------ osSharedMemorySocket.h ------------------------------ - - -//osSharedMemorySocket performance seems to be poor on dual core machines. Therefore, it was -//replaced by osPipeSocket. - -/* - -#ifndef __OSSHAREDMEMORYSOCKET -#define __OSSHAREDMEMORYSOCKET - -// Infra: -#include - -// Local: -#include -#include - - -// ---------------------------------------------------------------------------------- -// Class Name: osSharedMemorySocket : public osSocket -// General Description: -// A socket that is implemented by the use of shared memory. -// A shared memory socket enables effecient communication between two processes -// that reside on the same machine. -// -// Author: AMD Developer Tools Team -// Creation Date: 17/8/2005 -// ---------------------------------------------------------------------------------- -class OS_API osSharedMemorySocket : public osSocket -{ -public: - osSharedMemorySocket(const gtString& sharedMemoryObjectName); - virtual ~osSharedMemorySocket(); - - // Overrides osChannel: - virtual osChannelType channelType() const; - - // Overrides osSocket: - virtual bool isOpen() const; - virtual bool write(const gtByte* pDataBuffer, unsigned long dataSize); - virtual bool read(gtByte* pDataBuffer, unsigned long dataSize); - -protected: - // Enumerates the fields that reside within the shared memory header: - // (All fields are of type int) - enum osSharedMemoryHeaderFields - { - OS_SM_IS_COMMUNICATION_OPEN, // Contains 1 iff the socket communication is open. - - OS_SM_COMMUNICATION_BUFFER_SIZE, // A single communication buffer size (we hold two - // communication buffers: client to server and server to client), - - OS_SM_SERVER_TO_CLIENT_FREE_SPACE, // Available space in the server to client buffer. - OS_SM_CLIENT_TO_SERVER_FREE_SPACE, // Available space in the client to server buffer. - - OS_SM_SERVER_WRITE_POS, // The server current write location within the server to client buffer. - OS_SM_CLIENT_READ_POS, // The client current read location within the server to client buffer. - - OS_SM_CLIENT_WRITE_POS, // The client current write location within the client to server buffer. - OS_SM_SERVER_READ_POS, // The client current read location within the client to server buffer. - - OS_SM_SERVER_TO_CLIENT_BUFF_LOCKED, // Contains 1 iff the server to client buffer is currently locked - // by a working thread (for synchronization reasons). - OS_SM_CLIENT_TO_SERVER_BUFF_LOCKED, // Contains 1 iff the client to server buffer is currently locked. - // by a working thread (for synchronization reasons). - - OS_SM_HEADER_FIELDS_AMOUNT // The amount of header fields. - }; - -protected: - void clearSharedMemoryRelatedMembers(); - bool mapFileMappingObjectIntoVirtualMemory(); - int sharedMemHeaderSize() const; - - void lockBufferResources(int* pBufferLocker); - void unlockBufferResources(int* pBufferLocker); - - bool waitForAvailableReadingData(int dataSize, long timeout); - bool waitForAvailableSpaceToWriteData(int dataSize, long timeout); - void waitForAnotherThread(int& waitedIntervalsCount); - - // Must be implemented by sub-classes: - virtual void updateSharedMemoryReleatedMembers() = 0; - -protected: - // The shared memory object name: - // (File mapping object in Win32 terminology): - gtString _sharedMemoryObjectName; - - // A handle to the shared memory object: - osFileHandle _sharedMemoryObjectHandle; - - // The outgoing data free space: - int* _pIsCommunicationOpen; - - // A pointer to the shared memory block in this process address space: - gtByte* _pSharedMemory; - - // The size of a single communication buffer: - int _communicationBufferSize; - - // A pointer to my outgoing data buffer: - gtByte* _pMyOutgoingDataBuff; - - // A pointer to my incoming data buffer: - gtByte* _pMyIncomingDataBuff; - - // The outgoing data free space: - int* _pMyOutgoingDataBuffFreeSpace; - - // The incoming data free space: - int* _pMyIncomingDataBuffFreeSpace; - - // Contains true iff my outgoing buffer is currently locked - // by a working thread (for synchronization reasons): - int* _pMyOutgoingBuffLocked; - - // Contains true iff my incoming buffer is currently locked - // by a working thread (for synchronization reasons): - int* _pMyIncomingBuffLocked; - - // My current write location: - int* _pMyWritePos; - - // My current read location: - int* _pMyReadPos; - - // The other socket side current write location: - int* _pOtherWritePos; - - // The other socket side current read location: - int* _pOtherReadPos; -}; -*/ - -#endif // __OSSHAREDMEMORYSOCKET diff --git a/external/amdt_os_wrappers/Include/osSharedMemorySocketClient.h b/external/amdt_os_wrappers/Include/osSharedMemorySocketClient.h deleted file mode 100644 index c9b9629..0000000 --- a/external/amdt_os_wrappers/Include/osSharedMemorySocketClient.h +++ /dev/null @@ -1,50 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file -/// -//===================================================================== - -//------------------------------ osSharedMemorySocketClient.h ------------------------------ - -//Yaki 6 / 5 / 2005: -//osSharedMemorySocket performance seems to be poor on dual core machines. Therefore, it was -//replaced by osPipeSocket. - -/* -#ifndef __OSSHAREDMEMORYSOCKETCLIENT -#define __OSSHAREDMEMORYSOCKETCLIENT - -// Local: -#include - - -// ---------------------------------------------------------------------------------- -// Class Name: OS_API osSharedMemorySocketClient : public osSharedMemorySocket -// General Description: -// The client side of a shared memory socket. -// Connects itself to a waiting shared memory socket server. -// Author: AMD Developer Tools Team -// Creation Date: 21/8/2005 -// ---------------------------------------------------------------------------------- -class OS_API osSharedMemorySocketClient : public osSharedMemorySocket -{ -public: - osSharedMemorySocketClient(const gtString& sharedMemoryObjectName); - virtual ~osSharedMemorySocketClient(); - - // Overrides osSocket: - virtual bool open(); - virtual bool close(); - - // Overrides osSharedMemorySocket: - virtual void updateSharedMemoryReleatedMembers(); - -private: - bool openSharedMemoryObject(); -}; - - -#endif // __OSSHAREDMEMORYSOCKETCLIENT -*/ diff --git a/external/amdt_os_wrappers/Include/osSharedMemorySocketServer.h b/external/amdt_os_wrappers/Include/osSharedMemorySocketServer.h deleted file mode 100644 index 2410636..0000000 --- a/external/amdt_os_wrappers/Include/osSharedMemorySocketServer.h +++ /dev/null @@ -1,72 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file -/// -//===================================================================== - -//------------------------------ osSharedMemorySocketServer.h ------------------------------ - -//Yaki 6 / 5 / 2005: -//osSharedMemorySocket performance seems to be poor on dual core machines. Therefore, it was -//replaced by osPipeSocket. - -/* -#ifndef __OSSHAREDMEMORYSOCKETSERVER -#define __OSSHAREDMEMORYSOCKETSERVER - -// Infra: -#include - -// Local: -#include -#include - -// The default size of a shared memory communication buffer (10K): -#define OS_SM_COMMUNICATION_DEFAULT_BUFF_SIZE 10240 - - -// ---------------------------------------------------------------------------------- -// Class Name: osSharedMemorySocketServer : public osSharedMemorySocket -// General Description: -// The server side of a shared memory socket. -// Is responsible for creating the shared memory buffer and waiting for a -// client connection. -// -// Author: AMD Developer Tools Team -// Creation Date: 17/8/2005 -// ---------------------------------------------------------------------------------- -class OS_API osSharedMemorySocketServer : public osSharedMemorySocket -{ -public: - osSharedMemorySocketServer(const gtString& sharedMemoryObjectName, int communicationBufferSize = OS_SM_COMMUNICATION_DEFAULT_BUFF_SIZE); - virtual ~osSharedMemorySocketServer(); - - bool waitForClientConnection(); - - // Overrides osSocket: - virtual bool open(); - virtual bool close(); - - // Overrides osSharedMemorySocket: - virtual void updateSharedMemoryReleatedMembers(); - -private: - bool generateUniqueTempFileName(osFilePath& filePath); - bool createMemoryMappedFile(); - bool deleteMemoryMappedFile(); - bool createSharedMemoryObject(); - void initializeSharedMemoryHeaderFields(); - -private: - // The path of the memory mapped file: - osFilePath _memoryMappedFilePath; - - // The memory mapped file handle: - osFileHandle _memoryMappedFileHandle; -}; - - -#endif // __OSSHAREDMEMORYSOCKETSERVER -*/ diff --git a/external/amdt_os_wrappers/src/common/osBugReporter.cpp b/external/amdt_os_wrappers/src/common/osBugReporter.cpp deleted file mode 100644 index 5480758..0000000 --- a/external/amdt_os_wrappers/src/common/osBugReporter.cpp +++ /dev/null @@ -1,348 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osBugReporter.cpp -/// -//===================================================================== - -//------------------------------ osBugReporter.cpp ------------------------------ - -// Infra: -#include - -// Local: -#include -#include - -// An aid buffer length: -#define OS_HTTP_REQUEST_BUFF_LEN 1024 - - -// --------------------------------------------------------------------------- -// Name: osBugReporter::osBugReporter -// Description: Constructor -// Arguments: CRMServerURL - The CRM server URL (Example: "support.gremedy.com") -// bugSubmissionCGIRelativeURL - The relative URL (under the CRM server) of the -// bug submission script (Example: "/scoutsubmit.asp"). -// projectName - The name of the project into which the bug will be reported. -// bugArea - The Area into which the bug will be reported. -// bugTitle - The bug title. Notice that this title uniquely identifies the bug. -// bugDescription - The bug description. -// additionalInformation - Any additional information that should be attached -// to the bug report. -// reporterUserName - The bug reporter user name. -// reporterEmail - The bug reporter email. -// createNewBugIfTitleExists - true - a new bug will be opened even if bug with the same -// title exists in the CRM system. -// false - If a bug with the same title already exist in the CRM -// system, this bug information will be appended into it. -// Author: AMD Developer Tools Team -// Date: 24/11/2005 -// --------------------------------------------------------------------------- -osBugReporter::osBugReporter(const gtASCIIString& CRMServerURL, const gtASCIIString& bugSubmissionCGIRelativeURL, - const gtASCIIString& projectName, const gtASCIIString& bugArea, - const gtASCIIString& bugTitle, const gtASCIIString& bugDescription, - const gtASCIIString& reporterUserName, const gtASCIIString& reporterEmail, - bool createNewBugIfTitleExists) - : _CRMServerURL(CRMServerURL), _bugSubmissionCGIRelativeURL(bugSubmissionCGIRelativeURL), - _projectName(projectName), _bugArea(bugArea), _bugTitle(bugTitle), _bugDescription(bugDescription), - _reporterUserName(reporterUserName), _reporterEmail(reporterEmail), _createNewBugIfTitleExists(createNewBugIfTitleExists) -{ -} - - -// --------------------------------------------------------------------------- -// Name: osBugReporter::~osBugReporter -// Description: Destructor -// Author: AMD Developer Tools Team -// Date: 24/11/2005 -// --------------------------------------------------------------------------- -osBugReporter::~osBugReporter() -{ -} - - -// --------------------------------------------------------------------------- -// Name: osBugReporter::reportBug -// Description: Reports the bug. -// Arguments: Will get the CRM system returned message. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 24/11/2005 -// Implementation notes: -// To post a bug into a FogBugz system, we send an HTTP POST request to the -// FogBugz server scoutsubmit.asp page. Example of such a request can be: -// http://support.gremedy.com/scoutsubmit.asp?Description=Test description&Extra=Test extra -// &Email=foo@goo.com&ScoutUserName=Yaki Tebeka&ScoutProject=CodeXL&ScoutArea=Support -// &ScoutDefaultMessage=Test default mgs&ForceNewBug=0 -// -// The server send us back an XML page that contains a message from the FogBugz server. -// Success message example: -// Test default mgs -// -// Failure message example: -// User not valid: Moo -// --------------------------------------------------------------------------- -bool osBugReporter::reportBug(gtASCIIString& CRMSystemReturnedMessage, bool isUsingProxy, const osPortAddress& proxyServer) -{ - bool retVal = false; - - // Build an HTTP "POST" request string that will perform the bug submission: - gtASCIIString httpPOSTRequestString; - buildHTTPRequestString(httpPOSTRequestString); - - // Send the request to the CRM system: - gtASCIIString returnedPage; - bool rc1 = sendRequestToCRMSystem(httpPOSTRequestString, returnedPage, isUsingProxy, proxyServer); - - if (rc1) - { - // Parse the page returned from the CRM system: - retVal = parseReturnedPage(returnedPage, CRMSystemReturnedMessage); - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osBugReporter::buildHTTPRequestString -// Description: -// Builds an HTTP "POST" request string that performs the bug submission. -// -// Implementation notes: -// The bug submission is of the following form: -// scoutsubmit.asp?Description=Test description&Extra=Test extra -// &Email=foo@goo.com&ScoutUserName=Yaki Tebeka&ScoutProject=CodeXL&ScoutArea=Support -// &ScoutDefaultMessage=Test default mgs&ForceNewBug=0 -// -// Author: AMD Developer Tools Team -// Date: 27/11/2005 -// --------------------------------------------------------------------------- -void osBugReporter::buildHTTPRequestString(gtASCIIString& requestString) -{ - requestString.makeEmpty(); - - // Add the bug arguments: - requestString += "Description="; - requestString += _bugTitle; - - if (!_bugDescription.isEmpty()) - { - requestString += "&Extra="; - requestString += _bugDescription; - } - - if (!_reporterEmail.isEmpty()) - { - requestString += "&Email="; - requestString += _reporterEmail; - } - - if (!_reporterUserName.isEmpty()) - { - requestString += "&ScoutUserName="; - requestString += _reporterUserName; - } - - if (!_projectName.isEmpty()) - { - requestString += "&ScoutProject="; - requestString += _projectName; - } - - if (!_bugArea.isEmpty()) - { - requestString += "&ScoutArea="; - requestString += _bugArea; - } - - requestString += "&ScoutDefaultMessage="; - requestString += "Thanks for the bug report"; - - requestString += "&ForceNewBug="; - - if (_createNewBugIfTitleExists) - { - requestString += "1"; - } - else - { - requestString += "0"; - } - - // Adjust the request string to the "application/x-www-form-urlencoded" content type: - adjustStringToContentType(requestString); -} - - -// --------------------------------------------------------------------------- -// Name: osBugReporter::adjustStringToContentType -// Description: -// Inputs a string and adjust it to the "application/x-www-form-urlencoded" -// content type. -// -// Implementation notes: -// -// From http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4.1 : -// Forms submitted with this content type must be encoded as follows: -// 1. Control names and values are escaped. Space characters are replaced by `+', -// and then reserved characters are escaped as described in [RFC1738], -// section 2.2: Non-alphanumeric characters are replaced by `%HH', -// a percent sign and two hexadecimal digits representing the ASCII code of the character. -// Line breaks are represented as "CR LF" pairs (i.e., `%0D%0A'). -// 2. The control names/values are listed in the order they appear in the document. -// The name is separated from the value by `=' and name/value pairs are separated -// from each other by `&'. -// 2. The control names/values are listed in the order they appear in the document. The name is separated from the value by `=' and name/value pairs are separated from each other by `&'. -// Author: AMD Developer Tools Team -// Date: 5/7/2007 -// --------------------------------------------------------------------------- -void osBugReporter::adjustStringToContentType(gtASCIIString& requestString) -{ - // Replace % with its ASCII hexadecimally representation: - requestString.replace("%", "%25", true); - - // Replace # with its ASCII hexadecimally representation: - requestString.replace("#", "%23", true); - - // Replace quotes (") with its ASCII hexadecimally representation: - requestString.replace("\"", "%22", true); - - // Replace spaces with +: - requestString.replace(" ", "%20", true); - - // Replace "\n" by "CR LF" pairs: - requestString.replace("\n", "%0D%0A", true); -} - - -// --------------------------------------------------------------------------- -// Name: osBugReporter::sendRequestToCRMSystem -// Description: Sends the HTTP POST request to the CRM system. -// Arguments: requestString - The POST request string. -// returnedPage - The result page returned from the CRM system. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 5/7/2007 -// --------------------------------------------------------------------------- -bool osBugReporter::sendRequestToCRMSystem(const gtASCIIString& requestString, gtASCIIString& returnedPage, bool isUsingProxy, const osPortAddress& proxyServer) -{ - bool retVal = false; - - // Setup an HTTP client that will perform our HTTP request: - osPortAddress bugReportServer(_CRMServerURL, 80); - - if (isUsingProxy) - { - bugReportServer = proxyServer; - } - - osHTTPClient httpClient(bugReportServer); - - // Set the POST request data: - httpClient.setPostBuffer(requestString); - - // Set the CRM Web server address: - bool rc1 = httpClient.connect(); - GT_IF_WITH_ASSERT(rc1) - { - // Execute the HTTP submission: - gtASCIIString httpRequestResult; - bool rc2 = httpClient.RequestPagePost(_bugSubmissionCGIRelativeURL, httpRequestResult, isUsingProxy, _CRMServerURL.asCharArray()); - GT_IF_WITH_ASSERT(rc2) - { - // Set the returned page: - returnedPage = httpRequestResult; - - // Convert the given string from HTML to ASCII: - returnedPage.decodeHTML(); - - retVal = true; - } - else - { - gtString errorCode; - errorCode.fromASCIIString(httpClient.getLastErrorCode().asCharArray()); - GT_ASSERT_EX(rc2, errorCode.asCharArray()); - } - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osBugReporter::parseReturnedPage -// Description: Parses the page returned from the CRM server. -// Arguments: returnedPage - The returned page as a string. -// CRMSystemReturnedMessage - Will get the CRM system "human readable" -// returned string. -// Return Val: bool - true iff the bug submission was successful. -// Author: AMD Developer Tools Team -// Date: 28/11/2005 -// Implementation Notes: -// The FogBugz server send us back an XML page that contains: -// a. Success / Error - as an XML tag. -// b. A human readable string associated with the bug report. -// -// Success message example: -// Test default mgs -// -// Failure message example: -// User not valid: Moo -// --------------------------------------------------------------------------- -bool osBugReporter::parseReturnedPage(const gtASCIIString& returnedPage, gtASCIIString& CRMSystemReturnedMessage) -{ - bool retVal = false; - CRMSystemReturnedMessage.makeEmpty(); - - // Get the returned message in a lower case representation: - gtASCIIString returnedPageLowerCase = returnedPage; - returnedPageLowerCase.toLowerCase(); - - // Search for a "" tag: - gtASCIIString successTag(""); - int successTagPos = returnedPageLowerCase.find(successTag); - - // If there is a "" tag: - if (successTagPos != -1) - { - // Search for the matching "" tag: - int successTagSize = successTag.length(); - int endSuccessTagPos = returnedPageLowerCase.find("", successTagPos + successTagSize); - - // If we found the matching "" tag: - if (endSuccessTagPos) - { - // Output the CRM system returned "Human readable" string: - returnedPage.getSubString(successTagPos + successTagSize, endSuccessTagPos - 1, CRMSystemReturnedMessage); - retVal = true; - } - } - else - { - // We didn't find a success tag. - // Look for an "" tag: - gtASCIIString errorTag(""); - int errorTagPos = returnedPageLowerCase.find(errorTag); - - // If there is an "" tag: - if (errorTagPos != -1) - { - int errorTagSize = errorTag.length(); - int endErrorTagPos = returnedPageLowerCase.find("", errorTagPos + errorTagSize); - - // If we found the matching "" tag: - if (endErrorTagPos) - { - // Output the CRM system returned "Human readable" string: - returnedPage.getSubString(errorTagPos + errorTagSize, endErrorTagPos - 1, CRMSystemReturnedMessage); - } - } - } - - return retVal; -} - diff --git a/external/amdt_os_wrappers/src/common/osCGIInputDataReader.cpp b/external/amdt_os_wrappers/src/common/osCGIInputDataReader.cpp deleted file mode 100644 index a6ee9b1..0000000 --- a/external/amdt_os_wrappers/src/common/osCGIInputDataReader.cpp +++ /dev/null @@ -1,599 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osCGIInputDataReader.cpp -/// -//===================================================================== - -//------------------------------ osCGIInputDataReader.cpp ------------------------------ - -// Standard C: -#include -#include - -// Infra: -#include -#include -#include - -// Local: -#include -#include - -// An environment variable holding the cgi-bin request method: -// Options are: GET, POST -#define OS_CGI_REQUEST_METHOD_ENV_VARIABLE_NAME L"REQUEST_METHOD" -#define OS_CGI_GET_REQUEST_METHOD_ENV_VARIABLE_VALUE L"GET" -#define OS_CGI_POST_REQUEST_METHOD_ENV_VARIABLE_VALUE L"POST" - -// The name of an environment variable that holds the GET request query string: -#define OS_CGI_GET_REQUEST_QUERY_STRING_ENV_VARIABLE_NAME L"QUERY_STRING" - -// The name of an environment variable that holds the POST request content type: -#define OS_CGI_POST_REQUEST_CONTENT_TYPE_ENV_VARIABLE_NAME L"CONTENT_TYPE" - -// The value of a POST request content type that reflects data that was sent from an internet form: -#define OS_CGI_POST_REQUEST_FORM_URL_DECODED_CONTENT_TYPE_ENV_VARIABLE_VALUE L"application/x-www-form-urlencoded" - -// The name of an environment variable that holds the POST request query string length: -#define OS_CGI_POST_REQUEST_QUERY_STRING_LENGTH_ENV_VARIABLE_NAME L"CONTENT_LENGTH" - -// The name of an environment variable that holds the CGI-bin client's IP address: -#define OS_CGI_CLIENT_IP_ADDRESS_ENV_VARIABLE_NAME L"REMOTE_ADDR" - -// The name of an environment variable that holds the CGI-bin server's name: -#define OS_CGI_SERVER_NAME_ENV_VARIABLE_NAME L"SERVER_NAME" - -// The name of an environment variable that holds the CGI-bin server's port: -#define OS_CGI_SERVER_PORT_ENV_VARIABLE_NAME L"SERVER_PORT" - -// The name of an environment variable that holds the CGI-bin server's name: -#define OS_CGI_REMOTE_HOST_ENV_VARIABLE_NAME L"REMOTE_HOST" - -// --------------------------------------------------------------------------- -// Name: osCGIInputDataReader::osCGIInputDataReader -// Description: Constructor -// Author: AMD Developer Tools Team -// Date: 11/5/2008 -// --------------------------------------------------------------------------- -osCGIInputDataReader::osCGIInputDataReader() -{ -} - - -// --------------------------------------------------------------------------- -// Name: osCGIInputDataReader~osCGIInputDataReader -// Description: Destructor -// Author: AMD Developer Tools Team -// Date: 11/5/2008 -// --------------------------------------------------------------------------- -osCGIInputDataReader::~osCGIInputDataReader() -{ - // Release allocated memory: - _dataItems.deleteElementsAndClear(); -} - - -// --------------------------------------------------------------------------- -// Name: osCGIInputDataReader::readGetInputData -// Description: -// Reads the GET method input data into this class. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 11/5/2008 -// Implementation notes: -// Technical details about obtaining GET and POST queries data from a C/C++ -// CGI-bin can be found at: -// - http://hoohoo.ncsa.uiuc.edu/cgi/forms.html -// - http://www.guyrutenberg.com/2007/09/07/introduction-to-c-cgi-processing-forms/ -// - http://library.thinkquest.org/16728/content/cgi/cplusplus.html -// --------------------------------------------------------------------------- -bool osCGIInputDataReader::readGetInputData() -{ - bool retVal = false; - - // Get the used request method: - gtString requestMethod; - bool rc1 = osGetCurrentProcessEnvVariableValue(OS_CGI_REQUEST_METHOD_ENV_VARIABLE_NAME, requestMethod); - GT_IF_WITH_ASSERT(rc1) - { - // Verify that used request method is "GET": - if (requestMethod == OS_CGI_GET_REQUEST_METHOD_ENV_VARIABLE_VALUE) - { - // Get the GET request query string: - gtString getRequestQueryString; - bool rc2 = osGetCurrentProcessEnvVariableValue(OS_CGI_GET_REQUEST_QUERY_STRING_ENV_VARIABLE_NAME, getRequestQueryString); - GT_IF_WITH_ASSERT(rc2) - { - // Read the request string items into the _dataItems vector: - bool rc3 = readRequestString(getRequestQueryString); - GT_IF_WITH_ASSERT(rc3) - { - retVal = true; - } - } - } - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osCGIInputDataReader::readPostInputData -// Description: -// Reads the POST method input data into this class. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 11/5/2008 -// Implementation notes: -// See Implementation notes at readGetInputData function documentation. -// --------------------------------------------------------------------------- -bool osCGIInputDataReader::readPostInputData() -{ - bool retVal = false; - - // Get the used request method: - gtString requestMethod; - bool rc0 = osGetCurrentProcessEnvVariableValue(OS_CGI_REQUEST_METHOD_ENV_VARIABLE_NAME, requestMethod); - GT_IF_WITH_ASSERT(rc0) - { - // Verify that used request method is "POST": - if (requestMethod == OS_CGI_POST_REQUEST_METHOD_ENV_VARIABLE_VALUE) - { - // Get the request content type: - gtString postRequestContentType; - bool rc1 = osGetCurrentProcessEnvVariableValue(OS_CGI_POST_REQUEST_CONTENT_TYPE_ENV_VARIABLE_NAME, postRequestContentType); - GT_IF_WITH_ASSERT(rc1) - { - // Verify that we got a content that was sent from an internet form: - GT_IF_WITH_ASSERT(postRequestContentType == OS_CGI_POST_REQUEST_FORM_URL_DECODED_CONTENT_TYPE_ENV_VARIABLE_VALUE) - { - // Get the POST request query string length: - gtString postRequestQueryStringLengthAsStr; - bool rc2 = osGetCurrentProcessEnvVariableValue(OS_CGI_POST_REQUEST_QUERY_STRING_LENGTH_ENV_VARIABLE_NAME, postRequestQueryStringLengthAsStr); - GT_IF_WITH_ASSERT(rc2) - { - // Translate the length from string into an integer: - int postRequestQueryStringLength = 0; - bool rc3 = postRequestQueryStringLengthAsStr.toIntNumber(postRequestQueryStringLength); - GT_IF_WITH_ASSERT(rc3) - { - // Allocate a buffer that will contain the input post request data: - char* pPostDataBuffer = new char[postRequestQueryStringLength + 1]; - - - // Read the post request data into the buffer: - size_t rc4 = fread(pPostDataBuffer, sizeof(char), postRequestQueryStringLength, stdin); - GT_IF_WITH_ASSERT(rc4 == (size_t)postRequestQueryStringLength) - { - // Translate the read data into a string: - pPostDataBuffer[postRequestQueryStringLength] = 0; - gtString postRequestQueryString; - postRequestQueryString.fromASCIIString(pPostDataBuffer); - - // Read the request string items into the _dataItems vector: - bool rc5 = readRequestString(postRequestQueryString); - GT_IF_WITH_ASSERT(rc5) - { - retVal = true; - } - } - - // Clean up: - delete[] pPostDataBuffer; - pPostDataBuffer = NULL; - } - } - } - } - } - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osCGIInputDataReader::amountOfDataItems -// Description: -// Returns the amount of CGI-bin input data items. -// This function should be called after a call to readGetInputData or readPostInputData. -// Author: AMD Developer Tools Team -// Date: 11/5/2008 -// --------------------------------------------------------------------------- -int osCGIInputDataReader::amountOfDataItems() const -{ - int retVal = (int)_dataItems.size(); - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osCGIInputDataReader::getDataItem -// Description: Returns a CGI-bin input data item. -// Arguments: itemIndex - The CGI-bin input item index, in the range: [0, amountOfDataItems - 1]. -// itemData - Will get the CGI-bin input item data. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 11/5/2008 -// --------------------------------------------------------------------------- -bool osCGIInputDataReader::getDataItem(int itemIndex, osCGIInputDataItem& itemData) const -{ - bool retVal = false; - - // Sanity check: - int dataItemsAmount = amountOfDataItems(); - - if ((0 <= itemIndex) && (itemIndex < dataItemsAmount)) - { - osCGIInputDataItem* pItemData = _dataItems[itemIndex]; - GT_IF_WITH_ASSERT(pItemData != NULL) - { - itemData = *pItemData; - retVal = true; - } - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osCGIInputDataReader::getDataItemValue -// Description: Inputs a CGI-bin data item name and outputs its value (if exists). -// Arguments: dataItemName - The data item name. -// dataItemValue - Will get the data item value. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 13/5/2008 -// --------------------------------------------------------------------------- -bool osCGIInputDataReader::getDataItemValue(const gtString& dataItemName, gtString& dataItemValue) const -{ - bool retVal = false; - // Iterate the CGI-bin input items: - gtPtrVector::const_iterator iter = _dataItems.begin(); - gtPtrVector::const_iterator endIter = _dataItems.end(); - - while (iter != endIter) - { - // Get the current data item: - const osCGIInputDataItem* pCurrDataItem = *iter; - GT_IF_WITH_ASSERT(pCurrDataItem != NULL) - { - // Get the current input item name: - const gtString& currItemName = pCurrDataItem->_name; - - // If this is the name we are looking for: - if (currItemName == dataItemName) - { - // Output the data item value: - dataItemValue = pCurrDataItem->_value; - retVal = true; - break; - } - } - ++iter; - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osCGIInputDataReader::getClientIPAddress -// Description: Retrieves the CGI-bin client's IP address. -// Arguments: clientIPAddress - Will get the client's IP address. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 14/5/2008 -// --------------------------------------------------------------------------- -bool osCGIInputDataReader::getClientIPAddress(gtString& clientIPAddress) const -{ - bool retVal = false; - - // Get the used request method: - bool rc1 = osGetCurrentProcessEnvVariableValue(OS_CGI_CLIENT_IP_ADDRESS_ENV_VARIABLE_NAME, clientIPAddress); - - if (rc1) - { - retVal = true; - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osCGIInputDataReader::getServerName -// Description: Retrieves the CGI-bin server name. -// Arguments: serverName - Will get the CGI-bin server's name (ex: www.gremedy.com). -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 14/5/2008 -// --------------------------------------------------------------------------- -bool osCGIInputDataReader::getServerName(gtString& serverName) const -{ - bool retVal = false; - - // Get the used request method: - bool rc1 = osGetCurrentProcessEnvVariableValue(OS_CGI_SERVER_NAME_ENV_VARIABLE_NAME, serverName); - - if (rc1) - { - retVal = true; - } - - return retVal; -} - -// --------------------------------------------------------------------------- -// Name: osCGIInputDataReader::getServerPort -// Description: Retrieves the CGI-bin port number. -// Arguments: serverName - Will get the CGI-bin server's name (ex: 80). -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 25/5/2011 -// --------------------------------------------------------------------------- -bool osCGIInputDataReader::getServerPort(unsigned int& serverPort) const -{ - bool retVal = false; - - gtString serverPortStr; - // Get the used request method: - bool rc1 = osGetCurrentProcessEnvVariableValue(OS_CGI_SERVER_PORT_ENV_VARIABLE_NAME, serverPortStr); - - if (rc1) - { - serverPortStr.toUnsignedIntNumber(serverPort); - retVal = true; - } - - return retVal; -} - -// --------------------------------------------------------------------------- -// Name: osCGIInputDataReader::getServerPort -// Description: Retrieves the CGI-bin port number. -// Arguments: serverName - Will get the CGI-bin server's name -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 4/7/2011 -// --------------------------------------------------------------------------- -bool osCGIInputDataReader::getRemoteHost(gtString& serverName) const -{ - bool retVal = false; - - // Get the used request method: - bool rc1 = osGetCurrentProcessEnvVariableValue(OS_CGI_REMOTE_HOST_ENV_VARIABLE_NAME, serverName); - - if (rc1) - { - retVal = true; - } - - return retVal; -} - -// --------------------------------------------------------------------------- -// Name: osCGIInputDataReader::readRequestString -// Description: -// Parses the CGI request string and adds its contained data items into the -// _dataItems vector. -// -// Arguments: requestString - The input request string, sent from the form into -// the CGI-bin. -// -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 12/5/2008 -// -// Implementation notes: -// The request string contains name=value pairs separated by the & character. -// Each name=value pair is URL encoded, I.E: spaces are changed into plusses -// and some characters are encoded into hexadecimal. -// --------------------------------------------------------------------------- -bool osCGIInputDataReader::readRequestString(const gtString& requestString) -{ - bool retVal = true; - - // Log the request string to the debug log file (if debug log severity is DEBUG): - debugLogRequestString(requestString); - - // Break the request string into name=value pairs: - gtString tokenizer1Token = L"&"; - gtStringTokenizer strTokenizer1(requestString, tokenizer1Token); - gtString currentPair; - - while (strTokenizer1.getNextToken(currentPair)) - { - // Get the current data item name: - gtString tokenizer2Token = L"="; - gtStringTokenizer strTokenizer2(currentPair, tokenizer2Token); - gtString currentPairName; - bool rc1 = strTokenizer2.getNextToken(currentPairName); - - if (!rc1) - { - // An error occurred: - GT_ASSERT(rc1); - retVal = false; - break; - } - else - { - // Get the current data item value: - gtString currentPairValue; - bool rc2 = strTokenizer2.getNextToken(currentPairValue); - - if (!rc2) - { - // An error occurred: - GT_ASSERT(rc2); - retVal = false; - break; - } - else - { - // Decode the data item value: - gtString currentPairValueDecoded; - bool rc3 = decodeFormRequestString(currentPairValue, currentPairValueDecoded); - - if (!rc3) - { - // An error occurred: - GT_ASSERT(rc3); - retVal = false; - break; - } - else - { - // Add the current data item to the _dataItems vector: - osCGIInputDataItem* pCurrentDataItem = new osCGIInputDataItem; - - - pCurrentDataItem->_name = currentPairName; - pCurrentDataItem->_value = currentPairValueDecoded; - _dataItems.push_back(pCurrentDataItem); - } - } - } - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osCGIInputDataReader::decodeFormRequestString -// Description: Decodes a string encoded by a web form back to the original -// form data, filled by the user. -// Arguments: encodedString - The form encoded string. -// decodedString - Will get the decoded string. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 13/5/2008 -// Implementation notes: -// Decodes a request string sent from an internet form. The request string values are -// encoded, when sent by a form, in the following way: -// - Spaces are changed into plusses -// - Some characters are encoded into hexadecimal (%Hex). -// This function inverts the above decoding. -// --------------------------------------------------------------------------- -bool osCGIInputDataReader::decodeFormRequestString(const gtString& encodedString, gtString& decodedString) -{ - bool retVal = false; - - // Sanity check: - int encodedStringLength = encodedString.length(); - - if (0 < encodedStringLength) - { - // Allocate space for the decoded string: - wchar_t* pDecodedString = new wchar_t[encodedStringLength + 1](); - - - // Initialize the decoded string to be the encoded string: - wcscpy(pDecodedString, encodedString.asCharArray()); - - // Replace spaces are changed into plusses: - for (int i = 0; i < encodedStringLength; i++) - { - if (pDecodedString[i] == '+') - { - pDecodedString[i] = ' '; - } - } - - // Replace %Hex with the original char value: - int sourceIndex = 0; - int targetIndex = 0; - - while (pDecodedString[sourceIndex] != 0) - { - pDecodedString[targetIndex] = pDecodedString[sourceIndex]; - - if (pDecodedString[sourceIndex] == '%') - { - pDecodedString[targetIndex] = hexToChar(&pDecodedString[sourceIndex + 1]); - sourceIndex += 2; - } - - ++targetIndex; - ++sourceIndex; - } - - pDecodedString[targetIndex] = 0; - - // Output the decoded string: - decodedString = pDecodedString; - - // Clean up: - delete[] pDecodedString; - pDecodedString = NULL; - - retVal = true; - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osCGIInputDataReader::hexToChar -// Description: Decodes form encoded hexadecimal value. -// Arguments: pHexValue - The input encoded hexadecimal value. -// Return Val: char - Will get the decoded value. -// Author: AMD Developer Tools Team -// Date: 13/5/2008 -// --------------------------------------------------------------------------- -wchar_t osCGIInputDataReader::hexToChar(wchar_t* pHexValue) const -{ - wchar_t retVal = 0; - - if (pHexValue[0] >= 'A') - { - retVal = ((pHexValue[0] & 0xdf) - 'A') + 10; - } - else - { - retVal = (pHexValue[0] - '0'); - } - - retVal *= 16; - - if (pHexValue[1] >= 'A') - { - retVal += ((pHexValue[1] & 0xdf) - 'A') + 10; - } - else - { - retVal += (pHexValue[1] - '0'); - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osCGIInputDataReader::debugLogRequestString -// Description: -// If debug log severity is DEBUG, logs the CGI request string to the debug log file -// Arguments: requestString - The CGI input request string. -// Author: AMD Developer Tools Team -// Date: 25/1/2010 -// --------------------------------------------------------------------------- -void osCGIInputDataReader::debugLogRequestString(const gtString& requestString) -{ - // If debug log severity is DEBUG: - osDebugLogSeverity debugLogSeverity = osDebugLog::instance().loggedSeverity(); - - if (OS_DEBUG_LOG_DEBUG <= debugLogSeverity) - { - gtString dbgMsg = L"CGI bin request string is: "; - dbgMsg += requestString; - OS_OUTPUT_DEBUG_LOG(dbgMsg.asCharArray(), OS_DEBUG_LOG_DEBUG); - } -} - diff --git a/external/amdt_os_wrappers/src/common/osCallStack.cpp b/external/amdt_os_wrappers/src/common/osCallStack.cpp deleted file mode 100644 index 97c64a6..0000000 --- a/external/amdt_os_wrappers/src/common/osCallStack.cpp +++ /dev/null @@ -1,580 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osCallStack.cpp -/// -//===================================================================== - -//------------------------------ osCallStack.cpp ------------------------------ - -// Infra: -#include - -// Local: -#include -#include -#include -#include -#include - - -// --------------------------------------------------------------------------- -// Name: osCallStack::osCallStack -// Description: Constructor -// Arguments: threadId - The id of the thread to which the call stack belongs. -// is64BitCallStack - true for 64 bit address space call stack, false for 32 bit address space call stack: -// Author: AMD Developer Tools Team -// Date: 11/10/2004 -// --------------------------------------------------------------------------- -osCallStack::osCallStack(osThreadId threadId, bool is64BitCallStack) - : _threadId(threadId), _is64BitCallStack(is64BitCallStack) -{ -} - - -// --------------------------------------------------------------------------- -// Name: osCallStack::stackFrame -// Description: Inputs a stack frame index and returns a pointer to it -// (Or null if it does not exist). -// Author: AMD Developer Tools Team -// Date: 11/10/2004 -// --------------------------------------------------------------------------- -const osCallStackFrame* osCallStack::stackFrame(int frameIndex) const -{ - const osCallStackFrame* retVal = NULL; - - // Index range check: - int stackFramesAmount = amountOfStackFrames(); - - if ((0 <= frameIndex) && (frameIndex < stackFramesAmount)) - { - retVal = &(_stackFrames[frameIndex]); - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osCallStack::asString -// Description: Outputs a string representing the call stack. -// Arguments: -// callStackBriefString - Will get a short string representing the call stack (usually the call stack's start address). -// callStackString - Will get a string representing the call stack. -// isSpyRelatedCallStack - Will get true iff the stack contains frames that are related to a spy module. -// Author: AMD Developer Tools Team -// Date: 7/7/2010 -// --------------------------------------------------------------------------- -void osCallStack::asString(gtString& callStackBriefString, gtString& callStackString, bool& isSpyModuleRelatedCallStack, bool allowDifferentSystemPathInSpy) const -{ - callStackBriefString.makeEmpty(); - isSpyModuleRelatedCallStack = false; - - // Initialize the call output call stack string to contain the string's columns headers: - callStackString = OS_STR_callStackAsStringHeader; - - // Iterate the call stack frames: - int callStackSize = amountOfStackFrames(); - - for (int frameIndex = 0; frameIndex < callStackSize; frameIndex++) - { - // Get the current stack frame: - const osCallStackFrame* pCurrStackFrame = NULL; - pCurrStackFrame = stackFrame(frameIndex); - GT_IF_WITH_ASSERT(pCurrStackFrame != NULL) - { - // Get the current stack frame's data: - const gtString& functionName = pCurrStackFrame->functionName(); - osInstructionPointer functionStartAddress = pCurrStackFrame->functionStartAddress(); - const osFilePath& sourceCodeFilePath = pCurrStackFrame->sourceCodeFilePath(); - const gtString& sourceCodeFilePathString = sourceCodeFilePath.asString(); - const int& sourceCodeFileLineNumber = pCurrStackFrame->sourceCodeFileLineNumber(); - const osFilePath& sourceCodeModulePath = pCurrStackFrame->moduleFilePath(); - osInstructionPointer moduleStartAddress = pCurrStackFrame->moduleStartAddress(); - const osInstructionPointer instructionCounterAddress = pCurrStackFrame->instructionCounterAddress(); - bool isSpyFunction = pCurrStackFrame->isSpyFunction(); - - // Divide the file path to name and extension - gtString sourceCodeFileName; - gtString sourceCodeFileExtension; - sourceCodeFilePath.getFileName(sourceCodeFileName); - sourceCodeFilePath.getFileExtension(sourceCodeFileExtension); - - // The first non-empty function name will be used as the call stack brief: - if ((callStackBriefString.isEmpty()) && (!functionName.isEmpty())) - { - callStackBriefString = functionName; - - // Append the pointer offset from the module start: - osInstructionPointer offsetFromModuleBase = (instructionCounterAddress > moduleStartAddress) ? (osInstructionPointer)((osProcedureAddress64)instructionCounterAddress - (osProcedureAddress64)moduleStartAddress) : 0; - - if (offsetFromModuleBase != 0) - { - gtString offsetFromModuleBaseAsString; - osProcedureAddressToString((osProcedureAddress64)offsetFromModuleBase, _is64BitCallStack, false, offsetFromModuleBaseAsString); - - callStackBriefString.append(' ').append('(').append(offsetFromModuleBaseAsString).append(')'); - } - } - - // If the stack contains a frame that is related to a spy module (if we found such a frame, stop checking): - if (isSpyFunction && (!isSpyModuleRelatedCallStack)) - { - isSpyModuleRelatedCallStack = true; - - // When a user call to an API function crashes, we should recognize this scenario and not report it as a spy crash. It is identifiable by the following checklist: - // 1. There is only one spy frame in the call stack - verifiable by checking there is no spy frame directly below (avoids queries maintenance wrappers, e.g. onProgramBuilt) - // 2. The frame is not the top frame (avoids crashes in the wrapper and uninitialized real function addresses) - // 3. The frame above the current frame has the same function name (avoids function replacement, e.g. stub modes), or the current frame is one of the wrapper source files - // 4. The frame above the current frame is in the system OpenCL / OpenGL module (avoids calls to other code, e.g. the OpenCL debug API) - - // The checks are performed in order from quickest to slowest, to save time on irrelevant scenarios: - // 2: are we the top frame: - if (frameIndex > 0) - { - bool isFrameBelowASpyFrame = false; - - if (frameIndex < (callStackSize - 1)) - { - const osCallStackFrame* pNextFrame = stackFrame(frameIndex + 1); - - if (pNextFrame != NULL) - { - isFrameBelowASpyFrame = pNextFrame->isSpyFunction(); - } - } - - // 1: are we above a non-spy frame (i.e. a user code frame): - if (!isFrameBelowASpyFrame) - { - const osCallStackFrame* pPreviousFrame = stackFrame(frameIndex - 1); - - // 3: does the frame above have the same function name: - if (pPreviousFrame != NULL) - { - const gtString& prevFunctionName = pPreviousFrame->functionName(); - bool isWrapperCallingRealFunc = (prevFunctionName == functionName); - - if (!isWrapperCallingRealFunc) - { - // Uri, 27/10/2015 - in the OpenCL ICD, if the passed argument (e.g. cl_context handle) is invalid, - // The ICD dispatch might fail before jumping to the real function in the specific runtime. In that case, - // The function "name" will be incorrect. To handle these cases, we check here in "bad identification" cases: - static const gtString pref1 = L"cl"; // The dispatch table is ususally identified as the first function (e.g. see CODEXL-1236). - static const gtString pref2 = L"0x"; // If the function name is missing, it might have been replaced with the function address. - - if (prevFunctionName.isEmpty() || prevFunctionName.startsWith(pref1) || prevFunctionName.startsWith(pref2)) - { - static const gtString cppExtension = L"cpp"; - - if ((cppExtension == sourceCodeFileExtension) && !sourceCodeFileName.isEmpty()) - { - static const gtString wrapperSourceFileNames[] = { L"csDirectXIntegrationWrappers", - L"csOpenCLExtensionsWrappers", - L"csOpenCLWrappers", - L"csOpenGLIntegrationWrappers", - L"gsCGLWrappers", - L"gsGLXWrappers", - L"gsOpenGLExtensionsWrappers", - L"gsOpenGLWrappers", - L"gsWGLWrappers", - L"hdHSAWrappers" - }; - - for (const gtString& currentSourceFileName : wrapperSourceFileNames) - { - if (0 == (currentSourceFileName.compareNoCase(currentSourceFileName))) - { - isWrapperCallingRealFunc = true; - break; - } - } - } - } - } - - if (isWrapperCallingRealFunc) - { - const osFilePath& previousFrameModulePath = pPreviousFrame->moduleFilePath(); - - if (!allowDifferentSystemPathInSpy) - { - static gtVector systemGLModulePath; - static gtVector systemCLModulePath; - static bool systemPathsInitialized = false; - - if (!systemPathsInitialized) - { - osGetSystemOpenGLModulePath(systemGLModulePath); - osGetSystemOpenCLModulePath(systemCLModulePath); - systemPathsInitialized = true; - } - - // 4: does the frame above match any of the system module paths: - int numberOfCLPaths = (int)systemCLModulePath.size(); - - for (int i = 0; i < numberOfCLPaths; i++) - { - if (previousFrameModulePath == systemCLModulePath[i]) - { - isSpyModuleRelatedCallStack = false; - break; - } - } - - if (isSpyModuleRelatedCallStack) - { - int numberOfGLPaths = (int)systemGLModulePath.size(); - - for (int i = 0; i < numberOfGLPaths; i++) - { - if (previousFrameModulePath == systemGLModulePath[i]) - { - isSpyModuleRelatedCallStack = false; - break; - } - } - } - -#if AMDT_BUILD_TARGET == AMDT_LINUX_OS - - // 4: Linux only - allow modules that start in /usr/lib* - as they are definitely the system path: - if (isSpyModuleRelatedCallStack) - { - static const gtString linuxSystemPathPrefix = L"/usr/lib"; - - if (previousFrameModulePath.asString().startsWith(linuxSystemPathPrefix)) - { - // verify it's an opengl or opencl dll: - gtString currentFrameFileName; - sourceCodeModulePath.getFileName(currentFrameFileName); - int periodIndex = currentFrameFileName.find('.', 1); - - if (-1 != periodIndex) - { - currentFrameFileName.truncate(0, periodIndex - 1); - } - - gtString previousFrameFileName; - previousFrameModulePath.getFileName(previousFrameFileName); - periodIndex = previousFrameFileName.find('.', 1); - - if (-1 != periodIndex) - { - previousFrameFileName.truncate(0, periodIndex - 1); - } - - if (currentFrameFileName == previousFrameFileName) - { - isSpyModuleRelatedCallStack = false; - } - } - } - -#endif // AMDT_BUILD_TARGET == AMDT_LINUX_OS - } - else // allowDifferentSystemPathInSpy - { - // If we allow a different system path in the spy and client, we just need to check that it has the right module name: - gtString previousFrameModuleFileName; - previousFrameModulePath.getFileNameAndExtension(previousFrameModuleFileName); - previousFrameModuleFileName.toLowerCase(); - static gtString systemGLModuleName; - static gtString systemCLModuleName1; - static gtString systemCLModuleName2; - static gtString amdCLModuleName1; - static gtString amdCLModuleName2; - static bool systemNamesInitialized = false; - - if (!systemNamesInitialized) - { - systemGLModuleName = OS_OPENGL_MODULE_NAME; - systemGLModuleName.toLowerCase(); - systemCLModuleName1 = OS_OPENCL_ICD_MODULE_NAME; - systemCLModuleName1.toLowerCase(); - systemCLModuleName2 = OS_OPENCL_ICD_MODULE_ALTERNATIVE_NAME; - systemCLModuleName2.toLowerCase(); - amdCLModuleName1 = OS_AMD_OPENCL_RUNTIME_MODULE_NAME; - amdCLModuleName1.toLowerCase(); - amdCLModuleName2 = OS_AMD_OPENCL_RUNTIME_MODULE_NAME_OTHER_BITNESS; - amdCLModuleName2.toLowerCase(); - systemNamesInitialized = true; - } - - // 4: does the frame above match any of the system module names: - if ((previousFrameModuleFileName == systemGLModuleName) || (previousFrameModuleFileName == systemCLModuleName1) || (previousFrameModuleFileName == systemCLModuleName2) || (previousFrameModuleFileName == amdCLModuleName1) || (previousFrameModuleFileName == amdCLModuleName2)) - { - isSpyModuleRelatedCallStack = false; - } - } - } - } - } - } - } - - // Start with the file if it exists: - gtString fullFileName; - - if (!sourceCodeFileName.isEmpty()) - { - fullFileName = sourceCodeFileName; - fullFileName.append(osFilePath::osExtensionSeparator); - fullFileName.append(sourceCodeFileExtension); - } - - // Add the function name: - if (!functionName.isEmpty()) - { - callStackString.append(functionName); - } - else - { - callStackString.append(OS_STR_NotAvailable); - } - - callStackString.append(L" - "); - - // Add the file path: - if (!sourceCodeFilePathString.isEmpty()) - { - callStackString.append(sourceCodeFilePathString); - } - else - { - callStackString.append(OS_STR_NotAvailable); - } - - callStackString.append(L" - "); - - // Add the line number: - if (sourceCodeFileLineNumber > 1) - { - callStackString.appendFormattedString(L"%d", sourceCodeFileLineNumber); - } - else - { - callStackString.append(OS_STR_NotAvailable); - } - - callStackString.append(L" - "); - - - // Add the module path: - if (!sourceCodeModulePath.asString().isEmpty()) - { - callStackString.append(sourceCodeModulePath.asString()); - } - else - { - callStackString.append(OS_STR_NotAvailable); - } - - callStackString.append(L" - "); - - // Add the function start address: - if (functionStartAddress != 0) - { - gtString functionStartAddressAsString; - osProcedureAddressToString((osProcedureAddress64)functionStartAddress, _is64BitCallStack, false, functionStartAddressAsString); - callStackString.append(functionStartAddressAsString); - } - else - { - callStackString.append(OS_STR_NotAvailable); - } - - callStackString.append(L" - "); - - // Add the function start address: - if (moduleStartAddress != 0) - { - gtString moduleStartAddressAsString; - osProcedureAddressToString((osProcedureAddress64)moduleStartAddress, _is64BitCallStack, false, moduleStartAddressAsString); - callStackString.append(moduleStartAddressAsString); - } - else - { - callStackString.append(OS_STR_NotAvailable); - } - - callStackString.append(L" - "); - - // Add the instruction counter address: - if (instructionCounterAddress != 0) - { - gtString instructionCounterAddressAsString; - osProcedureAddressToString((osProcedureAddress64)instructionCounterAddress, _is64BitCallStack, false, instructionCounterAddressAsString); - callStackString.append(instructionCounterAddressAsString); - } - else - { - callStackString.append(OS_STR_NotAvailable); - } - - // Append a new line: - callStackString.append(L"\n"); - } - } - - // If we did not find a non-empty function name: - if (callStackBriefString.isEmpty()) - { - // If the stack is empty: - if (callStackSize <= 0) - { - callStackBriefString = OS_STR_NotAvailable; - } - else - { - // Set the first call stack frame's function address as the stack's brief string: - const osCallStackFrame* pFirstStackFrame = stackFrame(0); - GT_IF_WITH_ASSERT(pFirstStackFrame != NULL) - { - osInstructionPointer firstFunctionStartAddress = pFirstStackFrame->functionStartAddress(); - osProcedureAddressToString((osProcedureAddress64)firstFunctionStartAddress, _is64BitCallStack, false, callStackBriefString); - } - } - } -} - - -// --------------------------------------------------------------------------- -// Name: osCallStack::addStackFrame -// Description: Adds a call stack frame to this call stack. -// Author: AMD Developer Tools Team -// Date: 11/10/2004 -// --------------------------------------------------------------------------- -void osCallStack::addStackFrame(const osCallStackFrame& stackFrame) -{ - _stackFrames.push_back(stackFrame); -} - - -// --------------------------------------------------------------------------- -// Name: osCallStack::setStackFrame -// Description: set a stackframe if the range is valid -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 16/7/2012 -// --------------------------------------------------------------------------- -bool osCallStack::setStackFrame(const osCallStackFrame& stackFrame, int index) -{ - bool retVal = false; - - int amountOfFrames = amountOfStackFrames(); - - if (0 <= index && amountOfFrames > index) - { - _stackFrames[index] = stackFrame; - retVal = true; - } - else if (amountOfFrames == index) - { - addStackFrame(stackFrame); - retVal = true; - } - - return retVal; -} - -// --------------------------------------------------------------------------- -// Name: osCallStack::append -// Description: Appends substack to the top of the current calls stack -// Author: AMD Developer Tools Team -// Date: 28/10/2010 -// --------------------------------------------------------------------------- -void osCallStack::append(const osCallStack& subStack) -{ - int amountOfFramesToAdd = subStack.amountOfStackFrames(); - - for (int i = 0; i < amountOfFramesToAdd; i++) - { - const osCallStackFrame* pCurrentFrame = subStack.stackFrame(i); - GT_IF_WITH_ASSERT(pCurrentFrame != NULL) - { - addStackFrame(*pCurrentFrame); - } - } -} - -// --------------------------------------------------------------------------- -// Name: osCallStack::writeSelfIntoChannel -// Description: Writes self into channel -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 26/10/2008 -// --------------------------------------------------------------------------- -bool osCallStack::writeSelfIntoChannel(osChannel& ipcChannel) const -{ - bool retVal = true; - - gtInt64 numberOfStackFrames = (gtInt64)amountOfStackFrames(); - - // Send the number of frames in the stack. - ipcChannel << numberOfStackFrames; - - // Send the frames: - for (int i = 0; i < numberOfStackFrames; i++) - { - retVal = _stackFrames[i].writeSelfIntoChannel(ipcChannel) && retVal; - } - - // Send the thread id: - ipcChannel << (gtUInt64)_threadId; - - // Send the address space: - ipcChannel << _is64BitCallStack; - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osCallStack::readSelfFromChannel -// Description: Reads self from channel -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 26/10/2008 -// --------------------------------------------------------------------------- -bool osCallStack::readSelfFromChannel(osChannel& ipcChannel) -{ - clearStack(); - gtInt64 numberOfStackFrames = -1; - - // Get the number of frames in the stack. - ipcChannel >> numberOfStackFrames; - bool retVal = (numberOfStackFrames >= 0); - osCallStackFrame currentStackFrame; - - // Get the frames: - for (int i = 0; i < numberOfStackFrames; i++) - { - retVal = currentStackFrame.readSelfFromChannel(ipcChannel) && retVal; - addStackFrame(currentStackFrame); - } - - // Get the thread id: - gtUInt64 threadIdAsUInt64 = (gtUInt64)OS_NO_THREAD_ID; - ipcChannel >> threadIdAsUInt64; - _threadId = (osThreadId)threadIdAsUInt64; - - // Get the address space: - ipcChannel >> _is64BitCallStack; - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osCallStack::clearStack -// Description: Clears the call stack. -// Author: AMD Developer Tools Team -// Date: 11/10/2004 -// --------------------------------------------------------------------------- -void osCallStack::clearStack() -{ - _stackFrames.clear(); -} - diff --git a/external/amdt_os_wrappers/src/common/osCallStackFrame.cpp b/external/amdt_os_wrappers/src/common/osCallStackFrame.cpp deleted file mode 100644 index da4431e..0000000 --- a/external/amdt_os_wrappers/src/common/osCallStackFrame.cpp +++ /dev/null @@ -1,128 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osCallStackFrame.cpp -/// -//===================================================================== - -//------------------------------ osCallStackFrame.cpp ------------------------------ - -// Local: -#include -#include - - -// --------------------------------------------------------------------------- -// Name: osCallStackFrame::osCallStackFrame -// Description: Constructor. -// Author: AMD Developer Tools Team -// Date: 11/10/2004 -// --------------------------------------------------------------------------- -osCallStackFrame::osCallStackFrame() - : _functionStartAddress((osInstructionPointer)NULL), - _moduleStartAddress((osInstructionPointer)NULL), - _instructionCounterAddress((osInstructionPointer)NULL), - _isSpyFunction(false), - _sourceCodeFileLineNumber(-1), - _isKernelSourceCode(false) -{ -} - - -// --------------------------------------------------------------------------- -// Name: osCallStackFrame::~osCallStackFrame -// Description: -// Return Val: -// Author: AMD Developer Tools Team -// Date: 9/10/2011 -// --------------------------------------------------------------------------- -osCallStackFrame::~osCallStackFrame() -{ -} - -// --------------------------------------------------------------------------- -// Name: osCallStackFrame::writeSelfIntoChannel -// Description: Writes self into channel -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 26/10/2008 -// --------------------------------------------------------------------------- -bool osCallStackFrame::writeSelfIntoChannel(osChannel& ipcChannel) const -{ - // Write the module file path - _moduleFilePath.writeSelfIntoChannel(ipcChannel); - - // Write the function start address - ipcChannel << (gtUInt64)_functionStartAddress; - - // Write the module start address - ipcChannel << (gtUInt64)_moduleStartAddress; - - // Write the instruction counter address - ipcChannel << (gtUInt64)_instructionCounterAddress; - - // Write the function name - ipcChannel << _functionName; - - // Write the "is spy function" flag - ipcChannel << _isSpyFunction; - - // Write the source code file path - bool retVal = _sourceCodeFilePath.writeSelfIntoChannel(ipcChannel); - - // Write the source code file line number - ipcChannel << (gtInt32)_sourceCodeFileLineNumber; - - // Write the code type flag: - ipcChannel << _isKernelSourceCode; - - return retVal; -} - -// --------------------------------------------------------------------------- -// Name: osCallStackFrame::readSelfFromChannel -// Description: Reads self from channel -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 26/10/2008 -// --------------------------------------------------------------------------- -bool osCallStackFrame::readSelfFromChannel(osChannel& ipcChannel) -{ - // Read the module file path - _moduleFilePath.readSelfFromChannel(ipcChannel); - - // Read the function start address - gtUInt64 functionStartAddressAsUInt64 = 0; - ipcChannel >> functionStartAddressAsUInt64; - _functionStartAddress = (osInstructionPointer)functionStartAddressAsUInt64; - - // Read the module start address - gtUInt64 moduleStartAddressAsUInt64 = 0; - ipcChannel >> moduleStartAddressAsUInt64; - _moduleStartAddress = (osInstructionPointer)moduleStartAddressAsUInt64; - - // Read the instruction counter address - gtUInt64 instructionCounterAddressAsUInt64 = 0; - ipcChannel >> instructionCounterAddressAsUInt64; - _instructionCounterAddress = (osInstructionPointer)instructionCounterAddressAsUInt64; - - // Read the function name - ipcChannel >> _functionName; - - // Read the "is spy function" flag - ipcChannel >> _isSpyFunction; - - // Read the source code file path - bool retVal = _sourceCodeFilePath.readSelfFromChannel(ipcChannel); - - // Read the source code file line number - gtInt32 sourceCodeFileLineNumberAsInt32 = 0; - ipcChannel >> sourceCodeFileLineNumberAsInt32; - _sourceCodeFileLineNumber = (int)sourceCodeFileLineNumberAsInt32; - - // Read the code type flag: - ipcChannel >> _isKernelSourceCode; - - return retVal; -} diff --git a/external/amdt_os_wrappers/src/common/osCpuid.cpp b/external/amdt_os_wrappers/src/common/osCpuid.cpp deleted file mode 100644 index 7f51d20..0000000 --- a/external/amdt_os_wrappers/src/common/osCpuid.cpp +++ /dev/null @@ -1,345 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osCpuid.cpp -/// -//===================================================================== - -// Local: -#include - -#if AMDT_BUILD_TARGET == AMDT_WINDOWS_OS -//The __cpuid function is defined in intrin.h -#include - -typedef gtInt32 osCpuidParam_t; -#else -#if AMDT_BUILD_TARGET == AMDT_LINUX_OS -/// \def __cpuid Defines the __cpuid function as a macro for Linux -#if AMDT_ADDRESS_SPACE_TYPE == AMDT_64_BIT_ADDRESS_SPACE -#define __cpuid(info, funType)\ - asm("cpuid": "=a" (info[EAX]), "=b"(info[EBX]), "=c" (info[ECX]), "=d" (info[EDX]): "a" (funType)); -#else -#include -#undef __cpuid -#define __cpuid(info, funType)\ - __get_cpuid(funType, &info[EAX], &info[EBX], &info[ECX], &info[EDX]); -#endif -#else -#error "Unknown AMDT_BUILD_TARGET" -#endif -typedef gtUInt32 osCpuidParam_t; -#endif - -// Hypervisor vendor id strings -#define VENDOR_ID_VMWARE "VMwareVMware" -#define VENDOR_ID_MICROSOFT "Microsoft Hv" -#define VENDOR_ID_XEN "XenVMMXenVMM" -#define VENDOR_ID_KVM "KVMKVMKVM" - -// --------------------------------------------------------------------------- -// Name: osCpuid::osCpuid -// Description: Constructor. Uses different cpuid functions for the current core -// Author: AMD Developer Tools Team -// Date: 4/24/2012 -// --------------------------------------------------------------------------- -osCpuid::osCpuid() : m_isCpuAmd(false), m_hasLocalApic(false), m_isIbsAvailable(false), - m_isIbsDispatchAvailable(false), m_isIbsBrTgtAddrAvailable(false), m_isIbsExtCountAvailable(false), m_hasHypervisor(false), - m_isIbsFetchCtlExtdAvailable(false), m_isIbsOpData4Available(false), m_family(FAMILY_UNKNOWN), m_model(0), m_stepping(0), - m_apicId(0), m_core(0), m_node(0), m_hypervisorVendorId(HV_VENDOR_UNKNOWN), m_isMshvRootPartition(false) -{ - //cpuid returns 4 register values: eax, ebx, ecx, and edx as dwords - osCpuidParam_t info[MAX_CPUID_REGS] = {}; - osCpuidParam_t maxExtCpuidFn; - osCpuidParam_t cpuidFn; - char vendorId[13]; - - //vendor id and highest standard cpuid function available - cpuidFn = CPUID_FN_VENDOR_ID; - __cpuid(info, cpuidFn); - - //vendor string is made of three returned dwords as ascii characters - - memcpy(vendorId, &(info[EBX]), 4); - memcpy((vendorId + 4), &(info[EDX]), 4); - memcpy((vendorId + 8), &(info[ECX]), 4); - vendorId[12] = '\0'; - m_isCpuAmd = (0 == strcmp(vendorId, "AuthenticAMD")); - - if (info[EAX] > 0) - { - //If there are more cpuid functions (expected for modern cpus) - - cpuidFn = CPUID_FN_BASIC_FEATURES; - __cpuid(info, cpuidFn); - - m_hasHypervisor = (0 != (info[ECX] & CPUID_MASK_HYPERVISOR)); - - //Use a bitfield to easily separate the different values - FamilyModelSteppingUnion famMod; - famMod.eax = info[EAX]; - m_family = famMod.info.family; - m_model = famMod.info.model; - m_stepping = famMod.info.stepping; - - if (FAMILY_EXTENDED == m_family) - { - m_family += famMod.info.extFamily; - } - - //From the Bkdg: If ExtendedModel[3:0]=Eh and BaseModel[3:0]=8h, then Model[7:0] = E8h - m_model |= (famMod.info.extModel << 4); - - m_hasLocalApic = (0 != (info[EDX] & CPUID_MASK_APIC)); - - if (m_hasLocalApic) - { - // Bits 31:24 (LocalApicId) represent the CPU core - // within a processor and other bits represent the processor ID. - m_apicId = (info[EBX] >> 24) & 0xff; - } - - //Check the maximum extended cpuid functionality - cpuidFn = CPUID_FN_MAX_EXT_FN; - __cpuid(info, cpuidFn); - maxExtCpuidFn = info[EAX]; - - if ((m_hasLocalApic) && (maxExtCpuidFn >= CPUID_FN_SIZE_ID)) - { - int apicIdCoreIdSize = 0; - unsigned int mask = 1; - unsigned int numbits = 1; - - cpuidFn = CPUID_FN_SIZE_ID; - __cpuid(info, cpuidFn); - - // Bits 15:12 (ApicIdCoreIdSiz): The number of bits in the initial APIC20[ApicId] - // value that indicate core ID within a processor - apicIdCoreIdSize = (info[ECX] >> 12) & 0xF; - - if (apicIdCoreIdSize) - { - unsigned int j; - numbits = apicIdCoreIdSize; - - for (j = apicIdCoreIdSize; j > 1; j--) - { - mask = (mask << 1) + 1; - } - } - - m_core = (m_apicId & ~mask) >> numbits; - } - - if ((m_hasLocalApic) && (maxExtCpuidFn >= CPUID_FN_NODE_ID)) - { - cpuidFn = CPUID_FN_NODE_ID; - __cpuid(info, cpuidFn); - // Bits 7:0 (NodeId) - m_node = info[ECX] & 0x0F; - } - else - { - m_node = m_core; - } - - if (maxExtCpuidFn >= CPUID_FN_EXT_FEATURES) - { - //Read the cpuid extended feature bits - cpuidFn = CPUID_FN_EXT_FEATURES; - __cpuid(info, cpuidFn); - - //If IBS sampling is available - m_isIbsAvailable = (0 != (info[ECX] & CPUID_MASK_IBS_AVAIL)); - - if ((m_isIbsAvailable) && (maxExtCpuidFn >= CPUID_FN_IBS_FEATURES)) - { - //Instruction Based Sampling Identifiers - cpuidFn = CPUID_FN_IBS_FEATURES; - __cpuid(info, cpuidFn); - - //If dispatch ops are available for IBS - m_isIbsDispatchAvailable = (0 != (info[EAX] & CPUID_MASK_IBS_OP_CNT)); - - // This bit (BrnTrgt: branch target address reporting supported) will be 1 for - // GH and beyond - m_isIbsBrTgtAddrAvailable = (0 != (info[EAX] & CPUID_MASK_IBS_BR_TGT)); - - // This bit (OpCntExt: branch target address reporting supported) will be 1 for - // Llano and beyond - m_isIbsExtCountAvailable = (0 != (info[EAX] & CPUID_MASK_IBS_EXT_CNT)); - - //If Fetch Control Extended available for IBS - m_isIbsFetchCtlExtdAvailable = (0 != (info[EAX] & CPUID_MASK_IBS_FETCH_CTL_EXTD)); - - //If Op Data 4 available for IBS - m_isIbsOpData4Available = (0 != (info[EAX] & CPUID_MASK_IBS_OP_DATA4)); - } - } - - // save hypervisor vendor id - if (true == m_hasHypervisor) - { - gtByte vendor[12]; - - cpuidFn = CPUID_FN_HYPERVISOR_ID; - __cpuid(info, cpuidFn); - memcpy(vendor, &(info[EBX]), 4); - memcpy(vendor + 4, &(info[ECX]), 4); - memcpy(vendor + 8, &(info[EDX]), 4); - - if (0 == memcmp(vendor, VENDOR_ID_VMWARE, 12)) - { - m_hypervisorVendorId = HV_VENDOR_VMWARE; - } - else if (0 == memcmp(vendor, VENDOR_ID_MICROSOFT, 12)) - { - m_hypervisorVendorId = HV_VENDOR_MICROSOFT; - - cpuidFn = CPUID_FN_HYPERVISOR_FEATURES; - __cpuid(info, cpuidFn); - m_isMshvRootPartition = (info[EBX] & 1) ? true : false; - } - else if (0 == memcmp(vendor, VENDOR_ID_XEN, 12)) - { - m_hypervisorVendorId = HV_VENDOR_XENVMM; - } - else if (0 == memcmp(vendor, VENDOR_ID_KVM, 9)) - { - m_hypervisorVendorId = HV_VENDOR_KVM; - } - } - } -} - -osCpuid::~osCpuid() -{ -} - -bool osCpuid::isCpuAmd() -{ - return m_isCpuAmd; -} -bool osCpuid::hasLocalApic() -{ - return m_hasLocalApic; -} -bool osCpuid::isIbsAvailable() -{ - return m_isIbsAvailable; -} -bool osCpuid::isIbsOpsDispatchAvailable() -{ - return m_isIbsDispatchAvailable; -} -bool osCpuid::isIbsOpsBrTgtAddrAvailable() -{ - return m_isIbsBrTgtAddrAvailable; -} -bool osCpuid::isIbsExtCountAvailable() -{ - return m_isIbsExtCountAvailable; -} -bool osCpuid::isIbsFetchCtlExtdAvailable() -{ - return m_isIbsFetchCtlExtdAvailable; -} -bool osCpuid::isIbsOpData4Available() -{ - return m_isIbsOpData4Available; -} -bool osCpuid::hasHypervisor() -{ - return m_hasHypervisor; -} -gtUInt32 osCpuid::getFamily() -{ - return m_family; -} -gtUInt32 osCpuid::getModel() -{ - return m_model; -} -gtUInt32 osCpuid::getStepping() -{ - return m_stepping; -} -gtUInt32 osCpuid::getApicId() -{ - return m_apicId; -} -gtUInt32 osCpuid::getcore() -{ - return m_core; -} -gtUInt32 osCpuid::getNodeId() -{ - return m_node; -} -bool osCpuid::isSupportedHypervisor() -{ - bool retVal = false; - - // In future, if we plan to support more hypervisors - // then, we need to update the below if check - if (HV_VENDOR_VMWARE == m_hypervisorVendorId - || HV_VENDOR_MICROSOFT == m_hypervisorVendorId - || HV_VENDOR_KVM == m_hypervisorVendorId - || HV_VENDOR_XENVMM == m_hypervisorVendorId) - { - retVal = true; - } - - return retVal; -} -gtUInt32 osCpuid::getHypervisorVendorId() -{ - return m_hypervisorVendorId; -} -bool osCpuid::getHypervisorVendorString(wchar_t* str, gtUInt32 length) -{ - bool retVal = true; - - // Expect a buffer of at least 32 bytes - if (nullptr == str || length < 32) - { - retVal = false; - } - else - { - switch (m_hypervisorVendorId) - { - case HV_VENDOR_VMWARE: - wcscpy(str, L"VMware"); - break; - - case HV_VENDOR_MICROSOFT: - wcscpy(str, L"Microsoft Hyper-V"); - break; - - case HV_VENDOR_XENVMM: - wcscpy(str, L"Xen VMM"); - break; - - case HV_VENDOR_KVM: - wcscpy(str, L"Linux KVM"); - break; - - case HV_VENDOR_UNKNOWN: - wcscpy(str, L"Unknown"); - break; - - default: - wcscpy(str, L"???"); - retVal = false; - break; - } - } - - return retVal; -} -bool osCpuid::isHypervisorRootPartition() -{ - return m_isMshvRootPartition; -} diff --git a/external/amdt_os_wrappers/src/common/osDirectorySerializer.cpp b/external/amdt_os_wrappers/src/common/osDirectorySerializer.cpp deleted file mode 100644 index 1aa2106..0000000 --- a/external/amdt_os_wrappers/src/common/osDirectorySerializer.cpp +++ /dev/null @@ -1,281 +0,0 @@ -//------------------------------ osDirectorySerializer.cpp ------------------------------ - -#define MINIZ_HEADER_FILE_ONLY -#include -#include - - -// Infra: -#include -#include - - - -// --------------------------------------------------------------------------- -// Name: osDirectorySerializer::osDirectorySerializer -// Description: Ctor -// Author: -// Date: -// --------------------------------------------------------------------------- -osDirectorySerializer::osDirectorySerializer() -{ -} - - -// --------------------------------------------------------------------------- -// Name: osDirectorySerializer::~osDirectorySerializer -// Description: Dtor -// Author: -// Date: -// --------------------------------------------------------------------------- -osDirectorySerializer::~osDirectorySerializer() -{ - -} - -bool osDirectorySerializer::CompressDir(const osDirectory& sessionDir, const gtString& outFileFullPath) -{ - m_outFileFullPath = outFileFullPath; - mz_zip_archive zip; - memset(&zip, 0, sizeof(zip)); - bool rc = true; - - if ((rand() % 100) >= 10) - { - zip.m_file_offset_alignment = 1 << (rand() & 15); - } - - if (mz_zip_writer_init_file(&zip, m_outFileFullPath.asASCIICharArray(), 65537) == MZ_FALSE) - { - rc = false; - } - - if (rc == true) - { - rc = AddDirToZip(sessionDir, L"", &zip); - mz_bool finalized = mz_zip_writer_finalize_archive(&zip); - mz_zip_writer_end(&zip); - - if (finalized == MZ_FALSE) - { - remove(m_outFileFullPath.asASCIICharArray()); - } - } - - return rc; -} - - - -bool osDirectorySerializer::AddDirToZip(const osDirectory& sessionDir, const gtString& relativePath, void* pZip) -{ - bool success = AddFilesToZip(sessionDir, relativePath, pZip); - - gtList subDirectoriesPaths; - success = sessionDir.getSubDirectoriesPaths(osDirectory::SORT_BY_DATE_ASCENDING, subDirectoriesPaths); // subdirectories order set to match session items order as done in (gpTreeHandler::BuildFrameAnalysisSessionTree) - - if (success) - { - gtList::const_iterator iter = subDirectoriesPaths.begin(); - gtList::const_iterator iterEnd = subDirectoriesPaths.end(); - - for (; iter != iterEnd; iter++) - { - osDirectory osDir(*iter); - gtString dirName = osDir.directoryPath().fileDirectoryAsString(); - int startPos = dirName.findLastOf(osFilePath::osPathSeparator) + 1; - dirName.getSubString(startPos, (dirName.length() - startPos), dirName); - gtString relPathAddition = relativePath; - relPathAddition.append(dirName); - AddDirToZip(*iter, relPathAddition, pZip); - } - } - - return success; -} - -bool osDirectorySerializer::AddFilesToZip(const osDirectory& sessionDir, const gtString& relativePath, void* pZip) -{ - gtList filePathsList; - - bool success = sessionDir.getContainedFilePaths(L"*.*", osDirectory::SORT_BY_NAME_ASCENDING, filePathsList); - - if (success) - { - gtList::const_iterator iter = filePathsList.begin(); - gtList::const_iterator iterEnd = filePathsList.end(); - - for (; iter != iterEnd; iter++) - { - osFilePath osFile(*iter); - gtString displayName; - osFile.getFileNameAndExtension(displayName); - - - gtString fullName = ((*iter).fileDirectoryAsString()); - fullName.append(osFilePath::osPathSeparator); - fullName.append(displayName); - - if (relativePath.isEmpty() == false) - { - displayName.prepend(L"/"); - displayName.prepend(relativePath); - } - - success &= (mz_zip_writer_add_file((mz_zip_archive*)pZip, displayName.asASCIICharArray(), fullName.asASCIICharArray(), NULL, 0, 9) == MZ_TRUE); - } - } - - return success; - -} - -bool osDirectorySerializer::DecompressDir(const gtString& compressedFile, const gtString& dstFolderPath, gtString& archiveRootDir, bool createRootDir) -{ - bool rc = false; - m_outFileFullPath = dstFolderPath; - mz_zip_archive zip; - memset(&zip, 0, sizeof(zip)); - rc = (mz_zip_reader_init_file(&zip, compressedFile.asASCIICharArray(), 0) == MZ_TRUE); - - if (rc == true) - { - // users may chose to create a root dir INSIDE dstFolderPath - if (createRootDir) - { - rc = CreateOutputDir(archiveRootDir, compressedFile); - } - else - { - archiveRootDir = dstFolderPath; - osDirectory newRootDir(archiveRootDir); - - if (newRootDir.exists() == false) - { - rc = newRootDir.create(); - } - } - - if (rc == true) - { - gtUInt32 numFiles = mz_zip_reader_get_num_files(&zip); - - for (gtUInt32 i = 0; i < numFiles && rc ; i++) - { - mz_zip_archive_file_stat stat; - rc = (mz_zip_reader_file_stat(&zip, i, &stat) == MZ_TRUE); - - if (rc == true) - { - gtString innerFileFullPath; - ComposeItemFullPath(archiveRootDir, stat.m_filename, innerFileFullPath); - - if (mz_zip_reader_is_file_a_directory(&zip, i) == MZ_TRUE) - { - // written but not tested, wasn't relevant - osDirectory newDir(innerFileFullPath); - rc = newDir.create(); - } - else - { - rc = ValidateFileDirectoryExists(innerFileFullPath); - - if (rc) - { - rc = (mz_zip_reader_extract_to_file(&zip, i, innerFileFullPath.asASCIICharArray(), 0) == MZ_TRUE); - } - } - } - } - } - - // finalize - mz_zip_reader_end(&zip); - } - - return rc; -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Decompression - -bool osDirectorySerializer::CreateOutputDir(gtString& dstFileFullPath, const gtString& compressedFile) -{ - bool success = true; - - // create a root folder with the archive's filename output dir if needed - // (i.e.: if the compressed file name is "archive.zip" create a folder named "archive" in m_outFileFullPath ) - dstFileFullPath = m_outFileFullPath; - dstFileFullPath.replace(L'\\', L'/'); - int pos = compressedFile.reverseFind(L'/'); - - if (-1 != pos) - { - gtString newDirName; - compressedFile.getSubString(pos, compressedFile.length() - 1, newDirName); - dstFileFullPath.append(newDirName); - } - - TrimFileExtension(dstFileFullPath); - - osDirectory newRootDir(dstFileFullPath); - - if (newRootDir.exists() == false) - { - success = newRootDir.create(); - } - - return success; -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Compression - -/////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// helper path manipulation methods -void osDirectorySerializer::TrimFileExtension(gtString& dstFileFullPath) -{ - int pos = dstFileFullPath.reverseFind(L'.'); - - if (-1 != pos) - { - dstFileFullPath.truncate(0, pos - 1); - } -} - -bool osDirectorySerializer::ValidateFileDirectoryExists(const gtString& fileFullPath) -{ - bool rc = true; - osFilePath filePath(fileFullPath); - osDirectory newRootDir; - filePath.getFileDirectory(newRootDir); - - if (newRootDir.exists() == false) - { - rc = newRootDir.create(); - } - - return rc; -} - - -void osDirectorySerializer::ComposeItemFullPath(gtString& archiveRootDir, const char* relFileName, gtString& outItemName) -{ - outItemName = archiveRootDir; - outItemName.append(L'/'); - gtString tmpStr; - tmpStr.fromASCIIString(relFileName); - outItemName.append(tmpStr); -} - -void osDirectorySerializer::ComposeItemRelPath(const osDirectory& osDir, const gtString& relativePath, gtString& relPathAddition) -{ - gtString dirName = osDir.directoryPath().fileDirectoryAsString(); - dirName.replace(L'\\', L'/'); - - int startPos = dirName.findLastOf(L"/") + 1; - dirName.getSubString(startPos, (dirName.length() - startPos), dirName); - relPathAddition = relativePath; - relPathAddition.append(dirName); -} - diff --git a/external/amdt_os_wrappers/src/common/osExceptionReason.cpp b/external/amdt_os_wrappers/src/common/osExceptionReason.cpp deleted file mode 100644 index c78977d..0000000 --- a/external/amdt_os_wrappers/src/common/osExceptionReason.cpp +++ /dev/null @@ -1,661 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osExceptionReason.cpp -/// -//===================================================================== - -//------------------------------ osExceptionReason.cpp ------------------------------ - -// Infra: -#include -#include - -// Windows: -#if AMDT_BUILD_TARGET == AMDT_WINDOWS_OS - #define WIN32_LEAN_AND_MEAN 1 - #include -#endif - -// Local: -#include - - -// Maps exception reason to a string: -static const wchar_t* stat_osExceptionReasonToString[OS_AMOUNT_OF_EXCEPTION_REASONS] = -{ - L"Unknown", - L"Standalone Thread stopped", - L"Insufficient Memory", - L"Access violation", - L"Array Bounds Exceeded", - L"Data Type Misalignment", - L"FLT_DENORMAL_OPERAND", - L"FLT_DIVIDE_BY_ZERO", - L"FLT_INEXACT_RESULT", - L"FLT_INVALID_OPERATION", - L"FLT_OVERFLOW", - L"FLT_STACK_CHECK", - L"FLT_UNDERFLOW", - L"ILLEGAL_INSTRUCTION", - L"IN_PAGE_ERROR", - L"INT_DIVIDE_BY_ZERO", - L"INT_OVERFLOW", - L"INVALID_DISPOSITION", - L"NONCONTINUABLE_EXCEPTION", - L"PRIV_INSTRUCTION", - L"SINGLE_STEP", - L"STACK_OVERFLOW", - L"DLL_NOT_FOUND", - L"SIGHUP", - L"SIGINT", - L"SIGQUIT", - L"SIGILL", - L"SIGTRAP", - L"SIGABRT", - L"SIGBUS", - L"SIGFPE", - L"SIGKILL", - L"SIGSEGV", - L"SIGPIPE", - L"SIGALRM", - L"SIGTERM", - L"SIGUSR1", - L"SIGUSR2", - L"SIGEMT", - L"SIGSYS", - L"SIGURG", - L"SIGSTOP", - L"SIGTSTP", - L"SIGCONT", - L"SIGCHLD", - L"SIGTTIN", - L"SIGTTOU", - L"SIGIO", - L"SIGXCPU", - L"SIGXFSZ", - L"SIGVTALRM", - L"SIGPROF", - L"SIGWINCH", - L"SIGLOST", - L"SIGPWR", - L"SIGPOLL", - L"SIGWIND", - L"SIGPHONE", - L"SIGWAITING", - L"SIGLWP", - L"SIGDANGER", - L"SIGGRANT", - L"SIGRETRACT", - L"SIGMSG", - L"SIGSOUND", - L"SIGSAK", - L"SIGPRIO", - L"SIGCANCEL", - L"EXC_BAD_ACCESS", - L"EXC_BAD_INSTRUCTION", - L"EXC_ARITHMETIC", - L"EXC_EMULATION", - L"EXC_SOFTWARE", - L"EXC_BREAKPOINT", - L"SIG32", - L"SIG33", - L"SIG34", - L"SIG35", - L"SIG36", - L"SIG37", - L"SIG38", - L"SIG39", - L"SIG40", - L"SIG41", - L"SIG42", - L"SIG43", - L"SIG44", - L"SIG45", - L"SIG46", - L"SIG47", - L"SIG48", - L"SIG49", - L"SIG50", - L"SIG51", - L"SIG52", - L"SIG53", - L"SIG54", - L"SIG55", - L"SIG56", - L"SIG57", - L"SIG58", - L"SIG59", - L"SIG60", - L"SIG61", - L"SIG62", - L"SIG63", - L"SIG64", - L"SIG65", - L"SIG66", - L"SIG67", - L"SIG68", - L"SIG69", - L"SIG70", - L"SIG71", - L"SIG72", - L"SIG73", - L"SIG74", - L"SIG75", - L"SIG76", - L"SIG77", - L"SIG78", - L"SIG79", - L"SIG80", - L"SIG81", - L"SIG82", - L"SIG83", - L"SIG84", - L"SIG85", - L"SIG86", - L"SIG87", - L"SIG88", - L"SIG89", - L"SIG90", - L"SIG91", - L"SIG92", - L"SIG93", - L"SIG94", - L"SIG95", - L"SIG96", - L"SIG97", - L"SIG98", - L"SIG99", - L"SIG100", - L"SIG101", - L"SIG102", - L"SIG103", - L"SIG104", - L"SIG105", - L"SIG106", - L"SIG107", - L"SIG108", - L"SIG109", - L"SIG110", - L"SIG111", - L"SIG112", - L"SIG113", - L"SIG114", - L"SIG115", - L"SIG116", - L"SIG117", - L"SIG118", - L"SIG119", - L"SIG120", - L"SIG121", - L"SIG122", - L"SIG123", - L"SIG124", - L"SIG125", - L"SIG126", - L"SIG127", - L"SIGINFO" -}; - -static const wchar_t* stat_osExceptionReasonDescriptionToString[OS_AMOUNT_OF_EXCEPTION_REASONS] = -{ - // The terminology is: - // - Windows - exception - // - Linux - signal -#if AMDT_BUILD_TARGET == AMDT_WINDOWS_OS - L"An unknown exception was encountered.", -#elif AMDT_BUILD_TARGET == AMDT_LINUX_OS - L"An unknown signal was encountered.", -#else -#error Unknown target! -#endif - - L"A standalone thread has stopped running" - L"Insufficient memory (used in cases an exception like std::bad_alloc is being thrown)" - L"The thread tried to read from or write to a virtual address to which it does not have access.", - L"The thread tried to access an array element that is out of bounds and the underlying hardware supports bounds checking.", - L"The thread tried to read or write data that is misaligned on hardware that does not provide alignment. For example, 16-bit values must be aligned on 2-byte boundaries; 32-bit values on 4-byte boundaries, and so on.", - L"One of the operands in a floating-point operation is denormal. A denormal value is one that is too small to represent as a standard floating-point value.", - L"The thread tried to divide a floating-point value by a floating-point divisor of zero.", - L"The result of a floating-point operation cannot be represented exactly as a decimal fraction.", - L"This exception represents any floating-point exception not included in this list.", - L"The exponent of a floating-point operation is greater than the magnitude allowed by the corresponding type.", - L"The stack overflowed or underflowed as the result of a floating-point operation.", - L"The exponent of a floating-point operation is less than the magnitude allowed by the corresponding type.", - L"The thread tried to execute an invalid instruction.", - L"The thread tried to access a page that was not present, and the system was unable to load the page. For example, this exception might occur if a network connection is lost while running a program over the network.", - L"The thread tried to divide an integer value by an integer divisor of zero.", - L"The result of an integer operation caused a carry out of the most significant bit of the result.", - L"An exception handler returned an invalid disposition to the exception dispatcher. Programmers using a high-level language such as C should never encounter this exception.", - L"The thread tried to continue execution after a noncontinuable exception occurred.", - L"The thread tried to execute an instruction whose operation is not allowed in the current machine mode.", - L"A trace trap or other single-instruction mechanism signaled that one instruction has been executed.", - L"The thread used up its stack.", - L"A required dll file was not found.", - L"Hangup detected on controlling terminal or death of controlling process.", - L"Interrupt from keyboard.", - L"Quit from keyboard.", - L"Illegal Instruction.", - L"Trace/breakpoint trap.", - L"Abort signal from abort(3).", - L"Bus error.", - L"Floating point exception.", - L"Kill signal.", - L"Invalid memory reference.", - L"Broken pipe: write to pipe with no readers.", - L"Timer signal from alarm(2).", - L"Termination signal.", - L"User-defined signal 1.", - L"User-defined signal 2.", - L"Emulation trap", - L"Bad system call", - L"Urgent I/O condition", - L"Stopped (signal)", - L"Stopped (user)", - L"Continued", - L"Child status changed", - L"Stopped (tty input)", - L"Stopped (tty output)", - L"I/O possible", - L"CPU time limit exceeded", - L"File size limit exceeded", - L"Virtual timer expired", - L"Profiling timer expired", - L"Window size changed", - L"Resource lost", - L"Power fail/restart", - L"Pollable event occurred", - L"SIGWIND", - L"SIGPHONE", - L"Process's LWPs are blocked", - L"Signal LWP", - L"Swap space dangerously low", - L"Monitor mode granted", - L"Need to relinquish monitor mode", - L"Monitor mode data available", - L"Sound completed", - L"Secure attention", - L"SIGPRIO", - L"LWP internal signal", - L"Could not access memory", - L"Illegal instruction/operand", - L"Arithmetic exception", - L"Emulation instruction", - L"Software generated exception", - L"Breakpoint", - L"Real-time event 32", - L"Real-time event 33", - L"Real-time event 34", - L"Real-time event 35", - L"Real-time event 36", - L"Real-time event 37", - L"Real-time event 38", - L"Real-time event 39", - L"Real-time event 40", - L"Real-time event 41", - L"Real-time event 42", - L"Real-time event 43", - L"Real-time event 44", - L"Real-time event 45", - L"Real-time event 46", - L"Real-time event 47", - L"Real-time event 48", - L"Real-time event 49", - L"Real-time event 50", - L"Real-time event 51", - L"Real-time event 52", - L"Real-time event 53", - L"Real-time event 54", - L"Real-time event 55", - L"Real-time event 56", - L"Real-time event 57", - L"Real-time event 58", - L"Real-time event 59", - L"Real-time event 60", - L"Real-time event 61", - L"Real-time event 62", - L"Real-time event 63", - L"Real-time event 64", - L"Real-time event 65", - L"Real-time event 66", - L"Real-time event 67", - L"Real-time event 68", - L"Real-time event 69", - L"Real-time event 70", - L"Real-time event 71", - L"Real-time event 72", - L"Real-time event 73", - L"Real-time event 74", - L"Real-time event 75", - L"Real-time event 76", - L"Real-time event 77", - L"Real-time event 78", - L"Real-time event 79", - L"Real-time event 80", - L"Real-time event 81", - L"Real-time event 82", - L"Real-time event 83", - L"Real-time event 84", - L"Real-time event 85", - L"Real-time event 86", - L"Real-time event 87", - L"Real-time event 88", - L"Real-time event 89", - L"Real-time event 90", - L"Real-time event 91", - L"Real-time event 92", - L"Real-time event 93", - L"Real-time event 94", - L"Real-time event 95", - L"Real-time event 96", - L"Real-time event 97", - L"Real-time event 98", - L"Real-time event 99", - L"Real-time event 100", - L"Real-time event 101", - L"Real-time event 102", - L"Real-time event 103", - L"Real-time event 104", - L"Real-time event 105", - L"Real-time event 106", - L"Real-time event 107", - L"Real-time event 108", - L"Real-time event 109", - L"Real-time event 110", - L"Real-time event 111", - L"Real-time event 112", - L"Real-time event 113", - L"Real-time event 114", - L"Real-time event 115", - L"Real-time event 116", - L"Real-time event 117", - L"Real-time event 118", - L"Real-time event 119", - L"Real-time event 120", - L"Real-time event 121", - L"Real-time event 122", - L"Real-time event 123", - L"Real-time event 124", - L"Real-time event 125", - L"Real-time event 126", - L"Real-time event 127", - L"Information request" -}; - - -// --------------------------------------------------------------------------- -// Name: osExceptionReasonToString -// Description: Returns a Human readable string instead of reason number. -// Author: AMD Developer Tools Team -// Date: 7/7/2004 -// --------------------------------------------------------------------------- -void osExceptionReasonToString(osExceptionReason exceptionReason, gtString& reasonAsString) -{ - reasonAsString = stat_osExceptionReasonToString[exceptionReason]; -} - - -// --------------------------------------------------------------------------- -// Name: osExceptionReasonToExplanationString -// Description: Returns a Human readable explanation to the exception -// Author: AMD Developer Tools Team -// Date: 7/7/2004 -// --------------------------------------------------------------------------- -void osExceptionReasonToExplanationString(osExceptionReason exceptionReason, gtString& reasonAsExplanationString) -{ - reasonAsExplanationString = stat_osExceptionReasonDescriptionToString[exceptionReason]; -} - - -// Windows only code: -#if AMDT_BUILD_TARGET == AMDT_WINDOWS_OS - -// --------------------------------------------------------------------------- -// Name: osExceptionCodeToExceptionReason -// Description: Translates win32 exception codes to osExceptionReason -// values. -// Author: AMD Developer Tools Team -// Date: 20/12/2003 -// --------------------------------------------------------------------------- -osExceptionReason osExceptionCodeToExceptionReason(osExceptionCode exceptionCode) -{ - osExceptionReason retVal = OS_UNKNOWN_EXCEPTION_REASON; - - switch (exceptionCode) - { - case EXCEPTION_ACCESS_VIOLATION: - retVal = OS_ACCESS_VIOLATION; - break; - - case EXCEPTION_ARRAY_BOUNDS_EXCEEDED: - retVal = OS_ARRAY_BOUNDS_EXCEEDED; - break; - - case EXCEPTION_BREAKPOINT: - // We should not reach this code, since we handle exceptions as a - // standalone event !!! - GT_ASSERT(0); - retVal = OS_UNKNOWN_EXCEPTION_REASON; - break; - - case EXCEPTION_DATATYPE_MISALIGNMENT: - retVal = OS_DATATYPE_MISALIGNMENT; - break; - - case EXCEPTION_FLT_DENORMAL_OPERAND: - retVal = OS_FLT_DENORMAL_OPERAND; - break; - - case EXCEPTION_FLT_DIVIDE_BY_ZERO: - retVal = OS_FLT_DIVIDE_BY_ZERO; - break; - - case EXCEPTION_FLT_INEXACT_RESULT: - retVal = OS_FLT_INEXACT_RESULT; - break; - - case EXCEPTION_FLT_INVALID_OPERATION: - retVal = OS_FLT_INVALID_OPERATION; - break; - - case EXCEPTION_FLT_OVERFLOW: - retVal = OS_FLT_OVERFLOW; - break; - - case EXCEPTION_FLT_STACK_CHECK: - retVal = OS_FLT_STACK_CHECK; - break; - - case EXCEPTION_FLT_UNDERFLOW: - retVal = OS_FLT_UNDERFLOW; - break; - - case EXCEPTION_ILLEGAL_INSTRUCTION: - retVal = OS_ILLEGAL_INSTRUCTION; - break; - - case EXCEPTION_IN_PAGE_ERROR: - retVal = OS_IN_PAGE_ERROR; - break; - - case EXCEPTION_INT_DIVIDE_BY_ZERO: - retVal = OS_INT_DIVIDE_BY_ZERO; - break; - - case EXCEPTION_INT_OVERFLOW: - retVal = OS_INT_OVERFLOW; - break; - - case EXCEPTION_INVALID_DISPOSITION: - retVal = OS_INVALID_DISPOSITION; - break; - - case EXCEPTION_NONCONTINUABLE_EXCEPTION: - retVal = OS_NONCONTINUABLE_EXCEPTION; - break; - - case EXCEPTION_PRIV_INSTRUCTION: - retVal = OS_PRIV_INSTRUCTION; - break; - - case EXCEPTION_SINGLE_STEP: - retVal = OS_SINGLE_STEP; - break; - - case EXCEPTION_STACK_OVERFLOW: - retVal = OS_STACK_OVERFLOW; - break; - - case 0xC0000135L: // STATUS_DLL_NOT_FOUND, defined in ntstatus.h - // Uri, 1/2/09: we do not include htstatus.h as it causes a lot of redefinitions. - retVal = OS_DLL_NOT_FOUND; - break; - - default: - // We set the default ret val at the beginning of this function. - break; - } - - return retVal; -} - -// --------------------------------------------------------------------------- -// Name: osExceptionReasonToExceptionCode -// Description: Translates osExceptionReason values to win32 exception codes. -// Author: AMD Developer Tools Team -// Date: 10/10/2010 -// --------------------------------------------------------------------------- -osExceptionCode osExceptionReasonToExceptionCode(osExceptionReason exceptionReason) -{ - osExceptionCode retVal = 0; - - switch (exceptionReason) - { - case OS_ACCESS_VIOLATION: - retVal = EXCEPTION_ACCESS_VIOLATION; - break; - - case OS_ARRAY_BOUNDS_EXCEEDED: - retVal = EXCEPTION_ARRAY_BOUNDS_EXCEEDED; - break; - - case OS_DATATYPE_MISALIGNMENT: - retVal = EXCEPTION_DATATYPE_MISALIGNMENT; - break; - - case OS_FLT_DENORMAL_OPERAND: - retVal = EXCEPTION_FLT_DENORMAL_OPERAND; - break; - - case OS_FLT_DIVIDE_BY_ZERO: - retVal = EXCEPTION_FLT_DIVIDE_BY_ZERO; - break; - - case OS_FLT_INEXACT_RESULT: - retVal = EXCEPTION_FLT_INEXACT_RESULT; - break; - - case OS_FLT_INVALID_OPERATION: - retVal = EXCEPTION_FLT_INVALID_OPERATION; - break; - - case OS_FLT_OVERFLOW: - retVal = EXCEPTION_FLT_OVERFLOW; - break; - - case OS_FLT_STACK_CHECK: - retVal = EXCEPTION_FLT_STACK_CHECK; - break; - - case OS_FLT_UNDERFLOW: - retVal = EXCEPTION_FLT_UNDERFLOW; - break; - - case OS_ILLEGAL_INSTRUCTION: - retVal = EXCEPTION_ILLEGAL_INSTRUCTION; - break; - - case OS_IN_PAGE_ERROR: - retVal = EXCEPTION_IN_PAGE_ERROR; - break; - - case OS_INT_DIVIDE_BY_ZERO: - retVal = EXCEPTION_INT_DIVIDE_BY_ZERO; - break; - - case OS_INT_OVERFLOW: - retVal = EXCEPTION_INT_OVERFLOW; - break; - - case OS_INVALID_DISPOSITION: - retVal = EXCEPTION_INVALID_DISPOSITION; - break; - - case OS_NONCONTINUABLE_EXCEPTION: - retVal = EXCEPTION_NONCONTINUABLE_EXCEPTION; - break; - - case OS_PRIV_INSTRUCTION: - retVal = EXCEPTION_PRIV_INSTRUCTION; - break; - - case OS_SINGLE_STEP: - retVal = EXCEPTION_SINGLE_STEP; - break; - - case OS_STACK_OVERFLOW: - retVal = EXCEPTION_STACK_OVERFLOW; - break; - - case OS_DLL_NOT_FOUND: - // Uri, 1/2/09: we do not include htstatus.h as it causes a lot of redefinitions. - retVal = 0xC0000135L; // STATUS_DLL_NOT_FOUND, defined in ntstatus.h - break; - - case OS_UNKNOWN_EXCEPTION_REASON: - default: - // We set the default retVal at the beginning of this function. - // We should also not get here on Windows: - GT_ASSERT(false); - break; - } - - return retVal; -} - -#elif AMDT_BUILD_TARGET == AMDT_LINUX_OS -// --------------------------------------------------------------------------- -// Name: apExceptionCodeToExceptionReason -// Description: Translates Linux singal numbers to osExceptionReason values. -// Author: AMD Developer Tools Team -// Date: 20/12/2003 -// --------------------------------------------------------------------------- -osExceptionReason osExceptionCodeToExceptionReason(osExceptionCode exceptionCode) -{ - // TO_DO: LNX: This function is not yet implemented on Linux: - GT_ASSERT(false); - - (void)(exceptionCode); // Remove the compiler error on Linux variant - osExceptionReason retVal = OS_UNKNOWN_EXCEPTION_REASON; - return retVal; -} - -// --------------------------------------------------------------------------- -// Name: apExceptionReasonToExceptionCode -// Description: Translates osExceptionReason values to Linux singal numbers. -// Author: AMD Developer Tools Team -// Date: 10/10/2010 -// --------------------------------------------------------------------------- -osExceptionCode osExceptionReasonToExceptionCode(osExceptionReason exceptionReason) -{ - // TO_DO: LNX: This function is not yet implemented on Linux: - GT_ASSERT(false); - - (void)(exceptionReason); // Remove the compiler error on Linux variant - osExceptionCode retVal = 0; - return retVal; -} -#else -#error Error: unknown OS!! -#endif diff --git a/external/amdt_os_wrappers/src/common/osGeneralFunctions.cpp b/external/amdt_os_wrappers/src/common/osGeneralFunctions.cpp deleted file mode 100644 index bf0e396..0000000 --- a/external/amdt_os_wrappers/src/common/osGeneralFunctions.cpp +++ /dev/null @@ -1,205 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osGeneralFunctions.cpp -/// -//===================================================================== - -//------------------------------ osGeneralFunctions.cpp ------------------------------ -// Infra: -#include - -// Local: -#include -#include -#include - -// --------------------------------------------------------------------------- -// Name: osGetBinariesAddressSpaceString -// Description: Retrieves a string describing the address space type of the -// compiled binaries in which this function appears. -// -// Author: AMD Developer Tools Team -// Date: 11/7/2007 -// --------------------------------------------------------------------------- -void osGetBinariesAddressSpaceString(gtString& addressSpaceString) -{ -#if AMDT_ADDRESS_SPACE_TYPE == AMDT_32_BIT_ADDRESS_SPACE - addressSpaceString = OS_32_BIT_ADDRESS_SPACE_AS_STR; -#elif AMDT_ADDRESS_SPACE_TYPE == AMDT_64_BIT_ADDRESS_SPACE - addressSpaceString = OS_64_BIT_ADDRESS_SPACE_AS_STR; -#else -#error Error Unknown address space type! -#endif -} - - -// --------------------------------------------------------------------------- -// Name: osProcedureAddressToString -// Description: Translates a pointer address into a string. -// Arguments: pointer - The pointer address. -// is64BitAddress - true for 64 bit address, false for 32 bit address. -// inUppercase - Should the output string be uppercase. -// outputString - Will get the output string. -// Author: AMD Developer Tools Team -// Date: 7/7/2010 -// --------------------------------------------------------------------------- -void osProcedureAddressToString(osProcedureAddress64 pointer, bool is64BitAddress, bool inUppercase, gtString& outputString) -{ - outputString.makeEmpty(); - - if (is64BitAddress) - { - if (inUppercase) - { - outputString.appendFormattedString(GT_64_BIT_POINTER_FORMAT_UPPERCASE, pointer); - } - else - { - outputString.appendFormattedString(GT_64_BIT_POINTER_FORMAT_LOWERCASE, pointer); - } - } - else - { - if (inUppercase) - { - outputString.appendFormattedString(GT_32_BIT_POINTER_FORMAT_UPPERCASE, (gtUInt32)pointer); - } - else - { - outputString.appendFormattedString(GT_32_BIT_POINTER_FORMAT_LOWERCASE, (gtUInt32)pointer); - } - } -} - - -// This function tries to tell whether a given module name is a Windows system library. -// -// We look for ':' (C:...) or name ending with ".dll", ".sys" or ".exe". -// If so, look at the path to see whether it includes "\\Windows\\" or contains "\\Sys*" or "\\winsxs\\". -// -bool osIsWindowsSystemModule(const gtString& absolutePath) -{ - bool ret = false; - - if (absolutePath.length() > 4 && (absolutePath.endsWith(L".dll") || - absolutePath.endsWith(L".sys") || - absolutePath.endsWith(L".exe"))) - { - // 21 is the minimum of: "\\windows\\system\\*.***" - if (absolutePath.length() >= 21) - { - gtString lowerAbsolutePath = absolutePath; - - lowerAbsolutePath.replace(L'/', L'\\'); - lowerAbsolutePath.toLowerCase(); - - int rootPos = lowerAbsolutePath.find(L"\\windows\\"); - - if (-1 != rootPos) - { - // 9 is the length of "\\windows\\" - rootPos += 9; - - if (lowerAbsolutePath.compare(rootPos, 3, L"sys") == 0) - { - rootPos += 3; - - if (lowerAbsolutePath.compare(rootPos, 4, L"tem\\") == 0 || // "\\windows\\system\\" - lowerAbsolutePath.compare(rootPos, 6, L"tem32\\") == 0 || // "\\windows\\system32\\" - lowerAbsolutePath.compare(rootPos, 6, L"wow64\\") == 0) // "\\windows\\syswow64\\" - { - ret = true; - } - } - else - { - if (lowerAbsolutePath.compare(rootPos, 7, L"winsxs\\") == 0) - { - ret = true; - } - } - } - } - } - - return ret; -} - -// This function tries to tell whether a given module name is a Linux system library. -// -// The special name "[kernel.kallsyms]" is the module name for samples within the kernel. -// Then, if the path does not start with '/' we assume it's not a system library. -// The name must then start with "lib" and have ".so" within it. -// If so, we consider these files to be system libraries if they are from: -// /lib* -// /usr/lib* -// /usr/local/lib* -// /usr/share/gdb* -// -bool osIsLinuxSystemModule(const gtString& absolutePath) -{ - bool ret = false; - - // Kernel samples - if (absolutePath.find(L"[kernel.kallsyms]") != -1) - { - ret = true; - } - else - { - // has ".so" within it - if ((absolutePath.find(L".so") != -1)) - { - // starts with '/' - if (L'/' == absolutePath[0]) - { - // starts with '/lib' - if (absolutePath.compare(1, 3, L"lib") == 0) - { - ret = true; - } - // starts with '/usr/' - else if (absolutePath.compare(1, 4, L"usr/") == 0) - { - // starts with '/usr/lib' or '/usr/local/lib' or '/usr/share/gdb' - if (absolutePath.compare(5, 3, L"lib") || - absolutePath.compare(5, 9, L"local/lib") || - absolutePath.compare(5, 9, L"share/gdb") == 0) - { - ret = true; - } - } - } - } - } - - return ret; -} - -bool osIsSystemModule(const gtString& absolutePath) -{ - bool ret; - - if (absolutePath.length() > 4 && (absolutePath.endsWith(L".dll") || - absolutePath.endsWith(L".sys") || - absolutePath.endsWith(L".exe"))) - { - ret = osIsWindowsSystemModule(absolutePath); - } - else - { - ret = osIsLinuxSystemModule(absolutePath); - } - - return ret; -} - -OS_API bool osIsLocalPortAvaiable(const unsigned short port) -{ - osPortAddress portAddress("0.0.0.0", port); - osTCPSocketServer tcpServer; - bool result = tcpServer.open() && tcpServer.bind(portAddress); - return result; -} diff --git a/external/amdt_os_wrappers/src/common/osHTTPClient.cpp b/external/amdt_os_wrappers/src/common/osHTTPClient.cpp deleted file mode 100644 index 190a5ac..0000000 --- a/external/amdt_os_wrappers/src/common/osHTTPClient.cpp +++ /dev/null @@ -1,931 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osHTTPClient.cpp -/// -//===================================================================== - -//------------------------------ osHTTPClient.cpp ------------------------------ - -//std -#include - -// This should probably move to osOSDefinitions.h:88 -#define NOMINMAX 1 - -// Local: -#include -#include - - -// --------------------------------------------------------------------------- -// Name: osHTTPClient::osHTTPClient -// Description: Constructor -// Author: AMD Developer Tools Team -// Date: 16/4/2008 -// --------------------------------------------------------------------------- -osHTTPClient::osHTTPClient() -{ - -} - -// --------------------------------------------------------------------------- -// Name: osHTTPClient::osHTTPClient -// Description: Constructor, setting portAddress as the server address. -// Author: AMD Developer Tools Team -// Date: 16/4/2008 -// --------------------------------------------------------------------------- -osHTTPClient::osHTTPClient(const osPortAddress& portAddress): - _httpServerAddress(portAddress) -{ - -} - - -// --------------------------------------------------------------------------- -// Name: osHTTPClient::~osHTTPClient -// Description: Destructor -// Author: AMD Developer Tools Team -// Date: 16/4/2008 -// --------------------------------------------------------------------------- -osHTTPClient::~osHTTPClient() -{ - if (_tcpClient.isOpen()) - { - disconnect(); - } -} - -// --------------------------------------------------------------------------- -// Name: osHTTPClient::connect -// Description: Connects to the server specified in _httpServerAddress. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 16/4/2008 -// --------------------------------------------------------------------------- -bool osHTTPClient::connect() -{ - bool retVal = false; - bool disconnectionSuccessful = true; - - if (_tcpClient.isOpen()) - { - // we want to d/c and reconnect since the user may have changed the server since last connecting. - disconnectionSuccessful = disconnect(); - } - - if (!disconnectionSuccessful) - { - _errorCode = OS_STR_cannotEndTCPSession; - } - else - { - bool tcpSocketOpen = _tcpClient.open(); - - if (!tcpSocketOpen) - { - _errorCode = OS_STR_cannotOpenTCPSocket; - } - else - { - bool tcpConnected = _tcpClient.connect(_httpServerAddress); - - if (tcpConnected) - { - retVal = true; - } - else - { - _errorCode = OS_STR_cannotConnectToTCPServer1; - _errorCode.append(_httpServerAddress.hostName().asASCIICharArray()); - _errorCode.appendFormattedString(OS_STR_cannotConnectToTCPServer2, _httpServerAddress.portNumber()); - } - } - } - - return retVal; -} - -// --------------------------------------------------------------------------- -// Name: osHTTPClient::disconnect -// Description: Disconnects current session. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 16/4/2008 -// --------------------------------------------------------------------------- -bool osHTTPClient::disconnect() -{ - bool retVal = false; - - if (!_tcpClient.isOpen()) - { - retVal = true; - } - else - { - retVal = _tcpClient.close(); - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osHTTPClient::clearGETRequestArguments -// Description: Clears the GET request arguments data buffer. -// Author: AMD Developer Tools Team -// Date: 27/5/2008 -// --------------------------------------------------------------------------- -void osHTTPClient::clearGETRequestArguments() -{ - _GETRequestArgumentsString.makeEmpty(); -} - - -// --------------------------------------------------------------------------- -// Name: osHTTPClient::addGETRequestArgument -// Description: Adds a GET request argument and its value to the GET request arguments -// data buffer. -// Arguments: argumentName - The POST argument to be added. -// argumentValue - The POST argument value. -// Author: AMD Developer Tools Team -// Date: 27/5/2008 -// --------------------------------------------------------------------------- -void osHTTPClient::addGETRequestArgument(const gtASCIIString& argumentName, const gtASCIIString& argumentValue) -{ - // If we already have get arguments - add a "&" separator: - bool isGETRequestArgumentsStringEmpty = (_GETRequestArgumentsString.length() == 0); - - if (!isGETRequestArgumentsStringEmpty) - { - _GETRequestArgumentsString += "&"; - } - - // Add the argument name: - _GETRequestArgumentsString += argumentName; - - // Add the name value separator: - _GETRequestArgumentsString += "="; - - // Add an encoded argument value: - gtASCIIString encodedValue; - encodeGETRequestString(argumentValue, encodedValue); - _GETRequestArgumentsString += encodedValue; -} - - -// --------------------------------------------------------------------------- -// Name: osHTTPClient::requestPage -// Description: Requests a page using the GET method. Note that the post buffer -// is not used here -// Arguments: pageRelativeURL - the relative URL of the page. Can include input -// variables as /pagename.ext?var1=value1&var2=value2... -// outputPage - the page content will go here -// isUsingProxy - is the webserver we want to get the information from different -// than the one we are connecting through -// serverAddress - if isUsingProxy is true, this is the DNS (www.foo.com) or -// IP (191.14.8.86) of the server we will request the pages from. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 16/4/2008 -// --------------------------------------------------------------------------- -bool osHTTPClient::requestPage(const gtASCIIString& pageRelativeURL, gtASCIIString& outputPage, bool isUsingProxy, const gtASCIIString& serverAddress, bool isGraphicsServer) -{ - bool retVal = false; - outputPage = ""; - bool isConnected = true; - _errorCode.makeEmpty(); - - if (!_tcpClient.isOpen()) // If we lost the connection, try to reconnect: - { - isConnected = connect(); - } - - if (isConnected) - { - // Build the GET request string: - gtASCIIString requestString = "GET "; - - if (isUsingProxy) - { - if (!serverAddress.isEmpty()) - { - // Add the server address to the request: - requestString.append("http://"); - requestString.append(serverAddress); - } - } - - requestString.append(pageRelativeURL); - - // If the user set GET arguments - add them to the GET request string: - if (0 < _GETRequestArgumentsString.length()) - { - requestString += "?"; - requestString += _GETRequestArgumentsString; - } - - requestString.append(" HTTP/1.0\r\n"); - gtASCIIString header1 = "Host: "; - - if ((!isUsingProxy) || serverAddress.isEmpty()) - { - header1.append(_httpServerAddress.hostName().asASCIICharArray()); - } - else - { - header1.append(serverAddress); - } - - if (isGraphicsServer) - { - // clear the buffer from previous request - _httpResultBuffer.makeEmpty(); - header1.append("Accept: text/xml;q=0.1"); - } - - header1.append("\r\n"); - gtASCIIString header2 = "User-Agent: amdAgent\r\n\r\n"; - - - requestString.append(header1); - requestString.append(header2); - - int stringLength = requestString.length(); - bool rc10 = _tcpClient.write((gtByte*)requestString.asCharArray(), stringLength); - - if (rc10) - { - if (!isGraphicsServer) - { - retVal = ReadTCPSocketIntoPage(outputPage); - } - else - { - retVal = ReadTCPSocketIntoPage(outputPage, _READ_BUFFER_SIZE_GRAPHICS_SERVER); - } - } - else - { - _errorCode = OS_STR_requestError; - } - - } - - return retVal; -} - -// --------------------------------------------------------------------------- -// Name: osHTTPClient::requestPagePost -// Description: Requests a page using the POST method. Make sure you set the -// post buffer before doing this. -// Arguments: pageRelativeURL - the relative URL to be called. -// outputPage - the page content will go here -// isUsingProxy - is the webserver we want to get the information from different -// than the one we are connecting through -// serverAddress - if isUsingProxy is true, this is the DNS (www.foo.com) or -// IP (191.14.8.86) of the server we will request the pages from. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 16/4/2008 -// --------------------------------------------------------------------------- -bool osHTTPClient::RequestPagePost(const gtASCIIString& pageRelativeURL, gtASCIIString& outputPage, bool isUsingProxy, const gtASCIIString& serverAddress) -{ - bool retVal = false; - outputPage = ""; - bool isConnected = true; - - if (!_tcpClient.isOpen()) // If we lost the connection, try to reconnect: - { - isConnected = connect(); - } - - if (isConnected) - { - // Build the POST request string: - unsigned long postBufferLength = _postBuffer.length(); - gtASCIIString requestString = "POST "; - - if (isUsingProxy) - { - if (!serverAddress.isEmpty()) - { - // Add the server address to the request: - requestString.append("http://"); - requestString.append(serverAddress); - } - } requestString.append(pageRelativeURL); - - requestString.append(" HTTP/1.0\r\n"); - gtASCIIString header1 = "Host: "; - - if ((!isUsingProxy) || serverAddress.isEmpty()) - { - header1.append(_httpServerAddress.hostName().asASCIICharArray()); - } - else - { - header1.append(serverAddress); - } - - header1.append("\r\n"); - gtASCIIString header2 = "User-Agent: amdAgent\r\n"; - gtASCIIString header3 = "Content-Type: application/x-www-form-urlencoded\r\n"; - gtASCIIString header4 = "Content-Length: "; - header4.appendFormattedString("%lu\r\n", postBufferLength); - - int stringLength = requestString.length(); - bool rc10 = _tcpClient.write((gtByte*)requestString.asCharArray(), stringLength); - stringLength = header1.length(); - bool rc11 = _tcpClient.write((gtByte*)header1.asCharArray(), stringLength); - stringLength = header2.length(); - bool rc12 = _tcpClient.write((gtByte*)header2.asCharArray(), stringLength); - stringLength = header3.length(); - bool rc13 = _tcpClient.write((gtByte*)header3.asCharArray(), stringLength); - stringLength = header4.length(); - bool rc14 = _tcpClient.write((gtByte*)header4.asCharArray(), stringLength); - bool rc15 = _tcpClient.write((gtByte*)"\r\n", 2); - bool rc16 = _tcpClient.write((gtByte*)_postBuffer.asCharArray(), postBufferLength); - - if (rc10 && rc11 && rc12 && rc13 && rc14 && rc15 && rc16) - { - retVal = ReadTCPSocketIntoPage(outputPage); - } - else - { - _errorCode = OS_STR_requestError; - } - - } - - return retVal; -} - -// --------------------------------------------------------------------------- -// Name: osHTTPClient::readTCPSocketIntoPage -// Description: Reads the page result into an output string. If the page is an -// error page (eg HTTP response 404) it is logged into _errorCode -// Arguments: outputPage - the page content goes here. -// uBufferSize - specifies buffer size -// -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 16/4/2008 -// --------------------------------------------------------------------------- -bool osHTTPClient::ReadTCPSocketIntoPage(gtASCIIString& outputPage, unsigned int uBufferSize) -{ - bool retVal = false; - - - - gtSize_t amountOfDataRead = 0; - bool moreToRead = true; - bool lastBufferEmpty = false; - bool packetLoss = false; - gtSize_t totalDataRead = 0; - - if (0 == uBufferSize) - { - // default - uBufferSize = _READ_BUFFER_SIZE; - } - - { - std::unique_ptr buff(new gtByte[uBufferSize + 1]()); - - while (moreToRead) - { - memset(buff.get(), '\0', uBufferSize + 1); - - // Try to read from the TCP socket - bool rc2 = _tcpClient.readAvailableData(buff.get(), uBufferSize, amountOfDataRead); - - if (!rc2) - { - if (!lastBufferEmpty) - { - // We tried to read, but there is no data available: - lastBufferEmpty = true; - } - else - { - // We already waited for data, but didn't get it after the sleep period: - moreToRead = false; - packetLoss = true; - } - } - else - { - // We did manage to read from the socket: - lastBufferEmpty = false; - - if (amountOfDataRead == 0) - { - // The socket was closed - moreToRead = false; - } - else - { - // We got data: - buff[amountOfDataRead] = 0; - totalDataRead += amountOfDataRead; - gtASCIIString interimTextBuffer = buff.get(); - _httpResultBuffer.append(interimTextBuffer); - } - } - } - } - - if (_httpResultBuffer.find("HTTP/") == -1) - { - _errorCode = OS_STR_serverRespondError; - } - else - { - int firstSpaceLocation = _httpResultBuffer.find(' '); - char responseCode = _httpResultBuffer.asCharArray()[firstSpaceLocation + 1]; - - if (packetLoss) - { - responseCode = 0; - } - - switch (responseCode) - { - case '1': // Success / Information - case '2': // Success - case '3': // Redirection - { - int findNLNL = _httpResultBuffer.find("\n\n", firstSpaceLocation); - - if (findNLNL <= firstSpaceLocation) { findNLNL = (int)totalDataRead; } - - int findCRCR = _httpResultBuffer.find("\r\r", firstSpaceLocation); - - if (findCRCR <= firstSpaceLocation) { findCRCR = (int)totalDataRead; } - - int findCNCN = _httpResultBuffer.find("\r\n\r\n", firstSpaceLocation); - - if (findCNCN <= firstSpaceLocation) { findCNCN = (int)totalDataRead; } - - int findNCNC = _httpResultBuffer.find("\n\r\n\r", firstSpaceLocation); - - if (findNCNC <= firstSpaceLocation) { findNCNC = (int)totalDataRead; } - - int headersEndLocation = std::min(std::min(findNLNL + 2, findCRCR + 2), std::min(findCNCN + 4, findNCNC + 4)); - - _httpResultBuffer.getSubString(headersEndLocation, -1, outputPage); - retVal = true; - } - break; - - case '4': // Client error - case '5': // Server error - { - _httpResultBuffer.getSubString(firstSpaceLocation + 1, firstSpaceLocation + 3, _errorCode); - } - break; - - case '\0': - { - int findNLNL = _httpResultBuffer.find("\n\n", firstSpaceLocation); - - if (findNLNL <= firstSpaceLocation) { findNLNL = (int)totalDataRead; } - - int findCRCR = _httpResultBuffer.find("\r\r", firstSpaceLocation); - - if (findCRCR <= firstSpaceLocation) { findCRCR = (int)totalDataRead; } - - int findCNCN = _httpResultBuffer.find("\r\n\r\n", firstSpaceLocation); - - if (findCNCN <= firstSpaceLocation) { findCNCN = (int)totalDataRead; } - - int findNCNC = _httpResultBuffer.find("\n\r\n\r", firstSpaceLocation); - - if (findNCNC <= firstSpaceLocation) { findNCNC = (int)totalDataRead; } - - int headersEndLocation = std::min(std::min(findNLNL + 2, findCRCR + 2), std::min(findCNCN + 4, findNCNC + 4)); - - _httpResultBuffer.getSubString(headersEndLocation, -1, outputPage); - _errorCode = OS_STR_packetLoss; - } - break; - - default: - { - _errorCode = OS_STR_unknownError; - } - break; - } - } - - return retVal; -} - - -bool osHTTPClient::ReadTCPSocketIntoBuffer(unsigned char*& pReturnData, unsigned long& dataBufferSize, unsigned int uBufferSize) -{ - bool retVal = false; - - gtSize_t amountOfDataRead = 0; - bool moreToRead = true; - bool lastBufferEmpty = false; - bool packetLoss = false; - - if (0 == uBufferSize) - { - // default - uBufferSize = _READ_BUFFER_SIZE; - } - - dataBufferSize = 0; - - // Try to read from the TCP socket - gtByte* pTempBuffer = new gtByte[uBufferSize + 1]; - - while (moreToRead) - { - bool rc2 = _tcpClient.readAvailableData(pTempBuffer, uBufferSize + 1, amountOfDataRead); - - if (!rc2) - { - if (!lastBufferEmpty) - { - // We tried to read, but there is no data available: - lastBufferEmpty = true; - } - else - { - // We already waited for data, but didn't get it after the sleep period: - moreToRead = false; - packetLoss = true; - } - } - else - { - // We did manage to read from the socket: - lastBufferEmpty = false; - - if (amountOfDataRead == 0) - { - // The socket was closed - moreToRead = false; - } - else - { - // We got data: - size_t memorySize = ((dataBufferSize + amountOfDataRead) * sizeof(unsigned char)); - pReturnData = (unsigned char*)(realloc(pReturnData , memorySize)); - memcpy(pReturnData + dataBufferSize, pTempBuffer, amountOfDataRead); - - dataBufferSize += (unsigned long)amountOfDataRead; - } - } - } - - // Release the temporary buffer memory - delete[] pTempBuffer; - - if (pReturnData != nullptr) - { - // Trim the header from the binary data - retVal = TrimHTTPResult(pReturnData, dataBufferSize, packetLoss); - } - - - return retVal; -} - - -int FindHeaderEndLocation(unsigned char* pBuffer, unsigned long dataBufferSize, unsigned int startFrom) -{ - int retVal = startFrom; - - // Go over the buffer and look for the first occurance of "\n\n", "\r\r", "\r\n\r\n" or "\n\r\n\r" - for (unsigned int i = startFrom; i < dataBufferSize; i++) - { - int findNCNC = strncmp((const char*)(pBuffer + i), "\n\r\n\r", 4); - - if (findNCNC == 0) - { - retVal = i + 4; - break; - } - - int findCNCN = strncmp((const char*)(pBuffer + i), "\r\n\r\n", 4); - - if (findCNCN == 0) - { - retVal = i + 4; - break; - } - - int findCRCR = strncmp((const char*)(pBuffer + i), "\r\r", 2); - - if (findCRCR == 0) - { - retVal = i + 2; - break; - } - - int findNLNL = strncmp((const char*)(pBuffer + i), "\n\n", 2); - - if (findNLNL == 0) - { - retVal = i + 2; - break; - } - } - - return retVal; -} -int FindChar(unsigned char* pBuffer, unsigned long dataBufferSize, unsigned char ch) -{ - int retVal = 0; - - for (unsigned int i = 0; i < dataBufferSize; i++) - { - if (pBuffer[i] == ch) - { - retVal = i; - break; - } - } - - return retVal; -} - -bool osHTTPClient::TrimHTTPResult(unsigned char*& pBuffer, unsigned long& dataBufferSize, bool packetLoss) -{ - int headersEndLocation = 0; - bool retVal = false; - - if (strcmp((const char*)pBuffer, "HTTP/") < 0) - { - _errorCode = OS_STR_serverRespondError; - } - else - { - // Find the response code (the character after the first space) - char responseCode = 0; - int firstSpaceLocation = FindChar(pBuffer, dataBufferSize, ' '); - - if (firstSpaceLocation >= 0) - { - responseCode = pBuffer[firstSpaceLocation + 1]; - } - - if (packetLoss) - { - responseCode = 0; - } - - switch (responseCode) - { - case '1': // Success / Information - case '2': // Success - case '3': // Redirection - case '\0': - { - headersEndLocation = FindHeaderEndLocation(pBuffer, dataBufferSize, firstSpaceLocation); - - if (responseCode == '\0') - { - _errorCode = OS_STR_packetLoss; - } - - retVal = true; - } - break; - - case '4': // Client error - case '5': // Server error - { - _httpResultBuffer.getSubString(firstSpaceLocation + 1, firstSpaceLocation + 3, _errorCode); - } - break; - - default: - { - _errorCode = OS_STR_unknownError; - } - break; - } - } - - if (_errorCode.isEmpty()) - { - retVal = true; - - // Remove the header section from the output buffer - dataBufferSize -= headersEndLocation; - - // Allocate a new buffer with only the binary data - unsigned char* pResultBuffer = new unsigned char[dataBufferSize]; - memcpy(pResultBuffer, pBuffer + headersEndLocation, dataBufferSize); - - // Release the buffer memory - free(pBuffer); - pBuffer = pResultBuffer; - } - - return retVal; -} - -bool osHTTPClient::RequestPageWithBinaryData(const gtASCIIString& pageRelativeURL, unsigned char*& pReturnData, unsigned long& dataBufferSize, bool isUsingProxy, const gtASCIIString& serverAddress, bool isGraphicsServer) -{ - bool retVal = false; - pReturnData = nullptr; - dataBufferSize = 0; - bool isConnected = true; - _errorCode.makeEmpty(); - - if (!_tcpClient.isOpen()) // If we lost the connection, try to reconnect: - { - isConnected = connect(); - } - - if (isConnected) - { - // Build the GET request string: - gtASCIIString requestString = "GET "; - - if (isUsingProxy) - { - if (!serverAddress.isEmpty()) - { - // Add the server address to the request: - requestString.append("http://"); - requestString.append(serverAddress); - } - } - - requestString.append(pageRelativeURL); - - // If the user set GET arguments - add them to the GET request string: - if (0 < _GETRequestArgumentsString.length()) - { - requestString += "?"; - requestString += _GETRequestArgumentsString; - } - - requestString.append(" HTTP/1.0\r\n"); - gtASCIIString header1 = "Host: "; - - if ((!isUsingProxy) || serverAddress.isEmpty()) - { - header1.append(_httpServerAddress.hostName().asASCIICharArray()); - } - else - { - header1.append(serverAddress); - } - - if (isGraphicsServer) - { - // clear the buffer from previous request - _httpResultBuffer.makeEmpty(); - header1.append("Accept: text/xml;q=0.1"); - } - - header1.append("\r\n"); - gtASCIIString header2 = "User-Agent: amdAgent\r\n"; - - int stringLength = requestString.length(); - bool rc10 = _tcpClient.write((gtByte*)requestString.asCharArray(), stringLength); - stringLength = header1.length(); - bool rc11 = _tcpClient.write((gtByte*)header1.asCharArray(), stringLength); - stringLength = header2.length(); - bool rc12 = _tcpClient.write((gtByte*)header2.asCharArray(), stringLength); - bool rc13 = _tcpClient.write((gtByte*)"\r\n", 2); - - if (rc10 && rc11 && rc12 && rc13) - { - if (!isGraphicsServer) - { - retVal = ReadTCPSocketIntoBuffer(pReturnData, dataBufferSize); - } - else - { - retVal = ReadTCPSocketIntoBuffer(pReturnData, dataBufferSize, _READ_BUFFER_SIZE_GRAPHICS_SERVER); - } - } - else - { - _errorCode = OS_STR_requestError; - } - - } - - return retVal; -} - -// --------------------------------------------------------------------------- -// Name: osHTTPClient::encodeGETRequestString -// Description: Encodes a given GET request string to an HTTP application/x-www-form-urlencoded -// string. -// Arguments: requestURLString - The input GET request string. -// encodedString - The output encoded string. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 27/5/2008 -// Implementation notes: -// To get an HTTP application/x-www-form-urlencoded from a given string, we need to -// replace some ASCII characters with their hexadecimal representation (%Hex) according -// to the below table: -// SPACE %20 -// " %22 -// # %23 -// $ %24 -// % %25 -// & %26 -// + %2B -// , %2C -// / %2F -// : %3A -// ; %3B -// < %3C -// = %3D -// > %3E -// ? %3F -// @ %40 -// [ %5B -// \ %5C -// ] %5D -// ^ %5E -// ` %60 -// { %7B -// | %7C -// } %7D -// ~ %7E -// -// For more details see: -// - http://www.aptana.com/docs/index.php/URL_Escape_Codes -// - http://www.blooberry.com/indexdot/html/topics/urlencoding.htm -// --------------------------------------------------------------------------- -void osHTTPClient::encodeGETRequestString(const gtASCIIString& requestURLString, gtASCIIString& encodedString) -{ - encodedString.makeEmpty(); - - // An aid buffer, holding hexadecimal representation of chars: - char hexNumbersBuff[4]; - hexNumbersBuff[0] = '%'; - hexNumbersBuff[3] = 0; - - // Iterate the input request string characters: - int requestStringLength = requestURLString.length(); - - for (int i = 0; i < requestStringLength; i++) - { - // If the current character needs to be decoded: - char currentChar = requestURLString[i]; - - if ((currentChar == ' ') || (currentChar == '#') || (currentChar == '$') || (currentChar == '%') || (currentChar == '&') || - (currentChar == '+') || (currentChar == ',') || (currentChar == '/') || (currentChar == ':') || (currentChar == ';') || - (currentChar == '<') || (currentChar == '=') || (currentChar == '>') || (currentChar == '?') || (currentChar == '@') || - (currentChar == '[') || (currentChar == '\\') || (currentChar == ']') || (currentChar == '^') || (currentChar == '`') || - (currentChar == '{') || (currentChar == '|') || (currentChar == '}') || (currentChar == '~')) - { - // Calculate an hexadecimal representation that will replace the current character: - // TO_DO: Unicode code review - unsigned short charAsUnsignedShort = currentChar; - gtUByte firstDigit = (gtUByte)(charAsUnsignedShort / 16); - gtUByte secondDigit = (gtUByte)(charAsUnsignedShort % 16); - - char firstDigitAsChar = 0; - - if (firstDigit < 10) - { - firstDigitAsChar = firstDigit + '0'; - } - else - { - firstDigitAsChar = firstDigit - 10 + 'A'; - } - - char secondDigitAsChar = 0; - - if (secondDigit < 10) - { - secondDigitAsChar = secondDigit + '0'; - } - else - { - secondDigitAsChar = secondDigit - 10 + 'A'; - } - - hexNumbersBuff[1] = firstDigitAsChar; - hexNumbersBuff[2] = secondDigitAsChar; - - // Add the hexadecimal representation instead of the character to the encoded string: - encodedString += hexNumbersBuff; - } - else - { - // Add the character to the encoded string: - encodedString += currentChar; - } - } -} - diff --git a/external/amdt_os_wrappers/src/common/osMessageBox.cpp b/external/amdt_os_wrappers/src/common/osMessageBox.cpp deleted file mode 100644 index 512366f..0000000 --- a/external/amdt_os_wrappers/src/common/osMessageBox.cpp +++ /dev/null @@ -1,148 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osMessageBox.cpp -/// -//===================================================================== - -//------------------------------ osMessageBox.cpp ------------------------------ - -// STL: -#include - -// Infra: -#include -#include - -// Local: -#include - -// Static members initialization: -osMessageBox::osMessageBoxCB osMessageBox::ms_cb = &osMessageBox::defaultMessageBoxDisplayCB; - - -// --------------------------------------------------------------------------- -// Name: osMessageBox::osMessageBox -// Description: Constructor -// Arguments: message - The string to be displayed in the message box. -// icon - The icon to be displayed in the message box. -// hParentWindow - The message box parent window. -// Author: AMD Developer Tools Team -// Date: 6/10/2004 -// --------------------------------------------------------------------------- -osMessageBox::osMessageBox(const gtString& title, const gtString& message, osMessageBoxIcon icon, void* /*oaWindowHandle*/ hParentWindow) - : _title(title), _message(message), _icon(icon), _hParentWindow(hParentWindow) -{ -} - - -// --------------------------------------------------------------------------- -// Name: osMessageBox::display -// Description: -// Displays the message box. -// The message box will be displayed in a "Modal" way (blocks the application -// GUI until the user close the message box). -// Author: AMD Developer Tools Team -// Date: 6/10/2004 -// --------------------------------------------------------------------------- -void osMessageBox::display() -{ - GT_IF_WITH_ASSERT(NULL != ms_cb) - { - ms_cb(_title, _message, _icon, _hParentWindow); - } -} - -// --------------------------------------------------------------------------- -// Name: osMessageBox::defaultMessageBoxDisplayCB -// Description: -// Default message box callback. Since we cannot assume that this is a -// configuration with a display, we print to the console. -// Author: AMD Developer Tools Team -// Date: 4/6/2015 -// --------------------------------------------------------------------------- -void osMessageBox::defaultMessageBoxDisplayCB(const gtString& title, const gtString& message, osMessageBoxIcon icon, /*oaWindowHandle*/ void* hParentWindow) -{ - GT_UNREFERENCED_PARAMETER(hParentWindow); - - // Create the title string: - gtString titleLine; - titleLine.append(L"| "); - - switch (icon) - { - // *INDENT-OFF* - case OS_EXCLAMATION_POINT_ICON: titleLine.append(L"/!\\"); break; - case OS_DISPLAYED_INFO_ICON: titleLine.append(L"(i)"); break; - case OS_QUESTION_MARK_ICON: titleLine.append(L"(?)"); break; - case OS_STOP_SIGN_ICON: titleLine.append(L"(x)"); break; - // *INDENT-ON* - } - - titleLine.append(L" | ").append(title); - - // Count space for an additional " |" - int titleLineLength = titleLine.length() + 2; - - // Count the max line length in the message: - int currentLoc = 0; - int maxLen = 0; - int msgLen = message.length(); - - while (currentLoc < msgLen) - { - int prevLoc = currentLoc; - currentLoc = message.find('\n', currentLoc + 1); - - if (0 > currentLoc) - { - currentLoc = msgLen; - } - - int currentLineLen = currentLoc - prevLoc; - - if (maxLen < currentLineLen) - { - maxLen = currentLineLen; - } - } - - // Widen the title as needed: - while (titleLineLength < maxLen) - { - titleLine.append(' '); - ++titleLineLength; - } - - titleLine.append(L" |"); - - // Create the separator line: - gtString separatorLine = '+'; - - for (int i = 0; (titleLineLength - 2) > i; ++i) - { - separatorLine.append('-'); - } - - separatorLine.append('+'); - - // Create the complete message: - gtString completeMessage = separatorLine; - completeMessage.append(titleLine).append(separatorLine).append(message).append(separatorLine).append(separatorLine); - - // Write it to the console: - std::cout << completeMessage.asCharArray(); -} - -// --------------------------------------------------------------------------- -// Name: osMessageBox::setMessageBoxDisplayCB -// Description: -// Sets the message box display callback. -// Author: AMD Developer Tools Team -// Date: 4/6/2015 -// --------------------------------------------------------------------------- -void osMessageBox::setMessageBoxDisplayCB(osMessageBoxCB pCB) -{ - ms_cb = pCB; -} diff --git a/external/amdt_os_wrappers/src/common/osMutex.cpp b/external/amdt_os_wrappers/src/common/osMutex.cpp deleted file mode 100644 index 7fa8265..0000000 --- a/external/amdt_os_wrappers/src/common/osMutex.cpp +++ /dev/null @@ -1,80 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osMutex.cpp -/// -//===================================================================== - -//------------------------------ osMutex.cpp ------------------------------ - -// Infra: -#include -#include - -// Per OS implementations of this class: -#if AMDT_BUILD_TARGET == AMDT_WINDOWS_OS - #include -#elif AMDT_BUILD_TARGET == AMDT_LINUX_OS - #include -#else - #error Unknown build configuration! -#endif - -// Local: -#include - - -// --------------------------------------------------------------------------- -// Name: osMutex::osMutex -// Description: Constructor -// Author: AMD Developer Tools Team -// Date: 29/3/2004 -// --------------------------------------------------------------------------- -osMutex::osMutex() -{ - // Create our OS specific Mutex implementation: - _pImplementation = new osMutexImpl; - -} - - -// --------------------------------------------------------------------------- -// Name: osMutex::~osMutex -// Description: Destructor. -// Author: AMD Developer Tools Team -// Date: 29/3/2004 -// --------------------------------------------------------------------------- -osMutex::~osMutex() -{ - delete _pImplementation; - _pImplementation = NULL; -} - - -// --------------------------------------------------------------------------- -// Name: osMutex::lock -// Description: "Locks" (try to own) the Mutex. If the Mutex is currently owned -// by another thread, this function will halt its calling thread until -// the Mutex is "Unlocked". -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 30/3/2004 -// --------------------------------------------------------------------------- -bool osMutex::lock() -{ - return _pImplementation->lock(); -} - -// --------------------------------------------------------------------------- -// Name: osMutex::unlock -// Description: Unlocks the Mutex. (Release its ownership). -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 30/3/2004 -// --------------------------------------------------------------------------- -bool osMutex::unlock() -{ - return _pImplementation->unlock(); -} - diff --git a/external/amdt_os_wrappers/src/common/osMutexLocker.cpp b/external/amdt_os_wrappers/src/common/osMutexLocker.cpp deleted file mode 100644 index f5f07ff..0000000 --- a/external/amdt_os_wrappers/src/common/osMutexLocker.cpp +++ /dev/null @@ -1,77 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osMutexLocker.cpp -/// -//===================================================================== - -//------------------------------ osMutexLocker.cpp ------------------------------ - -// Infra: -#include - -// Local: -#include - - -// --------------------------------------------------------------------------- -// Name: osMutexLocker::osMutexLocker -// Description: Constructor - locks the mutex. -// Arguments: mutexObj - The mutex to be locked. -// Author: AMD Developer Tools Team -// Date: 30/3/2004 -// --------------------------------------------------------------------------- -osMutexLocker::osMutexLocker(osMutex& mutexObj) - : _mutex(mutexObj), _wasMutexUnlocked(false) -{ - // Lock the Mutex: - bool rc = _mutex.lock(); - - // Sanity check: - GT_ASSERT(rc); -} - - -// --------------------------------------------------------------------------- -// Name: osMutexLocker::~osMutexLocker -// Description: Destructor - Unlocks the mutex. -// Author: AMD Developer Tools Team -// Date: 30/3/2004 -// --------------------------------------------------------------------------- -osMutexLocker::~osMutexLocker() -{ - // If the mutex was not already unlocked by this class: - if (!_wasMutexUnlocked) - { - bool rc = _mutex.unlock(); - GT_ASSERT(rc); - - _wasMutexUnlocked = true; - } -} - - -// --------------------------------------------------------------------------- -// Name: osMutexLocker::unlockMutex -// Description: Unlocks the mutex manually. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 30/3/2004 -// --------------------------------------------------------------------------- -bool osMutexLocker::unlockMutex() -{ - bool retVal = true; - - // If the mutex was not already unlocked by this class: - if (!_wasMutexUnlocked) - { - retVal = _mutex.unlock(); - GT_ASSERT(retVal); - - _wasMutexUnlocked = true; - } - - return retVal; -} - diff --git a/external/amdt_os_wrappers/src/common/osNULLSocket.cpp b/external/amdt_os_wrappers/src/common/osNULLSocket.cpp deleted file mode 100644 index 61c91f1..0000000 --- a/external/amdt_os_wrappers/src/common/osNULLSocket.cpp +++ /dev/null @@ -1,114 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osNULLSocket.cpp -/// -//===================================================================== - -//------------------------------ osNULLSocket.cpp ------------------------------ - -// Infra: -#include - -// Local: -#include - - -// --------------------------------------------------------------------------- -// Name: osNULLSocket::channelType -// Description: Returns a dummy channel type. -// Author: AMD Developer Tools Team -// Date: 25/8/2005 -// --------------------------------------------------------------------------- -osChannel::osChannelType osNULLSocket::channelType() const -{ - return osChannel::OS_BINARY_CHANNEL; -} - - -// --------------------------------------------------------------------------- -// Name: osNULLSocket::write -// Description: Fails and generates an assertion failure. -// Author: AMD Developer Tools Team -// Date: 25/8/2005 -// --------------------------------------------------------------------------- -bool osNULLSocket::writeImpl(const gtByte* pDataBuffer, gtSize_t dataSize) -{ - (void)(pDataBuffer); // unused - (void)(dataSize); // unused - GT_ASSERT(false); - return false; -} - - -// --------------------------------------------------------------------------- -// Name: osNULLSocket::read -// Description: Fails and generates an assertion failure. -// Author: AMD Developer Tools Team -// Date: 25/8/2005 -// --------------------------------------------------------------------------- -bool osNULLSocket::readImpl(gtByte* pDataBuffer, gtSize_t dataSize) -{ - (void)(pDataBuffer); // unused - (void)(dataSize); // unused - GT_ASSERT(false); - return false; -} - - -// --------------------------------------------------------------------------- -// Name: osNULLSocket::readAvailableData -// Description: Fails and generates an assertion failure. -// Author: AMD Developer Tools Team -// Date: 10/2/2008 -// --------------------------------------------------------------------------- -bool osNULLSocket::readAvailableDataImpl(gtByte* pDataBuffer, gtSize_t bufferSize, gtSize_t& amountOfDataRead) -{ - (void)(pDataBuffer); // unused - (void)(bufferSize); // unused - (void)(amountOfDataRead); // unused - GT_ASSERT(false); - return false; -} - - -// --------------------------------------------------------------------------- -// Name: osNULLSocket::open -// Description: Fails and generates an assertion failure. -// Author: AMD Developer Tools Team -// Date: 25/8/2005 -// --------------------------------------------------------------------------- -bool osNULLSocket::open() -{ - GT_ASSERT(false); - return false; -} - - -// --------------------------------------------------------------------------- -// Name: osNULLSocket::close -// Description: Fails and generates an assertion failure. -// Author: AMD Developer Tools Team -// Date: 25/8/2005 -// --------------------------------------------------------------------------- -bool osNULLSocket::close() -{ - GT_ASSERT(false); - return false; -} - - -// --------------------------------------------------------------------------- -// Name: osNULLSocket::isOpen -// Description: Fails and generates an assertion failure. -// Author: AMD Developer Tools Team -// Date: 25/8/2005 -// --------------------------------------------------------------------------- -bool osNULLSocket::isOpen() const -{ - GT_ASSERT(false); - return false; -} - - diff --git a/external/amdt_os_wrappers/src/common/osNetworkAdapter.cpp b/external/amdt_os_wrappers/src/common/osNetworkAdapter.cpp deleted file mode 100644 index 0be2d7d..0000000 --- a/external/amdt_os_wrappers/src/common/osNetworkAdapter.cpp +++ /dev/null @@ -1,63 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osNetworkAdapter.cpp -/// -//===================================================================== - -//------------------------------ osNetworkAdapter.cpp ------------------------------ - -// Infra: -#include - -// Local: -#include - -// --------------------------------------------------------------------------- -// Name: osGetCurrentMachineIPAddresses -// Description: Returns the local machine's IP addresses from all adapters: -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 30/5/2010 -// --------------------------------------------------------------------------- -bool osGetCurrentMachineIPAddresses(gtVector& ipAddresses, bool includeLocalLoopback) -{ - bool retVal = false; - - // Get this machine's network adapters: - gtPtrVector currentMachineNetworkAdapters; - bool rcAdap = osGetCurrentMachineNetworkAdapters(currentMachineNetworkAdapters); - GT_IF_WITH_ASSERT(rcAdap) - { - // We consider this a success, since a machine might not have any addresses at all: - retVal = true; - int numberOfAdapters = (int)currentMachineNetworkAdapters.size(); - - for (int i = 0; i < numberOfAdapters; i++) - { - // Sanity check: - const osNetworkAdapter* pCurrentAdapter = currentMachineNetworkAdapters[i]; - GT_IF_WITH_ASSERT(pCurrentAdapter != NULL) - { - // Get the current adapter's address: - const gtString& currentAdapterAddress = pCurrentAdapter->_TCPIPAddress; - - if (!currentAdapterAddress.isEmpty()) - { - // If we do not want the local loopback, make sure the address is not it: - static const gtString localLoopbackIPAddressAsString = L"127.0.0.1"; - - if (includeLocalLoopback || (localLoopbackIPAddressAsString != currentAdapterAddress)) - { - // Add the address to the output vector: - ipAddresses.push_back(currentAdapterAddress); - } - } - } - } - } - - return retVal; -} - diff --git a/external/amdt_os_wrappers/src/common/osOSWrappersDLLBuild.cpp b/external/amdt_os_wrappers/src/common/osOSWrappersDLLBuild.cpp deleted file mode 100644 index c7ba8bd..0000000 --- a/external/amdt_os_wrappers/src/common/osOSWrappersDLLBuild.cpp +++ /dev/null @@ -1,155 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osOSWrappersDLLBuild.cpp -/// -//===================================================================== - -//------------------------------ osOSWrappersDLLBuild.cpp ------------------------------ - -// Win32: -#define WIN32_LEAN_AND_MEAN 1 -#include -#include - -// GRBaseTools: -#include - -// Local: -#include - -// The Win32 socket support version the we will use: -#define REQUIRED_WIN32_SOCKET_SUPPORT_VERSION MAKEWORD( 2, 0 ) - -// --------------------------------------------------------------------------- -// Name: initializeWin32SocketSupport -// Description: Initialize the Win32 sockets support. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 24/1/2004 -// --------------------------------------------------------------------------- -bool initializeWin32SocketSupport() -{ - bool retVal = false; - - // The highest highest version of Win32 sockets support that we can use: - WORD reqiredSocketSupportVersion = REQUIRED_WIN32_SOCKET_SUPPORT_VERSION; - - // Will get the current Win32 socket support implementation details: - // (The maximal socket support version that the installed WS2_32.DLL supports): - WSADATA socketImplementationData = { 0 }; - - // Initialize the Win32 Socket support: - int rc = WSAStartup(reqiredSocketSupportVersion, &socketImplementationData); - - if (rc != 0) - { - // We failed to initialize the Win32 Socket support: - // (Usually because we could not load WS2_32.DLL or Winsock.dll): - GT_ASSERT(0); - } - else - { - // Verify that the installed Win32 Socket support match our requested version: - if (LOBYTE(socketImplementationData.wVersion) != LOBYTE(reqiredSocketSupportVersion) || - HIBYTE(socketImplementationData.wVersion) != HIBYTE(reqiredSocketSupportVersion)) - { - // The Win32 Socket support does not match our required version: - GT_ASSERT(0); - } - else - { - // We managed to initialize the Win32 socket support, and get the version that - // we required: - retVal = true; - } - } - - if (!retVal) - { - // Failure clean up: - WSACleanup(); - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: terminateWin32SocketSupport -// Description: Terminates the Win32 sockets support. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 24/1/2004 -// --------------------------------------------------------------------------- -bool terminateWin32SocketSupport() -{ - bool retVal = false; - - // Terminate the Win32 socket support: - int rc = WSACleanup(); - - if (rc != SOCKET_ERROR) - { - retVal = true; - } - else - { - // Failed to terminate the Win32 Socket support: - GT_ASSERT(0); - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: DllMain -// Description: -// Main DLL function. Is called by Windows when: -// a. Processes and threads that link statically to this DLL are initialized -// and terminated -// b. Upon calls to LoadLibrary and FreeLibrary on this DLL. -// -// Arguments: HANDLE hModule - Handle to the DLL. The value is the base address of the DLL. -// DWORD ul_reason_for_call - Specifies a flag indicating why this function -// is being called -// LPVOID lpReserved - Specifies further aspects of DLL initialization and -// cleanup. -// Return Val: BOOL - Success / Failure. -// Author: AMD Developer Tools Team -// Date: 03/1/2004 -// --------------------------------------------------------------------------- -BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) -{ - GT_UNREFERENCED_PARAMETER(hModule); - GT_UNREFERENCED_PARAMETER(lpReserved); - - BOOL retVal = FALSE; - bool rc = false; - - switch (ul_reason_for_call) - { - case DLL_PROCESS_ATTACH: - rc = initializeWin32SocketSupport(); - break; - - case DLL_PROCESS_DETACH: - rc = terminateWin32SocketSupport(); - break; - - case DLL_THREAD_ATTACH: - break; - - case DLL_THREAD_DETACH: - break; - } - - if (rc == true) - { - retVal = TRUE; - } - - return retVal; -} diff --git a/external/amdt_os_wrappers/src/common/osOutOfMemoryHandling.cpp b/external/amdt_os_wrappers/src/common/osOutOfMemoryHandling.cpp deleted file mode 100644 index f69e119..0000000 --- a/external/amdt_os_wrappers/src/common/osOutOfMemoryHandling.cpp +++ /dev/null @@ -1,48 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osOutOfMemoryHandling.cpp -/// -//===================================================================== -#include -#include -#include -#include -#include -#include - - -// --------------------------------------------------------------------------- -// Name: osOutOfMemoryHelper -// Description: Auxiliary function that releases the reserved memory, extracts -// the current thread's call stack, and writes down the current call -// stack to the log, and then terminates the current process. -// Arguments: None -// Author: AMD Developer Tools Team -// Date: 2/2/2014 -// --------------------------------------------------------------------------- -OS_API void osDumpCallStackAndExit() -{ - // First, free the reserved memory so that we don't get stuck. - gtFreeReservedMemory(); - - // Retrieve the call stack for the current thread. - osCallsStackReader csReader; - osCallStack csBuffer; - bool isOk = csReader.getCurrentCallsStack(csBuffer, true, true); - GT_ASSERT(isOk); - - // Extract a string representation of the call stack. - gtString csFullString; - gtString csBriefString; - bool isSpyRelated = false; - csBuffer.asString(csBriefString, csFullString, isSpyRelated); - - // Write down the call stack to the log. - OS_OUTPUT_DEBUG_LOG(csFullString.asCharArray(), OS_DEBUG_LOG_ERROR); - - // Exit. - osExitCurrentProcess(0xFFFFFFFFU); -} - diff --git a/external/amdt_os_wrappers/src/common/osPortAddress.cpp b/external/amdt_os_wrappers/src/common/osPortAddress.cpp deleted file mode 100644 index df21f01..0000000 --- a/external/amdt_os_wrappers/src/common/osPortAddress.cpp +++ /dev/null @@ -1,74 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osPortAddress.cpp -/// -//===================================================================== - -//------------------------------ osPortAddress.cpp ------------------------------ - -// Infra: -#include - -// Local: -#include - - - -// --------------------------------------------------------------------------- -// Name: osRemotePortAddressFromString -// Description: Converts a string of the format "hostname:portnumber" to an osPortAddress -// Arguments: i_portAddressAsStr - input string -// o_portAddress - output port address -// Author: AMD Developer Tools Team -// Date: 8/7/2013 -// --------------------------------------------------------------------------- -bool osRemotePortAddressFromString(const gtString& i_portAddressAsStr, osPortAddress& o_portAddress) -{ - bool retVal = false; - - // Make sure the port address is of the form "hostname:port": - if (1 == i_portAddressAsStr.count(':')) - { - // Get the colon position and the last character index: - int colonPos = i_portAddressAsStr.find(':'); - int lastChar = i_portAddressAsStr.length() - 1; - - // Sanity check: - if ((0 < colonPos) && (colonPos < lastChar)) - { - // Get the port number substring: - gtString portNumberStr; - i_portAddressAsStr.getSubString(colonPos + 1, lastChar, portNumberStr); - - // Make sure it is a number: - int portNumberAsInt = -1; - bool rcInt = portNumberStr.toIntNumber(portNumberAsInt); - - if (rcInt) - { - // Make sure it is in the correct range to be an unsigned short: - if ((-1 < portNumberAsInt) && (0xffff >= portNumberAsInt)) - { - // Get the hostname substring: - gtString hostName; - i_portAddressAsStr.getSubString(0, colonPos - 1, hostName); - - // Sanity check: - if (!hostName.isEmpty()) - { - // Set the success value: - retVal = true; - - // Set the output value: - o_portAddress.setAsRemotePortAddress(hostName, (unsigned short)portNumberAsInt); - } - } - } - } - } - - return retVal; -} - diff --git a/external/amdt_os_wrappers/src/common/osRawMemoryBuffer.cpp b/external/amdt_os_wrappers/src/common/osRawMemoryBuffer.cpp deleted file mode 100644 index 28cbd6a..0000000 --- a/external/amdt_os_wrappers/src/common/osRawMemoryBuffer.cpp +++ /dev/null @@ -1,279 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osRawMemoryBuffer.cpp -/// -//===================================================================== - -//------------------------------ osRawMemoryBuffer.cpp ------------------------------ - -// Infra: -#include - -// Local: -#include -#include -#include - - -// --------------------------------------------------------------------------- -// Name: osRawMemoryBuffer::osRawMemoryBuffer -// Description: Constructor -// Author: AMD Developer Tools Team -// Date: 5/11/2009 -// --------------------------------------------------------------------------- -osRawMemoryBuffer::osRawMemoryBuffer(): _pData(NULL), _dataSize(0) -{ -} - -// --------------------------------------------------------------------------- -// Name: osRawMemoryBuffer::osRawMemoryBuffer -// Description: Copy constructor -// Author: AMD Developer Tools Team -// Date: 5/11/2009 -// --------------------------------------------------------------------------- -osRawMemoryBuffer::osRawMemoryBuffer(const osRawMemoryBuffer& other) -{ - osRawMemoryBuffer::operator=(other); -} - -// --------------------------------------------------------------------------- -// Name: osRawMemoryBuffer::~osRawMemoryBuffer -// Description: Destructor -// Author: AMD Developer Tools Team -// Date: 5/11/2009 -// --------------------------------------------------------------------------- -osRawMemoryBuffer::~osRawMemoryBuffer() -{ - // Delete the buffer if it is assigned: - clearBuffer(); -} - -// --------------------------------------------------------------------------- -// Name: osRawMemoryBuffer::operator= -// Description: Assignment operator -// Author: AMD Developer Tools Team -// Date: 5/11/2009 -// --------------------------------------------------------------------------- -osRawMemoryBuffer& osRawMemoryBuffer::operator=(const osRawMemoryBuffer& other) -{ - // Clear any other data we might have had: - clearBuffer(); - - // Get the size: - _dataSize = other._dataSize; - - // Assign enough bytes to read the data: - _pData = new gtByte[_dataSize]; - - // Copy the data: - ::memcpy((void*)_pData, (const void*)other._pData, _dataSize); - - return *this; -} - -// --------------------------------------------------------------------------- -// Name: osRawMemoryBuffer::type -// Description: Returns my transferable object type. -// Author: AMD Developer Tools Team -// Date: 5/11/2009 -// --------------------------------------------------------------------------- -osTransferableObjectType osRawMemoryBuffer::type() const -{ - return OS_TOBJ_ID_RAW_MEMORY_BUFFER; -} - -// --------------------------------------------------------------------------- -// Name: osRawMemoryBuffer::writeSelfIntoChannel -// Description: Writes this class into a channel. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 5/11/2009 -// --------------------------------------------------------------------------- -bool osRawMemoryBuffer::writeSelfIntoChannel(osChannel& ipcChannel) const -{ - // Write the buffer size: - ipcChannel << (gtUInt64)_dataSize; - - // Write the buffer data: - bool retVal = ipcChannel.write(_pData, _dataSize); - - return retVal; -} - -// --------------------------------------------------------------------------- -// Name: osRawMemoryBuffer::readSelfFromChannel -// Description: Reads this class from a channel. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 5/11/2009 -// --------------------------------------------------------------------------- -bool osRawMemoryBuffer::readSelfFromChannel(osChannel& ipcChannel) -{ - // Clear any previous data: - clearBuffer(); - - // Read the buffer size: - gtUInt64 dataSizeAsUInt64 = 0; - ipcChannel >> dataSizeAsUInt64; - _dataSize = (gtSize_t)dataSizeAsUInt64; - - // Assign a large enough buffer: - _pData = new gtByte[_dataSize]; - - // Read the buffer data: - bool retVal = ipcChannel.read(_pData, _dataSize); - - return retVal; -} - -// --------------------------------------------------------------------------- -// Name: osRawMemoryBuffer::clone -// Description: Creates a new copy of self, and returns it. -// It is the caller responsibility to delete the created copy. -// Author: AMD Developer Tools Team -// Date: 5/11/2009 -// --------------------------------------------------------------------------- -osTransferableObject* osRawMemoryBuffer::clone() const -{ - osRawMemoryBuffer* pClone = new osRawMemoryBuffer(*this); - - return (osTransferableObject*)pClone; -} - -// --------------------------------------------------------------------------- -// Name: osRawMemoryBuffer::fromFile -// Description: Reads the contents of a file into the raw memory buffer -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 5/11/2009 -// --------------------------------------------------------------------------- -bool osRawMemoryBuffer::fromFile(const osFilePath& filePath) -{ - bool retVal = false; - - // Clear any previous data: - clearBuffer(); - - // Fail if the file doesn't exist: - if (filePath.exists()) - { - osFile fileToRead(filePath); - - // Open the file for reading: - bool rcOpen = fileToRead.open(osChannel::OS_BINARY_CHANNEL, osFile::OS_OPEN_TO_READ); - GT_IF_WITH_ASSERT(rcOpen) - { - // Get the file size: - unsigned long fileSize = 0; - bool rcSize = fileToRead.getSize(fileSize); - GT_IF_WITH_ASSERT(rcSize) - { - if (fileSize > 0) - { - // Set the buffer size: - _dataSize = fileSize; - - // Assign a buffer large enough to contain the data: - _pData = new gtByte[_dataSize]; - - // Read the file into the buffer: - gtSize_t readData = 0; - retVal = fileToRead.readAvailableData(_pData, _dataSize, readData); - - // Make sure we read the whole file: - GT_ASSERT(readData == _dataSize); - } - else - { - // The file is empty, just return true: - retVal = true; - } - } - - fileToRead.close(); - } - } - - return retVal; -} - -// --------------------------------------------------------------------------- -// Name: osRawMemoryBuffer::toFile -// Description: Writes the contents of the raw memory buffer into a file, deleting -// any previous contents. If createIfNeeded is false, does not create -// a file that didn't exist before. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 5/11/2009 -// --------------------------------------------------------------------------- -bool osRawMemoryBuffer::toFile(const osFilePath& filePath, bool createIfNeeded) const -{ - bool retVal = false; - - // Make sure the file exists or that we want to create it: - if (createIfNeeded || filePath.exists()) - { - osFile fileToWrite(filePath); - - // Open the file for writing: - bool rcOpen = fileToWrite.open(osChannel::OS_BINARY_CHANNEL, osFile::OS_OPEN_TO_WRITE); - GT_IF_WITH_ASSERT(rcOpen) - { - retVal = fileToWrite.write(_pData, _dataSize); - - fileToWrite.close(); - } - } - - return retVal; -} - -// --------------------------------------------------------------------------- -// Name: osRawMemoryBuffer::appendToFile -// Description: Writes the contents of the raw memory buffer into a file, appending -// to any previous contents. If createIfNeeded is false, does not create -// a file that didn't exist before. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 5/11/2009 -// --------------------------------------------------------------------------- -bool osRawMemoryBuffer::appendToFile(const osFilePath& filePath, bool createIfNeeded) const -{ - bool retVal = false; - - // Make sure the file exists or that we want to create it: - if (createIfNeeded || filePath.exists()) - { - osFile fileToAppend(filePath); - - // Open the file for appending: - bool rcOpen = fileToAppend.open(osChannel::OS_BINARY_CHANNEL, osFile::OS_OPEN_TO_APPEND); - GT_IF_WITH_ASSERT(rcOpen) - { - retVal = fileToAppend.write(_pData, _dataSize); - - fileToAppend.close(); - } - } - - return retVal; -} - -// --------------------------------------------------------------------------- -// Name: osRawMemoryBuffer::clearBuffer -// Description: Resets the buffer to empty state -// Author: AMD Developer Tools Team -// Date: 5/11/2009 -// --------------------------------------------------------------------------- -void osRawMemoryBuffer::clearBuffer() -{ - if (_pData != NULL) - { - delete[] _pData; - _pData = NULL; - } - - _dataSize = 0; -} diff --git a/external/amdt_os_wrappers/src/common/osSingeltonsDelete.cpp b/external/amdt_os_wrappers/src/common/osSingeltonsDelete.cpp deleted file mode 100644 index 55202b3..0000000 --- a/external/amdt_os_wrappers/src/common/osSingeltonsDelete.cpp +++ /dev/null @@ -1,54 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osSingeltonsDelete.cpp -/// -//===================================================================== - -//------------------------------ osSingeltonsDelete.cpp ------------------------------ - -// Local: -#include -#include -#include -#include - -#if AMDT_BUILD_TARGET == AMDT_WINDOWS_OS - #include -#endif - -// A static instance of the singleton deleter class. Its destructor will delete all -// the singletons instances. -static osSingeltonsDelete singeltonDeleter; - - -// --------------------------------------------------------------------------- -// Name: osSingeltonsDelete::~osSingeltonsDelete -// Description: Destructor - deletes all the singleton instances. -// Author: AMD Developer Tools Team -// Date: 24/4/2004 -// --------------------------------------------------------------------------- -osSingeltonsDelete::~osSingeltonsDelete() -{ - // Delete os_stat_applicationDllsPath: - delete os_stat_applicationDllsPath; - os_stat_applicationDllsPath = NULL; - - // Delete the osTransferableObjectsCreatorsManager single instance: - delete osTransferableObjectCreatorsManager::_pMySingleInstance; - osTransferableObjectCreatorsManager::_pMySingleInstance = NULL; - - // Delete the debug log: - delete osDebugLog::_pMySingleInstance; - osDebugLog::_pMySingleInstance = NULL; - -#if AMDT_BUILD_TARGET == AMDT_WINDOWS_OS - // Delete the osUnhandledExceptionHandler single instance: - delete osUnhandledExceptionHandler::_pMySingleInstance; - osUnhandledExceptionHandler::_pMySingleInstance = NULL; -#endif // AMDT_BUILD_TARGET == AMDT_WINDOWS_OS -} - - - diff --git a/external/amdt_os_wrappers/src/common/osSingeltonsDelete.h b/external/amdt_os_wrappers/src/common/osSingeltonsDelete.h deleted file mode 100644 index 9ea85e4..0000000 --- a/external/amdt_os_wrappers/src/common/osSingeltonsDelete.h +++ /dev/null @@ -1,37 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osSingeltonsDelete.h -/// -//===================================================================== - -//------------------------------ osSingeltonsDelete.h ------------------------------ - -#ifndef __OSSINGELTONSDELETE -#define __OSSINGELTONSDELETE - - -// ---------------------------------------------------------------------------------- -// Class Name: osSingeltonsDelete -// General Description: -// Deletes all the GROSWrappers.dll singleton objects. -// Thus removes redundant memory leak reports. -// -// Implementation notes: -// We hold a single instance of this class. Its destructor is called when the -// process that holds it terminates. This is an excellent timing to delete all the -// existing singleton objects. -// -// Author: AMD Developer Tools Team -// Creation Date: 24/4/2004 -// ---------------------------------------------------------------------------------- -class osSingeltonsDelete -{ -public: - osSingeltonsDelete() {}; - ~osSingeltonsDelete(); -}; - - -#endif // __OSSINGELTONSDELETE diff --git a/external/amdt_os_wrappers/src/common/osStream.cpp b/external/amdt_os_wrappers/src/common/osStream.cpp deleted file mode 100644 index 5bd0c93..0000000 --- a/external/amdt_os_wrappers/src/common/osStream.cpp +++ /dev/null @@ -1,54 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osStream.cpp -/// -//===================================================================== - -//------------------------------ osStream.cpp ------------------------------ - -// Local: -#include - - -// --------------------------------------------------------------------------- -// Name: osStream::seekCurrentPosition -// Description: Seeks the current position in this stream to a given offset. -// The offset is given from the current stream position. -// Arguments: long offset -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 3/6/2004 -// --------------------------------------------------------------------------- -bool osStream::seekCurrentPosition(gtSize_t offset) -{ - return seekCurrentPosition(OS_STREAM_CURRENT_POSITION, offset); -} - - -// --------------------------------------------------------------------------- -// Name: osStream::currentPosition -// Description: Returns the stream current position, relative to the -// stream begin position. -// Return Val: long - The stream current position (relative to the stream beginning). -// or 0 in case of failure. -// Author: AMD Developer Tools Team -// Date: 3/6/2004 -// --------------------------------------------------------------------------- -gtSize_t osStream::currentPosition() const -{ - gtSize_t offset = 0; - - // Get the stream current position (relative to the stream beginning): - bool rc = currentPosition(OS_STREAM_BEGIN, offset); - - // In case of failure - we return 0: - if (!rc) - { - offset = 0; - } - - return offset; -} - diff --git a/external/amdt_os_wrappers/src/common/osSynchronizationObject.cpp b/external/amdt_os_wrappers/src/common/osSynchronizationObject.cpp deleted file mode 100644 index 41d3357..0000000 --- a/external/amdt_os_wrappers/src/common/osSynchronizationObject.cpp +++ /dev/null @@ -1,75 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osSynchronizationObject.cpp -/// -//===================================================================== - -//------------------------------ osSynchronizationObject.cpp ------------------------------ - -// Infra: -#include -#include - -// Per OS implementations of this class: -#if AMDT_BUILD_TARGET == AMDT_WINDOWS_OS - #include -#endif - -// Local: -#include - - -// --------------------------------------------------------------------------- -// Name: osSynchronizationObject::osSynchronizationObject -// Description: Constructor -// Author: AMD Developer Tools Team -// Date: 21/6/2005 -// --------------------------------------------------------------------------- -osSynchronizationObject::osSynchronizationObject() -{ - // Create our OS specific synchronization object implementation: - _pImplementation = new osSynchronizationObjectImpl; - GT_ASSERT(_pImplementation); -} - - -// --------------------------------------------------------------------------- -// Name: osSynchronizationObject::~osSynchronizationObject -// Description: Destructor. -// Author: AMD Developer Tools Team -// Date: 21/6/2005 -// --------------------------------------------------------------------------- -osSynchronizationObject::~osSynchronizationObject() -{ - delete _pImplementation; -} - - -// --------------------------------------------------------------------------- -// Name: osSynchronizationObject::lock -// Description: "Locks" (try to own) the synchronization object. If the synchronization -// object is currently owned by another thread, this function will halt -// its calling thread until the synchronization object is "Unlocked". -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 21/6/2005 -// --------------------------------------------------------------------------- -bool osSynchronizationObject::lock() -{ - return _pImplementation->lock(); -} - -// --------------------------------------------------------------------------- -// Name: osSynchronizationObject::unlock -// Description: Unlocks the synchronization object. (Release its ownership). -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 21/6/2005 -// --------------------------------------------------------------------------- -bool osSynchronizationObject::unlock() -{ - return _pImplementation->unlock(); -} - diff --git a/external/amdt_os_wrappers/src/common/osSynchronizationObjectLocker.cpp b/external/amdt_os_wrappers/src/common/osSynchronizationObjectLocker.cpp deleted file mode 100644 index f3d92c7..0000000 --- a/external/amdt_os_wrappers/src/common/osSynchronizationObjectLocker.cpp +++ /dev/null @@ -1,77 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osSynchronizationObjectLocker.cpp -/// -//===================================================================== - -//------------------------------ osSynchronizationObjectLocker.cpp ------------------------------ - -// Infra: -#include - -// Local: -#include - - -// --------------------------------------------------------------------------- -// Name: osSynchronizationObjectLocker::osSynchronizationObjectLocker -// Description: Constructor - locks the synchronization object. -// Arguments: syncObj - The synchronization object to be locked. -// Author: AMD Developer Tools Team -// Date: 30/3/2004 -// --------------------------------------------------------------------------- -osSynchronizationObjectLocker::osSynchronizationObjectLocker(osSynchronizationObject& syncObj) - : _syncObj(syncObj), _wasSyncObjUnlocked(false) -{ - // Lock the synchronization object: - bool rc = _syncObj.lock(); - - // Sanity check: - GT_ASSERT(rc); -} - - -// --------------------------------------------------------------------------- -// Name: osSynchronizationObjectLocker::~osSynchronizationObjectLocker -// Description: Destructor - Unlocks the synchronization object. -// Author: AMD Developer Tools Team -// Date: 30/3/2004 -// --------------------------------------------------------------------------- -osSynchronizationObjectLocker::~osSynchronizationObjectLocker() -{ - // If the synchronization object was not already unlocked by this class: - if (!_wasSyncObjUnlocked) - { - bool rc = _syncObj.unlock(); - GT_ASSERT(rc); - - _wasSyncObjUnlocked = true; - } -} - - -// --------------------------------------------------------------------------- -// Name: osSynchronizationObjectLocker::unlockSyncObj -// Description: Unlocks the synchronization object manually. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 30/3/2004 -// --------------------------------------------------------------------------- -bool osSynchronizationObjectLocker::unlockSyncObj() -{ - bool retVal = true; - - // If the synchronization object was not already unlocked by this class: - if (!_wasSyncObjUnlocked) - { - retVal = _syncObj.unlock(); - GT_ASSERT(retVal); - - _wasSyncObjUnlocked = true; - } - - return retVal; -} - diff --git a/external/amdt_os_wrappers/src/common/osTCPSocketServer.cpp b/external/amdt_os_wrappers/src/common/osTCPSocketServer.cpp deleted file mode 100644 index 82bbf5e..0000000 --- a/external/amdt_os_wrappers/src/common/osTCPSocketServer.cpp +++ /dev/null @@ -1,57 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osTCPSocketServer.cpp -/// -//===================================================================== - -//------------------------------ osTCPSocketServer.cpp ------------------------------ - -// Local: -#include - - -// --------------------------------------------------------------------------- -// Name: osCanAddressBeUsedByTCPSocketServer -// Description: Returns true iff testedAddress can be used by this computer to -// accept TCP connections -// Author: AMD Developer Tools Team -// Date: 17/5/2010 -// --------------------------------------------------------------------------- -bool osCanAddressBeUsedByTCPSocketServer(const osPortAddress& testedAddress) -{ - bool retVal = false; - - static osTCPSocketServer testingSocketServer; - - // Clean any connections previously used: - if (testingSocketServer.isOpen()) - { - testingSocketServer.close(); - } - - bool rc = testingSocketServer.open(); - - if (rc) - { - // Bind the server to the input port: - rc = testingSocketServer.bind(testedAddress); - - if (rc) - { - // Listen to the port - allow 1 unhanded pending connections. - bool rcListen = testingSocketServer.listen(1); - - if (rcListen) - { - retVal = true; - } - } - - testingSocketServer.close(); - } - - return retVal; -} - diff --git a/external/amdt_os_wrappers/src/common/osTCPSocketServerConnectionHandler.cpp b/external/amdt_os_wrappers/src/common/osTCPSocketServerConnectionHandler.cpp deleted file mode 100644 index 661220a..0000000 --- a/external/amdt_os_wrappers/src/common/osTCPSocketServerConnectionHandler.cpp +++ /dev/null @@ -1,49 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osTCPSocketServerConnectionHandler.cpp -/// -//===================================================================== - -//------------------------------ osTCPSocketServerConnectionHandler.cpp ------------------------------ - -// GRBaseTools: -#include - -// Local: -#include - -// --------------------------------------------------------------------------- -// Name: osTCPSocketServerConnectionHandler::osTCPSocketServerConnectionHandler -// Description: Constructor -// Author: AMD Developer Tools Team -// Date: 3/1/2004 -// --------------------------------------------------------------------------- -osTCPSocketServerConnectionHandler::osTCPSocketServerConnectionHandler() - : osTCPSocket(L"osTCPSocketServerConnectionHandler") -{ -} - - -// --------------------------------------------------------------------------- -// Name: osTCPSocketServerConnectionHandler::~osTCPSocketServerConnectionHandler -// Description: Destructor -// Author: AMD Developer Tools Team -// Date: 4/1/2004 -// --------------------------------------------------------------------------- -osTCPSocketServerConnectionHandler::~osTCPSocketServerConnectionHandler() -{ -} - - -// --------------------------------------------------------------------------- -// Name: osTCPSocketServerConnectionHandler::initialize -// Description: Initialize me using an OS socket descriptor -// Author: AMD Developer Tools Team -// Date: 18/1/2004 -// --------------------------------------------------------------------------- -void osTCPSocketServerConnectionHandler::initialize(osSocketDescriptor socketDescriptor) -{ - setOSDescriptor(socketDescriptor); -} diff --git a/external/amdt_os_wrappers/src/common/osTransferableObjectType.cpp b/external/amdt_os_wrappers/src/common/osTransferableObjectType.cpp deleted file mode 100644 index a22a95a..0000000 --- a/external/amdt_os_wrappers/src/common/osTransferableObjectType.cpp +++ /dev/null @@ -1,54 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osTransferableObjectType.cpp -/// -//===================================================================== - -//------------------------------ osTransferableObjectType.cpp ------------------------------ - -// Infra: -#include - -// Local: -#include -#include - -// Data types sizes: -static unsigned long statTransferableObjTypeSize = sizeof(osTransferableObjectType); - - -// --------------------------------------------------------------------------- -// Name: operator<< -// Description: Writes an osTransferableObjectType enum into an IPC channel. -// Author: AMD Developer Tools Team -// Date: 3/5/2004 -// --------------------------------------------------------------------------- -osChannel& operator<<(osChannel& ipcChannel, osTransferableObjectType objType) -{ - const gtByte* pDataBuffer = (const gtByte*)&objType; - bool rc = ipcChannel.write(pDataBuffer, statTransferableObjTypeSize); - - // Sanity test: - GT_ASSERT(rc); - - return ipcChannel; -} - - -// --------------------------------------------------------------------------- -// Name: operator>> -// Description: Reads an osTransferableObjectType enum from an IPC channel. -// Author: AMD Developer Tools Team -// Date: 3/5/2004 -// --------------------------------------------------------------------------- -osChannel& operator>>(osChannel& ipcChannel, osTransferableObjectType& objType) -{ - gtByte* pDataBuffer = (gtByte*)&objType; - bool rc = ipcChannel.read(pDataBuffer, statTransferableObjTypeSize); - GT_ASSERT(rc); - - return ipcChannel; -} - diff --git a/external/amdt_os_wrappers/src/common/osWrappersInitFunc.cpp b/external/amdt_os_wrappers/src/common/osWrappersInitFunc.cpp deleted file mode 100644 index fd5ca42..0000000 --- a/external/amdt_os_wrappers/src/common/osWrappersInitFunc.cpp +++ /dev/null @@ -1,54 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osWrappersInitFunc.cpp -/// -//===================================================================== - -//------------------------------ osWrappersInitFunc.cpp ------------------------------ - -// Local: -#include -#include -#include -#include -#include - - -// --------------------------------------------------------------------------- -// Name: apiClassesInitFunc -// Description: Initialization function for the GROSWrappers library. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 2/6/2004 -// Implementation Notes: -// Registeres all the GROSWrappers transferable objects in the transferable -// objects creator manager. -// --------------------------------------------------------------------------- -bool osWrappersInitFunc() -{ - // Verify that this function code is executed only once: - static bool wasThisFunctionCalled = false; - - if (!wasThisFunctionCalled) - { - wasThisFunctionCalled = true; - - // Get the osTransferableObjectCreatorsManager single instance: - osTransferableObjectCreatorsManager& theTransfetableObsCreatorsManager = osTransferableObjectCreatorsManager::instance(); - - // ----------- Register transferable objects creators ----------- - - osTransferableObjectCreator osFilePathCreator; - theTransfetableObsCreatorsManager.registerCreator(osFilePathCreator); - - osTransferableObjectCreator osDirectoryCreator; - theTransfetableObsCreatorsManager.registerCreator(osDirectoryCreator); - - } - - return true; -} - - diff --git a/external/amdt_os_wrappers/src/iphone/osApplication.mm b/external/amdt_os_wrappers/src/iphone/osApplication.mm deleted file mode 100644 index a61132c..0000000 --- a/external/amdt_os_wrappers/src/iphone/osApplication.mm +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------ osApplication.mm ------------------------------ - -#ifndef _GR_IPHONE_BUILD - #error Build this file only on the iPhone -#endif - -// Foundation framework: -#import - -// Infra: -#import - -// Local: -#import -#import - -// --------------------------------------------------------------------------- -// Name: osGetCurrentApplicationPath -// Description: Returns the current application path (exe full path). -// Return Val: bool - Success / failure. -// Author: Uri Shomroni -// Date: 1/6/2009 -// --------------------------------------------------------------------------- -bool osGetCurrentApplicationPath(osFilePath& applicationPath) -{ - bool retVal = false; - - // This function might be called from a non-main thread, so use an autorelease pool - // to avoid memory leak warnings (see "Autorelease Pools" in - // http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/MemoryMgmt/MemoryMgmt.html): - NSAutoreleasePool* pPool = [[NSAutoreleasePool alloc] init]; - - NSString* mainBundleExecutablePath = [[[NSBundle class] mainBundle] executablePath]; - GT_IF_WITH_ASSERT (mainBundleExecutablePath != NULL) - { - const char* pExecutablePathAsString = [mainBundleExecutablePath cStringUsingEncoding: NSMacOSRomanStringEncoding]; - GT_IF_WITH_ASSERT(pExecutablePathAsString != NULL) - { - gtString executablePathAsGTString = pExecutablePathAsString; - applicationPath.setFullPathFromString(executablePathAsGTString); - retVal = applicationPath.exists(); - } - } - - [pPool release]; - - return retVal; -} - -#ifdef _GR_IPHONE_DEVICE_BUILD -// --------------------------------------------------------------------------- -// Name: osGetiPhoneApplicationSpecialPath -// Description: Gets a predefined path which is relative to the app bundle on -// the iPhone. -// Currently only implemented for the temp folder. -// Return Val: bool - Success / failure. -// Author: Uri Shomroni -// Date: 8/11/2009 -// --------------------------------------------------------------------------- -bool osGetiPhoneApplicationSpecialPath(osFilePath::osPreDefinedFilePaths predefinedPath, gtString& fullPathAsString) -{ - bool retVal = false; - - // This function might be called from a non-main thread, so use an autorelease pool - // to avoid memory leak warnings (see "Autorelease Pools" in - // http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/MemoryMgmt/MemoryMgmt.html): - NSAutoreleasePool* pPool = [[NSAutoreleasePool alloc] init]; - - NSString* filePathAsNSString = nil; - - switch (predefinedPath) - { - case osFilePath::OS_TEMP_DIRECTORY: - { - filePathAsNSString = NSTemporaryDirectory(); - } - break; - - default: - { - // We shouldn't get here: - GT_ASSERT(false); - } - break; - } - - if (filePathAsNSString != nil) - { - fullPathAsString = [filePathAsNSString cStringUsingEncoding: NSMacOSRomanStringEncoding]; - retVal = !fullPathAsString.isEmpty(); - } - - [pPool release]; - - return retVal; -} -#endif diff --git a/external/amdt_os_wrappers/src/linux/osCallsStackReader.cpp b/external/amdt_os_wrappers/src/linux/osCallsStackReader.cpp deleted file mode 100644 index c00c0ea..0000000 --- a/external/amdt_os_wrappers/src/linux/osCallsStackReader.cpp +++ /dev/null @@ -1,217 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osCallsStackReader.cpp -/// -//===================================================================== - -//------------------------------ osCallsStackReader.cpp ------------------------------ - -// Includes for Linux backtrace: -#include -#include -#include - -// Infra: -#include - -// Local: -#include -#include - -// The maximum depth of calls stack we can read -#define OS_LINUX_CALLS_STACK_MAX_DEPTH 100 - -// --------------------------------------------------------------------------- -// Name: osCallsStackReader::osCallsStackReader -// Description: Constructor -// Author: AMD Developer Tools Team -// Date: 23/10/2008 -// --------------------------------------------------------------------------- -osCallsStackReader::osCallsStackReader() -{ - -} - -// --------------------------------------------------------------------------- -// Name: osCallsStackReader::~osCallsStackReader -// Description: Destructor -// Author: AMD Developer Tools Team -// Date: 23/10/2008 -// --------------------------------------------------------------------------- -osCallsStackReader::~osCallsStackReader() -{ - -} - -// --------------------------------------------------------------------------- -// Name: osCallsStackReader::getCurrentCallsStack -// Description: populates callStack with the current thread's calls stack. If -// shouldIgnoreSpyFrames is true, stack frames belonging to the -// spy are discarded. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 23/10/2008 -// --------------------------------------------------------------------------- -bool osCallsStackReader::getCurrentCallsStack(osCallStack& callStack, bool shouldIgnoreSpyFrames, bool forceWindowsSymbolLoading) -{ - bool retVal = true; - - // Unused parameter: - (void)forceWindowsSymbolLoading; - - // We use osProcedureAddress instead of osInstructionPointer here since osInstructionPointer is supposed to be - // address-space-size independant, but backtrace() and dladdr() require pointer-sized items. - osProcedureAddress callsStackPointers[OS_LINUX_CALLS_STACK_MAX_DEPTH]; - int callsStackDepth = backtrace((void**)callsStackPointers, OS_LINUX_CALLS_STACK_MAX_DEPTH); - GT_ASSERT_EX((callsStackDepth < OS_LINUX_CALLS_STACK_MAX_DEPTH), L"Maximum calls stack depth reached, some data may have been lost"); - - osCallStack pendingCallsStack; - int numberOfIgnoredFrames = 0; - - for (int i = 0; i < callsStackDepth; i++) - { - osCallStackFrame currentCallsStackFrame; - - // We move the instruction pointer one step back so it points to the current instruction and not - // to the next one - currentCallsStackFrame.setInstructionCounterAddress((osInstructionPointer)((gtSize_t)callsStackPointers[i] - 1)); - - // Note that we use dladdr instead of backtrace_symbols for two reasons: - // 1. The implementation of dladdr is identical on Linux and Mac, while - // backtrace_symbols gives out different output on these two platforms - // 2. The Mac implementation of backtrace_symbols doesn't give the module name. - Dl_info dynamicLinkerInfo; - int errCode = dladdr((void*)(callsStackPointers[i]), &dynamicLinkerInfo); - - if (errCode != 0) - { - if (dynamicLinkerInfo.dli_fname != NULL) - { - gtString moduleNameAsString; - moduleNameAsString.fromASCIIString(dynamicLinkerInfo.dli_fname); - - currentCallsStackFrame.setModuleFilePath(osFilePath(moduleNameAsString)); - } - - if (dynamicLinkerInfo.dli_sname != NULL) - { - gtString symbolName; - symbolName.fromASCIIString(dynamicLinkerInfo.dli_sname); - - gtString demangledSymbolName; - - int demanglingStatus = 0; - char* demangledStringAsCString = abi::__cxa_demangle(symbolName.asASCIICharArray(), NULL, NULL, &demanglingStatus); - - if ((demanglingStatus == 0) && (demangledStringAsCString != NULL)) - { - demangledSymbolName.fromASCIIString(demangledStringAsCString); - int firstBracketPosition = demangledSymbolName.find('('); - - if (firstBracketPosition > 0) - { - demangledSymbolName.truncate(0, (firstBracketPosition - 1)); - } - } - else - { - demangledSymbolName.makeEmpty(); - } - - if (demangledSymbolName.isEmpty()) - { - demangledSymbolName = symbolName; - } - - currentCallsStackFrame.setFunctionName(demangledSymbolName); - } - - if (dynamicLinkerInfo.dli_saddr != NULL) - { - osInstructionPointer symbolAddress = (osInstructionPointer)dynamicLinkerInfo.dli_saddr; - currentCallsStackFrame.setFunctionStartAddress(symbolAddress); - } - - if (dynamicLinkerInfo.dli_fbase != NULL) - { - osInstructionPointer fileBase = (osInstructionPointer)dynamicLinkerInfo.dli_fbase; - currentCallsStackFrame.setModuleStartAddress(fileBase); - } - } - - // We don't have source code file names here so can only check the module name: -#ifdef _GR_IPHONE_BUILD -#ifdef _GR_IPHONE_DEVICE_BUILD - static const gtString openGLSpyModuleName = OS_OPENGL_ES_DEVICE_COMMON_DLL_NAME; -#else // ndef _GR_IPHONE_DEVICE_BUILD - static const gtString openGLSpyModuleName = OS_OPENGL_ES_COMMON_DLL_NAME; -#endif // _GR_IPHONE_DEVICE_BUILD -#else // ndef _GR_IPHONE_BUILD - static const gtString openGLSpyModuleName = OS_GREMEDY_OPENGL_SERVER_MODULE_NAME; -#endif // _GR_IPHONE_BUILD - static const gtString openCLSpyModuleName = OS_GREMEDY_OPENCL_SERVER_MODULE_NAME; - - const gtString& moduleFilePathAsString = currentCallsStackFrame.moduleFilePath().asString(); - bool isSpyFileName = (moduleFilePathAsString.find(openGLSpyModuleName) != -1) || (moduleFilePathAsString.find(openCLSpyModuleName) != -1); - static const gtString linuxSystemPathPrefix = L"/usr/lib"; - - if (isSpyFileName && !(moduleFilePathAsString.startsWith(linuxSystemPathPrefix))) - { - currentCallsStackFrame.markAsSpyFunction(); - } - else - { - currentCallsStackFrame.markAsSpyFunction(false); - } - - // Add the frame to the calls stack: - if (shouldIgnoreSpyFrames && currentCallsStackFrame.isSpyFunction()) - { - pendingCallsStack.clearStack(); - numberOfIgnoredFrames = i + 1; - } - else - { - pendingCallsStack.addStackFrame(currentCallsStackFrame); - } - } - - // We currently do not verify if we got all the information (as we allow some of the frames - // to be without debug info). However, we do check that no frames "disappeared" on the way: - GT_IF_WITH_ASSERT((pendingCallsStack.amountOfStackFrames() + numberOfIgnoredFrames) == callsStackDepth) - { - callStack = pendingCallsStack; - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osCallsStackReader::getCallStack -// Description: Inputs a thread's execution context and outputs the call stack -// associated with it. -// Arguments: -// callStack - Will get the output call stack. -// shouldIgnoreSpyFrames - If true, the output call stack will not include -// spy related call stack threds. -// pThreadExecutionContext - A pointer to a thread's execution context -// cast into void*. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 13/5/2009 -// --------------------------------------------------------------------------- -bool osCallsStackReader::getCallStack(osCallStack& callStack, void* pThreadExecutionContext, bool shouldIgnoreSpyFrames) -{ - (void)(callStack); // unused - (void)(pThreadExecutionContext); // unused - (void)(shouldIgnoreSpyFrames); // unused - bool retVal = false; - - // This functionality is not implemented yet on Linux! - GT_ASSERT(false); - - return retVal; -} diff --git a/external/amdt_os_wrappers/src/linux/osCondition.cpp b/external/amdt_os_wrappers/src/linux/osCondition.cpp deleted file mode 100644 index aa138d4..0000000 --- a/external/amdt_os_wrappers/src/linux/osCondition.cpp +++ /dev/null @@ -1,202 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osCondition.cpp -/// -//===================================================================== - -// ---------------------------------- osCondition.cpp ---------------------------------- - -// Infra: -#include - -// Local: -#include - - -// --------------------------------------------------------------------------- -// Name: osCondition::osCondition -// Description: -// Constructor. Initializes the condition to "unlocked" state. -// Author: AMD Developer Tools Team -// Date: 14/11/2007 -// --------------------------------------------------------------------------- -osCondition::osCondition() - : _isConditionLocked(false) -{ - // Creates the condition object: - int rc = ::pthread_cond_init(&_conditionObj, NULL); - GT_IF_WITH_ASSERT(rc == 0) - { - // Create the condition mutex: - int rc = ::pthread_mutex_init(&_conditionMutex, NULL); - GT_ASSERT(rc == 0); - } -} - - -// --------------------------------------------------------------------------- -// Name: osCondition::osCondition -// Description: Destructor -// Author: AMD Developer Tools Team -// Date: 14/11/2007 -// --------------------------------------------------------------------------- -osCondition::~osCondition() -{ - // Unlock the condition (otherwise trying to delete it returns EBUSY) - unlockCondition(); - - // Destroy the condition object: - int rc1 = ::pthread_cond_destroy(&_conditionObj); - GT_ASSERT(rc1 == 0); - - // Destroy the condition mutex: - int rc2 = ::pthread_mutex_destroy(&_conditionMutex); - GT_ASSERT(rc2 == 0); -} - - -// --------------------------------------------------------------------------- -// Name: osCondition::lockCondition -// Description: -// Locks the condition. From this point on, all threads that will -// call waitForCondition() will be blocked. -// -// Author: AMD Developer Tools Team -// Date: 14/11/2007 -// --------------------------------------------------------------------------- -bool osCondition::lockCondition() -{ - bool retVal = false; - - // Lock the condition mutex: - int rc1 = ::pthread_mutex_lock(&_conditionMutex); - GT_IF_WITH_ASSERT(rc1 == 0) - { - // Mark the condition as locked: - _isConditionLocked = true; - - // Unlock the condition mutex: - int rc2 = ::pthread_mutex_unlock(&_conditionMutex); - GT_IF_WITH_ASSERT(rc2 == 0) - { - retVal = true; - } - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osCondition::unlockCondition -// Description: -// Unlocks the condition. From this point on, all threads that will -// call waitForCondition() will not be blocked. -// -// Author: AMD Developer Tools Team -// Date: 14/11/2007 -// --------------------------------------------------------------------------- -bool osCondition::unlockCondition() -{ - bool retVal = false; - - // Lock the condition mutex: - int rc1 = ::pthread_mutex_lock(&_conditionMutex); - GT_IF_WITH_ASSERT(rc1 == 0) - { - // Mark the condition as unlocked: - _isConditionLocked = false; - - // Unlock the condition mutex: - int rc2 = ::pthread_mutex_unlock(&_conditionMutex); - GT_IF_WITH_ASSERT(rc2 == 0) - { - retVal = true; - } - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osCondition::osCondition -// Description: Destructor -// Author: AMD Developer Tools Team -// Date: 14/11/2007 -// --------------------------------------------------------------------------- -bool osCondition::waitForCondition() -{ - bool retVal = false; - - // Lock the condition mutex: - int rc = ::pthread_mutex_lock(&_conditionMutex); - GT_IF_WITH_ASSERT(rc == 0) - { - // While the condition is locked: - while (_isConditionLocked) - { - // Release the mutex and wait for _conditionObj to be signalled (it is . - // signalled by signalSingleThread or signalAllThreads). - // When it is signalled - lock again the mutex automatically: - rc = ::pthread_cond_wait(&_conditionObj, &_conditionMutex); - GT_ASSERT(rc == 0); - } - - // Unlock the condition mutex: - rc = ::pthread_mutex_unlock(&_conditionMutex); - GT_IF_WITH_ASSERT(rc == 0) - { - retVal = true; - } - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osCondition::signalSingleThread -// Description: -// Signals one of the threads, waiting for this condition object to -// check if the condition state was changed. -// Author: AMD Developer Tools Team -// Date: 14/11/2007 -// --------------------------------------------------------------------------- -bool osCondition::signalSingleThread() -{ - bool retVal = false; - - int rc1 = ::pthread_cond_signal(&_conditionObj); - GT_IF_WITH_ASSERT(rc1 == 0) - { - retVal = true; - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osCondition::signalAllThreads -// Description: -// Signals all threads, waiting for this condition object to -// check if the condition state was changed. -// Author: AMD Developer Tools Team -// Date: 14/11/2007 -// --------------------------------------------------------------------------- -bool osCondition::signalAllThreads() -{ - bool retVal = false; - - int rc1 = ::pthread_cond_broadcast(&_conditionObj); - GT_IF_WITH_ASSERT(rc1 == 0) - { - retVal = true; - } - - return retVal; -} - diff --git a/external/amdt_os_wrappers/src/linux/osConsole.cpp b/external/amdt_os_wrappers/src/linux/osConsole.cpp deleted file mode 100644 index e784753..0000000 --- a/external/amdt_os_wrappers/src/linux/osConsole.cpp +++ /dev/null @@ -1,70 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osConsole.cpp -/// -//===================================================================== -#include -#include -#include -#include -#include -#include - -// --------------------------------------------------------------------------- -// Name: osKbhitLinuxImpl -// Description: This is a helper function: implementing kbhit() on Linux -// Arguments: None -// Author: AMD Developer Tools Team -// Date: 2/2/2014 -// --------------------------------------------------------------------------- -int osKbhitLinuxImpl() -{ - int ret = 0; - struct termios oldt, newt; - int ch; - int oldf; - - tcgetattr(STDIN_FILENO, &oldt); - newt = oldt; - newt.c_lflag &= ~(ICANON | ECHO); - tcsetattr(STDIN_FILENO, TCSANOW, &newt); - oldf = fcntl(STDIN_FILENO, F_GETFL, 0); - fcntl(STDIN_FILENO, F_SETFL, oldf | O_NONBLOCK); - - ch = getchar(); - - tcsetattr(STDIN_FILENO, TCSANOW, &oldt); - fcntl(STDIN_FILENO, F_SETFL, oldf); - - if (ch != EOF) - { - ungetc(ch, stdin); - ret = 1; - } - - return ret; -} - -// --------------------------------------------------------------------------- -// Name: osWaitForKeyPress -// Description: Blocks the console until the user hits a keyboard key -// Arguments: None -// Author: AMD Developer Tools Team -// Date: 2/2/2014 -// --------------------------------------------------------------------------- -void osWaitForKeyPress() -{ - const unsigned SLEEP_INTERVAL_MS = 50; - - // If we are running in background mode, there is no console, therefore we - // should block forever (until the user, who decided to run us in background - // mode, will kill us). Otherwise, we actually wait for a keyboard hit. - bool isBackground = (getpgrp() != tcgetpgrp(STDOUT_FILENO)); - - while (isBackground || !osKbhitLinuxImpl()) - { - osSleep(SLEEP_INTERVAL_MS); - } -} diff --git a/external/amdt_os_wrappers/src/linux/osDaemon.cpp b/external/amdt_os_wrappers/src/linux/osDaemon.cpp deleted file mode 100644 index 87dc28f..0000000 --- a/external/amdt_os_wrappers/src/linux/osDaemon.cpp +++ /dev/null @@ -1,267 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osDaemon.cpp -/// -//===================================================================== - -//------------------------------ osDaemon.cpp ------------------------------ - -// Standard C: -#include -#include - -// POSIX: -#include -#include -#include -#include -#include - -// Infra: -#include - -// Local: -#include -#include -#include -#include -#include -#include -#include - - -// --------------------------------------------------------------------------- -// Name: osForkAndSwitchExecutionToChildProcess -// Description: Calls fork(), exits the parent process and continues execution -// at the child process. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 14/4/2008 -// --------------------------------------------------------------------------- -bool osForkAndSwitchExecutionToChildProcess() -{ - bool retVal = true; - - // Fork into 2 processes: - int status = fork(); - - switch (status) - { - case -1: - { - // An error occurred: - retVal = false; - GT_ASSERT(false); - } - - case 0: - { - // We are inside the child process - continue running. - } - break; - - default: - { - // We are inside the parent process - exit the process: - exit(0); - } - break; - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osCloseAllOpenFileDescriptors -// Description: Closes all this process open file descriptors. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 14/4/2008 -// --------------------------------------------------------------------------- -bool osCloseAllOpenFileDescriptors() -{ - bool retVal = false; - - // Get the maximal file descriptor number that can be opened by this process: - struct rlimit resourceLimit; - resourceLimit.rlim_max = 0; - int rc1 = getrlimit(RLIMIT_NOFILE, &resourceLimit); - GT_IF_WITH_ASSERT(rc1 == 0) - { - // Sanity check: - GT_IF_WITH_ASSERT(0 < resourceLimit.rlim_max) - { - // Close all open file descriptors: - for (unsigned int i = 0; i < resourceLimit.rlim_max; i++) - { - (void)close(i); - } - - retVal = true; - } - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osMapStandardIOStreamsToNULL -// Description: -// Opens the the three standard I/O descriptors (stdin, stdout, stderr) and -// connect them to a harmless I/O device (/dev/null). -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 14/4/2008 -// --------------------------------------------------------------------------- -bool osMapStandardIOStreamsToNULL() -{ - bool retVal = false; - - // Open the /dev/null special file. This will redirect stdin into it: - int devNULLFileDescriptor = open("/dev/null", O_RDWR); - GT_IF_WITH_ASSERT(devNULLFileDescriptor != -1) - { - // Redirect stdout into /dev/null: - int rc1 = dup(devNULLFileDescriptor); - - // Redirect stderr into /dev/null: - int rc2 = dup(devNULLFileDescriptor); - - GT_IF_WITH_ASSERT((rc1 != -1) && (rc2 != -1)) - { - retVal = true; - } - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osWriteProcessIdToVarRun -// Description: Writes this process id to /var/run/.pid -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 14/4/2008 -// --------------------------------------------------------------------------- -bool osWriteProcessIdToVarRun() -{ - bool retVal = false; - - // Get the current application name: - gtString applicationName; - bool rc1 = osGetCurrentApplicationName(applicationName); - GT_IF_WITH_ASSERT(rc1) - { - // Calculate the /var/run/.pid path: - gtString varFilePathAsString = L"/var/run/"; - varFilePathAsString += applicationName; - varFilePathAsString += L".pid"; - - // Open the /var/run/.pid file: - osFilePath varFilePath(varFilePathAsString); - osFile varRunFile; - bool rc2 = varRunFile.open(varFilePath, osChannel::OS_ASCII_TEXT_CHANNEL, osFile::OS_OPEN_TO_WRITE); - GT_IF_WITH_ASSERT(rc2) - { - // Get this process id: - osProcessId thisProcessId = osGetCurrentProcessId(); - - // Write it into the /var/run/.pid file: - gtString thisProcessIdAsString; - bool rc3 = osProcessIdToString(thisProcessId, thisProcessIdAsString); - GT_IF_WITH_ASSERT(rc3) - { - varRunFile << thisProcessIdAsString; - retVal = true; - } - - // Close the file: - varRunFile.close(); - } - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osMakeThisProcessDaemon -// Description: Performs actions required to make this process a "well behaved" -// daemon (background server). -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 13/4/2008 -// Implementation notes: -// To become a "well behaved" daemon, we perform the following actions: -// a. Put this process in the background (done using fork). -// b. Close all open file descriptors inherited from our parent process. -// c. Create a new session and thus, a new process group with our process -// as the new session leader. -// d. Fork again to become the second child of the of the process group. -// This prevents the process from re-acquiring a controlling terminal. -// e. chdir() to / to enable unmounting the file system from which the daemon -// was invoked. -// f. Set umask to 0 to prevent problems with file creation using a mask inherited -// from my parent process. -// g. Open the the three standard I/O descriptors and connect them to a harmless -// I/O device (/dev/null). -// h. Write this daemon process id to /var/run/.pid -// -// For more details - see Linux Journal, Linux Network Programming, Part 2 -// (http://www.linuxjournal.com/article/2335) -// --------------------------------------------------------------------------- -bool osMakeThisProcessDaemon() -{ - bool retVal = false; - - // a. Put this process in the background (done using fork). - bool rc1 = osForkAndSwitchExecutionToChildProcess(); - GT_IF_WITH_ASSERT(rc1) - { - // b. Close all open file descriptors inherited from our parent process. - bool rc2 = osCloseAllOpenFileDescriptors(); - GT_IF_WITH_ASSERT(rc2) - { - // c. Create a new session and thus, a new process group with our process as the new session leader: - int rc3 = setsid(); - GT_IF_WITH_ASSERT(rc3 != -1) - { - // d. Fork again to become the second child of the of the new process group. - // (This prevents this process from re-acquiring a controlling terminal). - bool rc4 = osForkAndSwitchExecutionToChildProcess(); - GT_IF_WITH_ASSERT(rc4) - { - // e. chdir() to / to enable un-mounting the file system from which the daemon was invoked: - int rc5 = chdir("/"); - GT_IF_WITH_ASSERT(rc5 == 0) - { - // f. Set umask to 0 to prevent problems with file creation using a mask inherited - // from my parent process: - umask(0); - - // g. Open the the three standard I/O descriptors and connect them to a harmless - // I/O device (/dev/null). - bool rc6 = osMapStandardIOStreamsToNULL(); - GT_IF_WITH_ASSERT(rc6) - { - // h. Write this daemon process id to /var/run/.pid - bool rc7 = osWriteProcessIdToVarRun(); - (void)(rc7); - - // We don't require rc7 to be true, since we don't always have permission to write in /var/run/ - retVal = true; - } - } - } - } - } - } - - return retVal; -} - diff --git a/external/amdt_os_wrappers/src/linux/osDesktop.cpp b/external/amdt_os_wrappers/src/linux/osDesktop.cpp deleted file mode 100644 index 12b599b..0000000 --- a/external/amdt_os_wrappers/src/linux/osDesktop.cpp +++ /dev/null @@ -1,126 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osDesktop.cpp -/// -//===================================================================== - -//------------------------------ osDesktop.cpp ------------------------------ - -// Standard C: -#include - -// Infra: -#include -#include - -// Local: -#include -#include -#include -#include - - -// --------------------------------------------------------------------------- -// Name: osGetDesktopName -// Description: -// Retrieves the type of the desktop on which this -// application runs. -// -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 20/2/2007 -// --------------------------------------------------------------------------- -bool osGetDesktopType(osDesktopType& desktopType) -{ - bool retVal = false; - - gtString envVariableName(L"GDMSESSION"); - gtString envVarValue; - bool rc1 = osGetCurrentProcessEnvVariableValue(envVariableName, envVarValue); - - GT_IF_WITH_ASSERT(rc1) - { - gtString vendorLowerCase = envVarValue; - vendorLowerCase.toLowerCase(); - - if (vendorLowerCase.find(L"gnome") != -1) - { - // This is a GNOME desktop: - desktopType = OS_GNOME_DESKTOP; - retVal = true; - } - else if (vendorLowerCase.find(L"kde") != -1) - { - // This is a KDE desktop: - desktopType = OS_KDE_DESKTOP; - retVal = true; - } - else - { - // Report the name of the vendor which we do not support: - gtString errString = envVarValue; - errString.prepend(L"Unknown Linux session manager: "); - OS_OUTPUT_DEBUG_LOG(errString.asCharArray(), OS_DEBUG_LOG_DEBUG); - } - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osDesktopTypeToString -// Description: Inputs a desktop type and returns its name as a string. -// Arguments: desktopType - The input desktop type. -// desktoptTypeAsString - The output string. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 7/5/2008 -// --------------------------------------------------------------------------- -bool osDesktopTypeToString(const osDesktopType& desktopType, gtString& desktoptTypeAsString) -{ - bool retVal = true; - desktoptTypeAsString.makeEmpty(); - - switch (desktopType) - { - case OS_KDE_DESKTOP: - desktoptTypeAsString = L"KDE"; - break; - - case OS_GNOME_DESKTOP: - desktoptTypeAsString = L"GNOME"; - break; - - default: - { - // Unknown desktop type: - GT_ASSERT(false); - retVal = false; - } - break; - } - - return retVal; -} - -// --------------------------------------------------------------------------- -// Name: osAddToRecentDocs -// Description: Notifies the operating system that an item has been accessed, -// for the purposes of tracking those items used most recently and -// most frequently. On Windows these items are added to the -// Start Menu's list of recent documents and to the application's -// jump-list on the task bar. -// Currently implemented as a no-op for Linux. -// Arguments: docPath [INPUT] - The path to the document that will be added to the recent docs lists -// Return Val: none. -// Author: AMD Developer Tools Team -// Date: Dec-25, 2013 -// --------------------------------------------------------------------------- -OS_API void osAddToRecentDocs(const gtString& docPath) -{ - // Currently implemented as a no-op for Linux. - (void)(docPath); // unused -} \ No newline at end of file diff --git a/external/amdt_os_wrappers/src/linux/osKeyboardListener.cpp b/external/amdt_os_wrappers/src/linux/osKeyboardListener.cpp deleted file mode 100644 index a7166b7..0000000 --- a/external/amdt_os_wrappers/src/linux/osKeyboardListener.cpp +++ /dev/null @@ -1,146 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osKeyboardListener.cpp -/// -//===================================================================== - -//------------------------------ osKeyboardListener.cpp ------------------------------ - -//C++ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -//Infra -#include -#include -#include - -//Local -#include - - -#pragma GCC diagnostic ignored "-Wwrite-strings" - -osKeyboardListener::osKeyboardListener() -{ - m_pListener.reset(new std::thread(&osKeyboardListener::Listen, this, GetKeyboardDescriptor())); - -} - -osKeyboardListener::~osKeyboardListener() -{ - m_Stop = true; - m_pListener->join(); -} - -osKeyboardListener& osKeyboardListener::Instance() -{ - static osKeyboardListener instance; - return instance; -} - -//Set callback function,which is to be called from keyboard pressed Hook -void osKeyboardListener::SetOnKbPressedCallback(OnKeyboardPressed callback) -{ - m_callback = callback; -} - -int osKeyboardListener::GetKeyboardDescriptor() -{ - int fd(0); - - char name[256] = "Unknown"; - - if ((getuid()) != 0) - { - GT_ASSERT("You are not root! This may not work...n"); - } - - osDirectory deviceDir; - deviceDir.setDirectoryFullPathFromString(gtString(L"/dev/input/")); - gtList devicePaths; - deviceDir.getContainedFilePaths(L"*", osDirectory::SORT_BY_DATE_DESCENDING, devicePaths); - - //Open Device - for (osFilePath devicePath : devicePaths) - { - const char* deviceString = devicePath.asString().asASCIICharArray(); - - if ((fd = open(deviceString, O_RDONLY)) == -1) - { - gtString msg; - msg.fromASCIIString(deviceString).append(L" is not a vaild device"); - OS_OUTPUT_DEBUG_LOG(msg.asCharArray(), OS_DEBUG_LOG_DEBUG); - } - - //Print Device Name - ioctl(fd, EVIOCGNAME(sizeof(name)), name); - - gtString deviceName; - deviceName.fromASCIIString(name); - deviceName.toLowerCase(); - deviceName.find(L"keyboard"); - const size_t found = deviceName.find(L"keyboard"); - - if (found != std::string::npos) - { - //found keyboard device! - break; - } - } - - return fd; -} - -void osKeyboardListener::Listen(int fd) -{ - int rv = 0; - int value = 0; - int size = sizeof(struct input_event); - struct timeval timeout; - fd_set set; - struct input_event ev[64]; - - while (!m_Stop) - { - timeout.tv_sec = 0; - timeout.tv_usec = 50000;//50 ms - FD_ZERO(&set); // clear the set - FD_SET(fd, &set); // add our file descriptor to the set - rv = select(fd + 1, &set, NULL, NULL, &timeout); - - //if no error , no timeout and we not stopped - if (rv != -1 && rv != 0 && false == m_Stop) - { - if ((rv = read(fd, ev, size * 64)) >= size) - { - value = ev[0].value; - - // Only read the key press event - if (value != ' ' && ev[1].value == 1 && ev[1].type == EV_KEY) - { - if (m_callback != nullptr) - { - m_callback(ev[1].code); - } - } - } - } - } //while -} diff --git a/external/amdt_os_wrappers/src/linux/osNetworkAdapter.cpp b/external/amdt_os_wrappers/src/linux/osNetworkAdapter.cpp deleted file mode 100644 index ec310dc..0000000 --- a/external/amdt_os_wrappers/src/linux/osNetworkAdapter.cpp +++ /dev/null @@ -1,236 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osNetworkAdapter.cpp -/// -//===================================================================== - -//------------------------------ osNetworkAdapter.cpp ------------------------------ - -// Standard C: -#include -#include - -// POSIX: -#include -#include -#include -#include -#include - -// Infra: -#include -#include - -// Local: -#include - -// MAC OS X -#if AMDT_LINUX_VARIANT == AMDT_MAC_OS_X_LINUX_VARIANT - #include - #include - #include -#endif // Mac - - -// --------------------------------------------------------------------------- -// Name: osFillNetworkAdapterDetails -// Description: Inputs a network adapter name and fills its details. -// Arguments: adapterName - The input network adapter name. -// adapterDetails - Will get the network adapter details. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 11/12/2007 -// --------------------------------------------------------------------------- -bool osFillNetworkAdapterDetails(const gtASCIIString& adapterName, osNetworkAdapter& adapterDetails) -{ - bool retVal = false; - - // Fill the adapter name: - adapterDetails._name.fromASCIIString(adapterName.asCharArray()); - - unsigned char* pMACAddressStr = NULL; - const char* pTCPIPAddressStr = NULL; - bool rcMAC = false; - -#if AMDT_LINUX_VARIANT == AMDT_GENERIC_LINUX_VARIANT - // Create a dummy socket on which we can call ioctls to get the network adapter details: - int socketFD = ::socket(AF_INET, SOCK_DGRAM, 0); - GT_IF_WITH_ASSERT(socketFD != -1) - { - // Initialize an interface request structure that will be used to query the network - // adapter parameters: - struct ifreq hardwareInterfaceRequest; - ::memset(&hardwareInterfaceRequest, 0, sizeof(struct ifreq)); - ::strcpy(hardwareInterfaceRequest.ifr_name, adapterName.asCharArray()); - - // Perform the network adapeter query: - int rc1 = ::ioctl(socketFD, SIOCGIFHWADDR, &hardwareInterfaceRequest); - GT_IF_WITH_ASSERT(0 <= rc1) - { - // Get the network adapter MAC address: - pMACAddressStr = (unsigned char*)hardwareInterfaceRequest.ifr_ifru.ifru_hwaddr.sa_data; - } - - struct ifreq softwareInterfaceRequest; - ::memset(&softwareInterfaceRequest, 0, sizeof(struct ifreq)); - ::strcpy(softwareInterfaceRequest.ifr_name, adapterName.asCharArray()); - - // Perform the network adapeter query: - int rc2 = ::ioctl(socketFD, SIOCGIFADDR, &softwareInterfaceRequest); - - if (0 <= rc2) - { - in_addr& ipAddress = (((sockaddr_in&)(softwareInterfaceRequest.ifr_ifru.ifru_addr)).sin_addr); - pTCPIPAddressStr = (const char*)inet_ntoa(ipAddress); - } - - // Close the dummy socket: - ::close(socketFD); - } - -#elif AMDT_LINUX_VARIANT == AMDT_MAC_OS_X_LINUX_VARIANT - int mib[6], len; - - mib[0] = CTL_NET; - mib[1] = AF_ROUTE; - mib[2] = 0; - mib[3] = AF_LINK; - mib[4] = NET_RT_IFLIST; - mib[5] = if_nametoindex(adapterName.asCharArray()); - - if (sysctl(mib, 6, NULL, (size_t*)&len, NULL, 0) >= 0) - { - char* macbuf = (char*) malloc(len); - - if (sysctl(mib, 6, macbuf, (size_t*)&len, NULL, 0) >= 0) - { - struct if_msghdr* ifm = (struct if_msghdr*)macbuf; - struct sockaddr_dl* sdl = (struct sockaddr_dl*)(ifm + 1); - pMACAddressStr = (unsigned char*)LLADDR(sdl); - } - - free(macbuf); - } - - // Create a dummy socket on which we can call ioctl to get the network adapter details: - int socketFD = ::socket(AF_INET, SOCK_DGRAM, 0); - GT_IF_WITH_ASSERT(socketFD != -1) - { - struct ifreq softwareInterfaceRequest; - ::memset(&softwareInterfaceRequest, 0, sizeof(struct ifreq)); - ::strcpy(softwareInterfaceRequest.ifr_name, adapterName.asCharArray()); - - // Perform the network adapeter query: - int rc1 = ::ioctl(socketFD, SIOCGIFADDR, &softwareInterfaceRequest); - - if (0 <= rc1) - { - in_addr& ipAddress = (((sockaddr_in&)(softwareInterfaceRequest.ifr_ifru.ifru_addr)).sin_addr); - pTCPIPAddressStr = (const char*)inet_ntoa(ipAddress); - } - } - - // Close the dummy socket: - ::close(socketFD); -#else -#error Unknown Linux Variant! -#endif // AMDT_LINUX_VARIANT - - GT_IF_WITH_ASSERT(pMACAddressStr != NULL) - { -// ignore the maybe-uninitialized warning for this code when compiling with gcc7 -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" - // If the adapter's MAC address is valid: - if ((pMACAddressStr[0] != 0) || (pMACAddressStr[1] != 0) || - (pMACAddressStr[2] != 0) || (pMACAddressStr[3] != 0) || - (pMACAddressStr[4] != 0) || (pMACAddressStr[5] != 0)) - { - // Fill the adapter MAC address string: - gtASCIIString macAddressAscii; - macAddressAscii.appendFormattedString("%02X-%02X-%02X-%02X-%02X-%02X", pMACAddressStr[0], pMACAddressStr[1], pMACAddressStr[2], pMACAddressStr[3], pMACAddressStr[4], pMACAddressStr[5]); - adapterDetails._MACAddress.fromASCIIString(macAddressAscii.asCharArray()); - } - else - { - // Mark that the MAC address is invalid: - adapterDetails._MACAddress.makeEmpty(); - } -#pragma DCC diagnostic pop - rcMAC = true; - } - - if (pTCPIPAddressStr != NULL) - { - adapterDetails._TCPIPAddress.fromASCIIString(pTCPIPAddressStr); - } - - // An adapter can have no TCP / IP address, so don't consider a missing IP address to be a fault: - retVal = rcMAC; - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osGetCurrentMachineNetworkAdapters -// Description: -// Retrieves a list of network adapters installed on the local machine. -// The caller should release the network adapters vector memory. -// Arguments: networkAdapters - Will get the network adapters list. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 11/12/2007 -// Implementation notes: -// - From if_nameindex man page: -// The if_nameindex() function shall return an array of if_nameindex structures, one structure per interface. The -// end of the array is indicated by a structure with an if_index field of zero and an if_name field of NULL. -// Applications should call if_freenameindex() to release the memory that may be dynamically allocated by this -// function, after they have finished using it. -// --------------------------------------------------------------------------- -bool osGetCurrentMachineNetworkAdapters(gtPtrVector& networkAdapters) -{ - bool retVal = false; - - // Clear the output vector: - networkAdapters.clear(); - - // Get a list of network adapters: - struct if_nameindex* pNetworkAdaptersOSVector = ::if_nameindex(); - GT_IF_WITH_ASSERT(pNetworkAdaptersOSVector != NULL) - { - retVal = true; - - // Iterate the network adapters: - struct if_nameindex* pCurrentOSAdapter = pNetworkAdaptersOSVector; - - while (pCurrentOSAdapter->if_index != 0) - { - // Create a network adapter wrapper class: - osNetworkAdapter* pCurrentNetworkAdapter = new osNetworkAdapter; - GT_IF_WITH_ASSERT(pCurrentNetworkAdapter) - { - // Fill the current adapter details: - gtASCIIString adapterName = pCurrentOSAdapter->if_name; - bool rc1 = osFillNetworkAdapterDetails(adapterName, *pCurrentNetworkAdapter); - GT_IF_WITH_ASSERT(rc1) - { - // Add the current adapter to the output adapters list: - networkAdapters.push_back(pCurrentNetworkAdapter); - } - } - - // Advance to the next network adapter: - pCurrentOSAdapter++; - } - - // Clean up OS memory: - ::if_freenameindex(pNetworkAdaptersOSVector); - } - - return retVal; -} - - diff --git a/external/amdt_os_wrappers/src/linux/osPipeExecutor.cpp b/external/amdt_os_wrappers/src/linux/osPipeExecutor.cpp deleted file mode 100644 index 9ddb7bb..0000000 --- a/external/amdt_os_wrappers/src/linux/osPipeExecutor.cpp +++ /dev/null @@ -1,86 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osPipeExecutor.cpp -/// -//===================================================================== - -//------------------------------ osPipeExecutor.cpp ------------------------------ - -// Infra: -#include -#include -#include - -// Local: -#include - - -// --------------------------------------------------------------------------- -// Name: osPipeExecutor::osPipeExecutor -// Description: Constructor -// Author: AMD Developer Tools Team -// Date: 29/10/2008 -// --------------------------------------------------------------------------- -osPipeExecutor::osPipeExecutor() -{ - -} - -// --------------------------------------------------------------------------- -// Name: osPipeExecutor::~osPipeExecutor -// Description: Destructor -// Author: AMD Developer Tools Team -// Date: 29/10/2008 -// --------------------------------------------------------------------------- -osPipeExecutor::~osPipeExecutor() -{ - -} - -// --------------------------------------------------------------------------- -// Name: osPipeExecutor::executeCommand -// Description: Executes command and puts its output in the output parameter -// note if the command ran but had problems the retval here will -// be true, but the output might not be what was needed. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 29/10/2008 -// --------------------------------------------------------------------------- -bool osPipeExecutor::executeCommand(const gtString& command, gtString& output) -{ - bool retVal = false; - - output.makeEmpty(); - - FILE* pFile = ::popen(command.asASCIICharArray(), "r"); - - gtASCIIString outputAscii; - - if (pFile != nullptr) - { - retVal = true; - - char buffer[100]; - - // Add the results to the output string (note this works one line at a time): - // We cannot recognize any pipe read errors since they "look" like line endings. - // To make sure we got all the info we need the expected number of output lines, - // which we don't know here: - while (::fgets(buffer, sizeof(buffer), pFile) != nullptr) - { - outputAscii.append(buffer); - } - - // Close the pipe - ::pclose(pFile); - - - // TO_DO: Unicode: check if this copy is necessary. - // Copy the ASCII string to unicode: - output.fromASCIIString(outputAscii.asCharArray()); - } - - return retVal; -} diff --git a/external/amdt_os_wrappers/src/linux/osPipeSocket.cpp b/external/amdt_os_wrappers/src/linux/osPipeSocket.cpp deleted file mode 100644 index e117963..0000000 --- a/external/amdt_os_wrappers/src/linux/osPipeSocket.cpp +++ /dev/null @@ -1,688 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osPipeSocket.cpp -/// -//===================================================================== - -//------------------------------ osPipeSocket.cpp ------------------------------ - -// POSIX: -#include -#include -#include - -// Infra: -#include -#include -#include -#include - -// Local: -#include -#include -#include - -// Default read / write timeouts (set to 3 minutes): -#define OS_PIPE_SOCKET_DEFAULT_READ_TIMEOUT 180000 -#define OS_PIPE_SOCKET_DEFAULT_WRITE_TIMEOUT 180000 - -// Read interval (we divide the read timeout into small interval of this length): -#define OS_PIPE_SOCKET_READ_INTERVAL 1000 - -// Maximal amount of error printouts: -#define OS_PIPE_SOCKET_MAX_ERROR_PRINTOUTS 10 - -// --------------------------------------------------------------------------- -// Name: osPipeSocket::osPipeSocket -// Description: Constructor. -// Arguments: pipeName - The pipe name. -// Author: AMD Developer Tools Team -// Date: 31/12/2006 -// --------------------------------------------------------------------------- -osPipeSocket::osPipeSocket(const gtString& pipeName, const gtString& socketName) - : osSocket(socketName), _pipeName(pipeName), _isOpen(false), _isDuringPipeConnectionWait(false), - _incomingPipe(-1), _outgoingPipe(-1), _errorsCount(0) -{ - // Set read and write operations time outs for this specific osChannel sub class: - setReadOperationTimeOut(OS_PIPE_SOCKET_DEFAULT_READ_TIMEOUT); - setWriteOperationTimeOut(OS_PIPE_SOCKET_DEFAULT_WRITE_TIMEOUT); -} - - -// --------------------------------------------------------------------------- -// Name: osPipeSocket::~osPipeSocket -// Description: Destructor. -// Author: AMD Developer Tools Team -// Date: 31/12/2006 -// --------------------------------------------------------------------------- -osPipeSocket::~osPipeSocket() -{ -} - -// --------------------------------------------------------------------------- -// Name: osPipeSocket::channelType -// Description: Returns my channel type - a binary channel. -// Author: AMD Developer Tools Team -// Date: 31/12/2006 -// --------------------------------------------------------------------------- -osChannel::osChannelType osPipeSocket::channelType() const -{ - // This is a binary channel: - return osChannel::OS_BINARY_CHANNEL; -} - - -// --------------------------------------------------------------------------- -// Name: osPipeSocket::defaultReadOperationTimeOut -// Description: Returns the default read operation time out (measured in milliseconds). -// Author: AMD Developer Tools Team -// Date: 1/7/2007 -// --------------------------------------------------------------------------- -long osPipeSocket::defaultReadOperationTimeOut() const -{ - return OS_PIPE_SOCKET_DEFAULT_READ_TIMEOUT; -} - - -// --------------------------------------------------------------------------- -// Name: osPipeSocket::defaultWriteOperationTimeOut -// Description: Returns the default write operation time out (measured in milliseconds). -// Author: AMD Developer Tools Team -// Date: 1/7/2007 -// --------------------------------------------------------------------------- -long osPipeSocket::defaultWriteOperationTimeOut() const -{ - return OS_PIPE_SOCKET_DEFAULT_WRITE_TIMEOUT; -} - - -// --------------------------------------------------------------------------- -// Name: osPipeSocket::isOpen -// Description: Returns true iff the pipe is open. -// Author: AMD Developer Tools Team -// Date: 31/12/2006 -// --------------------------------------------------------------------------- -bool osPipeSocket::isOpen() const -{ - return (_isOpen && (_errorsCount == 0)); -} - - -// --------------------------------------------------------------------------- -// Name: osPipeSocket::close -// Description: Terminates the pipe communication. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 31/12/2006 -// --------------------------------------------------------------------------- -bool osPipeSocket::close() -{ - if (_isOpen) - { - // Bugs 8756, 8666 - // Make copies of the pipe file descriptor number for diagnostics. - // The rc1 == 0 && rc2 == 0 assert is tripping, so need more context - // Are we getting a split? One pipe open and one closed on arrival? - // At least one instance of (_incomingPipe == _outgoingPipe) has been - // seen when _isOpen is true - osPipeHandle inPipeCopy = _incomingPipe; - int incomingCloseTripCount = 0; - osPipeHandle outPipeCopy = _outgoingPipe; - int outgoingCloseTripCount = 0; - - // Close the incoming pipe: - int rc1 = -1; - - if (0 > _incomingPipe) - { - rc1 = 0; - } - - while (0 != rc1) - { - rc1 = ::close(_incomingPipe); - incomingCloseTripCount++; - - if (0 == rc1) - { - _incomingPipe = -1; - break; - } - else if (EINTR != errno) - { - break; - } - } - - int incomingCloseRC = rc1; - error_t incomingErrno = errno; - - // Close the outgoing pipe: - int rc2 = -1; - - if (0 > _outgoingPipe) - { - rc2 = 0; - } - - while (0 != rc2) - { - rc2 = ::close(_outgoingPipe); - outgoingCloseTripCount++; - - if (0 == rc2) - { - _outgoingPipe = -1; - } - else if (EINTR != errno) - { - break; - } - } - - int outgoingCloseRC = rc1; - error_t outgoingErrno = errno; - - // Intuitive "quick" bandaid: - // The hang appears to be related to EBADF coming back due to - // re-closing a closed pipe. Simply ignore them - // This really needs further investigation. This is a band-aid - // done to try to get us to a level of stability which will enable - // us to ship. rgorton 10-April-2011 - if (incomingErrno == EBADF) - { - rc1 = 0; - } - - if (outgoingErrno == EBADF) - { - rc2 = 0; - } - - GT_IF_WITH_ASSERT((rc1 == 0) && (rc2 == 0)) - { - _isOpen = false; - } - - // Print a diagnotic message with this data: - if (OS_DEBUG_LOG_EXTENSIVE <= osDebugLog::instance().loggedSeverity()) - { - gtString logMsg; - logMsg.appendFormattedString(L"Attempted to close pipe at address %p.\nIn: FD: %d; RC: %d; errno: %d; tries: %d\nOut: FD: %d; RC: %d; errno: %d; tries: %d\nresult: %ls", - this, - (int)inPipeCopy, incomingCloseRC, (int)incomingErrno, incomingCloseTripCount, - (int)outPipeCopy, outgoingCloseRC, (int)outgoingErrno, outgoingCloseTripCount, - _isOpen ? L"failure" : L"success"); - - OS_OUTPUT_DEBUG_LOG(logMsg.asCharArray(), OS_DEBUG_LOG_EXTENSIVE); - } - } - else // !_isOpen - { - // Attempt to close the pipes anyway, ignoring the results: - if ((0 <= _incomingPipe) && (0 == ::close(_incomingPipe))) - { - _incomingPipe = -1; - } - - if ((0 <= _outgoingPipe) && (0 == ::close(_outgoingPipe))) - { - _outgoingPipe = -1; - } - } - - return !_isOpen; -} - - -// --------------------------------------------------------------------------- -// Name: osPipeSocket::write -// Description: Write data into the outgoing pipe. -// Arguments: pDataBuffer - A buffer containing the data to be written. -// dataSize - The data size. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 31/12/2006 -// Implementation notes: -// From write(P) man page we learn that when writing to a blocking FIFO, -// on normal completion, write shall return the amount of bytes it was -// requested to write. Therefore, we don't need a loop (like we do in read) -// that tries to write more data in case that not all data was written. -// --------------------------------------------------------------------------- -bool osPipeSocket::writeImpl(const gtByte* pDataBuffer, gtSize_t dataSize) -{ - bool retVal = false; - - // Testing section - leave commented out! - /* - gtString foo = "Write starts: "; - foo.appendFormattedString(L"bytes to write: %d", dataSize); - OS_OUTPUT_DEBUG_LOG(foo.asCharArray(), OS_INFO_SEVERITY); - */ - - // If the pipe is open and does not have errors: - if (_isOpen && (0 <= _outgoingPipe) && (_errorsCount == 0)) - { - // Calculate the write timeout: - struct timeval writeTimeout; - osTimeValFromMilliseconds(_writeOperationTimeOut, writeTimeout); - - // Build a pipe set that contains the outgoing pipe: - fd_set outgoingPipesSet; - FD_ZERO(&outgoingPipesSet); - FD_SET(_outgoingPipe, &outgoingPipesSet); - - // Build a pipe set of pipes that will be tested for errors: - fd_set exceptionPipeSet; - FD_ZERO(&exceptionPipeSet); - FD_SET(_outgoingPipe, &exceptionPipeSet); - - // Wait until we can write data into the pipe: - int highestPipe = _outgoingPipe + 1; - int rc1 = ::select(highestPipe, NULL, &outgoingPipesSet, &exceptionPipeSet, &writeTimeout); - - if (rc1 < 0) - { - // An error occurred: - gtString errMsg = OS_STR_writeError; - errMsg += OS_STR_osReportedErrorIs; - gtString systemError; - osGetLastSystemErrorAsString(systemError); - errMsg += systemError; - GT_ASSERT_EX(false, errMsg.asCharArray()); - - _errorsCount++; - } - else if (rc1 == 0) - { - // The write timeout was reached: - GT_ASSERT_EX(false, OS_STR_timeoutReached); - _errorsCount++; - } - else - { - // If the pipe had an exception (error): - bool pipeExceptionOccur = (FD_ISSET(_outgoingPipe, &exceptionPipeSet)); - - if (pipeExceptionOccur) - { - // Write an appropriate error message: - gtString errMsg = OS_STR_pipeException; - errMsg += OS_STR_osReportedErrorIs; - gtString systemError; - osGetLastSystemErrorAsString(systemError); - errMsg += systemError; - GT_ASSERT_EX(false, errMsg.asCharArray()); - - _errorsCount++; - } - else - { - // Write the data into the outgoing pipe: - size_t rc = ::write(_outgoingPipe, pDataBuffer, dataSize); - GT_IF_WITH_ASSERT(rc == dataSize) - { - retVal = true; - } - } - } - } - - // Testing section - leave commented out! - // OS_OUTPUT_DEBUG_LOG(L"Write ended", OS_INFO_SEVERITY); - - // If there was an error: - if (!retVal) - { - gtString debugMessage; - debugMessage.appendFormattedString(OS_STR_pipeWriteError, _socketName.asCharArray()); - GT_ASSERT_EX(false, debugMessage.asCharArray()); - _errorsCount++; - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osPipeSocket::read -// Description: Read data from the incoming pipe. -// Arguments: pDataBuffer - A buffer that will contain the read data. -// dataSize - The amount of data to be read. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 31/12/2006 -// Implementation notes: -// Instead of waiting the entire _readOperationTimeOut, we wait in small time intervals -// (max 1 sec). This enables clients to change the read time interval "on the fly" -// as we are waiting for data to be available for reading. (See case 3050 for information -// about the need for this feature). -// --------------------------------------------------------------------------- -bool osPipeSocket::readImpl(gtByte* pDataBuffer, gtSize_t dataSize) -{ - gtSize_t readDataSize = 0; - bool retVal = readDataFromPipe(pDataBuffer, dataSize, false, readDataSize); - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osPipeSocket::readAvailableData -// -// Description: -// Reads and outputs the data that is currently available in the pipe. -// If no data is available in the pipe for reading, waits _readOperationTimeOut -// milliseconds until data is available. -// If more data than bufferSize is available, reads only bufferSize bytes of data. -// -// Arguments: pDataBuffer - A buffer that will receive the data. -// bufferSize - The buffer size. -// amountOfDataRead - The amount of data actually read. -// -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 10/2/2008 -// --------------------------------------------------------------------------- -bool osPipeSocket::readAvailableDataImpl(gtByte* pDataBuffer, gtSize_t bufferSize, gtSize_t& amountOfDataRead) -{ - bool retVal = readDataFromPipe(pDataBuffer, bufferSize, true, amountOfDataRead); - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osPipeSocket::getPipeFIFOFilesPaths -// Description: Calculates and returns the names of the 2 FIFO files, -// used for implementing this full duplex pipe socket. -// Arguments: clientToServer - The client to server FIFO file name. -// serverToClient - The server to client FIFO file name. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 31/12/2006 -// --------------------------------------------------------------------------- -void osPipeSocket::getPipeFIFOFilesPaths(gtString& clientToServer, gtString& serverToClient) -{ - osFilePath serverPipeFilePath(osFilePath::OS_TEMP_DIRECTORY); - serverPipeFilePath.setFileName(_pipeName); - serverPipeFilePath.setFileExtension(L"tmp1"); - serverToClient = serverPipeFilePath.asString(); - - osFilePath clientPipeFilePath(osFilePath::OS_TEMP_DIRECTORY); - clientPipeFilePath.setFileName(_pipeName); - clientPipeFilePath.setFileExtension(L"tmp2"); - clientToServer = clientPipeFilePath.asString(); -} - -///////////////////////////////////////////////////////////////////////// -/// \brief Get server pipe socket OS name -/// -/// \param filePath a server pipe socket OS name -/// -/// \author: AMD Developer Tools Team -/// \date: 02/03/2016 -void osPipeSocket::getServerFilePath(gtString& filePath) -{ - osFilePath serverPipeFilePath(osFilePath::OS_TEMP_DIRECTORY); - serverPipeFilePath.setFileName(_pipeName); - serverPipeFilePath.setFileExtension(L"tmp1"); - filePath = serverPipeFilePath.asString(); -} - -///////////////////////////////////////////////////////////////////////// -/// \brief Get server pipe socket OS name -/// -/// \param filePath a server pipe socket OS name -/// -/// \author: AMD Developer Tools Team -/// \date: 02/03/2016 -void osPipeSocket::getClientFilePath(gtString& filePath) -{ - osFilePath clientPipeFilePath(osFilePath::OS_TEMP_DIRECTORY); - clientPipeFilePath.setFileName(_pipeName); - clientPipeFilePath.setFileExtension(L"tmp2"); - filePath = clientPipeFilePath.asString(); -} - - - -// --------------------------------------------------------------------------- -// Name: osPipeSocket::readDataFromPipe -// Description: -// Reads data from the pipe. -// readOnlyAvailableData - true - Causes this function to implement readAvailableData(). -// - false - Causes this function to implement read(). -// -// Author: AMD Developer Tools Team -// Date: 10/2/2008 -// --------------------------------------------------------------------------- -bool osPipeSocket::readDataFromPipe(gtByte* pDataBuffer, gtSize_t bufferSize, bool readOnlyAvailableData, gtSize_t& readDataSize) -{ - bool retVal = false; - - // Will get the amount of data read so far: - readDataSize = 0; - - // Testing section - leave commented out! - /* - gtString foo1 = "Read starts: "; - foo1.appendFormattedString(L"bytes to read: %d", dataSize); - OS_OUTPUT_DEBUG_LOG(foo1.asCharArray(), OS_INFO_SEVERITY); - */ - - // If the pipe is open and does not have errors: - if (_isOpen && (_errorsCount == 0)) - { - // Will hold the time left until the read operation timeout reaches: - long timeLeftToTimeout = _readOperationTimeOut; - - // Will contain the current read interval timeout: - struct timeval readIntervalTimeout; - - // Loop until we get all required data: - bool goOn = true; - - while (goOn) - { - // Calculate current read interval timeout (we allow maximal interval of OS_PIPE_SOCKET_READ_INTERVAL): - if (OS_PIPE_SOCKET_READ_INTERVAL < timeLeftToTimeout) - { - osTimeValFromMilliseconds(OS_PIPE_SOCKET_READ_INTERVAL, readIntervalTimeout); - } - else - { - osTimeValFromMilliseconds(timeLeftToTimeout, readIntervalTimeout); - } - - // Testing section - leave commented out! - // OS_OUTPUT_DEBUG_LOG(L"Doing select", OS_INFO_SEVERITY); - - // Build a pipe set that contains the incoming pipe: - fd_set incomingPipesSet; - FD_ZERO(&incomingPipesSet); - FD_SET(_incomingPipe, &incomingPipesSet); - - // Build a pipe set of pipes that will be tested for errors: - fd_set exceptionPipeSet; - FD_ZERO(&exceptionPipeSet); - FD_SET(_incomingPipe, &exceptionPipeSet); - - // Wait until we have data to read: - int highestPipe = _incomingPipe + 1; - int rc1 = ::select(highestPipe, &incomingPipesSet, NULL, &exceptionPipeSet, &readIntervalTimeout); - - if (0 < rc1) - { - // If the pipe had an exception (error): - bool pipeExceptionOccur = (FD_ISSET(_incomingPipe, &exceptionPipeSet)); - - if (pipeExceptionOccur) - { - // Build an appropriate error message: - gtString errMsg = OS_STR_pipeException; - errMsg += OS_STR_osReportedErrorIs; - gtString systemError; - osGetLastSystemErrorAsString(systemError); - errMsg += systemError; - GT_ASSERT_EX(false, errMsg.asCharArray()); - - _errorsCount++; - goOn = false; - } - else - { - // We have data available for reading: - // Read the available data: - size_t rc2 = ::read(_incomingPipe, pDataBuffer, bufferSize); - - // Testing section - leave commented out! - /* - gtString foo2 = "Read bytes: "; - foo2.appendFormattedString(L"%d", rc2); - OS_OUTPUT_DEBUG_LOG(foo2.asCharArray(), OS_INFO_SEVERITY); - */ - - // If there was no data to read. - if (rc2 == 0) - { - // This should not happened, since select() told us that we do have data to read. - // Getting here usually means that the pipe was broken. - gtString dbgMessage; - dbgMessage.appendFormattedString(OS_STR_readError, _socketName.asCharArray()); - GT_ASSERT_EX(false, dbgMessage.asCharArray()); - _errorsCount++; - goOn = false; - } - - // Add the read data to the read data buffer: - readDataSize += rc2; - pDataBuffer += rc2; - - // If we read all required data: - if (bufferSize == readDataSize) - { - goOn = false; - retVal = true; - - // Testing section - leave commented out! - // OS_OUTPUT_DEBUG_LOG(L"Read all required data", OS_INFO_SEVERITY); - } - else if (bufferSize < readDataSize) - { - // We read too much data (this code should not be reached): - gtString dbgMessage; - dbgMessage.appendFormattedString(OS_STR_readError, _socketName.asCharArray()); - GT_ASSERT_EX(false, dbgMessage.asCharArray()); - _errorsCount++; - goOn = false; - } - else - { - // If we were asked to read only the first available data: - if (readOnlyAvailableData) - { - goOn = false; - retVal = true; - } - else - { - // Testing section - leave commented out! - // OS_OUTPUT_DEBUG_LOG(L"Still have data to read - doing another read iteration", OS_INFO_SEVERITY); - } - } - } - } - else if (rc1 == 0) - { - // Timeout for current interval elapsed, but there is no data in the pipe for reading: - - // Calculate the time left for read operation timeout: - timeLeftToTimeout -= OS_PIPE_SOCKET_READ_INTERVAL; - - // If we reached the read operation timeout: - if (timeLeftToTimeout <= 0) - { - GT_ASSERT_EX(false, OS_STR_timeoutReached); - goOn = false; - } - else - { - // If someone reduced the read operation timeout while we are waiting - // for data (see "implementation notes" at the header of this function): - if (_readOperationTimeOut < timeLeftToTimeout) - { - timeLeftToTimeout = _readOperationTimeOut; - - // Testing section - leave commented out! - // OS_OUTPUT_DEBUG_LOG(L"Reducing timeout", OS_INFO_SEVERITY); - } - - // Do another wait interval ... - } - } - else if (rc1 == -1) - { - // An error occurred: - - // If select() was interrupted by a signal: - osSystemErrorCode lastSystemError = osGetLastSystemError(); - - if (lastSystemError == EINTR) - { - // Continue waiting for the pipe: - goOn = true; - } - else - { - // Build an appropriate error message: - gtString dbgMessage; - dbgMessage.appendFormattedString(OS_STR_readError, _socketName.asCharArray()); - GT_ASSERT_EX(false, dbgMessage.asCharArray()); - - dbgMessage += OS_STR_osReportedErrorIs; - gtString systemError; - osGetLastSystemErrorAsString(systemError); - dbgMessage += systemError; - GT_ASSERT_EX(false, dbgMessage.asCharArray()); - - goOn = false; - } - } - } - } - - // Testing section - leave commented out! - // OS_OUTPUT_DEBUG_LOG(L"Read ended", OS_INFO_SEVERITY); - - // If there was an error: - if (!retVal) - { - // Mark that the pipe has an error: - _errorsCount++; - - // Yaki - 4/11/2007: - // We limit the amount of "Pipe read error" printouts, since some clients sent - // us huge log files, containing millions of "Pipe read error" printouts. - if (_errorsCount < OS_PIPE_SOCKET_MAX_ERROR_PRINTOUTS) - { - gtString debugMessage; - debugMessage.appendFormattedString(OS_STR_pipeReadError, _socketName.asCharArray()); - GT_ASSERT_EX(false, debugMessage.asCharArray()); - } - else if (_errorsCount == OS_PIPE_SOCKET_MAX_ERROR_PRINTOUTS) - { - gtString debugMessage; - debugMessage.appendFormattedString(OS_STR_pipeReadErrorLastMessage, _socketName.asCharArray()); - GT_ASSERT_EX(false, debugMessage.asCharArray()); - } - else - { - // Don't enable overflowing _errorsCount: - _errorsCount = OS_PIPE_SOCKET_MAX_ERROR_PRINTOUTS + 10; - } - } - - return retVal; -} - diff --git a/external/amdt_os_wrappers/src/linux/osPipeSocketClient.cpp b/external/amdt_os_wrappers/src/linux/osPipeSocketClient.cpp deleted file mode 100644 index 685caaf..0000000 --- a/external/amdt_os_wrappers/src/linux/osPipeSocketClient.cpp +++ /dev/null @@ -1,134 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osPipeSocketClient.cpp -/// -//===================================================================== - -//------------------------------ osPipeSocketClient.cpp ------------------------------ - -// POSIX: -#include -#include -#include - -// Infra: -#include - -// Local: -#include -#include -#include - -// A pipe name that represents a pipe that was created using 2 open OS pipes: -static gtString stat_osGiveOSPipeSocketName(L"Pipe socket built from given OS pipes"); - - -// --------------------------------------------------------------------------- -// Name: osPipeSocketClient::osPipeSocketClient -// Description: Constructor -// Arguments: pipeName - The pipe name. -// Author: AMD Developer Tools Team -// Date: 31/12/2006 -// --------------------------------------------------------------------------- -osPipeSocketClient::osPipeSocketClient(const gtString& pipeName, const gtString& socketName) - : osPipeSocket(pipeName, socketName) -{ -} - - -// --------------------------------------------------------------------------- -// Name: osPipeSocketClient::osPipeSocketClient -// Description: Constructor - Initializes this pipes wrapper class from 2 open OS pipes. -// Arguments: incomingPipe - An open incoming pipe file descriptor. -// outgoingPipe - An open outgoing pipe file descriptor. -// Author: AMD Developer Tools Team -// Date: 6/2/2008 -// --------------------------------------------------------------------------- -osPipeSocketClient::osPipeSocketClient(osPipeHandle incomingPipe, osPipeHandle outgoingPipe, const gtString& socketName) - : osPipeSocket(stat_osGiveOSPipeSocketName, socketName) -{ - _incomingPipe = incomingPipe; - _outgoingPipe = outgoingPipe; - - // Print a diagnotic message with this data: - if (OS_DEBUG_LOG_EXTENSIVE <= osDebugLog::instance().loggedSeverity()) - { - gtString logMsg; - logMsg.appendFormattedString(L"Created pipe client at address %p.\nIn: FD: %d\nOut: FD: %d", - this, (int)_incomingPipe, (int)_outgoingPipe); - - OS_OUTPUT_DEBUG_LOG(logMsg.asCharArray(), OS_DEBUG_LOG_EXTENSIVE); - } - - _isOpen = true; -} - - -// --------------------------------------------------------------------------- -// Name: osPipeSocketClient::~osPipeSocketClient -// Description: Destructor. -// Author: AMD Developer Tools Team -// Date: 31/12/2006 -// --------------------------------------------------------------------------- -osPipeSocketClient::~osPipeSocketClient() -{ - // Close the pipe connection and release all used resources: - this->close(); -} - -// --------------------------------------------------------------------------- -// Name: osPipeSocketClient::open -// Description: Connects to the pipe to the pipe server. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 31/12/2006 -// --------------------------------------------------------------------------- -bool osPipeSocketClient::open() -{ - // If this class was created from 2 open OS pipes: - if (_pipeName == stat_osGiveOSPipeSocketName) - { - // The OS pipes are already open. - } - else - { - osPipeHandle originalIn = _incomingPipe; - osPipeHandle originalOut = _outgoingPipe; - - // Close the pipe if it was open before: - close(); - - // Calculate the pipe FIFO files paths: - gtString incomingPipeFilePath; - gtString outgoingPipeFilePath; - osPipeSocket::getPipeFIFOFilesPaths(outgoingPipeFilePath, incomingPipeFilePath); - - // Open the outgoing pipe: - _outgoingPipe = ::open(outgoingPipeFilePath.asUTF8CharArray(), O_WRONLY); - - // Open the incoming pipe for reading: - _incomingPipe = ::open(incomingPipeFilePath.asUTF8CharArray(), O_RDONLY); - - // Print a diagnotic message with this data: - if (OS_DEBUG_LOG_EXTENSIVE <= osDebugLog::instance().loggedSeverity()) - { - gtString logMsg; - logMsg.appendFormattedString(L"Opened pipe client at address %p.\nIn: Old FD: %d, FD: %d, Path: %ls\nOut: Old FD: %d, FD: %d, Path: %ls", - this, (int)originalIn, (int)_incomingPipe, incomingPipeFilePath.asCharArray(), (int)originalOut, (int)_outgoingPipe, outgoingPipeFilePath.asCharArray()); - - OS_OUTPUT_DEBUG_LOG(logMsg.asCharArray(), OS_DEBUG_LOG_EXTENSIVE); - } - } - - // Verify that the OS pipes were opened successfully: - GT_IF_WITH_ASSERT((_incomingPipe != -1) && (_outgoingPipe != -1)) - { - _errorsCount = 0; - _isOpen = true; - } - - return _isOpen; -} - diff --git a/external/amdt_os_wrappers/src/linux/osPipeSocketServer.cpp b/external/amdt_os_wrappers/src/linux/osPipeSocketServer.cpp deleted file mode 100644 index ee329d7..0000000 --- a/external/amdt_os_wrappers/src/linux/osPipeSocketServer.cpp +++ /dev/null @@ -1,181 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osPipeSocketServer.cpp -/// -//===================================================================== - -//------------------------------ osPipeSocketServer.cpp ------------------------------ - -// POSIX: -#include -#include -#include -#include - -// Infra: -#include - -// Local: -#include -#include -#include - - -// --------------------------------------------------------------------------- -// Name: osPipeSocketServer::osPipeSocketServer -// Description: Constructor -// Arguments: pipeName - The pipe name. -// Author: AMD Developer Tools Team -// Date: 31/12/2006 -// --------------------------------------------------------------------------- -osPipeSocketServer::osPipeSocketServer(const gtString& pipeName) - : osPipeSocket(pipeName, L"osPipeSocketServer"), _fifoFilesExists(false) -{ -} - - -// --------------------------------------------------------------------------- -// Name: osPipeSocketServer::~osPipeSocketServer -// Description: Destructor. -// Author: AMD Developer Tools Team -// Date: 31/12/2006 -// --------------------------------------------------------------------------- -osPipeSocketServer::~osPipeSocketServer() -{ - // Close the pipe connection and release all used resources: - this->close(); -} - - -// --------------------------------------------------------------------------- -// Name: osPipeSocketServer::open -// Description: Create the server pipe, to which the client pipe will connect -// later on. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 31/12/2006 -// --------------------------------------------------------------------------- -bool osPipeSocketServer::open() -{ - bool retVal = true; - - // Get the paths of the 2 FIFO files, used for implementing this - // full duplex pipe: - gtString incomingPipeFilePath; - gtString outgoingPipeFilePath; - osPipeSocket::getPipeFIFOFilesPaths(incomingPipeFilePath, outgoingPipeFilePath); - - // Create the pipes FIFO files: - int rc1 = ::mkfifo(incomingPipeFilePath.asUTF8CharArray(), 0666); - int rc2 = ::mkfifo(outgoingPipeFilePath.asUTF8CharArray(), 0666); - - GT_IF_WITH_ASSERT((rc1 == 0) && (rc2 == 0)) - { - _fifoFilesExists = true; - _errorsCount = 0; - retVal = true; - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osPipeSocketServer::close -// Description: Terminates the pipe communication. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 1/1/2007 -// --------------------------------------------------------------------------- -bool osPipeSocketServer::close() -{ - bool retVal = false; - - if (!_isOpen) - { - // Nothing to be done: - retVal = true; - } - else - { - // Close the FIFO files: - bool rc1 = osPipeSocket::close(); - - if (_fifoFilesExists) - { - // Delete the 2 FIFO files, used for implementing this full duplex pipe: - gtString incomingPipeFilePath; - gtString outgoingPipeFilePath; - osPipeSocket::getPipeFIFOFilesPaths(incomingPipeFilePath, outgoingPipeFilePath); - - int rc2 = ::unlink(incomingPipeFilePath.asUTF8CharArray()); - int rc3 = ::unlink(outgoingPipeFilePath.asUTF8CharArray()); - _fifoFilesExists = false; - - if (rc1 && (rc2 == 0) && (rc3 == 0)) - { - retVal = true; - } - } - } - - GT_RETURN_WITH_ASSERT(retVal); -} - - -// --------------------------------------------------------------------------- -// Name: osPipeSocketServer::waitForClientConnection -// Description: Suspends the calling thread until a client connection is -// established. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 1/1/2007 -// --------------------------------------------------------------------------- -bool osPipeSocketServer::waitForClientConnection() -{ - bool retVal = false; - - osPipeHandle originalIn = _incomingPipe; - osPipeHandle originalOut = _outgoingPipe; - - // Close any previous connections: - close(); - - // Get the paths of the 2 FIFO files, used for implementing this - // full duplex pipe: - gtString incomingPipeFilePath; - gtString outgoingPipeFilePath; - osPipeSocket::getPipeFIFOFilesPaths(incomingPipeFilePath, outgoingPipeFilePath); - - // Open the incoming pipe for reading: - _incomingPipe = ::open(incomingPipeFilePath.asUTF8CharArray(), O_RDONLY); - - if (_incomingPipe != -1) - { - // Open the outgoing pipe: - _outgoingPipe = ::open(outgoingPipeFilePath.asUTF8CharArray(), O_WRONLY); - } - - GT_IF_WITH_ASSERT((_incomingPipe != -1) && (_outgoingPipe != -1)) - { - _isOpen = true; - retVal = true; - } - - // Print a diagnotic message with this data: - if (OS_DEBUG_LOG_EXTENSIVE <= osDebugLog::instance().loggedSeverity()) - { - gtString logMsg; - logMsg.appendFormattedString(L"Opened pipe server at address %p.\nIn: Old FD: %d, FD: %d\nOut: Old FD: %d, FD: %d\nRetVal: %ls; Open: %ls", - this, (int)originalIn, (int)_incomingPipe, (int)originalOut, (int)_outgoingPipe, - retVal ? L"true" : L"false", _isOpen ? L"true" : L"false"); - - OS_OUTPUT_DEBUG_LOG(logMsg.asCharArray(), OS_DEBUG_LOG_EXTENSIVE); - } - - return retVal; -} - - diff --git a/external/amdt_os_wrappers/src/linux/osSingleApplicationInstance.cpp b/external/amdt_os_wrappers/src/linux/osSingleApplicationInstance.cpp deleted file mode 100644 index 3d2e1c5..0000000 --- a/external/amdt_os_wrappers/src/linux/osSingleApplicationInstance.cpp +++ /dev/null @@ -1,106 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osSingleApplicationInstance.cpp -/// -//===================================================================== - -//------------------------------ osSingleApplicationInstance.cpp ------------------------------ - -// POSIX: -// #include -#include -#include -// #include -// #include - -// Infra: -#include - -// Local: -#include - - -// --------------------------------------------------------------------------- -// Name: osSingleApplicationInstance::osSingleApplicationInstance -// Description: Constructor -// Arguments: -// applicationUniqueIdentifier - A unique string that identifies the application. -// All application instances should use the same string. -// This string should be unique for this application. -// Author: AMD Developer Tools Team -// Date: 7/4/2008 -// Implementation notes: -// We create a file named /tmp/applicationUniqueIdentifier.dat and try to aquire a -// lock for it. If we cannot aquire a lock, it means that anoter instance of the -// application is running and holding the file locked. -// --------------------------------------------------------------------------- -osSingleApplicationInstance::osSingleApplicationInstance(const gtString& applicationUniqueIdentifier) - : _isAnotherInstanceRunning(false), _fileDescriptor(-1) -{ - // Build the file path (/tmp/.dat): - gtString filePath = L"/tmp/"; - filePath += applicationUniqueIdentifier; - filePath += L".dat"; - - // Try to open the file for writing, create the file if it does not exist: - _fileDescriptor = ::open(filePath.asUTF8CharArray(), O_WRONLY | O_CREAT, 0666); - - if (_fileDescriptor == -1) - { - // We failed to open the file: - _isAnotherInstanceRunning = true; - } - else - { - // A structure describing the file section that we would like to lock: - // (Lock bytes [0, 1] for writing) - struct flock fileSectionLockDescription; - fileSectionLockDescription.l_whence = SEEK_SET; - fileSectionLockDescription.l_start = 0; - fileSectionLockDescription.l_len = 1; - fileSectionLockDescription.l_type = F_WRLCK; - - // Try to lock the file [0,1] section for writing: - int rc1 = fcntl(_fileDescriptor, F_SETLK, &fileSectionLockDescription); - - if (rc1 == -1) - { - // We failed to lock the file, this means that another instance - // of the program is holding the file locked: - _isAnotherInstanceRunning = true; - } - } -} - - -// --------------------------------------------------------------------------- -// Name: osSingleApplicationInstance::~osSingleApplicationInstance -// Description: Destructor -// Author: AMD Developer Tools Team -// Date: 7/4/2008 -// --------------------------------------------------------------------------- -osSingleApplicationInstance::~osSingleApplicationInstance() -{ - if (_fileDescriptor != -1) - { - // A structure describing the file section that we would like to unlock: - // (Lock bytes [0, 1] for writing) - struct flock fileSectionLockDescription; - fileSectionLockDescription.l_whence = SEEK_SET; - fileSectionLockDescription.l_start = 0; - fileSectionLockDescription.l_len = 1; - fileSectionLockDescription.l_type = F_UNLCK; - - // Ulock the file [0,1] section: - int rc1 = fcntl(_fileDescriptor, F_SETLK, &fileSectionLockDescription); - GT_ASSERT(rc1 != -1); - - // Close the file: - ::close(_fileDescriptor); - _fileDescriptor = -1; - } -} - - diff --git a/external/amdt_os_wrappers/src/linux/osSynchronizationObjectImpl.h b/external/amdt_os_wrappers/src/linux/osSynchronizationObjectImpl.h deleted file mode 100644 index cc5f27c..0000000 --- a/external/amdt_os_wrappers/src/linux/osSynchronizationObjectImpl.h +++ /dev/null @@ -1,39 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file -/// -//===================================================================== - -//------------------------------ osSynchronizationObjectImpl.h ------------------------------ - -#ifndef __OSSYNCHRONIZATIONOBJECTIMPL -#define __OSSYNCHRONIZATIONOBJECTIMPL - -// Win32: -#define WIN32_LEAN_AND_MEAN 1 -#include - - -// ---------------------------------------------------------------------------------- -// Class Name: osSynchronizationObjectImpl -// General Description: Win32 Implementation of a synchronization object. -// Author: AMD Developer Tools Team -// Creation Date: 29/3/2004 -// ---------------------------------------------------------------------------------- -class osSynchronizationObjectImpl -{ -public: - osSynchronizationObjectImpl(); - virtual ~osSynchronizationObjectImpl(); - bool lock(); - bool unlock(); - -private: - // The event object (synchronization object) handle: - HANDLE _eventObjHandle; -}; - - -#endif // __OSSYNCHRONIZATIONOBJECTIMPL diff --git a/external/amdt_os_wrappers/src/win32/osAtomicImpl.h b/external/amdt_os_wrappers/src/win32/osAtomicImpl.h deleted file mode 100644 index 062bd41..0000000 --- a/external/amdt_os_wrappers/src/win32/osAtomicImpl.h +++ /dev/null @@ -1,138 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osAtomicImpl.h -/// -//===================================================================== -#ifndef __OSATOMICIMPL -#define __OSATOMICIMPL - -#include - -inline gtInt32 AtomicAdd(volatile gtInt32& target, gtInt32 value) -{ - return _InterlockedExchangeAdd(reinterpret_cast(&target), value); -} - -inline gtInt64 AtomicAdd(volatile gtInt64& target, gtInt64 value) -{ -#if (AMDT_ADDRESS_SPACE_TYPE == AMDT_64_BIT_ADDRESS_SPACE) - return _InterlockedExchangeAdd64(&target, value); -#else - gtInt64 oldVal; - - do - { - oldVal = target; - } - while (_InterlockedCompareExchange64(&target, oldVal + value, oldVal) != oldVal); - - return oldVal; -#endif -} - - -inline gtInt32 AtomicAnd(volatile gtInt32& target, gtInt32 value) -{ - return _InterlockedAnd(reinterpret_cast(&target), value); -} - -inline gtInt64 AtomicAnd(volatile gtInt64& target, gtInt64 value) -{ -#if (AMDT_ADDRESS_SPACE_TYPE == AMDT_64_BIT_ADDRESS_SPACE) - return _InterlockedAnd64(&target, value); -#else - gtInt64 oldVal; - - do - { - oldVal = target; - } - while (_InterlockedCompareExchange64(&target, oldVal & value, oldVal) != oldVal); - - return oldVal; -#endif -} - - -inline gtInt32 AtomicOr(volatile gtInt32& target, gtInt32 value) -{ - return _InterlockedOr(reinterpret_cast(&target), value); -} - -inline gtInt64 AtomicOr(volatile gtInt64& target, gtInt64 value) -{ -#if (AMDT_ADDRESS_SPACE_TYPE == AMDT_64_BIT_ADDRESS_SPACE) - return _InterlockedOr64(&target, value); -#else - gtInt64 oldVal; - - do - { - oldVal = target; - } - while (_InterlockedCompareExchange64(&target, oldVal | value, oldVal) != oldVal); - - return oldVal; -#endif -} - - -inline gtInt32 AtomicXor(volatile gtInt32& target, gtInt32 value) -{ - return _InterlockedXor(reinterpret_cast(&target), value); -} - -inline gtInt64 AtomicXor(volatile gtInt64& target, gtInt64 value) -{ -#if (AMDT_ADDRESS_SPACE_TYPE == AMDT_64_BIT_ADDRESS_SPACE) - return _InterlockedXor64(&target, value); -#else - gtInt64 oldVal; - - do - { - oldVal = target; - } - while (_InterlockedCompareExchange64(&target, oldVal ^ value, oldVal) != oldVal); - - return oldVal; -#endif -} - - -inline gtInt32 AtomicSwap(volatile gtInt32& target, gtInt32 value) -{ - return _InterlockedExchange(reinterpret_cast(&target), value); -} - -inline gtInt64 AtomicSwap(volatile gtInt64& target, gtInt64 value) -{ -#if (AMDT_ADDRESS_SPACE_TYPE == AMDT_64_BIT_ADDRESS_SPACE) - return _InterlockedExchange64(&target, value); -#else - gtInt64 oldVal; - - do - { - oldVal = target; - } - while (_InterlockedCompareExchange64(&target, value, oldVal) != oldVal); - - return oldVal; -#endif -} - - -inline bool AtomicCompareAndSwap(volatile gtInt32& target, gtInt32 oldValue, gtInt32 newValue) -{ - return oldValue == _InterlockedCompareExchange(reinterpret_cast(&target), newValue, oldValue); -} - -inline bool AtomicCompareAndSwap(volatile gtInt64& target, gtInt64 oldValue, gtInt64 newValue) -{ - return oldValue == _InterlockedCompareExchange64(&target, newValue, oldValue); -} - -#endif // __OSATOMICIMPL diff --git a/external/amdt_os_wrappers/src/win32/osCallsStackReader.cpp b/external/amdt_os_wrappers/src/win32/osCallsStackReader.cpp deleted file mode 100644 index e9dbe29..0000000 --- a/external/amdt_os_wrappers/src/win32/osCallsStackReader.cpp +++ /dev/null @@ -1,98 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osCallsStackReader.cpp -/// -//===================================================================== - -//------------------------------ osCallsStackReader.cpp ------------------------------ - -// Infra: -#include - -// Local: -#include -#include -#include -#include - -// --------------------------------------------------------------------------- -// Name: osCallsStackReader::osCallsStackReader -// Description: Constructor -// Author: AMD Developer Tools Team -// Date: 23/10/2008 -// --------------------------------------------------------------------------- -osCallsStackReader::osCallsStackReader() -{ - -} - -// --------------------------------------------------------------------------- -// Name: osCallsStackReader::~osCallsStackReader -// Description: Destructor -// Author: AMD Developer Tools Team -// Date: 23/10/2008 -// --------------------------------------------------------------------------- -osCallsStackReader::~osCallsStackReader() -{ - -} - -// --------------------------------------------------------------------------- -// Name: osCallsStackReader::getCurrentCallsStack -// Description: populates callStack with the current thread's calls stack. If -// shouldIgnoreSpyFrames is true, stack frames belonging to the -// spy are discarded. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 23/10/2008 -// --------------------------------------------------------------------------- -bool osCallsStackReader::getCurrentCallsStack(osCallStack& callStack, bool shouldIgnoreSpyFrames, bool forceWindowsSymbolLoading) -{ - bool retVal = false; - - if (forceWindowsSymbolLoading) - { - // If this is the first time we are getting a call stack for the current process, - // initialize the symbol server: - static bool loadSymbols = true; - - if (loadSymbols) - { - loadSymbols = false; - osWin32DebugSymbolsManager symMgr; - symMgr.initializeProcessSymbolsServer(GetCurrentProcess(), true); - } - } - - osWin32CallStackReader callsStackReaderImpl(callStack); - retVal = callsStackReaderImpl.execute(shouldIgnoreSpyFrames); - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osCallsStackReader::getCallStack -// Description: Inputs a thread's execution context and outputs the call stack -// associated with it. -// Arguments: -// callStack - Will get the output call stack. -// shouldIgnoreSpyFrames - If true, the output call stack will not include -// spy related call stack threds. -// pThreadExecutionContext - A pointer to a thread's execution context -// cast into void*. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 13/5/2009 -// --------------------------------------------------------------------------- -bool osCallsStackReader::getCallStack(osCallStack& callStack, void* pThreadExecutionContext, bool shouldIgnoreSpyFrames) -{ - GT_UNREFERENCED_PARAMETER(shouldIgnoreSpyFrames); - osProcessHandle hCurrentProcsss = GetCurrentProcess(); - osWin32CallStackReader callsStackReaderImpl(hCurrentProcsss, (CONTEXT*)pThreadExecutionContext, callStack); - bool retVal = callsStackReaderImpl.execute(false); - return retVal; -} - diff --git a/external/amdt_os_wrappers/src/win32/osConsole.cpp b/external/amdt_os_wrappers/src/win32/osConsole.cpp deleted file mode 100644 index 75d2249..0000000 --- a/external/amdt_os_wrappers/src/win32/osConsole.cpp +++ /dev/null @@ -1,28 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osConsole.cpp -/// -//===================================================================== -#include -#include -#include - -// --------------------------------------------------------------------------- -// Name: osWaitForKeyPress -// Description: Blocks until the user hits a keyboard key -// Arguments: None -// Author: AMD Developer Tools Team -// Date: 2/2/2014 -// --------------------------------------------------------------------------- -void OS_API osWaitForKeyPress() -{ - const unsigned SLEEP_INTERVAL_MS = 50; - - while (!kbhit()) - { - osSleep(SLEEP_INTERVAL_MS); - } -} - diff --git a/external/amdt_os_wrappers/src/win32/osDaemon.cpp b/external/amdt_os_wrappers/src/win32/osDaemon.cpp deleted file mode 100644 index 68645fc..0000000 --- a/external/amdt_os_wrappers/src/win32/osDaemon.cpp +++ /dev/null @@ -1,28 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osDaemon.cpp -/// -//===================================================================== - -//------------------------------ osDaemon.cpp ------------------------------ - -// Local: -#include - - -// --------------------------------------------------------------------------- -// Name: osMakeThisProcessDaemon -// Description: Performs actions required to make this process a "well behaved" -// daemon (background server). -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 13/4/2008 -// --------------------------------------------------------------------------- -bool osMakeThisProcessDaemon() -{ - // This function is not yet implemented on Windows. - return true; -} - diff --git a/external/amdt_os_wrappers/src/win32/osDesktop.cpp b/external/amdt_os_wrappers/src/win32/osDesktop.cpp deleted file mode 100644 index 4816416..0000000 --- a/external/amdt_os_wrappers/src/win32/osDesktop.cpp +++ /dev/null @@ -1,79 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osDesktop.cpp -/// -//===================================================================== - -//------------------------------ osDesktop.cpp ------------------------------ - -// Windows -#include - -// Standard C: -#include - -// Infra: -#include - -// Local: -#include - - - -// --------------------------------------------------------------------------- -// Name: osGetDesktopName -// Description: -// Retrieves the type of the desktop on which this -// application runs. -// Currently not supported on Windows. -// -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 20/2/2007 -// --------------------------------------------------------------------------- -bool osGetDesktopType(osDesktopType& desktopType) -{ - (void)(desktopType); // unused - GT_ASSERT(false); - return false; -} - - -// --------------------------------------------------------------------------- -// Name: osDesktopTypeToString -// Description: Inputs a desktop type and returns its name as a string. -// Currently not supported on Windows. -// Arguments: desktopType - The input desktop type. -// desktoptTypeAsString - The output string. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 7/5/2008 -// --------------------------------------------------------------------------- -bool osDesktopTypeToString(const osDesktopType& desktopType, gtString& desktoptTypeAsString) -{ - (void)(desktopType); // unused - (void)(desktoptTypeAsString); // unused - GT_ASSERT(false); - return false; -} - -// --------------------------------------------------------------------------- -// Name: osAddToRecentDocs -// Description: Notifies the operating system that an item has been accessed, -// for the purposes of tracking those items used most recently and -// most frequently. On Windows these items are added to the -// Start Menu's list of recent documents and to the application's -// jump-list on the task bar. -// Currently implemented as a no-op for Linux. -// Arguments: docPath [INPUT] - The path to the document that will be added to the recent docs lists -// Return Val: none. -// Author: AMD Developer Tools Team -// Date: Dec-25, 2013 -// --------------------------------------------------------------------------- -OS_API void osAddToRecentDocs(const gtString& docPath) -{ - // Pass the complete path of the document file in unicode format to the Windows API - SHAddToRecentDocs(SHARD_PATHW, docPath.asCharArray()); -} \ No newline at end of file diff --git a/external/amdt_os_wrappers/src/win32/osFilePermissions.cpp b/external/amdt_os_wrappers/src/win32/osFilePermissions.cpp deleted file mode 100644 index 274726d..0000000 --- a/external/amdt_os_wrappers/src/win32/osFilePermissions.cpp +++ /dev/null @@ -1,123 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osFilePermissions.cpp -/// -//===================================================================== - -//------------------------------ osFilePermissions.cpp ------------------------------ - -// Windows API: -#include - -// Infra: -#include - -// Local: -#include - - -// General note: -// ============ -// Linux permissions are divided to user, users group and others. -// On windows, a user can belong to any number of groups. Example: "Users", "Administrators", etc. -// This makes it hard to create a unified file permissions API. Instead, we supply a very basic API -// that matches both operating systems. -// Yaki - 15/6/2008 - - -// The "Users" windows users group: -#define OS_WIN_EVERYONE_GROUP_NAME L"EVERYONE" - - -// --------------------------------------------------------------------------- -// Name: osToWindowsStandardAccessTypesMask -// Description: Translates osFilePermissions mask to Windows standard access types mask. -// Author: AMD Developer Tools Team -// Date: 15/6/2008 -// --------------------------------------------------------------------------- -DWORD osToWindowsStandardAccessTypesMask(unsigned int filePermissionsMask) -{ - DWORD retVal = 0; - - if (filePermissionsMask & OS_READ_PERMISSION) - { - retVal |= FILE_GENERIC_READ; - } - - if (filePermissionsMask & OS_WRITE_PERMISSION) - { - retVal |= FILE_GENERIC_WRITE; - } - - if (filePermissionsMask & OS_EXECUTE_PERMISSION) - { - retVal |= FILE_GENERIC_EXECUTE; - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osAddAllUsersFilePermissions -// Description: Adds permissions for all users for a given a file / directory. -// Arguments: filePath - The file path. -// filePermissionsMask - A mask of osFilePermissions enumerators. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 15/6/2008 -// --------------------------------------------------------------------------- -bool osAddAllUsersFilePermissions(const osFilePath& filePath, unsigned int filePermissionsMask) -{ - bool retVal = false; - - // Get the file's current DACL (file permissions) information: - ACL* pCurrentFileDACL = NULL; - PSECURITY_DESCRIPTOR pCurrentFileSecurityDescriptor = NULL; - DWORD rc1 = GetNamedSecurityInfo(LPWSTR(filePath.asString().asCharArray()), SE_FILE_OBJECT, - DACL_SECURITY_INFORMATION, NULL, NULL, &pCurrentFileDACL, NULL, - &pCurrentFileSecurityDescriptor); - - GT_IF_WITH_ASSERT(rc1 == ERROR_SUCCESS) - { - // Translate the file permissions mask to Windows terminology: - DWORD filePermissionsMaskWindows = osToWindowsStandardAccessTypesMask(filePermissionsMask); - - // Create a structure defining the new file's access control information: - EXPLICIT_ACCESS fileNewAccessControlInfo; - ZeroMemory(&fileNewAccessControlInfo, sizeof(EXPLICIT_ACCESS)); - fileNewAccessControlInfo.grfAccessPermissions = filePermissionsMaskWindows; - fileNewAccessControlInfo.grfAccessMode = GRANT_ACCESS; - fileNewAccessControlInfo.grfInheritance = CONTAINER_INHERIT_ACE | OBJECT_INHERIT_ACE; - fileNewAccessControlInfo.Trustee.TrusteeForm = TRUSTEE_IS_NAME; - fileNewAccessControlInfo.Trustee.ptstrName = OS_WIN_EVERYONE_GROUP_NAME; - - // Create a new DACL (file permissions) information that contains the merge of the - // current file's permissions and the added files permissions: - ACL* pNewFileDACL = NULL; - DWORD rc2 = SetEntriesInAcl(1, &fileNewAccessControlInfo, pCurrentFileDACL, &pNewFileDACL); - - GT_IF_WITH_ASSERT(rc2 == ERROR_SUCCESS) - { - // Set the file's permissions to be the new DACL information: - DWORD rc3 = SetNamedSecurityInfo(LPWSTR(filePath.asString().asCharArray()), SE_FILE_OBJECT, - DACL_SECURITY_INFORMATION, NULL, NULL, pNewFileDACL, NULL); - - GT_IF_WITH_ASSERT(rc3 == ERROR_SUCCESS) - { - retVal = true; - } - - // Clean up: - LocalFree((HLOCAL)pNewFileDACL); - } - - // Clean up: - LocalFree((HLOCAL)pCurrentFileSecurityDescriptor); - } - - return retVal; -} - diff --git a/external/amdt_os_wrappers/src/win32/osGeneralFunctions.cpp b/external/amdt_os_wrappers/src/win32/osGeneralFunctions.cpp index 88814d7..463cc9a 100644 --- a/external/amdt_os_wrappers/src/win32/osGeneralFunctions.cpp +++ b/external/amdt_os_wrappers/src/win32/osGeneralFunctions.cpp @@ -40,7 +40,6 @@ void GetWinOSVersionNumberHelper(int& majorVersion, int& minorVersion); // Implementations notes: // The MSDN documentation of the "OSVERSIONINFOEX Structure" contains a table // that explains how to identify the windows version on which this program runs. -// The URL is: http://msdn.microsoft.com/en-us/library/ms724833(VS.85).aspx // --------------------------------------------------------------------------- bool osGetWindowsVersion(osWindowsVersion& windowsVersion) diff --git a/external/amdt_os_wrappers/src/win32/osHTTPRequest.cpp b/external/amdt_os_wrappers/src/win32/osHTTPRequest.cpp deleted file mode 100644 index 2e0392e..0000000 --- a/external/amdt_os_wrappers/src/win32/osHTTPRequest.cpp +++ /dev/null @@ -1,150 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file -/// -//===================================================================== - -//------------------------------ osHTTPRequest.cpp ------------------------------ - -Yaki - 5 / 7 / 2007 - This class is not in use anymore. Use wxHTTP instead(See usae example at osBugReporter). - -// Windows: -#define WIN32_LEAN_AND_MEAN 1 -#include - -// Windows Platform SDK: -#include "include/specstrings.h" -#include "include/Winhttp.h" - -// Infra: -#include - -// Local: -#include - - -// --------------------------------------------------------------------------- -// Name: osHTTPRequest::osHTTPRequest -// Description: Constructor -// Arguments: webServerURL - The Web server URL -// requestRelativeURL - The relative name of a file / service in this server. -// httpRequestType - The HTTP request type. -// Author: AMD Developer Tools Team -// Date: 24/11/2005 -// --------------------------------------------------------------------------- - osHTTPRequest::osHTTPRequest(const gtString& webServerURL, const gtString& requestRelativeURL, - osHTTPRequestType httpRequestType) - : _webServerURL(webServerURL), _requestRelativeURL(requestRelativeURL), _httpRequestType(httpRequestType) -{ -} - - -// --------------------------------------------------------------------------- -// Name: osHTTPRequest::~osHTTPRequest -// Description: Destructor -// Author: AMD Developer Tools Team -// Date: 24/11/2005 -// --------------------------------------------------------------------------- -osHTTPRequest::~osHTTPRequest() -{ -} - - -// --------------------------------------------------------------------------- -// Name: osHTTPRequest::reportBug -// Description: Performs the HTTP request. -// Arguments: resultContent - Will get the HTTP request result content (the web -// page sent to us by the mail server) -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 24/11/2005 -// --------------------------------------------------------------------------- -bool osHTTPRequest::sendRequest(gtString& resultContent) -{ - bool retVal = false; - resultContent.makeEmpty(); - - // Create an HTTP session (use Windows defined default proxy): - HINTERNET hSession = WinHttpOpen(L"osHTTPRequest", WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, - WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, 0); - GT_IF_WITH_ASSERT(hSession != NULL) - { - // Convert the web server URL string to Unicode: - wchar_t webServerURLUnicode[512]; - gtANSIStringToUnicodeString(_webServerURL.asCharArray(), webServerURLUnicode, 512); - - // Specify the HTTP server to which we will connect later. - HINTERNET hConnect = WinHttpConnect(hSession, webServerURLUnicode, INTERNET_DEFAULT_HTTP_PORT, 0); - GT_IF_WITH_ASSERT(hConnect != NULL) - { - // Convert the file relative path to Unicode: - wchar_t getArgumentsString[16384]; - gtANSIStringToUnicodeString(_requestRelativeURL.asCharArray(), getArgumentsString, 16384); - - // Create an HTTP request: - HINTERNET hRequest = WinHttpOpenRequest(hConnect, L"GET", getArgumentsString , NULL, WINHTTP_NO_REFERER, - WINHTTP_DEFAULT_ACCEPT_TYPES, WINHTTP_FLAG_REFRESH); - GT_IF_WITH_ASSERT(hRequest != NULL) - { - // Send the request. - BOOL rc = WinHttpSendRequest(hRequest, WINHTTP_NO_ADDITIONAL_HEADERS, 0, WINHTTP_NO_REQUEST_DATA, 0, 0, 0); - DWORD lastErr = GetLastError(); - GT_IF_WITH_ASSERT(rc != FALSE) - { - // Receive the respond from the server: - rc = WinHttpReceiveResponse(hRequest, NULL); - - if (rc) - { - // Keep checking for data until there is nothing left. - DWORD dwSize = 0; - - do - { - // Check for available data. - rc = WinHttpQueryDataAvailable(hRequest, &dwSize); - GT_IF_WITH_ASSERT(rc == TRUE) - { - // Allocate space for the received data: - char* pszOutBuffer = new char[dwSize + 1]; - GT_IF_WITH_ASSERT(pszOutBuffer != NULL) - { - // Read the data. - ZeroMemory(pszOutBuffer, dwSize + 1); - - // Read the currently available data: - DWORD dwDownloaded = 0; - BOOL rc1 = WinHttpReadData(hRequest, (LPVOID)pszOutBuffer, dwSize, &dwDownloaded); - GT_IF_WITH_ASSERT(rc1 == TRUE) - { - // Add the current read data to the output result content: - resultContent += pszOutBuffer; - - retVal = true; - } - - // Delete the allocated buffer: - delete[] pszOutBuffer; - } - } - } - while (dwSize > 0); - } - } - - // Clean up: - WinHttpCloseHandle(hRequest); - } - - // Clean up: - WinHttpCloseHandle(hConnect); - } - - // Clean up: - WinHttpCloseHandle(hSession); - } - - return retVal; -} diff --git a/external/amdt_os_wrappers/src/win32/osKeyboardListener.cpp b/external/amdt_os_wrappers/src/win32/osKeyboardListener.cpp deleted file mode 100644 index ef67a0c..0000000 --- a/external/amdt_os_wrappers/src/win32/osKeyboardListener.cpp +++ /dev/null @@ -1,62 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osKeyboardListener.cpp -/// -//===================================================================== - -//------------------------------ osKeyboardListener.cpp ------------------------------ - -// Local: -#include -#include - -//Hook implementation -LRESULT CALLBACK KeyboardProc(_In_ int code, _In_ WPARAM wParam, _In_ LPARAM lParam) -{ - osKeyboardListener::OnKeyboardPressed callback = OS_KEYBOARD_LISTENER.GetOnKbPressedCallback(); - - //if callback set - if (callback) - { - callback(code, wParam, lParam); - } - - return ::CallNextHookEx(OS_KEYBOARD_LISTENER.GetKbHook(), code, wParam, lParam); -} - -osKeyboardListener::osKeyboardListener() : m_callback(nullptr) -{ - // Find the main thread for the current process. - osThreadId mainThreadId; - bool bGotMainThreadId = osGetMainThreadId(osGetCurrentProcessId(), mainThreadId); - - if (bGotMainThreadId) - { - // Hook the keypress listener on the main thread- it won't die until the application exits. - m_KeyboardProcHook = ::SetWindowsHookEx(WH_KEYBOARD, KeyboardProc, GetModuleHandle(NULL), mainThreadId); - } -} - -osKeyboardListener::~osKeyboardListener() -{ - ::UnhookWindowsHookEx(m_KeyboardProcHook); -} - -//singleton implementation -osKeyboardListener& osKeyboardListener::Instance() -{ - static osKeyboardListener instance; - return instance; -} - -void osKeyboardListener::SetOnKbPressedCallback(OnKeyboardPressed callback) -{ - m_callback = callback; -} - -HHOOK osKeyboardListener::GetKbHook() -{ - return m_KeyboardProcHook; -} diff --git a/external/amdt_os_wrappers/src/win32/osMutexImpl.cpp b/external/amdt_os_wrappers/src/win32/osMutexImpl.cpp deleted file mode 100644 index de132f4..0000000 --- a/external/amdt_os_wrappers/src/win32/osMutexImpl.cpp +++ /dev/null @@ -1,107 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osMutexImpl.cpp -/// -//===================================================================== - -//------------------------------ osMutexImpl.cpp ------------------------------ - -// Infra: -#include - -// Local: -#include - - -// --------------------------------------------------------------------------- -// Name: osMutexImpl::osMutexImpl -// Description: Constructor -// Author: AMD Developer Tools Team -// Date: 29/3/2004 -// --------------------------------------------------------------------------- -osMutexImpl::osMutexImpl() -{ - // Create an unnamed Win32 mutex: - _mutexHandle = ::CreateMutex(NULL, FALSE, NULL); - - // Sanity check: - GT_ASSERT(_mutexHandle); -} - - -// --------------------------------------------------------------------------- -// Name: osMutexImpl::osMutexImpl -// Description: Destructor -// Author: AMD Developer Tools Team -// Date: 29/3/2004 -// --------------------------------------------------------------------------- -osMutexImpl::~osMutexImpl() -{ - if (_mutexHandle) - { - // Destroy the Win32 mutex: - ::CloseHandle(_mutexHandle); - } -} - - -// --------------------------------------------------------------------------- -// Name: osMutexImpl::lock -// Description: Locks the mutex and mark it as owned by the calling thread. -// If the Mutex is already locked - waits (halts the calling thread) -// until it will be unlocked by its owning thread. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 29/3/2004 -// --------------------------------------------------------------------------- -bool osMutexImpl::lock() -{ - bool retVal = false; - - // Lock (or wait for) the Win32 mutex: - DWORD rc = ::WaitForSingleObject(_mutexHandle, INFINITE); - - // The mutex was not locked - we managed to lock and own the mutex: - if (rc == WAIT_OBJECT_0) - { - retVal = true; - } - else if (rc == WAIT_ABANDONED) - { - // The thread that owned the mutex died without unlocking it. - // This enabled us to lock and own the mutex: - retVal = true; - - // TO_DO: Replace me by a log print: - GT_ASSERT(0); - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osMutexImpl::unlock -// Description: Frees (unlocks) the mutex for the use of other threads. -// If other threads are waiting for this mutex (called lock() while it -// was owned and locked by this thread), the first thread that was -// blocked by lock() call will gain the mutex ownership. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 29/3/2004 -// --------------------------------------------------------------------------- -bool osMutexImpl::unlock() -{ - bool retVal = true; - - // Unlock the Win32 mutex: - if (! ::ReleaseMutex(_mutexHandle)) - { - retVal = false; - } - - return retVal; -} - diff --git a/external/amdt_os_wrappers/src/win32/osMutexImpl.h b/external/amdt_os_wrappers/src/win32/osMutexImpl.h deleted file mode 100644 index 3200ec1..0000000 --- a/external/amdt_os_wrappers/src/win32/osMutexImpl.h +++ /dev/null @@ -1,41 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osMutexImpl.h -/// -//===================================================================== - -//------------------------------ osMutexImpl.h ------------------------------ - -#ifndef __OSMUTEXIMPL -#define __OSMUTEXIMPL - -// Win32: -#define WIN32_LEAN_AND_MEAN 1 -#include - -// Local: -#include - -// ---------------------------------------------------------------------------------- -// Class Name: osMutexImpl -// General Description: Win32 Implementation of osMutex. -// Author: AMD Developer Tools Team -// Creation Date: 29/3/2004 -// ---------------------------------------------------------------------------------- -class osMutexImpl -{ -public: - osMutexImpl(); - virtual ~osMutexImpl(); - bool lock(); - bool unlock(); - -private: - // The Win32 Mutex handle: - osMutexHandle _mutexHandle; -}; - - -#endif // __OSMUTEXIMPL diff --git a/external/amdt_os_wrappers/src/win32/osNetworkAdapter.cpp b/external/amdt_os_wrappers/src/win32/osNetworkAdapter.cpp deleted file mode 100644 index 2ca06df..0000000 --- a/external/amdt_os_wrappers/src/win32/osNetworkAdapter.cpp +++ /dev/null @@ -1,130 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osNetworkAdapter.cpp -/// -//===================================================================== - -//------------------------------ osNetworkAdapter.cpp ------------------------------ - -#include - -// Win32: -#define WIN32_LEAN_AND_MEAN 1 -#include -#include - -// Infra: -#include -#include - -// Local: -#include - - -// --------------------------------------------------------------------------- -// Name: osGetCurrentMachineNetworkAdapters -// Description: -// Retrieves a list of network adapters installed on the local machine. -// The caller should release the network adapters vector memory. -// Arguments: networkAdapters - Will get the network adapters list. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 11/12/2007 -// Implementation notes: -// The adapter names we get are of the form: {B9601C54-FE71-4CD5-BD1B-375E67A51D3E}. -// To get the adapter "human readable name", you can look in the registry under -// HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network for the adapter name. -// --------------------------------------------------------------------------- -bool osGetCurrentMachineNetworkAdapters(gtPtrVector& networkAdapters) -{ - bool retVal = false; - - // Clear the output vector: - networkAdapters.clear(); - - // Load the IP Helper API library: - HMODULE hIpHlpApi = ::LoadLibrary(L"IpHlpApi.dll"); - GT_IF_WITH_ASSERT(hIpHlpApi != NULL) - { - // Get the GetAdaptersInfo function pointer: - typedef DWORD (WINAPI * GetAdaptersInfoPROC)(PIP_ADAPTER_INFO, PULONG); - GetAdaptersInfoPROC pGetAdaptersInfo = (GetAdaptersInfoPROC)GetProcAddress(hIpHlpApi, "GetAdaptersInfo"); - - if (pGetAdaptersInfo != NULL) - { - // Get the required size for the GetAdaptersInfo output buffer: - ULONG bufferSize = 0; - pGetAdaptersInfo(NULL, &bufferSize); - GT_IF_WITH_ASSERT(0 < bufferSize) - { - // Allocate a buffer of the required size: - BYTE* pBuffer = new BYTE[bufferSize]; - GT_IF_WITH_ASSERT(pBuffer != NULL) - { - // Get the adapters information: - DWORD rc1 = pGetAdaptersInfo((PIP_ADAPTER_INFO)pBuffer, &bufferSize); - GT_IF_WITH_ASSERT(rc1 == ERROR_SUCCESS) - { - retVal = true; - - // Iterate the available network adapters: - PIP_ADAPTER_INFO pCurrOSAdapter = (PIP_ADAPTER_INFO)pBuffer; - - while (pCurrOSAdapter != NULL) - { - // Allocate a network adapter wrapper class: - osNetworkAdapter* pCurrAdapter = new osNetworkAdapter; - GT_IF_WITH_ASSERT(pCurrAdapter != NULL) - { - // Fill the adapter name: - pCurrAdapter->_name.fromASCIIString(pCurrOSAdapter->AdapterName); - - // If the adapter's MAC address is valid: - if ((pCurrOSAdapter->Address[0] != 0) || (pCurrOSAdapter->Address[1] != 0) || - (pCurrOSAdapter->Address[2] != 0) || (pCurrOSAdapter->Address[3] != 0) || - (pCurrOSAdapter->Address[4] != 0) || (pCurrOSAdapter->Address[5] != 0)) - { - // Fill the adapter MAC address: - pCurrAdapter->_MACAddress.appendFormattedString(L"%02X-%02X-%02X-%02X-%02X-%02X", pCurrOSAdapter->Address[0], pCurrOSAdapter->Address[1], pCurrOSAdapter->Address[2], pCurrOSAdapter->Address[3], pCurrOSAdapter->Address[4], pCurrOSAdapter->Address[5]); - } - else - { - // Mark that the MAC address is invalid: - pCurrAdapter->_MACAddress.makeEmpty(); - } - - if (pCurrOSAdapter->IpAddressList.IpAddress.String[0] != 0) - { - const size_t nullTerminatedIpStringBuffLength = 16; - char nullTerminatedIpAddress[nullTerminatedIpStringBuffLength]; - memset(nullTerminatedIpAddress, 0, nullTerminatedIpStringBuffLength); - strcpy_s(nullTerminatedIpAddress, nullTerminatedIpStringBuffLength, pCurrOSAdapter->IpAddressList.IpAddress.String); - pCurrAdapter->_TCPIPAddress.fromASCIIString(nullTerminatedIpAddress); - - } - - // Add the current adapter to the output adapters list: - networkAdapters.push_back(pCurrAdapter); - } - - // Advance to the next network adapter: - pCurrOSAdapter = pCurrOSAdapter->Next; - } - } - - // Release the allocated buffer: - delete[] pBuffer; - } - } - } - - // Free the IP Helper API library: - ::FreeLibrary(hIpHlpApi); - hIpHlpApi = NULL; - } - - return retVal; -} - diff --git a/external/amdt_os_wrappers/src/win32/osPipeSocket.cpp b/external/amdt_os_wrappers/src/win32/osPipeSocket.cpp deleted file mode 100644 index d363f2e..0000000 --- a/external/amdt_os_wrappers/src/win32/osPipeSocket.cpp +++ /dev/null @@ -1,473 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osPipeSocket.cpp -/// -//===================================================================== - -//------------------------------ osPipeSocket.cpp ------------------------------ - -// Win32: -#define WIN32_LEAN_AND_MEAN 1 -#include - -// Infra: -#include -#include - -// Local: -#include -#include -#include - -// Default read / write timeouts: -// (Currently not used by our win sockets implementation) -#define OS_PIPE_SOCKET_DEFAULT_READ_TIMEOUT 180000 -#define OS_PIPE_SOCKET_DEFAULT_WRITE_TIMEOUT 180000 - -// Maximal amount of error printouts: -#define OS_PIPE_SOCKET_MAX_ERROR_PRINTOUTS 10 - - -// --------------------------------------------------------------------------- -// Name: osPipeSocket::osPipeSocket -// Description: Constructor. -// Arguments: pipeName - The pipe name. -// Author: AMD Developer Tools Team -// Date: 31/12/2006 -// --------------------------------------------------------------------------- -osPipeSocket::osPipeSocket(const gtString& pipeName, const gtString& socketName) - : osSocket(socketName), _pipeName(pipeName), _isOpen(false), _isDuringPipeConnectionWait(false), - _incomingPipe(NULL), _outgoingPipe(NULL), _errorsCount(0) -{ -} - - -// --------------------------------------------------------------------------- -// Name: osPipeSocket::~osPipeSocket -// Description: Destructor. -// Author: AMD Developer Tools Team -// Date: 31/12/2006 -// --------------------------------------------------------------------------- -osPipeSocket::~osPipeSocket() -{ -} - - -// --------------------------------------------------------------------------- -// Name: osPipeSocket::channelType -// Description: Returns my channel type - a binary channel. -// Author: AMD Developer Tools Team -// Date: 31/12/2006 -// --------------------------------------------------------------------------- -osChannel::osChannelType osPipeSocket::channelType() const -{ - // This is a binary channel: - return osChannel::OS_BINARY_CHANNEL; -} - - -// --------------------------------------------------------------------------- -// Name: osPipeSocket::defaultReadOperationTimeOut -// Description: Returns the default read operation time out (measured in milliseconds). -// Author: AMD Developer Tools Team -// Date: 1/7/2007 -// --------------------------------------------------------------------------- -long osPipeSocket::defaultReadOperationTimeOut() const -{ - return OS_PIPE_SOCKET_DEFAULT_READ_TIMEOUT; -} - - -// --------------------------------------------------------------------------- -// Name: osPipeSocket::defaultWriteOperationTimeOut -// Description: Returns the default write operation time out (measured in milliseconds). -// Author: AMD Developer Tools Team -// Date: 1/7/2007 -// --------------------------------------------------------------------------- -long osPipeSocket::defaultWriteOperationTimeOut() const -{ - return OS_PIPE_SOCKET_DEFAULT_WRITE_TIMEOUT; -} - - -// --------------------------------------------------------------------------- -// Name: osPipeSocket::isOpen -// Description: Returns true iff the pipe is open. -// Author: AMD Developer Tools Team -// Date: 31/12/2006 -// --------------------------------------------------------------------------- -bool osPipeSocket::isOpen() const -{ - return (_isOpen && (_errorsCount == 0)); -} - - -// --------------------------------------------------------------------------- -// Name: osPipeSocket::close -// Description: Terminates the pipe communication. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 31/12/2006 -// --------------------------------------------------------------------------- -bool osPipeSocket::close() -{ - bool retVal = false; - - BOOL incomingPipeClosed = FALSE; - BOOL outgoingPipeClosed = FALSE; - - if (!_isDuringPipeConnectionWait) - { - // Close the incoming pipe: - if (_incomingPipe != NULL) - { - incomingPipeClosed = ::CloseHandle(_incomingPipe); - - if (incomingPipeClosed == FALSE) - { - gtString debugMessage; - debugMessage.appendFormattedString(OS_STR_pipeCannotClose, _socketName.asCharArray()); - GT_ASSERT_EX(false, debugMessage.asCharArray()); - } - - _incomingPipe = NULL; - } - - // Close the outgoing pipe: - if (_outgoingPipe != NULL) - { - outgoingPipeClosed = ::CloseHandle(_outgoingPipe); - - if (outgoingPipeClosed == FALSE) - { - gtString debugMessage; - debugMessage.appendFormattedString(OS_STR_pipeCannotClose, _socketName.asCharArray()); - GT_ASSERT_EX(false, debugMessage.asCharArray()); - } - - _outgoingPipe = NULL; - } - - if ((incomingPipeClosed != FALSE) && (outgoingPipeClosed != FALSE)) - { - retVal = true; - } - } - else - { - // If we are waiting for the connection, it is impossible to close the pipe - // handle, and trying would cause the process debugger to get itsself stuck. - // This usually happens when the debugged application crashes before the spy is - // initialized, for example when it is missing a required dll. - // Our only option in this case is to abandon the thread and simply move on with the - // process run. - _incomingPipe = NULL; - _outgoingPipe = NULL; - retVal = false; - } - - // Mark that the pipe is closed: - _isOpen = false; - _errorsCount = 0; - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osPipeSocket::write -// Description: Write data into the outgoing pipe. -// Arguments: pDataBuffer - A buffer containing the data to be written. -// dataSize - The data size. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 31/12/2006 -// --------------------------------------------------------------------------- -bool osPipeSocket::writeImpl(const gtByte* pDataBuffer, gtSize_t dataSize) -{ - bool retVal = false; - - // If the pipe is open and does not have errors: - if (_isOpen && (_errorsCount == 0)) - { - // Write the data into the outgoing pipe: - DWORD numberOfBytesWritten = 0; - BOOL rc1 = ::WriteFile(_outgoingPipe, (LPCVOID)pDataBuffer, (DWORD)dataSize, &numberOfBytesWritten, NULL); - - if ((rc1 != FALSE) && (numberOfBytesWritten == dataSize)) - { - retVal = true; - } - - // Testing section - leave commented out! - /* - gtString foo = "write: "; - foo.appendFormattedString(L"to write: %d, wrote: %d", dataSize, rc); - OS_OUTPUT_DEBUG_LOG(foo.asCharArray(), OS_INFO_SEVERITY); - */ - } - - // If there was an error: - if (!retVal) - { - // Mark that the pipe has an error: - _errorsCount++; - - // Yaki - 11/2/2008: - // We limit the amount of "Pipe read error" printouts, since some clients sent - // us huge log files, containing millions of "Pipe read error" printouts. - if (_errorsCount < OS_PIPE_SOCKET_MAX_ERROR_PRINTOUTS) - { - gtString debugMessage; - debugMessage.appendFormattedString(OS_STR_pipeWriteError, _socketName.asCharArray()); - GT_ASSERT_EX(false, debugMessage.asCharArray()); - } - else if (_errorsCount == OS_PIPE_SOCKET_MAX_ERROR_PRINTOUTS) - { - gtString debugMessage; - debugMessage.appendFormattedString(OS_STR_pipeWriteErrorLastMessage, _socketName.asCharArray()); - GT_ASSERT_EX(false, debugMessage.asCharArray()); - } - else - { - // Don't enable overflowing _errorsCount: - _errorsCount = OS_PIPE_SOCKET_MAX_ERROR_PRINTOUTS + 10; - } - } - - return retVal; -} - -// --------------------------------------------------------------------------- -// Name: osPipeSocket::read -// Description: Read data from the incoming pipe. -// Arguments: pDataBuffer - A buffer that will contain the read data. -// dataSize - The amount of data to be read. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 31/12/2006 -// --------------------------------------------------------------------------- -bool osPipeSocket::readImpl(gtByte* pDataBuffer, gtSize_t dataSize) -{ - bool retVal = false; - - // If the pipe is open and does not have errors: - if (_isOpen && (_errorsCount == 0)) - { - bool goOn = true; - - while (goOn) - { - // Read the data that is currently available in the pipe: - DWORD readDataSize = 0; - BOOL rc1 = ::ReadFile(_incomingPipe, (LPVOID)pDataBuffer, (DWORD)dataSize, &readDataSize, NULL); - - if (rc1 == FALSE) - { - // A read error occurred: - gtString debugMessage; - debugMessage.appendFormattedString(OS_STR_pipeReadError, _socketName.asCharArray()); - GT_ASSERT_EX(false, debugMessage.asCharArray()); - goOn = false; - } - else - { - // If the entire data was read: - if (readDataSize == dataSize) - { - retVal = true; - goOn = false; - } - else if (readDataSize < dataSize) - { - // We still have data to read: - - // Calculate the amount of data left to read: - dataSize -= readDataSize; - (char*)pDataBuffer += readDataSize; - - // Let other threads with the same priority as mine run - // (maybe one of them is the thread that fills my input data) - ::Sleep(0); - } - else - { - // Error - we read more data that we asked for: - gtString debugMessage; - debugMessage.appendFormattedString(OS_STR_pipeReadMoreDataThenAskedFor, _socketName.asCharArray()); - GT_ASSERT_EX(false, debugMessage.asCharArray()); - goOn = false; - } - } - } - } - - // If there was an error: - if (!retVal) - { - // Mark that the pipe has an error: - _errorsCount++; - - // Yaki - 11/2/2008: - // We limit the amount of "Pipe read error" printouts, since some clients sent - // us huge log files, containing millions of "Pipe read error" printouts. - if (_errorsCount < OS_PIPE_SOCKET_MAX_ERROR_PRINTOUTS) - { - gtString debugMessage; - debugMessage.appendFormattedString(OS_STR_pipeReadError, _socketName.asCharArray()); - GT_ASSERT_EX(false, debugMessage.asCharArray()); - } - else if (_errorsCount == OS_PIPE_SOCKET_MAX_ERROR_PRINTOUTS) - { - gtString debugMessage; - debugMessage.appendFormattedString(OS_STR_pipeReadErrorLastMessage, _socketName.asCharArray()); - GT_ASSERT_EX(false, debugMessage.asCharArray()); - } - else - { - // Don't enable overflowing _errorsCount: - _errorsCount = OS_PIPE_SOCKET_MAX_ERROR_PRINTOUTS + 10; - } - } - - // Testing section - leave commented out! - /* - gtString foo = "read: "; - foo.appendFormattedString(L"to read: %d, read: %d", dataSize, rc); - OS_OUTPUT_DEBUG_LOG(foo.asCharArray(), OS_INFO_SEVERITY); - */ - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osPipeSocket::readAvailableData -// -// Description: -// Reads and outputs the data that is currently available in the pipe. -// If no data is available in the pipe for reading, waits _readOperationTimeOut -// milliseconds until data is available. -// If more data than bufferSize is available, reads only bufferSize bytes of data. -// -// Arguments: pDataBuffer - A buffer that will receive the data. -// bufferSize - The buffer size. -// amountOfDataRead - The amount of data actually read. -// -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 10/2/2008 -// --------------------------------------------------------------------------- -bool osPipeSocket::readAvailableDataImpl(gtByte* pDataBuffer, gtSize_t bufferSize, gtSize_t& amountOfDataRead) -{ - bool retVal = false; - - DWORD amountOfDataReadAsDWORD = 0; - - // Read the data that is currently available in the pipe: - BOOL rc1 = ::ReadFile(_incomingPipe, (LPVOID)pDataBuffer, (DWORD)bufferSize, &amountOfDataReadAsDWORD, NULL); - GT_IF_WITH_ASSERT(rc1 != FALSE) - { - retVal = true; - } - - amountOfDataRead = amountOfDataReadAsDWORD; - - // If there was an error: - if (!retVal) - { - // Mark that the pipe has an error: - _errorsCount++; - - // Yaki - 11/2/2008: - // We limit the amount of "Pipe read error" printouts, since some clients sent - // us huge log files, containing millions of "Pipe read error" printouts. - if (_errorsCount < OS_PIPE_SOCKET_MAX_ERROR_PRINTOUTS) - { - gtString debugMessage; - debugMessage.appendFormattedString(OS_STR_pipeReadError, _socketName.asCharArray()); - GT_ASSERT_EX(false, debugMessage.asCharArray()); - } - else if (_errorsCount == OS_PIPE_SOCKET_MAX_ERROR_PRINTOUTS) - { - gtString debugMessage; - debugMessage.appendFormattedString(OS_STR_pipeReadErrorLastMessage, _socketName.asCharArray()); - GT_ASSERT_EX(false, debugMessage.asCharArray()); - } - else - { - // Don't enable overflowing _errorsCount: - _errorsCount = OS_PIPE_SOCKET_MAX_ERROR_PRINTOUTS + 10; - } - } - - // Testing section - leave commented out! - /* - gtString foo = "read: "; - foo.appendFormattedString(L"to read: %d, read: %d", dataSize, rc); - OS_OUTPUT_DEBUG_LOG(foo.asCharArray(), OS_INFO_SEVERITY); - */ - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osPipeSocket::getPipeFIFOFilesPaths -// Description: Calculates and returns the names of the 2 FIFO files, -// used for implementing this full duplex pipe socket. -// Arguments: clientToServer - The client to server pipe name. -// serverToClient - The server to client pipe name. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 3/5/2007 -// --------------------------------------------------------------------------- -void osPipeSocket::getPipeFIFOFilesPaths(gtString& clientToServer, gtString& serverToClient) -{ - // A Win32 pipe name is build out of the following format: - // \\ServerName\pipe\PipeName where \\. is the local machine. - const wchar_t* pipesNamePrefix = L"\\\\.\\pipe\\"; - - serverToClient = pipesNamePrefix; - serverToClient += _pipeName; - serverToClient += L"-serverToClient"; - - - clientToServer = pipesNamePrefix; - clientToServer += _pipeName; - clientToServer += L"-clientToServer"; -} - -///////////////////////////////////////////////////////////////////////// -/// \brief Get server pipe socket OS name -/// -/// \param filePath a server pipe socket OS name -/// -/// \author: AMD Developer Tools Team -/// \date: 02/03/2016 -void osPipeSocket::getServerFilePath(gtString& filePath) -{ - osFilePath serverPipeFilePath(osFilePath::OS_TEMP_DIRECTORY); - serverPipeFilePath.setFileName(_pipeName); - serverPipeFilePath.setFileExtension(L"tmp1"); - filePath = serverPipeFilePath.asString(); -} - -///////////////////////////////////////////////////////////////////////// -/// \brief Get server pipe socket OS name -/// -/// \param filePath a server pipe socket OS name -/// -/// \author: AMD Developer Tools Team -/// \date: 02/03/2016 -void osPipeSocket::getClientFilePath(gtString& filePath) -{ - osFilePath clientPipeFilePath(osFilePath::OS_TEMP_DIRECTORY); - clientPipeFilePath.setFileName(_pipeName); - clientPipeFilePath.setFileExtension(L"tmp2"); - filePath = clientPipeFilePath.asString(); -} - - diff --git a/external/amdt_os_wrappers/src/win32/osPipeSocketClient.cpp b/external/amdt_os_wrappers/src/win32/osPipeSocketClient.cpp deleted file mode 100644 index 497414f..0000000 --- a/external/amdt_os_wrappers/src/win32/osPipeSocketClient.cpp +++ /dev/null @@ -1,103 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osPipeSocketClient.cpp -/// -//===================================================================== - -//------------------------------ osPipeSocketClient.cpp ------------------------------ - -// Win32: -#define WIN32_LEAN_AND_MEAN 1 -#include - -// Infra: -#include - -// Local: -#include -#include - - -// --------------------------------------------------------------------------- -// Name: osPipeSocketClient::osPipeSocketClient -// Description: Constructor -// Arguments: pipeName - The pipe name. -// Author: AMD Developer Tools Team -// Date: 4/5/2007 -// --------------------------------------------------------------------------- -osPipeSocketClient::osPipeSocketClient(const gtString& pipeName, const gtString& socketName) - : osPipeSocket(pipeName, socketName) -{ -} - - -// --------------------------------------------------------------------------- -// Name: osPipeSocketClient::~osPipeSocketClient -// Description: Destructor. -// Author: AMD Developer Tools Team -// Date: 4/5/2007 -// --------------------------------------------------------------------------- -osPipeSocketClient::~osPipeSocketClient() -{ - // Close the pipe connection and release all used resources: - this->close(); -} - - -// --------------------------------------------------------------------------- -// Name: osPipeSocketClient::open -// Description: Connects to the pipe to the pipe server. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 4/5/2007 -// --------------------------------------------------------------------------- -bool osPipeSocketClient::open() -{ - // Calculate the pipe FIFO files paths: - gtString incomingPipeFilePath; - gtString outgoingPipeFilePath; - osPipeSocket::getPipeFIFOFilesPaths(outgoingPipeFilePath, incomingPipeFilePath); - - bool outgoingPipeOpened = false; - bool incomingPipeOpened = false; - - // Open the outgoing pipe: - _outgoingPipe = ::CreateFile( - outgoingPipeFilePath.asCharArray(), // Pipe name. - GENERIC_WRITE, // Write access. - 0, // No sharing. - NULL, // Use the default security attributes. - OPEN_EXISTING, // Opens only an existing pipe. - 0, // Use default attributes. - NULL); // No template file. - - GT_IF_WITH_ASSERT(_outgoingPipe != INVALID_HANDLE_VALUE) - { - outgoingPipeOpened = true; - } - - // Open the incoming pipe: - _incomingPipe = ::CreateFile( - incomingPipeFilePath.asCharArray(), // Pipe name. - GENERIC_READ, // Read access. - 0, // No sharing. - NULL, // Use the default security attributes. - OPEN_EXISTING, // Opens only an existing pipe. - 0, // Use default attributes. - NULL); // No template file. - - GT_IF_WITH_ASSERT(_incomingPipe != INVALID_HANDLE_VALUE) - { - incomingPipeOpened = true; - } - - if (outgoingPipeOpened && incomingPipeOpened) - { - _isOpen = true; - } - - return _isOpen; -} - diff --git a/external/amdt_os_wrappers/src/win32/osPipeSocketServer.cpp b/external/amdt_os_wrappers/src/win32/osPipeSocketServer.cpp deleted file mode 100644 index bdea135..0000000 --- a/external/amdt_os_wrappers/src/win32/osPipeSocketServer.cpp +++ /dev/null @@ -1,197 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osPipeSocketServer.cpp -/// -//===================================================================== - -//------------------------------ osPipeSocketServer.cpp ------------------------------ - -// Win32: -#define WIN32_LEAN_AND_MEAN 1 -#include - -// Infra: -#include - -// Local: -#include -#include -#include - - -// --------------------------------------------------------------------------- -// Name: osPipeSocketServer::osPipeSocketServer -// Description: Constructor -// Arguments: pipeName - The pipe name. -// Author: AMD Developer Tools Team -// Date: 4/5/2007 -// --------------------------------------------------------------------------- -osPipeSocketServer::osPipeSocketServer(const gtString& pipeName) - : osPipeSocket(pipeName, L"osPipeSocketServer"), _fifoFilesExists(false) -{ -} - - -// --------------------------------------------------------------------------- -// Name: osPipeSocketServer::~osPipeSocketServer -// Description: Destructor. -// Author: AMD Developer Tools Team -// Date: 4/5/2007 -// --------------------------------------------------------------------------- -osPipeSocketServer::~osPipeSocketServer() -{ - // Close the pipe connection and release all used resources: - this->close(); -} - - -// --------------------------------------------------------------------------- -// Name: osPipeSocketServer::open -// Description: Create the server pipe, to which the client pipe will connect -// later on. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 4/5/2007 -// --------------------------------------------------------------------------- -bool osPipeSocketServer::open() -{ - bool retVal = false; - - bool incomingPipeCreated = false; - bool outgoingPipeCreated = false; - - // Get the names of the 2 half duplex pipes, used for implementing this full duplex pipe: - gtString incomingPipeName; - gtString outgoingPipeName; - osPipeSocket::getPipeFIFOFilesPaths(incomingPipeName, outgoingPipeName); - - // Create the incoming pipe: - _incomingPipe = ::CreateNamedPipe( - incomingPipeName.asCharArray(), // Pipe name. - PIPE_ACCESS_INBOUND, // Read access only. - PIPE_TYPE_MESSAGE | // Data is written to the pipe as a stream of messages. - PIPE_READMODE_MESSAGE | // Message-read mode. - PIPE_WAIT, // This is a blocking pipe. - 1, // Maximal amount of pipe instances. - 0, // Output buffer size - OS_PIPE_SOCKET_BUFF_SIZE, // Input buffer size - NMPWAIT_USE_DEFAULT_WAIT, // Client time-out - NULL); // Use default security attribute - - // If the pipe was created successfully: - GT_IF_WITH_ASSERT(_incomingPipe != INVALID_HANDLE_VALUE) - { - incomingPipeCreated = true; - } - - - // Create the outgoing pipe: - _outgoingPipe = ::CreateNamedPipe( - outgoingPipeName.asCharArray(), // Pipe name. - PIPE_ACCESS_OUTBOUND, // Write access only. - PIPE_TYPE_MESSAGE | // Data is written to the pipe as a stream of messages. - PIPE_READMODE_MESSAGE | // Message-read mode. - PIPE_WAIT, // This is a blocking pipe. - 1, // Maximal amount of pipe instances. - OS_PIPE_SOCKET_BUFF_SIZE, // Output buffer size - 0, // Input buffer size - NMPWAIT_USE_DEFAULT_WAIT, // Client time-out - NULL); // Use default security attribute - - - // If the pipe was created successfully: - GT_IF_WITH_ASSERT(_outgoingPipe != INVALID_HANDLE_VALUE) - { - outgoingPipeCreated = true; - } - - if (incomingPipeCreated && outgoingPipeCreated) - { - _fifoFilesExists = true; - retVal = true; - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osPipeSocketServer::close -// Description: Terminates the pipe communication. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 4/5/2007 -// --------------------------------------------------------------------------- -bool osPipeSocketServer::close() -{ - // Call base class implementation: - bool retVal = osPipeSocket::close(); - // Mark that the pipe is closed: - _fifoFilesExists = false; - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osPipeSocketServer::waitForClientConnection -// Description: Suspends the calling thread until a client connection is -// established. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 4/5/2007 -// --------------------------------------------------------------------------- -bool osPipeSocketServer::waitForClientConnection() -{ - bool retVal = false; - - // Sanity check: - if (_fifoFilesExists) - { - _isDuringPipeConnectionWait = true; - - // Wait until the client connects to the incoming pipe: - bool incomingPipeConnected = false; - BOOL rc1 = ::ConnectNamedPipe(_incomingPipe, NULL); - - if (rc1 != FALSE) - { - incomingPipeConnected = true; - } - else if (::GetLastError() == ERROR_PIPE_CONNECTED) - { - // If the client connected itself to the pipe in the interval between the call to - // CreateNamedPipe and the call to ConnectNamedPipe: - incomingPipeConnected = true; - } - - // Wait until the client connects to the outgoing pipe: - bool outgoingPipeConnected = false; - BOOL rc2 = ::ConnectNamedPipe(_outgoingPipe, NULL); - - if (rc2 != FALSE) - { - outgoingPipeConnected = true; - } - else if (::GetLastError() == ERROR_PIPE_CONNECTED) - { - // If the client connected itself to the pipe in the interval between the call to - // CreateNamedPipe and the call to ConnectNamedPipe: - outgoingPipeConnected = true; - } - - _isDuringPipeConnectionWait = false; - - GT_IF_WITH_ASSERT(incomingPipeConnected && outgoingPipeConnected) - { - _isOpen = true; - retVal = true; - } - } - - return retVal; -} - - - diff --git a/external/amdt_os_wrappers/src/win32/osPrivateData.h b/external/amdt_os_wrappers/src/win32/osPrivateData.h deleted file mode 100644 index 68cf6bb..0000000 --- a/external/amdt_os_wrappers/src/win32/osPrivateData.h +++ /dev/null @@ -1,17 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osPrivateData.h -/// -//===================================================================== - -//------------------------------ osPrivateData.h ------------------------------ - -#ifndef __OSPRIVATEDATA_H -#define __OSPRIVATEDATA_H - -// The default size of a shared memory communication buffer (10K): -#define OS_PIPE_SOCKET_BUFF_SIZE 10240 - -#endif //__OSPRIVATEDATA_H \ No newline at end of file diff --git a/external/amdt_os_wrappers/src/win32/osSharedMemorySocket.cpp b/external/amdt_os_wrappers/src/win32/osSharedMemorySocket.cpp deleted file mode 100644 index f8f87a8..0000000 --- a/external/amdt_os_wrappers/src/win32/osSharedMemorySocket.cpp +++ /dev/null @@ -1,474 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file -/// -//===================================================================== - -//------------------------------ osSharedMemorySocket.cpp ------------------------------ - -Yaki 6 / 5 / 2005: -osSharedMemorySocket performance seems to be poor on dual core machines. Therefore, it was -replaced by osPipeSocket. - -// Infra: -#include -#include - -// Local: -#include -#include -#include - -// --------------------------------------------------------------------------- -// Name: osSharedMemorySocket::osSharedMemorySocket -// Description: Constructor -// Arguments: sharedMemoryObjectName - The shared memory object name. -// Author: AMD Developer Tools Team -// Date: 17/8/2005 -// --------------------------------------------------------------------------- -osSharedMemorySocket::osSharedMemorySocket(const gtString& sharedMemoryObjectName) - : _sharedMemoryObjectName(sharedMemoryObjectName) -{ - // Initialize shared memory related members: - clearSharedMemoryRelatedMembers(); -} - - -// --------------------------------------------------------------------------- -// Name: osSharedMemorySocket::~osSharedMemorySocket -// Description: Destructor. -// Author: AMD Developer Tools Team -// Date: 17/8/2005 -// --------------------------------------------------------------------------- -osSharedMemorySocket::~osSharedMemorySocket() -{ -} - - -// --------------------------------------------------------------------------- -// Name: osSharedMemorySocket::channelType -// Description: Returns my channel type. -// Author: AMD Developer Tools Team -// Date: 17/8/2005 -// --------------------------------------------------------------------------- -osChannel::osChannelType osSharedMemorySocket::channelType() const -{ - // This is a binary channel: - return OS_BINARY_CHANNEL; -} - - -// --------------------------------------------------------------------------- -// Name: osSharedMemorySocket::isOpen -// Description: Returns true iff the shared memory socket is opened. -// Author: AMD Developer Tools Team -// Date: 17/8/2005 -// --------------------------------------------------------------------------- -bool osSharedMemorySocket::isOpen() const -{ - bool retVal = false; - - // If the "is communication open" pointer was connected: - if (_pIsCommunicationOpen != NULL) - { - // If the communication is open: - retVal = (*_pIsCommunicationOpen == 1); - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osSharedMemorySocket::write -// Description: Writes a block of data into the shared memory socket. -// Arguments: pDataBuffer - A pointer to a buffer that contains the -// data to be written. -// dataSize - The data size. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 17/8/2005 -// Implementation notes: -// The data buffer is cyclic, therefore, we write the data in 2 chunks: -// - All data that fits until we reach the end of the buffer. -// - All the remaining data (if any) will be written from the buffer begin point. -// --------------------------------------------------------------------------- -bool osSharedMemorySocket::write(const gtByte* pDataBuffer, unsigned long dataSize) -{ - bool retVal = false; - - // Verify that the socket is open: - if (isOpen()) - { - // Wait for enough space to be available in my outgoing data: - bool hasEnoughSpaceToWriteData = waitForAvailableSpaceToWriteData(dataSize, _writeOperationTimeOut); - - // If after waiting the time interval, we still don't have enough space available: - if (!hasEnoughSpaceToWriteData) - { - // Do not write the data and trigger an assertion: - GT_ASSERT(0); - } - else - { - // Lock / wait for my outgoing buffer resources: - lockBufferResources(_pMyOutgoingBuffLocked); - - // Update the outgoing buffer free space: - *_pMyOutgoingDataBuffFreeSpace -= dataSize; - - // Calculate the first and second chunk sizes (see "implementation notes" above): - int firstChunkSize = min(int(dataSize), (_communicationBufferSize - *_pMyWritePos)); - int secondChunkSize = dataSize - firstChunkSize; - - // Copy the first data chunk: - void* pWriteLocation = _pMyOutgoingDataBuff + *_pMyWritePos; - memcpy(pWriteLocation, pDataBuffer, firstChunkSize); - - // If we need a second chunk: - if (secondChunkSize > 0) - { - // Copy the second data chunk (from the beginning of our outgoing buffer): - memcpy(_pMyOutgoingDataBuff, (pDataBuffer + firstChunkSize), secondChunkSize); - *_pMyWritePos = secondChunkSize; - } - else - { - *_pMyWritePos += dataSize; - } - - // If my next write position passed the end of the buffer: - if (_communicationBufferSize <= *_pMyWritePos) - { - *_pMyWritePos = 0; - } - - // Release my outgoing buffer resources: - unlockBufferResources(_pMyOutgoingBuffLocked); - - retVal = true; - } - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osSharedMemorySocket::read -// Description: -// Reads a block of data from the shared memory socket. -// -// Arguments: pDataBuffer - A pointer to a buffer that will receive the -// read data. -// dataSize - The amount of data to be read. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 17/8/2005 -// Implementation notes: -// The data buffer is cyclic, therefore, we read the data in 2 chunks: -// - All data that fits until we reach the end of the buffer. -// - All the remaining data (if any) will be read from the buffer begin point. -// --------------------------------------------------------------------------- -bool osSharedMemorySocket::read(gtByte* pDataBuffer, unsigned long dataSize) -{ - bool retVal = false; - - // Verify that the socket is open - if (isOpen()) - { - // Wait for data to be available for reading: - bool isEnoughDataAvailableForReading = waitForAvailableReadingData(dataSize, _readOperationTimeOut); - - // If after waiting the time interval, we still don't have data available: - if (!isEnoughDataAvailableForReading) - { - // Trigger an assertion: - GT_ASSERT_EX(false, OS_STR_ReadOperationTimeOut); - } - else - { - // Lock / wait for my incoming buffer resources: - lockBufferResources(_pMyIncomingBuffLocked); - - // Calculate the first and second chunk sizes (see "implementation notes" above): - int firstChunkSize = min(int(dataSize), (_communicationBufferSize - *_pMyReadPos)); - int secondChunkSize = dataSize - firstChunkSize; - - // Read the first data chunk: - void* pReadLocation = _pMyIncomingDataBuff + *_pMyReadPos; - memcpy(pDataBuffer, pReadLocation, firstChunkSize); - - // If we need a second chunk: - if (secondChunkSize > 0) - { - // Copy the second data chunk (from the beginning of our incoming buffer): - memcpy((pDataBuffer + firstChunkSize), _pMyIncomingDataBuff, secondChunkSize); - *_pMyReadPos = secondChunkSize; - } - else - { - *_pMyReadPos += dataSize; - } - - // If my next read position passed the end of the buffer: - if (_communicationBufferSize <= *_pMyReadPos) - { - *_pMyReadPos = 0; - } - - // Update the incoming buffer free space: - *_pMyIncomingDataBuffFreeSpace += dataSize; - - // Release my incoming buffer resources: - unlockBufferResources(_pMyIncomingBuffLocked); - - retVal = true; - } - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osSharedMemorySocket::clearSharedMemoryRelatedMembers -// Description: Clears shared memory related members. -// Author: AMD Developer Tools Team -// Date: 23/8/2005 -// --------------------------------------------------------------------------- -void osSharedMemorySocket::clearSharedMemoryRelatedMembers() -{ - _communicationBufferSize = 0; - _pSharedMemory = NULL; - _pIsCommunicationOpen = NULL; - _sharedMemoryObjectHandle = NULL; - _pMyOutgoingDataBuff = NULL; - _pMyIncomingDataBuff = NULL; - _pMyOutgoingBuffLocked = NULL; - _pMyIncomingBuffLocked = NULL; - _pMyOutgoingDataBuffFreeSpace = NULL; - _pMyIncomingDataBuffFreeSpace = NULL; - _pMyWritePos = NULL; - _pMyReadPos = NULL; - _pOtherWritePos = NULL; - _pOtherReadPos = NULL; -} - - -// --------------------------------------------------------------------------- -// Name: osSharedMemorySocketServer::mapFileMappingObjectIntoVirtualMemory -// Description: Maps the file mapping object into this process virtual memory. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 21/8/2005 -// --------------------------------------------------------------------------- -bool osSharedMemorySocket::mapFileMappingObjectIntoVirtualMemory() -{ - bool retVal = false; - - // Map the file mapping object into this process virtual memory address space: - _pSharedMemory = (gtByte*)(::MapViewOfFile(_sharedMemoryObjectHandle, FILE_MAP_ALL_ACCESS, - 0, 0, 0)); - - if (_pSharedMemory != NULL) - { - retVal = true; - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osSharedMemorySocket::sharedMemHeaderSize -// Description: Calculates and returns the shared memory header size. -// Author: AMD Developer Tools Team -// Date: 22/8/2005 -// --------------------------------------------------------------------------- -int osSharedMemorySocket::sharedMemHeaderSize() const -{ - int retVal = 0; - - // All fields are currently int fields: - retVal = sizeof(int) * OS_SM_HEADER_FIELDS_AMOUNT; - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osSharedMemorySocket::lockBufferResources -// Description: -// Lock buffer resources from other threads usage. If the buffer resources are -// already locked, wait until they are free. -// Arguments: pBufferLocker - The buffer locker variable pointer. -// Author: AMD Developer Tools Team -// Date: 23/8/2005 -// --------------------------------------------------------------------------- -void osSharedMemorySocket::lockBufferResources(int* pBufferLocker) -{ - // We convert int* to long* which have the same size under win32. - // When porting to other operating systems, we have to make sure that this - // operation is valid. Therefore, under "non approved" operating systems, we - // will generate a compilation error: -#if AMDT_BUILD_TARGET != AMDT_WINDOWS_OS -#error Unsupported build target! -#endif - - // Set the locker variable value to 1 = locked: - int waitedIntervalsCount = 0; - - while (::InterlockedExchange((long*)pBufferLocker, 1) != 0) - { - // The locker variable value was 1 before we set it (I.E: it - // is currently locked by another thread), wait a bit and try again: - waitForAnotherThread(waitedIntervalsCount); - } -} - - -// --------------------------------------------------------------------------- -// Name: osSharedMemorySocket::unlockBufferResources -// Description: Release buffer resources for other threads usage. -// Arguments: pBufferLocker - The buffer locker variable pointer. -// Author: AMD Developer Tools Team -// Date: 23/8/2005 -// --------------------------------------------------------------------------- -void osSharedMemorySocket::unlockBufferResources(int* pBufferLocker) -{ - // We convert int* to long* which have the same size under win32. - // When porting to other operating systems, we have to make sure that this - // operation is valid. Therefore, under "non approved" operating systems, we - // will generate a compilation error: -#if AMDT_BUILD_TARGET != AMDT_WINDOWS_OS -#error Unsupported build target! -#endif - - // Atomically set the locker variable to 0 = unlocked: - ::InterlockedExchange((long*)pBufferLocker, 0); -} - - -// --------------------------------------------------------------------------- -// Name: osSharedMemorySocket::waitForAvailableReadingData -// Description: Waits for data to be available for reading. -// Arguments: timeout - Time interval to wait until data is available -// for reading. -// Return Val: bool - true iff the data size in the incoming buffer is -// bigger than the input dataSize. -// Author: AMD Developer Tools Team -// Date: 23/8/2005 -// --------------------------------------------------------------------------- -bool osSharedMemorySocket::waitForAvailableReadingData(int dataSize, long timeout) -{ - // Check if we have enough data to read: - int dataAvailableForReading = (_communicationBufferSize - *_pMyIncomingDataBuffFreeSpace); - bool hasEnoughDataToRead = (dataSize <= dataAvailableForReading); - - // If there is not enough data available in the socket: - if (!hasEnoughDataToRead) - { - // Start measuring our wait time: - osStopWatch stopWatch; - stopWatch.start(); - - // We will wait for data to arrive (until the timeout interval elapses): - long waitedSoFarMSec = 0; - int waitedIntervalsCount = 0; - - while (!hasEnoughDataToRead && (waitedSoFarMSec < timeout)) - { - // Suspend this thread waiting for other threads to free space: - waitForAnotherThread(waitedIntervalsCount); - - double waitedSoFarSec = 0; - stopWatch.getTimeInterval(waitedSoFarSec); - waitedSoFarMSec = long(waitedSoFarSec * 1000); - - dataAvailableForReading = (_communicationBufferSize - *_pMyIncomingDataBuffFreeSpace); - hasEnoughDataToRead = (dataSize <= dataAvailableForReading); - } - } - - return hasEnoughDataToRead; -} - - -// --------------------------------------------------------------------------- -// Name: osSharedMemorySocket::waitForAvailableSpaceToWriteData -// Description: Waits until we have enough space in the socket to write -// a defined size of data. -// Arguments: dataSize - The size of the data to be written. -// timeout - Time interval to wait until space is available -// for writing the data. -// Return Val: bool - true iff there is enough space in the outgoing buffer -// to write the data in. -// Author: AMD Developer Tools Team -// Date: 23/8/2005 -// --------------------------------------------------------------------------- -bool osSharedMemorySocket::waitForAvailableSpaceToWriteData(int dataSize, long timeout) -{ - // If I don't have enough space to write the data in - bool hasEnoughSpaceToWriteData = (dataSize < *_pMyOutgoingDataBuffFreeSpace); - - if (!hasEnoughSpaceToWriteData) - { - // Start measuring our wait time: - osStopWatch stopWatch; - stopWatch.start(); - - // We will wait for this space to be available (until the timeout interval elapses): - int waitedIntervalsCount = 0; - long waitedSoFarMSec = 0; - - while ((!hasEnoughSpaceToWriteData) && (waitedSoFarMSec < timeout)) - { - // Suspend this thread waiting for other threads to free space: - waitForAnotherThread(waitedIntervalsCount); - - double waitedSoFarSec = 0; - stopWatch.getTimeInterval(waitedSoFarSec); - waitedSoFarMSec = long(waitedSoFarSec * 1000); - - hasEnoughSpaceToWriteData = (dataSize < *_pMyOutgoingDataBuffFreeSpace); - } - } - - return hasEnoughSpaceToWriteData; -} - - -// --------------------------------------------------------------------------- -// Name: osSharedMemorySocket::waitForAnotherThread -// Description: Makes the current thread sleep, waiting for another thread -// to finish its work. The more intervals we wait, the sleep -// interval gets bigger. -// Arguments: waitedIntervalsCount - Counts the amount of intervals we -// waited so far (both input and output -// parameter). -// Author: AMD Developer Tools Team -// Date: 2/9/2005 -// --------------------------------------------------------------------------- -void osSharedMemorySocket::waitForAnotherThread(int& waitedIntervalsCount) -{ - // We will wait 5 times, giving our CPU time slice to threads that have the - // same priority as this thread, keeping this thread in a "ready to run" mode: - if (waitedIntervalsCount < 5) - { - ::Sleep(0); - } - else - { - // The rest of the wait intervals will throw this thread off the CPU - // for at least 1 msec: - ::Sleep(1); - - // Verify that we will not overflow the waited interval count: - waitedIntervalsCount = 6; - } - - waitedIntervalsCount++; -} \ No newline at end of file diff --git a/external/amdt_os_wrappers/src/win32/osSharedMemorySocketClient.cpp b/external/amdt_os_wrappers/src/win32/osSharedMemorySocketClient.cpp deleted file mode 100644 index a4dfaba..0000000 --- a/external/amdt_os_wrappers/src/win32/osSharedMemorySocketClient.cpp +++ /dev/null @@ -1,189 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file -/// -//===================================================================== - -//------------------------------ osSharedMemorySocketClient.cpp ------------------------------ - -Yaki 6 / 5 / 2005: -osSharedMemorySocket performance seems to be poor on dual core machines. Therefore, it was -replaced by osPipeSocket. - -/* - -// Infra: -#include - -// Local: -#include - - -// --------------------------------------------------------------------------- -// Name: osSharedMemorySocketClient::osSharedMemorySocketClient -// Description: Constructor -// Arguments: sharedMemoryObjectName - The shared memory object name. -// Author: AMD Developer Tools Team -// Date: 21/8/2005 -// --------------------------------------------------------------------------- -osSharedMemorySocketClient::osSharedMemorySocketClient(const gtString& sharedMemoryObjectName) -: osSharedMemorySocket(sharedMemoryObjectName) -{ -} - - -// --------------------------------------------------------------------------- -// Name: osSharedMemorySocketClient::~osSharedMemorySocketClient -// Description: Destructor. -// Author: AMD Developer Tools Team -// Date: 21/8/2005 -// --------------------------------------------------------------------------- -osSharedMemorySocketClient::~osSharedMemorySocketClient() -{ - // Close the socket connection and release all used resources: - close(); -} - - -// --------------------------------------------------------------------------- -// Name: osSharedMemorySocketClient::open -// Description: Connects to the shared memory socket and initializes the socket -// communication. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 21/8/2005 -// --------------------------------------------------------------------------- -bool osSharedMemorySocketClient::open() -{ - // Open the socket server shared memory object: - bool rc = openSharedMemoryObject(); - - if (rc) - { - // Map the shared memory object into this process address space: - rc = mapFileMappingObjectIntoVirtualMemory(); - - if (rc) - { - // Update the shared memory related members: - updateSharedMemoryReleatedMembers(); - - // Mark that the socket connection is open: - *_pIsCommunicationOpen = 1; - } - } - - // Check if we managed to establish communication with the socket server: - bool isCommunicationOpen = isOpen(); - return isCommunicationOpen; -} - - - -// --------------------------------------------------------------------------- -// Name: osSharedMemorySocketClient::close -// Description: Terminates the socket communication. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 21/8/2005 -// --------------------------------------------------------------------------- -bool osSharedMemorySocketClient::close() -{ - bool retVal = false; - - BOOL rc1 = TRUE; - BOOL rc2 = TRUE; - - if (_pSharedMemory != NULL) - { - // Mark that the socket connection is closed: - *_pIsCommunicationOpen = 0; - - // Un-map the shared memory object from this process address space: - rc1 = ::UnmapViewOfFile(_pSharedMemory); - _pSharedMemory = NULL; - GT_ASSERT(rc1); - } - - if (_sharedMemoryObjectHandle != NULL) - { - // Close the handle to the socket server shared memory object: - rc2 = ::CloseHandle(_sharedMemoryObjectHandle); - _sharedMemoryObjectHandle = NULL; - GT_ASSERT(rc2); - } - - // Clear all shared memory related members: - clearSharedMemoryRelatedMembers(); - - retVal = ((rc1 != 0) && (rc2 != 0)); - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osSharedMemorySocketClient::updateSharedMemoryReleatedMembers -// Description: Updates shared memory related members. -// Author: AMD Developer Tools Team -// Date: 22/8/2005 -// --------------------------------------------------------------------------- -void osSharedMemorySocketClient::updateSharedMemoryReleatedMembers() -{ - // Get the header section size: - int headerSectionSize = sharedMemHeaderSize(); - - // Update the "is communication open" flag: - _pIsCommunicationOpen = (int*)(_pSharedMemory + (OS_SM_IS_COMMUNICATION_OPEN * sizeof(int))); - - // Update the buffer size: - int* pBuffSizeField = (int*)(_pSharedMemory + (OS_SM_COMMUNICATION_BUFFER_SIZE * sizeof(int))); - _communicationBufferSize = *pBuffSizeField; - - // Update the free space counters: - _pMyOutgoingDataBuffFreeSpace = (int*)(_pSharedMemory + (OS_SM_CLIENT_TO_SERVER_FREE_SPACE * sizeof(int))); - _pMyIncomingDataBuffFreeSpace = (int*)(_pSharedMemory + (OS_SM_SERVER_TO_CLIENT_FREE_SPACE * sizeof(int))); - - // Update the buffers pointers: - _pMyIncomingDataBuff = _pSharedMemory + headerSectionSize; - _pMyOutgoingDataBuff = _pMyIncomingDataBuff + _communicationBufferSize; - - // Update my read and write positions: - _pMyWritePos = (int*)(_pSharedMemory + (OS_SM_CLIENT_WRITE_POS * sizeof(int))); - _pMyReadPos = (int*)(_pSharedMemory + (OS_SM_CLIENT_READ_POS * sizeof(int))); - - // Update the "other side" read and write positions: - _pOtherWritePos = (int*)(_pSharedMemory + (OS_SM_SERVER_WRITE_POS * sizeof(int))); - _pOtherReadPos = (int*)(_pSharedMemory + (OS_SM_SERVER_READ_POS * sizeof(int))); - - // Update synchronization members pointers: - _pMyOutgoingBuffLocked = (int*)(_pSharedMemory + (OS_SM_CLIENT_TO_SERVER_BUFF_LOCKED * sizeof(int))); - _pMyIncomingBuffLocked = (int*)(_pSharedMemory + (OS_SM_SERVER_TO_CLIENT_BUFF_LOCKED * sizeof(int))); -} - - -// --------------------------------------------------------------------------- -// Name: osSharedMemorySocketClient::openSharedMemoryObject -// Description: Opens the shared memory object, created by the socket server. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 21/8/2005 -// --------------------------------------------------------------------------- -bool osSharedMemorySocketClient::openSharedMemoryObject() -{ - bool retVal = false; - - // Open the socket server shared memory object: - _sharedMemoryObjectHandle = ::OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, _sharedMemoryObjectName.asCharArray()); - - if (_sharedMemoryObjectHandle != NULL) - { - retVal = true; - } - - return retVal; -} - -*/ \ No newline at end of file diff --git a/external/amdt_os_wrappers/src/win32/osSharedMemorySocketServer.cpp b/external/amdt_os_wrappers/src/win32/osSharedMemorySocketServer.cpp deleted file mode 100644 index f06c560..0000000 --- a/external/amdt_os_wrappers/src/win32/osSharedMemorySocketServer.cpp +++ /dev/null @@ -1,380 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file -/// -//===================================================================== - -//------------------------------ osSharedMemorySocketServer.cpp ------------------------------ - -//Yaki 6 / 5 / 2005: -//osSharedMemorySocket performance seems to be poor on dual core machines. Therefore, it was -//replaced by osPipeSocket. - -/* -// Infra: -#include -#include - -// Local: -#include -#include -#include - -// The shared memory file prefix: -#define OS_SHARED_MEM_FILE_PREFIX "GRSharedMemoryFile" - -// The shared memory file extension: -#define OS_SHARED_MEM_FILE_EXTENSION "tmp" - - -// --------------------------------------------------------------------------- -// Name: osSharedMemorySocketServer::osSharedMemorySocketServer -// Description: Constructor -// Arguments: memoryMappedFilePath - The path for the shared memory socket. -// communicationBufferSize - The size of a single shared memory buffer used -// for the ipc communication. -// Author: AMD Developer Tools Team -// Date: 17/8/2005 -// --------------------------------------------------------------------------- -osSharedMemorySocketServer::osSharedMemorySocketServer(const gtString& fileMappingObjectName, - int communicationBufferSize) -: osSharedMemorySocket(fileMappingObjectName), _memoryMappedFileHandle(NULL) -{ - _communicationBufferSize = communicationBufferSize; -} - - -// --------------------------------------------------------------------------- -// Name: osSharedMemorySocketServer::~osSharedMemorySocketServer -// Description: Destructor. -// Author: AMD Developer Tools Team -// Date: 17/8/2005 -// --------------------------------------------------------------------------- -osSharedMemorySocketServer::~osSharedMemorySocketServer() -{ - // Close the socket connection and release all used resources: - close(); -} - - - -// --------------------------------------------------------------------------- -// Name: osSharedMemorySocketServer::waitForClientCall -// Description: Suspends the calling thread until a client connection is -// established. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 21/8/2005 -// --------------------------------------------------------------------------- -bool osSharedMemorySocketServer::waitForClientConnection() -{ - // While the communication is not open: - while (!isOpen()) - { - // Wait for 1/2 a second: - ::Sleep(500); - } - - return true; -} - - -// --------------------------------------------------------------------------- -// Name: osSharedMemorySocketServer::open -// Description: Opens the server side of the shared memory socket. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 17/8/2005 -// --------------------------------------------------------------------------- -bool osSharedMemorySocketServer::open() -{ - bool retVal = false; - - // Create the memory mapped file on disk: - bool rc = createMemoryMappedFile(); - if (rc) - { - // Create the shared memory object: - rc = createSharedMemoryObject(); - if (rc) - { - // Map the shared memory into this process address space: - rc = mapFileMappingObjectIntoVirtualMemory(); - if (rc) - { - // Update shared memory related members: - updateSharedMemoryReleatedMembers(); - - // Initialize header fields: - initializeSharedMemoryHeaderFields(); - - retVal = true; - } - } - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osSharedMemorySocketServer::close -// Description: Closes the shared memory socket. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 17/8/2005 -// --------------------------------------------------------------------------- -bool osSharedMemorySocketServer::close() -{ - bool retVal = false; - - BOOL rc1 = TRUE; - BOOL rc2 = TRUE; - bool rc3 = true; - - if (_pSharedMemory != NULL) - { - // Mark that the socket connection is closed: - *_pIsCommunicationOpen = 0; - - // Un-map the shared memory object from this process address space: - rc1 = ::UnmapViewOfFile(_pSharedMemory); - _pSharedMemory = NULL; - GT_ASSERT(rc1); - } - - if (_sharedMemoryObjectHandle != NULL) - { - // Delete the shared memory object: - BOOL rc2 = ::CloseHandle(_sharedMemoryObjectHandle); - _sharedMemoryObjectHandle = NULL; - GT_ASSERT(rc2); - } - - if (_memoryMappedFileHandle != NULL) - { - // Delete the memory mapped file: - rc3 = deleteMemoryMappedFile(); - } - - // Clear all shared memory related members: - clearSharedMemoryRelatedMembers(); - - retVal = ((rc1 != 0) && (rc2 != 0) && rc3); - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osSharedMemorySocketServer::updateSharedMemoryReleatedMembers -// Description: Updates shared memory related members. -// Author: AMD Developer Tools Team -// Date: 22/8/2005 -// --------------------------------------------------------------------------- -void osSharedMemorySocketServer::updateSharedMemoryReleatedMembers() -{ - // Get the header section size: - int headerSectionSize = sharedMemHeaderSize(); - - // Update the "is communication open" flag: - _pIsCommunicationOpen = (int*)(_pSharedMemory + (OS_SM_IS_COMMUNICATION_OPEN * sizeof(int))); - - // Update the free space counters: - _pMyOutgoingDataBuffFreeSpace = (int*)(_pSharedMemory + (OS_SM_SERVER_TO_CLIENT_FREE_SPACE * sizeof(int))); - _pMyIncomingDataBuffFreeSpace = (int*)(_pSharedMemory + (OS_SM_CLIENT_TO_SERVER_FREE_SPACE * sizeof(int))); - - // Update the buffers pointers: - _pMyOutgoingDataBuff = _pSharedMemory + headerSectionSize; - _pMyIncomingDataBuff = _pMyOutgoingDataBuff + _communicationBufferSize; - - // Update my read and write positions: - _pMyWritePos = (int*)(_pSharedMemory + (OS_SM_SERVER_WRITE_POS * sizeof(int))); - _pMyReadPos = (int*)(_pSharedMemory + (OS_SM_SERVER_READ_POS * sizeof(int))); - - // Update the "other side" read and write positions: - _pOtherWritePos = (int*)(_pSharedMemory + (OS_SM_CLIENT_WRITE_POS * sizeof(int))); - _pOtherReadPos = (int*)(_pSharedMemory + (OS_SM_CLIENT_READ_POS * sizeof(int))); - - // Update synchronization members pointers: - _pMyOutgoingBuffLocked = (int*)(_pSharedMemory + (OS_SM_SERVER_TO_CLIENT_BUFF_LOCKED * sizeof(int))); - _pMyIncomingBuffLocked = (int*)(_pSharedMemory + (OS_SM_CLIENT_TO_SERVER_BUFF_LOCKED * sizeof(int))); -} - - -// --------------------------------------------------------------------------- -// Name: osSharedMemorySocketServer::generateUniqueTempFileName -// Description: Creates a unique file name under the current user temp files -// directory. -// Arguments: filePath - Will get the unique file name, located under the -// current user temp files directory. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 21/8/2005 -// --------------------------------------------------------------------------- -bool osSharedMemorySocketServer::generateUniqueTempFileName(osFilePath& filePath) -{ - bool retVal = false; - - // Set the file directory to be the user temp directory: - osFilePath tempDirPath(osFilePath::OS_TEMP_DIRECTORY); - - // Generate a unique file name: - retVal = osGenerateUniqueFileName(tempDirPath, OS_SHARED_MEM_FILE_PREFIX, - OS_SHARED_MEM_FILE_EXTENSION, filePath); - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osSharedMemorySocketServer::createMemoryMappedFile -// Description: Creates the memory mapped file. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 17/8/2005 -// --------------------------------------------------------------------------- -bool osSharedMemorySocketServer::createMemoryMappedFile() -{ - bool retVal = false; - - // Generate a unique file name under the temp directory: - bool rc = generateUniqueTempFileName(_memoryMappedFilePath); - if (rc) - { - // Create the shared memory file: - _memoryMappedFileHandle = CreateFile(_memoryMappedFilePath.asString().asCharArray(), - GENERIC_ALL, FILE_SHARE_READ, NULL, CREATE_NEW, - FILE_ATTRIBUTE_NORMAL, NULL); - - if (_memoryMappedFileHandle != INVALID_HANDLE_VALUE) - { - retVal = true; - } - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osSharedMemorySocketServer::deleteMemoryMappedFile -// Description: Deletes the memory mapped file created by createMemoryMappedFile() -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 23/8/2005 -// --------------------------------------------------------------------------- -bool osSharedMemorySocketServer::deleteMemoryMappedFile() -{ - bool retVal = false; - - // Close the handle to the file: - BOOL rc1 = ::CloseHandle(_memoryMappedFileHandle); - _memoryMappedFileHandle = NULL; - GT_ASSERT(rc1); - - // Delete the file: - // Notice: If the client still didn't close its shared memory object handle yet, - // we will fail deleting the file, because the shared memory object owns - // the file. Therefore, we try to few times to delete the file. - // Even when we fail in all deleting attempts, we don't fail this function. - BOOL rc2 = FALSE; - int deletionTryNo = 0; - while (deletionTryNo < 8) - { - rc2 = ::DeleteFile(_memoryMappedFilePath.asString().asCharArray()); - if (rc2 != 0) - { - break; - } - else - { - // We didn't manage to delete the file - sleep for 1 second trying to - // enable the spy to delete it: - ::Sleep(1000); - } - - deletionTryNo++; - } - - // If we didn't manage to delete the shared memory file - output a log message: - if (!rc2) - { - gtString debugLogMessage = OS_STR_FailedToDeleteSharedMemFile; - debugLogMessage += _memoryMappedFilePath.asString(); - OS_OUTPUT_DEBUG_LOG(debugLogMessage.asCharArray(), OS_ERROR_SEVERITY); - } - - _memoryMappedFilePath; - - // See comment above rc2: - retVal = (rc1 != 0); - GT_ASSERT(retVal); - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osSharedMemorySocketServer::createSharedMemoryObject -// Description: Creates a shared memory object (file mapping object in Win32 terminology). -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 21/8/2005 -// --------------------------------------------------------------------------- -bool osSharedMemorySocketServer::createSharedMemoryObject() -{ - bool retVal = false; - - // Calculate the required shared memory size: - int headerSectionSize = sharedMemHeaderSize(); - int sharedMemorySize = headerSectionSize + (2 * _communicationBufferSize); - - // Create a file mapping object for the file. - // (A file mapping object maps a file content into a shared memory object) - _sharedMemoryObjectHandle = CreateFileMapping(_memoryMappedFileHandle, - NULL, PAGE_READWRITE, - 0, sharedMemorySize, - _sharedMemoryObjectName.asCharArray()); - if (_sharedMemoryObjectHandle != NULL) - { - retVal = true; - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osSharedMemorySocketServer::initializeSharedMemoryHeaderFields -// Description: Initialize the shared memory header fields. -// Author: AMD Developer Tools Team -// Date: 22/8/2005 -// --------------------------------------------------------------------------- -void osSharedMemorySocketServer::initializeSharedMemoryHeaderFields() -{ - // Initialize the "is communication open" flag value: - *_pIsCommunicationOpen = 0; - - // Initialize the buffer size field: - int* pBuffSizeField = (int*)(_pSharedMemory + (OS_SM_COMMUNICATION_BUFFER_SIZE * sizeof(int))); - *pBuffSizeField = _communicationBufferSize; - - // Initialize the free space fields: - *_pMyOutgoingDataBuffFreeSpace = _communicationBufferSize; - *_pMyIncomingDataBuffFreeSpace = _communicationBufferSize; - - // Initialize read and write position fields: - *_pMyWritePos = 0; - *_pMyReadPos = 0; - *_pOtherWritePos = 0; - *_pOtherReadPos = 0; - - // Initialize synchronization members: - *_pMyOutgoingBuffLocked = 0; - *_pMyIncomingBuffLocked = 0; -} - -*/ \ No newline at end of file diff --git a/external/amdt_os_wrappers/src/win32/osSynchronizationObjectImpl.cpp b/external/amdt_os_wrappers/src/win32/osSynchronizationObjectImpl.cpp deleted file mode 100644 index 496c7e1..0000000 --- a/external/amdt_os_wrappers/src/win32/osSynchronizationObjectImpl.cpp +++ /dev/null @@ -1,115 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osSynchronizationObjectImpl.cpp -/// -//===================================================================== - -//------------------------------ osSynchronizationObjectImpl.cpp ------------------------------ - -// Infra: -#include - -// Local: -#include - - -// --------------------------------------------------------------------------- -// Name: osSynchronizationObjectImpl::osSynchronizationObjectImpl -// Description: Constructor -// Author: AMD Developer Tools Team -// Date: 21/6/2005 -// Implementation notes: -// We will use a Win32 "auto reset" event object that allows only one thread -// to "own" the event object. -// -// From MSDN documentation of PulseEvent: -// For an auto-reset event object, the function resets the state to non-signaled -// and returns after releasing a single waiting thread, even if multiple threads -// are waiting. -// --------------------------------------------------------------------------- -osSynchronizationObjectImpl::osSynchronizationObjectImpl() -{ - // Create a Win32 "auto reset" event object: - _eventObjHandle = ::CreateEvent(NULL, FALSE, TRUE, NULL); - - // Sanity check: - GT_ASSERT(_eventObjHandle != NULL); -} - - -// --------------------------------------------------------------------------- -// Name: osSynchronizationObjectImpl::osSynchronizationObjectImpl -// Description: Destructor -// Author: AMD Developer Tools Team -// Date: 21/6/2005 -// --------------------------------------------------------------------------- -osSynchronizationObjectImpl::~osSynchronizationObjectImpl() -{ - if (_eventObjHandle) - { - // Destroy the Win32 event object: - ::CloseHandle(_eventObjHandle); - } -} - - -// --------------------------------------------------------------------------- -// Name: osSynchronizationObjectImpl::lock -// Description: Locks the synchronization object. If the synchronization object -// is already locked by another thread, waits (halts the calling thread) -// until it will be unlocked. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 21/6/2005 -// --------------------------------------------------------------------------- -bool osSynchronizationObjectImpl::lock() -{ - bool retVal = false; - - // Lock (or wait for) the Win32 event object: - DWORD rc = ::WaitForSingleObject(_eventObjHandle, INFINITE); - - // The event object was not locked - we managed to lock it: - if (rc == WAIT_OBJECT_0) - { - retVal = true; - } - else if (rc == WAIT_ABANDONED) - { - // The thread that owned the mutex died without unlocking it. - // This enabled us to lock the mutex: - retVal = true; - - // TO_DO: Replace me by a log print: - GT_ASSERT(0); - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osSynchronizationObjectImpl::unlock -// Description: Frees (unlocks) the event object for the use of other threads. -// If other threads are waiting for this event object (called lock() -// while it was locked), the first thread that was blocked by lock() -// call will resume its run and the event object will remain locked. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 21/6/2005 -// --------------------------------------------------------------------------- -bool osSynchronizationObjectImpl::unlock() -{ - bool retVal = false; - - // Unlock the event object: - if (::SetEvent(_eventObjHandle) != 0) - { - retVal = true; - } - - return retVal; -} - diff --git a/external/amdt_os_wrappers/src/win32/osSynchronizationObjectImpl.h b/external/amdt_os_wrappers/src/win32/osSynchronizationObjectImpl.h deleted file mode 100644 index 6306400..0000000 --- a/external/amdt_os_wrappers/src/win32/osSynchronizationObjectImpl.h +++ /dev/null @@ -1,39 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osSynchronizationObjectImpl.h -/// -//===================================================================== - -//------------------------------ osSynchronizationObjectImpl.h ------------------------------ - -#ifndef __OSSYNCHRONIZATIONOBJECTIMPL -#define __OSSYNCHRONIZATIONOBJECTIMPL - -// Win32: -#define WIN32_LEAN_AND_MEAN 1 -#include - - -// ---------------------------------------------------------------------------------- -// Class Name: osSynchronizationObjectImpl -// General Description: Win32 Implementation of a synchronization object. -// Author: AMD Developer Tools Team -// Creation Date: 29/3/2004 -// ---------------------------------------------------------------------------------- -class osSynchronizationObjectImpl -{ -public: - osSynchronizationObjectImpl(); - virtual ~osSynchronizationObjectImpl(); - bool lock(); - bool unlock(); - -private: - // The event object (synchronization object) handle: - HANDLE _eventObjHandle; -}; - - -#endif // __OSSYNCHRONIZATIONOBJECTIMPL diff --git a/external/amdt_os_wrappers/src/win32/osToAndFromString.cpp b/external/amdt_os_wrappers/src/win32/osToAndFromString.cpp deleted file mode 100644 index 3328155..0000000 --- a/external/amdt_os_wrappers/src/win32/osToAndFromString.cpp +++ /dev/null @@ -1,94 +0,0 @@ -//===================================================================== -// Copyright 2016 (c), Advanced Micro Devices, Inc. All rights reserved. -// -/// \author AMD Developer Tools Team -/// \file osToAndFromString.cpp -/// -//===================================================================== - -//------------------------------ osToAndFromString.cpp ------------------------------ - -// Local: -#include - - -// --------------------------------------------------------------------------- -// Name: osProcessIdToString -// Description: Translates a process id into a string. -// Arguments: processId - The input process id. -// outString - The output string. -// Author: AMD Developer Tools Team -// Date: 12/10/2006 -// --------------------------------------------------------------------------- -bool osProcessIdToString(osProcessId processId, gtString& outString) -{ - bool retVal = false; - - // Write the process id to a temporary buffer: - wchar_t buff[250]; - int rc = swprintf_s(buff, 250, L"%u", processId); - - if (rc != -1) - { - outString = buff; - retVal = true; - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osProcessIdToString -// Description: Translates a process id into a string - ASCII version -// Arguments: processId - The input process id. -// outString - The output string. -// Author: AMD Developer Tools Team -// Date: 13/9/2010 -// --------------------------------------------------------------------------- -bool osProcessIdToString(osProcessId processId, gtASCIIString& outString) -{ - bool retVal = false; - - // Write the process id to a temporary buffer: - char buff[250]; - int rc = sprintf_s(buff, 250, "%u", processId); - - if (rc != -1) - { - outString = buff; - retVal = true; - } - - return retVal; -} - - -// --------------------------------------------------------------------------- -// Name: osProcessIdFromString -// Description: Reads a process id from a string that was written -// using osProcessIdToString. -// Arguments: string - The input string. -// processId - The output process id. -// Return Val: bool - Success / failure. -// Author: AMD Developer Tools Team -// Date: 12/10/2006 -// --------------------------------------------------------------------------- -bool osProcessIdFromString(const gtString& string, osProcessId& processId) -{ - bool retVal = false; - - // Verify that the string is not empty: - if (!string.isEmpty()) - { - // Read the process id: - int rc = swscanf_s(string.asCharArray(), L"%u", &processId); - - if (rc == 1) - { - retVal = true; - } - } - - return retVal; -} \ No newline at end of file diff --git a/external/dx11/AsicReg/devices.h b/external/dx11/AsicReg/devices.h index 8338c7e..d920df8 100644 --- a/external/dx11/AsicReg/devices.h +++ b/external/dx11/AsicReg/devices.h @@ -130,6 +130,11 @@ enum REMBRANDT_A0 = 1 }; +enum +{ + PRID_NV3_NAVI31_00 = 0x00 +}; + #ifndef _ATIID_H #define _ATIID_H @@ -155,8 +160,11 @@ enum #define FAMILY_NV 143 +#define FAMILY_NV3 145 + #define FAMILY_RMB 146 #define ATI_VENDOR_ID 0x1002 #endif // _ATIID_H + diff --git a/external/dx11/amdxx/amdxx64.dll b/external/dx11/amdxx/amdxx64.dll new file mode 100644 index 0000000..4ab9e3b --- /dev/null +++ b/external/dx11/amdxx/amdxx64.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:971a88ff39e0ffb33baf50b90172cc8d4703b316cd06a9b93f78ed08df5bc95b +size 53430272 diff --git a/external/lc/disassembler/linux/amdgpu-dis b/external/lc/disassembler/linux/amdgpu-dis index 2a9f734..20cbb2a 100644 --- a/external/lc/disassembler/linux/amdgpu-dis +++ b/external/lc/disassembler/linux/amdgpu-dis @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:de33d799093ce6df4ddfd797eee9d0033d38fb269138f7b1c46d17c450235f1e -size 10340048 +oid sha256:a8c0068fb69ff333bfdb9123b18feb5f75afde0059d9e6ab12551741d368dcbb +size 13585400 diff --git a/external/lc/disassembler/windows/amdgpu-dis.exe b/external/lc/disassembler/windows/amdgpu-dis.exe index 6b9dba9..61e81a6 100644 --- a/external/lc/disassembler/windows/amdgpu-dis.exe +++ b/external/lc/disassembler/windows/amdgpu-dis.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b6432c26062fbfbeef187af205e29c3a1515ee1cbc38c132380e999aa9fad222 -size 7799296 +oid sha256:d720c838ec2480243aeda78ce8073e687b9fc026006c6c84e578b5438297e5c7 +size 11742208 diff --git a/external/lc/opencl/linux/bin/clang-14 b/external/lc/opencl/linux/bin/clang-14 deleted file mode 100755 index 0b509ae..0000000 --- a/external/lc/opencl/linux/bin/clang-14 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ad6ea054e267f3da3c3911a7f74e0a23d99d4848ada73f55d3fe64b257ca4596 -size 128366920 diff --git a/external/lc/opencl/linux/bin/clang-16 b/external/lc/opencl/linux/bin/clang-16 new file mode 100644 index 0000000..855df42 --- /dev/null +++ b/external/lc/opencl/linux/bin/clang-16 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa2359767f881500b34dab5f91e55111b98d80a1cd0d74bedd2814cfacd63a0d +size 138744272 diff --git a/external/lc/opencl/linux/bin/lld b/external/lc/opencl/linux/bin/lld index dbbe84c..67ad8f1 100644 --- a/external/lc/opencl/linux/bin/lld +++ b/external/lc/opencl/linux/bin/lld @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:16fbf3ffeab9fac06e21448268ef63e0509a3a4d6bf366eec4a96d285626c7ad -size 68939848 +oid sha256:17e304922b2252824d9c1286e7766f4265e2b360e6ab9d0e69b3ac332335cc9b +size 76699088 diff --git a/external/lc/opencl/linux/bin/llvm-objdump b/external/lc/opencl/linux/bin/llvm-objdump index 346e295..c55162c 100644 --- a/external/lc/opencl/linux/bin/llvm-objdump +++ b/external/lc/opencl/linux/bin/llvm-objdump @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d33396a60af48ffd04d7545f96453012c9e3ae2414255cdb73e5d5b449f7d36f -size 11903232 +oid sha256:1b6f1239bf8bf95aae73c8dbb88c3955fe22583dc9dafe76acc0482140daa20a +size 15405512 diff --git a/external/lc/opencl/linux/bin/llvm-readobj b/external/lc/opencl/linux/bin/llvm-readobj index 8eeb4ad..948bfd5 100644 --- a/external/lc/opencl/linux/bin/llvm-readobj +++ b/external/lc/opencl/linux/bin/llvm-readobj @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c4742b288f45d5f6ad519e15e61edb35ab6a9858b2cfe03352b06fa3cdde54ff -size 8361824 +oid sha256:32a2026f2c3358120361f375e37ffb7acd65b3b5c1bde8c3f16521b5456aa762 +size 8812296 diff --git a/external/lc/opencl/linux/include/opencl-c-base.h b/external/lc/opencl/linux/include/opencl-c-base.h index dd038a2..c433b4f 100644 --- a/external/lc/opencl/linux/include/opencl-c-base.h +++ b/external/lc/opencl/linux/include/opencl-c-base.h @@ -12,8 +12,8 @@ // Define extension macros #if (defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__ >= 200) -// For SPIR all extensions are supported. -#if defined(__SPIR__) +// For SPIR and SPIR-V all extensions are supported. +#if defined(__SPIR__) || defined(__SPIRV__) #define cl_khr_subgroup_extended_types 1 #define cl_khr_subgroup_non_uniform_vote 1 #define cl_khr_subgroup_ballot 1 @@ -21,11 +21,36 @@ #define cl_khr_subgroup_shuffle 1 #define cl_khr_subgroup_shuffle_relative 1 #define cl_khr_subgroup_clustered_reduce 1 -#endif // defined(__SPIR__) +#define cl_khr_subgroup_rotate 1 +#define cl_khr_extended_bit_ops 1 +#define cl_khr_integer_dot_product 1 +#define __opencl_c_integer_dot_product_input_4x8bit 1 +#define __opencl_c_integer_dot_product_input_4x8bit_packed 1 +#define cl_ext_float_atomics 1 +#ifdef cl_khr_fp16 +#define __opencl_c_ext_fp16_global_atomic_load_store 1 +#define __opencl_c_ext_fp16_local_atomic_load_store 1 +#define __opencl_c_ext_fp16_global_atomic_add 1 +#define __opencl_c_ext_fp16_local_atomic_add 1 +#define __opencl_c_ext_fp16_global_atomic_min_max 1 +#define __opencl_c_ext_fp16_local_atomic_min_max 1 +#endif +#ifdef cl_khr_fp64 +#define __opencl_c_ext_fp64_global_atomic_add 1 +#define __opencl_c_ext_fp64_local_atomic_add 1 +#define __opencl_c_ext_fp64_global_atomic_min_max 1 +#define __opencl_c_ext_fp64_local_atomic_min_max 1 +#endif +#define __opencl_c_ext_fp32_global_atomic_add 1 +#define __opencl_c_ext_fp32_local_atomic_add 1 +#define __opencl_c_ext_fp32_global_atomic_min_max 1 +#define __opencl_c_ext_fp32_local_atomic_min_max 1 + +#endif // defined(__SPIR__) || defined(__SPIRV__) #endif // (defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__ >= 200) // Define feature macros for OpenCL C 2.0 -#if (defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__ == 200) +#if (__OPENCL_CPP_VERSION__ == 100 || __OPENCL_C_VERSION__ == 200) #define __opencl_c_pipes 1 #define __opencl_c_generic_address_space 1 #define __opencl_c_work_group_collective_functions 1 @@ -39,6 +64,29 @@ #define __opencl_c_images 1 #endif +// Define header-only feature macros for OpenCL C 3.0. +#if (__OPENCL_CPP_VERSION__ == 202100 || __OPENCL_C_VERSION__ == 300) +// For the SPIR and SPIR-V target all features are supported. +#if defined(__SPIR__) || defined(__SPIRV__) +#define __opencl_c_work_group_collective_functions 1 +#define __opencl_c_atomic_order_seq_cst 1 +#define __opencl_c_atomic_scope_device 1 +#define __opencl_c_atomic_scope_all_devices 1 +#define __opencl_c_read_write_images 1 +#endif // defined(__SPIR__) +#endif // (__OPENCL_CPP_VERSION__ == 202100 || __OPENCL_C_VERSION__ == 300) + +#if !defined(__opencl_c_generic_address_space) +// Internal feature macro to provide named (global, local, private) address +// space overloads for builtin functions that take a pointer argument. +#define __opencl_c_named_address_space_builtins 1 +#endif // !defined(__opencl_c_generic_address_space) + +#if defined(cl_intel_subgroups) || defined(cl_khr_subgroups) || defined(__opencl_c_subgroups) +// Internal feature macro to provide subgroup builtins. +#define __opencl_subgroup_builtins 1 +#endif + // built-in scalar data types: /** @@ -156,7 +204,12 @@ typedef double double8 __attribute__((ext_vector_type(8))); typedef double double16 __attribute__((ext_vector_type(16))); #endif -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +// An internal alias for half, for use by OpenCLBuiltins.td. +#define __half half + +#if defined(__OPENCL_CPP_VERSION__) +#define NULL nullptr +#elif defined(__OPENCL_C_VERSION__) #define NULL ((void*)0) #endif @@ -312,8 +365,19 @@ typedef enum memory_scope { memory_scope_work_item = __OPENCL_MEMORY_SCOPE_WORK_ITEM, memory_scope_work_group = __OPENCL_MEMORY_SCOPE_WORK_GROUP, memory_scope_device = __OPENCL_MEMORY_SCOPE_DEVICE, +#if defined(__opencl_c_atomic_scope_all_devices) memory_scope_all_svm_devices = __OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES, -#if defined(cl_intel_subgroups) || defined(cl_khr_subgroups) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) + memory_scope_all_devices = memory_scope_all_svm_devices, +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +#endif // defined(__opencl_c_atomic_scope_all_devices) +/** + * Subgroups have different requirements on forward progress, so just test + * all the relevant macros. + * CL 3.0 sub-groups "they are not guaranteed to make independent forward progress" + * KHR subgroups "Subgroups within a workgroup are independent, make forward progress with respect to each other" + */ +#if defined(cl_intel_subgroups) || defined(cl_khr_subgroups) || defined(__opencl_c_subgroups) memory_scope_sub_group = __OPENCL_MEMORY_SCOPE_SUB_GROUP #endif } memory_scope; @@ -337,7 +401,9 @@ typedef enum memory_order memory_order_acquire = __ATOMIC_ACQUIRE, memory_order_release = __ATOMIC_RELEASE, memory_order_acq_rel = __ATOMIC_ACQ_REL, +#if defined(__opencl_c_atomic_order_seq_cst) memory_order_seq_cst = __ATOMIC_SEQ_CST +#endif } memory_order; #endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) @@ -451,12 +517,14 @@ typedef int clk_profiling_info; #define MAX_WORK_DIM 3 +#ifdef __opencl_c_device_enqueue typedef struct { unsigned int workDimension; size_t globalWorkOffset[MAX_WORK_DIM]; size_t globalWorkSize[MAX_WORK_DIM]; size_t localWorkSize[MAX_WORK_DIM]; } ndrange_t; +#endif // __opencl_c_device_enqueue #endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) @@ -550,6 +618,28 @@ typedef struct { #define as_intptr_t(x) __builtin_astype((x), intptr_t) #define as_uintptr_t(x) __builtin_astype((x), uintptr_t) +// C++ for OpenCL - __remove_address_space +#if defined(__OPENCL_CPP_VERSION__) +template struct __remove_address_space { using type = _Tp; }; +#if defined(__opencl_c_generic_address_space) +template struct __remove_address_space<__generic _Tp> { + using type = _Tp; +}; +#endif +template struct __remove_address_space<__global _Tp> { + using type = _Tp; +}; +template struct __remove_address_space<__private _Tp> { + using type = _Tp; +}; +template struct __remove_address_space<__local _Tp> { + using type = _Tp; +}; +template struct __remove_address_space<__constant _Tp> { + using type = _Tp; +}; +#endif + // OpenCL v1.1 s6.9, v1.2/2.0 s6.10 - Function qualifiers #define __kernel_exec(X, typen) __kernel \ @@ -567,7 +657,6 @@ int printf(__constant const char* st, ...) __attribute__((format(printf, 1, 2))) #endif #ifdef cl_intel_device_side_avc_motion_estimation -#pragma OPENCL EXTENSION cl_intel_device_side_avc_motion_estimation : begin #define CLK_AVC_ME_MAJOR_16x16_INTEL 0x0 #define CLK_AVC_ME_MAJOR_16x8_INTEL 0x1 @@ -701,7 +790,6 @@ int printf(__constant const char* st, ...) __attribute__((format(printf, 1, 2))) #define CLK_AVC_IME_RESULT_DUAL_REFERENCE_STREAMOUT_INITIALIZE_INTEL 0x0 #define CLK_AVC_IME_RESULT_DUAL_REFERENCE_STREAMIN_INITIALIZE_INTEL 0x0 -#pragma OPENCL EXTENSION cl_intel_device_side_avc_motion_estimation : end #endif // cl_intel_device_side_avc_motion_estimation // Disable any extensions we may have enabled previously. diff --git a/external/lc/opencl/linux/include/opencl-c.h b/external/lc/opencl/linux/include/opencl-c.h index 9893961..da0a2c1 100644 --- a/external/lc/opencl/linux/include/opencl-c.h +++ b/external/lc/opencl/linux/include/opencl-c.h @@ -3,20 +3,14 @@ // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// Modifications Copyright (c) 2022 Advanced Micro Devices, Inc. All rights reserved. +// Notified per clause 4(b) of the license. // //===----------------------------------------------------------------------===// #ifndef _OPENCL_H_ #define _OPENCL_H_ -//===----- opencl-c-base.h - OpenCL C language base definitions -----------===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - #ifndef _OPENCL_BASE_H_ #define _OPENCL_BASE_H_ @@ -50,6 +44,15 @@ #define __opencl_c_images 1 #endif + #if !defined(__opencl_c_generic_address_space) + // Internal feature macro to provide named (global, local, private) address + // space overloads for builtin functions that take a pointer argument. + #define __opencl_c_named_address_space_builtins 1 + #endif // !defined(__opencl_c_generic_address_space) + #if defined(cl_intel_subgroups) || defined(cl_khr_subgroups) || defined(__opencl_c_subgroups) + // Internal feature macro to provide subgroup builtins. + #define __opencl_subgroup_builtins 1 + #endif // built-in scalar data types: /** @@ -167,6 +170,9 @@ typedef double double8 __attribute__((ext_vector_type(8))); typedef double double16 __attribute__((ext_vector_type(16))); #endif +// An internal alias for half, for use by OpenCLBuiltins.td. +#define __half half + #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) #define NULL ((void*)0) #endif @@ -715,11 +721,11 @@ int printf(__constant const char* st, ...) __attribute__((format(printf, 1, 2))) #endif //_OPENCL_BASE_H_ -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#if defined(__opencl_c_images) #ifndef cl_khr_depth_images #define cl_khr_depth_images #endif //cl_khr_depth_images -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_images) #if __OPENCL_C_VERSION__ < CL_VERSION_2_0 #ifdef cl_khr_3d_image_writes @@ -727,10 +733,14 @@ int printf(__constant const char* st, ...) __attribute__((format(printf, 1, 2))) #endif //cl_khr_3d_image_writes #endif //__OPENCL_C_VERSION__ < CL_VERSION_2_0 -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) +#if (defined(__OPENCL_CPP_VERSION__) || \ + (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)) && \ + (defined(__SPIR__) || defined(__SPIRV__)) #pragma OPENCL EXTENSION cl_intel_planar_yuv : begin #pragma OPENCL EXTENSION cl_intel_planar_yuv : end -#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) +#endif // (defined(__OPENCL_CPP_VERSION__) || + // (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)) && + // (defined(__SPIR__) || defined(__SPIRV__)) #define __ovld __attribute__((overloadable)) #define __conv __attribute__((convergent)) @@ -7062,7 +7072,7 @@ uint __ovld __cnfn get_work_dim(void); * dimindx, get_global_size() returns 1. * For clEnqueueTask, this always returns 1. */ -size_t __ovld __cnfn get_global_size(uint dimindx); +size_t __ovld __cnfn get_global_size(uint); /** * Returns the unique global work-item ID value for @@ -7073,7 +7083,7 @@ size_t __ovld __cnfn get_global_size(uint dimindx); * other values of dimindx, get_global_id() returns 0. * For clEnqueueTask, this returns 0. */ -size_t __ovld __cnfn get_global_id(uint dimindx); +size_t __ovld __cnfn get_global_id(uint); /** * Returns the number of local work-items specified in @@ -7087,7 +7097,7 @@ size_t __ovld __cnfn get_global_id(uint dimindx); * get_local_size() returns 1. * For clEnqueueTask, this always returns 1. */ -size_t __ovld __cnfn get_local_size(uint dimindx); +size_t __ovld __cnfn get_local_size(uint); /** * Returns the unique local work-item ID i.e. a work-item @@ -7097,17 +7107,16 @@ size_t __ovld __cnfn get_local_size(uint dimindx); * get_local_id() returns 0. * For clEnqueueTask, this returns 0. */ -size_t __ovld __cnfn get_local_id(uint dimindx); +size_t __ovld __cnfn get_local_id(uint); /** * Returns the number of work-groups that will execute a * kernel for dimension identified by dimindx. * Valid values of dimindx are 0 to get_work_dim() - 1. - * For other values of dimindx, get_num_groups () returns - * 1. + * For other values of dimindx, get_num_groups() returns 1. * For clEnqueueTask, this always returns 1. */ -size_t __ovld __cnfn get_num_groups(uint dimindx); +size_t __ovld __cnfn get_num_groups(uint); /** * get_group_id returns the work-group ID which is a @@ -7116,7 +7125,7 @@ size_t __ovld __cnfn get_num_groups(uint dimindx); * For other values, get_group_id() returns 0. * For clEnqueueTask, this returns 0. */ -size_t __ovld __cnfn get_group_id(uint dimindx); +size_t __ovld __cnfn get_group_id(uint); /** * get_global_offset returns the offset values specified in @@ -7126,10 +7135,10 @@ size_t __ovld __cnfn get_group_id(uint dimindx); * For other values, get_global_offset() returns 0. * For clEnqueueTask, this returns 0. */ -size_t __ovld __cnfn get_global_offset(uint dimindx); +size_t __ovld __cnfn get_global_offset(uint); #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -size_t __ovld get_enqueued_local_size(uint dimindx); +size_t __ovld get_enqueued_local_size(uint); size_t __ovld get_global_linear_id(void); size_t __ovld get_local_linear_id(void); #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) @@ -7295,53 +7304,53 @@ half16 __ovld __cnfn asinpi(half16 x); /** * Arc tangent function. */ -float __ovld __cnfn atan(float y_over_x); -float2 __ovld __cnfn atan(float2 y_over_x); -float3 __ovld __cnfn atan(float3 y_over_x); -float4 __ovld __cnfn atan(float4 y_over_x); -float8 __ovld __cnfn atan(float8 y_over_x); -float16 __ovld __cnfn atan(float16 y_over_x); +float __ovld __cnfn atan(float); +float2 __ovld __cnfn atan(float2); +float3 __ovld __cnfn atan(float3); +float4 __ovld __cnfn atan(float4); +float8 __ovld __cnfn atan(float8); +float16 __ovld __cnfn atan(float16); #ifdef cl_khr_fp64 -double __ovld __cnfn atan(double y_over_x); -double2 __ovld __cnfn atan(double2 y_over_x); -double3 __ovld __cnfn atan(double3 y_over_x); -double4 __ovld __cnfn atan(double4 y_over_x); -double8 __ovld __cnfn atan(double8 y_over_x); -double16 __ovld __cnfn atan(double16 y_over_x); +double __ovld __cnfn atan(double); +double2 __ovld __cnfn atan(double2); +double3 __ovld __cnfn atan(double3); +double4 __ovld __cnfn atan(double4); +double8 __ovld __cnfn atan(double8); +double16 __ovld __cnfn atan(double16); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn atan(half y_over_x); -half2 __ovld __cnfn atan(half2 y_over_x); -half3 __ovld __cnfn atan(half3 y_over_x); -half4 __ovld __cnfn atan(half4 y_over_x); -half8 __ovld __cnfn atan(half8 y_over_x); -half16 __ovld __cnfn atan(half16 y_over_x); +half __ovld __cnfn atan(half); +half2 __ovld __cnfn atan(half2); +half3 __ovld __cnfn atan(half3); +half4 __ovld __cnfn atan(half4); +half8 __ovld __cnfn atan(half8); +half16 __ovld __cnfn atan(half16); #endif //cl_khr_fp16 /** * Arc tangent of y / x. */ -float __ovld __cnfn atan2(float y, float x); -float2 __ovld __cnfn atan2(float2 y, float2 x); -float3 __ovld __cnfn atan2(float3 y, float3 x); -float4 __ovld __cnfn atan2(float4 y, float4 x); -float8 __ovld __cnfn atan2(float8 y, float8 x); -float16 __ovld __cnfn atan2(float16 y, float16 x); +float __ovld __cnfn atan2(float, float x); +float2 __ovld __cnfn atan2(float2, float2 x); +float3 __ovld __cnfn atan2(float3, float3 x); +float4 __ovld __cnfn atan2(float4, float4 x); +float8 __ovld __cnfn atan2(float8, float8 x); +float16 __ovld __cnfn atan2(float16, float16 x); #ifdef cl_khr_fp64 -double __ovld __cnfn atan2(double y, double x); -double2 __ovld __cnfn atan2(double2 y, double2 x); -double3 __ovld __cnfn atan2(double3 y, double3 x); -double4 __ovld __cnfn atan2(double4 y, double4 x); -double8 __ovld __cnfn atan2(double8 y, double8 x); -double16 __ovld __cnfn atan2(double16 y, double16 x); +double __ovld __cnfn atan2(double, double x); +double2 __ovld __cnfn atan2(double2, double2 x); +double3 __ovld __cnfn atan2(double3, double3 x); +double4 __ovld __cnfn atan2(double4, double4 x); +double8 __ovld __cnfn atan2(double8, double8 x); +double16 __ovld __cnfn atan2(double16, double16 x); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn atan2(half y, half x); -half2 __ovld __cnfn atan2(half2 y, half2 x); -half3 __ovld __cnfn atan2(half3 y, half3 x); -half4 __ovld __cnfn atan2(half4 y, half4 x); -half8 __ovld __cnfn atan2(half8 y, half8 x); -half16 __ovld __cnfn atan2(half16 y, half16 x); +half __ovld __cnfn atan2(half, half x); +half2 __ovld __cnfn atan2(half2, half2 x); +half3 __ovld __cnfn atan2(half3, half3 x); +half4 __ovld __cnfn atan2(half4, half4 x); +half8 __ovld __cnfn atan2(half8, half8 x); +half16 __ovld __cnfn atan2(half16, half16 x); #endif //cl_khr_fp16 /** @@ -7399,27 +7408,27 @@ half16 __ovld __cnfn atanpi(half16 x); /** * Compute atan2 (y, x) / PI. */ -float __ovld __cnfn atan2pi(float y, float x); -float2 __ovld __cnfn atan2pi(float2 y, float2 x); -float3 __ovld __cnfn atan2pi(float3 y, float3 x); -float4 __ovld __cnfn atan2pi(float4 y, float4 x); -float8 __ovld __cnfn atan2pi(float8 y, float8 x); -float16 __ovld __cnfn atan2pi(float16 y, float16 x); +float __ovld __cnfn atan2pi(float, float x); +float2 __ovld __cnfn atan2pi(float2, float2 x); +float3 __ovld __cnfn atan2pi(float3, float3 x); +float4 __ovld __cnfn atan2pi(float4, float4 x); +float8 __ovld __cnfn atan2pi(float8, float8 x); +float16 __ovld __cnfn atan2pi(float16, float16 x); #ifdef cl_khr_fp64 -double __ovld __cnfn atan2pi(double y, double x); -double2 __ovld __cnfn atan2pi(double2 y, double2 x); -double3 __ovld __cnfn atan2pi(double3 y, double3 x); -double4 __ovld __cnfn atan2pi(double4 y, double4 x); -double8 __ovld __cnfn atan2pi(double8 y, double8 x); -double16 __ovld __cnfn atan2pi(double16 y, double16 x); +double __ovld __cnfn atan2pi(double, double x); +double2 __ovld __cnfn atan2pi(double2, double2 x); +double3 __ovld __cnfn atan2pi(double3, double3 x); +double4 __ovld __cnfn atan2pi(double4, double4 x); +double8 __ovld __cnfn atan2pi(double8, double8 x); +double16 __ovld __cnfn atan2pi(double16, double16 x); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn atan2pi(half y, half x); -half2 __ovld __cnfn atan2pi(half2 y, half2 x); -half3 __ovld __cnfn atan2pi(half3 y, half3 x); -half4 __ovld __cnfn atan2pi(half4 y, half4 x); -half8 __ovld __cnfn atan2pi(half8 y, half8 x); -half16 __ovld __cnfn atan2pi(half16 y, half16 x); +half __ovld __cnfn atan2pi(half, half x); +half2 __ovld __cnfn atan2pi(half2, half2 x); +half3 __ovld __cnfn atan2pi(half3, half3 x); +half4 __ovld __cnfn atan2pi(half4, half4 x); +half8 __ovld __cnfn atan2pi(half8, half8 x); +half16 __ovld __cnfn atan2pi(half16, half16 x); #endif //cl_khr_fp16 /** @@ -7478,27 +7487,27 @@ half16 __ovld __cnfn ceil(half16); /** * Returns x with its sign changed to match the sign of y. */ -float __ovld __cnfn copysign(float x, float y); -float2 __ovld __cnfn copysign(float2 x, float2 y); -float3 __ovld __cnfn copysign(float3 x, float3 y); -float4 __ovld __cnfn copysign(float4 x, float4 y); -float8 __ovld __cnfn copysign(float8 x, float8 y); -float16 __ovld __cnfn copysign(float16 x, float16 y); +float __ovld __cnfn copysign(float, float ); +float2 __ovld __cnfn copysign(float2, float2 ); +float3 __ovld __cnfn copysign(float3, float3 ); +float4 __ovld __cnfn copysign(float4, float4 ); +float8 __ovld __cnfn copysign(float8, float8 ); +float16 __ovld __cnfn copysign(float16, float16 ); #ifdef cl_khr_fp64 -double __ovld __cnfn copysign(double x, double y); -double2 __ovld __cnfn copysign(double2 x, double2 y); -double3 __ovld __cnfn copysign(double3 x, double3 y); -double4 __ovld __cnfn copysign(double4 x, double4 y); -double8 __ovld __cnfn copysign(double8 x, double8 y); -double16 __ovld __cnfn copysign(double16 x, double16 y); +double __ovld __cnfn copysign(double, double ); +double2 __ovld __cnfn copysign(double2, double2 ); +double3 __ovld __cnfn copysign(double3, double3 ); +double4 __ovld __cnfn copysign(double4, double4 ); +double8 __ovld __cnfn copysign(double8, double8 ); +double16 __ovld __cnfn copysign(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn copysign(half x, half y); -half2 __ovld __cnfn copysign(half2 x, half2 y); -half3 __ovld __cnfn copysign(half3 x, half3 y); -half4 __ovld __cnfn copysign(half4 x, half4 y); -half8 __ovld __cnfn copysign(half8 x, half8 y); -half16 __ovld __cnfn copysign(half16 x, half16 y); +half __ovld __cnfn copysign(half, half ); +half2 __ovld __cnfn copysign(half2, half2 ); +half3 __ovld __cnfn copysign(half3, half3 ); +half4 __ovld __cnfn copysign(half4, half4 ); +half8 __ovld __cnfn copysign(half8, half8 ); +half16 __ovld __cnfn copysign(half16, half16 ); #endif //cl_khr_fp16 /** @@ -7763,29 +7772,29 @@ half16 __ovld __cnfn fabs(half16); #endif //cl_khr_fp16 /** - * x - y if x > y, +0 if x is less than or equal to y. + * x - y if x >, +0 if x is less than or equal to y. */ -float __ovld __cnfn fdim(float x, float y); -float2 __ovld __cnfn fdim(float2 x, float2 y); -float3 __ovld __cnfn fdim(float3 x, float3 y); -float4 __ovld __cnfn fdim(float4 x, float4 y); -float8 __ovld __cnfn fdim(float8 x, float8 y); -float16 __ovld __cnfn fdim(float16 x, float16 y); +float __ovld __cnfn fdim(float, float ); +float2 __ovld __cnfn fdim(float2, float2 ); +float3 __ovld __cnfn fdim(float3, float3 ); +float4 __ovld __cnfn fdim(float4, float4 ); +float8 __ovld __cnfn fdim(float8, float8 ); +float16 __ovld __cnfn fdim(float16, float16 ); #ifdef cl_khr_fp64 -double __ovld __cnfn fdim(double x, double y); -double2 __ovld __cnfn fdim(double2 x, double2 y); -double3 __ovld __cnfn fdim(double3 x, double3 y); -double4 __ovld __cnfn fdim(double4 x, double4 y); -double8 __ovld __cnfn fdim(double8 x, double8 y); -double16 __ovld __cnfn fdim(double16 x, double16 y); +double __ovld __cnfn fdim(double, double ); +double2 __ovld __cnfn fdim(double2, double2 ); +double3 __ovld __cnfn fdim(double3, double3 ); +double4 __ovld __cnfn fdim(double4, double4 ); +double8 __ovld __cnfn fdim(double8, double8 ); +double16 __ovld __cnfn fdim(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn fdim(half x, half y); -half2 __ovld __cnfn fdim(half2 x, half2 y); -half3 __ovld __cnfn fdim(half3 x, half3 y); -half4 __ovld __cnfn fdim(half4 x, half4 y); -half8 __ovld __cnfn fdim(half8 x, half8 y); -half16 __ovld __cnfn fdim(half16 x, half16 y); +half __ovld __cnfn fdim(half, half ); +half2 __ovld __cnfn fdim(half2, half2 ); +half3 __ovld __cnfn fdim(half3, half3 ); +half4 __ovld __cnfn fdim(half4, half4 ); +half8 __ovld __cnfn fdim(half8, half8 ); +half16 __ovld __cnfn fdim(half16, half16 ); #endif //cl_khr_fp16 /** @@ -7822,230 +7831,230 @@ half16 __ovld __cnfn floor(half16); * intermediate products shall not occur. Edge case * behavior is per the IEEE 754-2008 standard. */ -float __ovld __cnfn fma(float a, float b, float c); -float2 __ovld __cnfn fma(float2 a, float2 b, float2 c); -float3 __ovld __cnfn fma(float3 a, float3 b, float3 c); -float4 __ovld __cnfn fma(float4 a, float4 b, float4 c); -float8 __ovld __cnfn fma(float8 a, float8 b, float8 c); -float16 __ovld __cnfn fma(float16 a, float16 b, float16 c); +float __ovld __cnfn fma(float, float, float); +float2 __ovld __cnfn fma(float2, float2, float2); +float3 __ovld __cnfn fma(float3, float3, float3); +float4 __ovld __cnfn fma(float4, float4, float4); +float8 __ovld __cnfn fma(float8, float8, float8); +float16 __ovld __cnfn fma(float16, float16, float16); #ifdef cl_khr_fp64 -double __ovld __cnfn fma(double a, double b, double c); -double2 __ovld __cnfn fma(double2 a, double2 b, double2 c); -double3 __ovld __cnfn fma(double3 a, double3 b, double3 c); -double4 __ovld __cnfn fma(double4 a, double4 b, double4 c); -double8 __ovld __cnfn fma(double8 a, double8 b, double8 c); -double16 __ovld __cnfn fma(double16 a, double16 b, double16 c); +double __ovld __cnfn fma(double, double, double); +double2 __ovld __cnfn fma(double2, double2, double2); +double3 __ovld __cnfn fma(double3, double3, double3); +double4 __ovld __cnfn fma(double4, double4, double4); +double8 __ovld __cnfn fma(double8, double8, double8); +double16 __ovld __cnfn fma(double16, double16, double16); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn fma(half a, half b, half c); -half2 __ovld __cnfn fma(half2 a, half2 b, half2 c); -half3 __ovld __cnfn fma(half3 a, half3 b, half3 c); -half4 __ovld __cnfn fma(half4 a, half4 b, half4 c); -half8 __ovld __cnfn fma(half8 a, half8 b, half8 c); -half16 __ovld __cnfn fma(half16 a, half16 b, half16 c); +half __ovld __cnfn fma(half, half, half); +half2 __ovld __cnfn fma(half2, half2, half2); +half3 __ovld __cnfn fma(half3, half3, half3); +half4 __ovld __cnfn fma(half4, half4, half4); +half8 __ovld __cnfn fma(half8, half8, half8); +half16 __ovld __cnfn fma(half16, half16, half16); #endif //cl_khr_fp16 /** - * Returns y if x < y, otherwise it returns x. If one + * Returns y if x <, otherwise it returns x. If one * argument is a NaN, fmax() returns the other * argument. If both arguments are NaNs, fmax() * returns a NaN. */ -float __ovld __cnfn fmax(float x, float y); -float2 __ovld __cnfn fmax(float2 x, float2 y); -float3 __ovld __cnfn fmax(float3 x, float3 y); -float4 __ovld __cnfn fmax(float4 x, float4 y); -float8 __ovld __cnfn fmax(float8 x, float8 y); -float16 __ovld __cnfn fmax(float16 x, float16 y); -float2 __ovld __cnfn fmax(float2 x, float y); -float3 __ovld __cnfn fmax(float3 x, float y); -float4 __ovld __cnfn fmax(float4 x, float y); -float8 __ovld __cnfn fmax(float8 x, float y); -float16 __ovld __cnfn fmax(float16 x, float y); +float __ovld __cnfn fmax(float, float ); +float2 __ovld __cnfn fmax(float2, float2 ); +float3 __ovld __cnfn fmax(float3, float3 ); +float4 __ovld __cnfn fmax(float4, float4 ); +float8 __ovld __cnfn fmax(float8, float8 ); +float16 __ovld __cnfn fmax(float16, float16 ); +float2 __ovld __cnfn fmax(float2, float ); +float3 __ovld __cnfn fmax(float3, float ); +float4 __ovld __cnfn fmax(float4, float ); +float8 __ovld __cnfn fmax(float8, float ); +float16 __ovld __cnfn fmax(float16, float ); #ifdef cl_khr_fp64 -double __ovld __cnfn fmax(double x, double y); -double2 __ovld __cnfn fmax(double2 x, double2 y); -double3 __ovld __cnfn fmax(double3 x, double3 y); -double4 __ovld __cnfn fmax(double4 x, double4 y); -double8 __ovld __cnfn fmax(double8 x, double8 y); -double16 __ovld __cnfn fmax(double16 x, double16 y); -double2 __ovld __cnfn fmax(double2 x, double y); -double3 __ovld __cnfn fmax(double3 x, double y); -double4 __ovld __cnfn fmax(double4 x, double y); -double8 __ovld __cnfn fmax(double8 x, double y); -double16 __ovld __cnfn fmax(double16 x, double y); +double __ovld __cnfn fmax(double, double ); +double2 __ovld __cnfn fmax(double2, double2 ); +double3 __ovld __cnfn fmax(double3, double3 ); +double4 __ovld __cnfn fmax(double4, double4 ); +double8 __ovld __cnfn fmax(double8, double8 ); +double16 __ovld __cnfn fmax(double16, double16 ); +double2 __ovld __cnfn fmax(double2, double ); +double3 __ovld __cnfn fmax(double3, double ); +double4 __ovld __cnfn fmax(double4, double ); +double8 __ovld __cnfn fmax(double8, double ); +double16 __ovld __cnfn fmax(double16, double ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn fmax(half x, half y); -half2 __ovld __cnfn fmax(half2 x, half2 y); -half3 __ovld __cnfn fmax(half3 x, half3 y); -half4 __ovld __cnfn fmax(half4 x, half4 y); -half8 __ovld __cnfn fmax(half8 x, half8 y); -half16 __ovld __cnfn fmax(half16 x, half16 y); -half2 __ovld __cnfn fmax(half2 x, half y); -half3 __ovld __cnfn fmax(half3 x, half y); -half4 __ovld __cnfn fmax(half4 x, half y); -half8 __ovld __cnfn fmax(half8 x, half y); -half16 __ovld __cnfn fmax(half16 x, half y); +half __ovld __cnfn fmax(half, half ); +half2 __ovld __cnfn fmax(half2, half2 ); +half3 __ovld __cnfn fmax(half3, half3 ); +half4 __ovld __cnfn fmax(half4, half4 ); +half8 __ovld __cnfn fmax(half8, half8 ); +half16 __ovld __cnfn fmax(half16, half16 ); +half2 __ovld __cnfn fmax(half2, half ); +half3 __ovld __cnfn fmax(half3, half ); +half4 __ovld __cnfn fmax(half4, half ); +half8 __ovld __cnfn fmax(half8, half ); +half16 __ovld __cnfn fmax(half16, half ); #endif //cl_khr_fp16 /** - * Returns y if y < x, otherwise it returns x. If one + * Returns y if y <, otherwise it returns x. If one * argument is a NaN, fmin() returns the other * argument. If both arguments are NaNs, fmin() * returns a NaN. */ -float __ovld __cnfn fmin(float x, float y); -float2 __ovld __cnfn fmin(float2 x, float2 y); -float3 __ovld __cnfn fmin(float3 x, float3 y); -float4 __ovld __cnfn fmin(float4 x, float4 y); -float8 __ovld __cnfn fmin(float8 x, float8 y); -float16 __ovld __cnfn fmin(float16 x, float16 y); -float2 __ovld __cnfn fmin(float2 x, float y); -float3 __ovld __cnfn fmin(float3 x, float y); -float4 __ovld __cnfn fmin(float4 x, float y); -float8 __ovld __cnfn fmin(float8 x, float y); -float16 __ovld __cnfn fmin(float16 x, float y); +float __ovld __cnfn fmin(float, float ); +float2 __ovld __cnfn fmin(float2, float2 ); +float3 __ovld __cnfn fmin(float3, float3 ); +float4 __ovld __cnfn fmin(float4, float4 ); +float8 __ovld __cnfn fmin(float8, float8 ); +float16 __ovld __cnfn fmin(float16, float16 ); +float2 __ovld __cnfn fmin(float2, float ); +float3 __ovld __cnfn fmin(float3, float ); +float4 __ovld __cnfn fmin(float4, float ); +float8 __ovld __cnfn fmin(float8, float ); +float16 __ovld __cnfn fmin(float16, float ); #ifdef cl_khr_fp64 -double __ovld __cnfn fmin(double x, double y); -double2 __ovld __cnfn fmin(double2 x, double2 y); -double3 __ovld __cnfn fmin(double3 x, double3 y); -double4 __ovld __cnfn fmin(double4 x, double4 y); -double8 __ovld __cnfn fmin(double8 x, double8 y); -double16 __ovld __cnfn fmin(double16 x, double16 y); -double2 __ovld __cnfn fmin(double2 x, double y); -double3 __ovld __cnfn fmin(double3 x, double y); -double4 __ovld __cnfn fmin(double4 x, double y); -double8 __ovld __cnfn fmin(double8 x, double y); -double16 __ovld __cnfn fmin(double16 x, double y); +double __ovld __cnfn fmin(double, double ); +double2 __ovld __cnfn fmin(double2, double2 ); +double3 __ovld __cnfn fmin(double3, double3 ); +double4 __ovld __cnfn fmin(double4, double4 ); +double8 __ovld __cnfn fmin(double8, double8 ); +double16 __ovld __cnfn fmin(double16, double16 ); +double2 __ovld __cnfn fmin(double2, double ); +double3 __ovld __cnfn fmin(double3, double ); +double4 __ovld __cnfn fmin(double4, double ); +double8 __ovld __cnfn fmin(double8, double ); +double16 __ovld __cnfn fmin(double16, double ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn fmin(half x, half y); -half2 __ovld __cnfn fmin(half2 x, half2 y); -half3 __ovld __cnfn fmin(half3 x, half3 y); -half4 __ovld __cnfn fmin(half4 x, half4 y); -half8 __ovld __cnfn fmin(half8 x, half8 y); -half16 __ovld __cnfn fmin(half16 x, half16 y); -half2 __ovld __cnfn fmin(half2 x, half y); -half3 __ovld __cnfn fmin(half3 x, half y); -half4 __ovld __cnfn fmin(half4 x, half y); -half8 __ovld __cnfn fmin(half8 x, half y); -half16 __ovld __cnfn fmin(half16 x, half y); +half __ovld __cnfn fmin(half, half ); +half2 __ovld __cnfn fmin(half2, half2 ); +half3 __ovld __cnfn fmin(half3, half3 ); +half4 __ovld __cnfn fmin(half4, half4 ); +half8 __ovld __cnfn fmin(half8, half8 ); +half16 __ovld __cnfn fmin(half16, half16 ); +half2 __ovld __cnfn fmin(half2, half ); +half3 __ovld __cnfn fmin(half3, half ); +half4 __ovld __cnfn fmin(half4, half ); +half8 __ovld __cnfn fmin(half8, half ); +half16 __ovld __cnfn fmin(half16, half ); #endif //cl_khr_fp16 /** * Modulus. Returns x - y * trunc (x/y). */ -float __ovld __cnfn fmod(float x, float y); -float2 __ovld __cnfn fmod(float2 x, float2 y); -float3 __ovld __cnfn fmod(float3 x, float3 y); -float4 __ovld __cnfn fmod(float4 x, float4 y); -float8 __ovld __cnfn fmod(float8 x, float8 y); -float16 __ovld __cnfn fmod(float16 x, float16 y); +float __ovld __cnfn fmod(float, float ); +float2 __ovld __cnfn fmod(float2, float2 ); +float3 __ovld __cnfn fmod(float3, float3 ); +float4 __ovld __cnfn fmod(float4, float4 ); +float8 __ovld __cnfn fmod(float8, float8 ); +float16 __ovld __cnfn fmod(float16, float16 ); #ifdef cl_khr_fp64 -double __ovld __cnfn fmod(double x, double y); -double2 __ovld __cnfn fmod(double2 x, double2 y); -double3 __ovld __cnfn fmod(double3 x, double3 y); -double4 __ovld __cnfn fmod(double4 x, double4 y); -double8 __ovld __cnfn fmod(double8 x, double8 y); -double16 __ovld __cnfn fmod(double16 x, double16 y); +double __ovld __cnfn fmod(double, double ); +double2 __ovld __cnfn fmod(double2, double2 ); +double3 __ovld __cnfn fmod(double3, double3 ); +double4 __ovld __cnfn fmod(double4, double4 ); +double8 __ovld __cnfn fmod(double8, double8 ); +double16 __ovld __cnfn fmod(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn fmod(half x, half y); -half2 __ovld __cnfn fmod(half2 x, half2 y); -half3 __ovld __cnfn fmod(half3 x, half3 y); -half4 __ovld __cnfn fmod(half4 x, half4 y); -half8 __ovld __cnfn fmod(half8 x, half8 y); -half16 __ovld __cnfn fmod(half16 x, half16 y); +half __ovld __cnfn fmod(half, half ); +half2 __ovld __cnfn fmod(half2, half2 ); +half3 __ovld __cnfn fmod(half3, half3 ); +half4 __ovld __cnfn fmod(half4, half4 ); +half8 __ovld __cnfn fmod(half8, half8 ); +half16 __ovld __cnfn fmod(half16, half16 ); #endif //cl_khr_fp16 /** * Returns fmin(x - floor (x), 0x1.fffffep-1f ). * floor(x) is returned in iptr. */ -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -float __ovld fract(float x, float *iptr); -float2 __ovld fract(float2 x, float2 *iptr); -float3 __ovld fract(float3 x, float3 *iptr); -float4 __ovld fract(float4 x, float4 *iptr); -float8 __ovld fract(float8 x, float8 *iptr); -float16 __ovld fract(float16 x, float16 *iptr); +#if defined(__opencl_c_generic_address_space) +float __ovld fract(float, float *iptr); +float2 __ovld fract(float2, float2 *iptr); +float3 __ovld fract(float3, float3 *iptr); +float4 __ovld fract(float4, float4 *iptr); +float8 __ovld fract(float8, float8 *iptr); +float16 __ovld fract(float16, float16 *iptr); #ifdef cl_khr_fp64 -double __ovld fract(double x, double *iptr); -double2 __ovld fract(double2 x, double2 *iptr); -double3 __ovld fract(double3 x, double3 *iptr); -double4 __ovld fract(double4 x, double4 *iptr); -double8 __ovld fract(double8 x, double8 *iptr); -double16 __ovld fract(double16 x, double16 *iptr); +double __ovld fract(double, double *iptr); +double2 __ovld fract(double2, double2 *iptr); +double3 __ovld fract(double3, double3 *iptr); +double4 __ovld fract(double4, double4 *iptr); +double8 __ovld fract(double8, double8 *iptr); +double16 __ovld fract(double16, double16 *iptr); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld fract(half x, half *iptr); -half2 __ovld fract(half2 x, half2 *iptr); -half3 __ovld fract(half3 x, half3 *iptr); -half4 __ovld fract(half4 x, half4 *iptr); -half8 __ovld fract(half8 x, half8 *iptr); -half16 __ovld fract(half16 x, half16 *iptr); +half __ovld fract(half, half *iptr); +half2 __ovld fract(half2, half2 *iptr); +half3 __ovld fract(half3, half3 *iptr); +half4 __ovld fract(half4, half4 *iptr); +half8 __ovld fract(half8, half8 *iptr); +half16 __ovld fract(half16, half16 *iptr); #endif //cl_khr_fp16 #else -float __ovld fract(float x, __global float *iptr); -float2 __ovld fract(float2 x, __global float2 *iptr); -float3 __ovld fract(float3 x, __global float3 *iptr); -float4 __ovld fract(float4 x, __global float4 *iptr); -float8 __ovld fract(float8 x, __global float8 *iptr); -float16 __ovld fract(float16 x, __global float16 *iptr); -float __ovld fract(float x, __local float *iptr); -float2 __ovld fract(float2 x, __local float2 *iptr); -float3 __ovld fract(float3 x, __local float3 *iptr); -float4 __ovld fract(float4 x, __local float4 *iptr); -float8 __ovld fract(float8 x, __local float8 *iptr); -float16 __ovld fract(float16 x, __local float16 *iptr); -float __ovld fract(float x, __private float *iptr); -float2 __ovld fract(float2 x, __private float2 *iptr); -float3 __ovld fract(float3 x, __private float3 *iptr); -float4 __ovld fract(float4 x, __private float4 *iptr); -float8 __ovld fract(float8 x, __private float8 *iptr); -float16 __ovld fract(float16 x, __private float16 *iptr); +float __ovld fract(float, __global float *iptr); +float2 __ovld fract(float2, __global float2 *iptr); +float3 __ovld fract(float3, __global float3 *iptr); +float4 __ovld fract(float4, __global float4 *iptr); +float8 __ovld fract(float8, __global float8 *iptr); +float16 __ovld fract(float16, __global float16 *iptr); +float __ovld fract(float, __local float *iptr); +float2 __ovld fract(float2, __local float2 *iptr); +float3 __ovld fract(float3, __local float3 *iptr); +float4 __ovld fract(float4, __local float4 *iptr); +float8 __ovld fract(float8, __local float8 *iptr); +float16 __ovld fract(float16, __local float16 *iptr); +float __ovld fract(float, __private float *iptr); +float2 __ovld fract(float2, __private float2 *iptr); +float3 __ovld fract(float3, __private float3 *iptr); +float4 __ovld fract(float4, __private float4 *iptr); +float8 __ovld fract(float8, __private float8 *iptr); +float16 __ovld fract(float16, __private float16 *iptr); #ifdef cl_khr_fp64 -double __ovld fract(double x, __global double *iptr); -double2 __ovld fract(double2 x, __global double2 *iptr); -double3 __ovld fract(double3 x, __global double3 *iptr); -double4 __ovld fract(double4 x, __global double4 *iptr); -double8 __ovld fract(double8 x, __global double8 *iptr); -double16 __ovld fract(double16 x, __global double16 *iptr); -double __ovld fract(double x, __local double *iptr); -double2 __ovld fract(double2 x, __local double2 *iptr); -double3 __ovld fract(double3 x, __local double3 *iptr); -double4 __ovld fract(double4 x, __local double4 *iptr); -double8 __ovld fract(double8 x, __local double8 *iptr); -double16 __ovld fract(double16 x, __local double16 *iptr); -double __ovld fract(double x, __private double *iptr); -double2 __ovld fract(double2 x, __private double2 *iptr); -double3 __ovld fract(double3 x, __private double3 *iptr); -double4 __ovld fract(double4 x, __private double4 *iptr); -double8 __ovld fract(double8 x, __private double8 *iptr); -double16 __ovld fract(double16 x, __private double16 *iptr); +double __ovld fract(double, __global double *iptr); +double2 __ovld fract(double2, __global double2 *iptr); +double3 __ovld fract(double3, __global double3 *iptr); +double4 __ovld fract(double4, __global double4 *iptr); +double8 __ovld fract(double8, __global double8 *iptr); +double16 __ovld fract(double16, __global double16 *iptr); +double __ovld fract(double, __local double *iptr); +double2 __ovld fract(double2, __local double2 *iptr); +double3 __ovld fract(double3, __local double3 *iptr); +double4 __ovld fract(double4, __local double4 *iptr); +double8 __ovld fract(double8, __local double8 *iptr); +double16 __ovld fract(double16, __local double16 *iptr); +double __ovld fract(double, __private double *iptr); +double2 __ovld fract(double2, __private double2 *iptr); +double3 __ovld fract(double3, __private double3 *iptr); +double4 __ovld fract(double4, __private double4 *iptr); +double8 __ovld fract(double8, __private double8 *iptr); +double16 __ovld fract(double16, __private double16 *iptr); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld fract(half x, __global half *iptr); -half2 __ovld fract(half2 x, __global half2 *iptr); -half3 __ovld fract(half3 x, __global half3 *iptr); -half4 __ovld fract(half4 x, __global half4 *iptr); -half8 __ovld fract(half8 x, __global half8 *iptr); -half16 __ovld fract(half16 x, __global half16 *iptr); -half __ovld fract(half x, __local half *iptr); -half2 __ovld fract(half2 x, __local half2 *iptr); -half3 __ovld fract(half3 x, __local half3 *iptr); -half4 __ovld fract(half4 x, __local half4 *iptr); -half8 __ovld fract(half8 x, __local half8 *iptr); -half16 __ovld fract(half16 x, __local half16 *iptr); -half __ovld fract(half x, __private half *iptr); -half2 __ovld fract(half2 x, __private half2 *iptr); -half3 __ovld fract(half3 x, __private half3 *iptr); -half4 __ovld fract(half4 x, __private half4 *iptr); -half8 __ovld fract(half8 x, __private half8 *iptr); -half16 __ovld fract(half16 x, __private half16 *iptr); +half __ovld fract(half, __global half *iptr); +half2 __ovld fract(half2, __global half2 *iptr); +half3 __ovld fract(half3, __global half3 *iptr); +half4 __ovld fract(half4, __global half4 *iptr); +half8 __ovld fract(half8, __global half8 *iptr); +half16 __ovld fract(half16, __global half16 *iptr); +half __ovld fract(half, __local half *iptr); +half2 __ovld fract(half2, __local half2 *iptr); +half3 __ovld fract(half3, __local half3 *iptr); +half4 __ovld fract(half4, __local half4 *iptr); +half8 __ovld fract(half8, __local half8 *iptr); +half16 __ovld fract(half16, __local half16 *iptr); +half __ovld fract(half, __private half *iptr); +half2 __ovld fract(half2, __private half2 *iptr); +half3 __ovld fract(half3, __private half3 *iptr); +half4 __ovld fract(half4, __private half4 *iptr); +half8 __ovld fract(half8, __private half8 *iptr); +half16 __ovld fract(half16, __private half16 *iptr); #endif //cl_khr_fp16 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_generic_address_space) /** * Extract mantissa and exponent from x. For each @@ -8053,115 +8062,115 @@ half16 __ovld fract(half16 x, __private half16 *iptr); * magnitude in the interval [1/2, 1) or 0. Each * component of x equals mantissa returned * 2^exp. */ -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -float __ovld frexp(float x, int *exp); -float2 __ovld frexp(float2 x, int2 *exp); -float3 __ovld frexp(float3 x, int3 *exp); -float4 __ovld frexp(float4 x, int4 *exp); -float8 __ovld frexp(float8 x, int8 *exp); -float16 __ovld frexp(float16 x, int16 *exp); +#if defined(__opencl_c_generic_address_space) +float __ovld frexp(float, int *); +float2 __ovld frexp(float2, int2 *); +float3 __ovld frexp(float3, int3 *); +float4 __ovld frexp(float4, int4 *); +float8 __ovld frexp(float8, int8 *); +float16 __ovld frexp(float16, int16 *); #ifdef cl_khr_fp64 -double __ovld frexp(double x, int *exp); -double2 __ovld frexp(double2 x, int2 *exp); -double3 __ovld frexp(double3 x, int3 *exp); -double4 __ovld frexp(double4 x, int4 *exp); -double8 __ovld frexp(double8 x, int8 *exp); -double16 __ovld frexp(double16 x, int16 *exp); +double __ovld frexp(double, int *); +double2 __ovld frexp(double2, int2 *); +double3 __ovld frexp(double3, int3 *); +double4 __ovld frexp(double4, int4 *); +double8 __ovld frexp(double8, int8 *); +double16 __ovld frexp(double16, int16 *); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld frexp(half x, int *exp); -half2 __ovld frexp(half2 x, int2 *exp); -half3 __ovld frexp(half3 x, int3 *exp); -half4 __ovld frexp(half4 x, int4 *exp); -half8 __ovld frexp(half8 x, int8 *exp); -half16 __ovld frexp(half16 x, int16 *exp); +half __ovld frexp(half, int *); +half2 __ovld frexp(half2, int2 *); +half3 __ovld frexp(half3, int3 *); +half4 __ovld frexp(half4, int4 *); +half8 __ovld frexp(half8, int8 *); +half16 __ovld frexp(half16, int16 *); #endif //cl_khr_fp16 #else -float __ovld frexp(float x, __global int *exp); -float2 __ovld frexp(float2 x, __global int2 *exp); -float3 __ovld frexp(float3 x, __global int3 *exp); -float4 __ovld frexp(float4 x, __global int4 *exp); -float8 __ovld frexp(float8 x, __global int8 *exp); -float16 __ovld frexp(float16 x, __global int16 *exp); -float __ovld frexp(float x, __local int *exp); -float2 __ovld frexp(float2 x, __local int2 *exp); -float3 __ovld frexp(float3 x, __local int3 *exp); -float4 __ovld frexp(float4 x, __local int4 *exp); -float8 __ovld frexp(float8 x, __local int8 *exp); -float16 __ovld frexp(float16 x, __local int16 *exp); -float __ovld frexp(float x, __private int *exp); -float2 __ovld frexp(float2 x, __private int2 *exp); -float3 __ovld frexp(float3 x, __private int3 *exp); -float4 __ovld frexp(float4 x, __private int4 *exp); -float8 __ovld frexp(float8 x, __private int8 *exp); -float16 __ovld frexp(float16 x, __private int16 *exp); +float __ovld frexp(float, __global int *); +float2 __ovld frexp(float2, __global int2 *); +float3 __ovld frexp(float3, __global int3 *); +float4 __ovld frexp(float4, __global int4 *); +float8 __ovld frexp(float8, __global int8 *); +float16 __ovld frexp(float16, __global int16 *); +float __ovld frexp(float, __local int *); +float2 __ovld frexp(float2, __local int2 *); +float3 __ovld frexp(float3, __local int3 *); +float4 __ovld frexp(float4, __local int4 *); +float8 __ovld frexp(float8, __local int8 *); +float16 __ovld frexp(float16, __local int16 *); +float __ovld frexp(float, __private int *); +float2 __ovld frexp(float2, __private int2 *); +float3 __ovld frexp(float3, __private int3 *); +float4 __ovld frexp(float4, __private int4 *); +float8 __ovld frexp(float8, __private int8 *); +float16 __ovld frexp(float16, __private int16 *); #ifdef cl_khr_fp64 -double __ovld frexp(double x, __global int *exp); -double2 __ovld frexp(double2 x, __global int2 *exp); -double3 __ovld frexp(double3 x, __global int3 *exp); -double4 __ovld frexp(double4 x, __global int4 *exp); -double8 __ovld frexp(double8 x, __global int8 *exp); -double16 __ovld frexp(double16 x, __global int16 *exp); -double __ovld frexp(double x, __local int *exp); -double2 __ovld frexp(double2 x, __local int2 *exp); -double3 __ovld frexp(double3 x, __local int3 *exp); -double4 __ovld frexp(double4 x, __local int4 *exp); -double8 __ovld frexp(double8 x, __local int8 *exp); -double16 __ovld frexp(double16 x, __local int16 *exp); -double __ovld frexp(double x, __private int *exp); -double2 __ovld frexp(double2 x, __private int2 *exp); -double3 __ovld frexp(double3 x, __private int3 *exp); -double4 __ovld frexp(double4 x, __private int4 *exp); -double8 __ovld frexp(double8 x, __private int8 *exp); -double16 __ovld frexp(double16 x, __private int16 *exp); +double __ovld frexp(double, __global int *); +double2 __ovld frexp(double2, __global int2 *); +double3 __ovld frexp(double3, __global int3 *); +double4 __ovld frexp(double4, __global int4 *); +double8 __ovld frexp(double8, __global int8 *); +double16 __ovld frexp(double16, __global int16 *); +double __ovld frexp(double, __local int *); +double2 __ovld frexp(double2, __local int2 *); +double3 __ovld frexp(double3, __local int3 *); +double4 __ovld frexp(double4, __local int4 *); +double8 __ovld frexp(double8, __local int8 *); +double16 __ovld frexp(double16, __local int16 *); +double __ovld frexp(double, __private int *); +double2 __ovld frexp(double2, __private int2 *); +double3 __ovld frexp(double3, __private int3 *); +double4 __ovld frexp(double4, __private int4 *); +double8 __ovld frexp(double8, __private int8 *); +double16 __ovld frexp(double16, __private int16 *); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld frexp(half x, __global int *exp); -half2 __ovld frexp(half2 x, __global int2 *exp); -half3 __ovld frexp(half3 x, __global int3 *exp); -half4 __ovld frexp(half4 x, __global int4 *exp); -half8 __ovld frexp(half8 x, __global int8 *exp); -half16 __ovld frexp(half16 x, __global int16 *exp); -half __ovld frexp(half x, __local int *exp); -half2 __ovld frexp(half2 x, __local int2 *exp); -half3 __ovld frexp(half3 x, __local int3 *exp); -half4 __ovld frexp(half4 x, __local int4 *exp); -half8 __ovld frexp(half8 x, __local int8 *exp); -half16 __ovld frexp(half16 x, __local int16 *exp); -half __ovld frexp(half x, __private int *exp); -half2 __ovld frexp(half2 x, __private int2 *exp); -half3 __ovld frexp(half3 x, __private int3 *exp); -half4 __ovld frexp(half4 x, __private int4 *exp); -half8 __ovld frexp(half8 x, __private int8 *exp); -half16 __ovld frexp(half16 x, __private int16 *exp); +half __ovld frexp(half, __global int *); +half2 __ovld frexp(half2, __global int2 *); +half3 __ovld frexp(half3, __global int3 *); +half4 __ovld frexp(half4, __global int4 *); +half8 __ovld frexp(half8, __global int8 *); +half16 __ovld frexp(half16, __global int16 *); +half __ovld frexp(half, __local int *); +half2 __ovld frexp(half2, __local int2 *); +half3 __ovld frexp(half3, __local int3 *); +half4 __ovld frexp(half4, __local int4 *); +half8 __ovld frexp(half8, __local int8 *); +half16 __ovld frexp(half16, __local int16 *); +half __ovld frexp(half, __private int *); +half2 __ovld frexp(half2, __private int2 *); +half3 __ovld frexp(half3, __private int3 *); +half4 __ovld frexp(half4, __private int4 *); +half8 __ovld frexp(half8, __private int8 *); +half16 __ovld frexp(half16, __private int16 *); #endif //cl_khr_fp16 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_generic_address_space) /** * Compute the value of the square root of x^2 + y^2 * without undue overflow or underflow. */ -float __ovld __cnfn hypot(float x, float y); -float2 __ovld __cnfn hypot(float2 x, float2 y); -float3 __ovld __cnfn hypot(float3 x, float3 y); -float4 __ovld __cnfn hypot(float4 x, float4 y); -float8 __ovld __cnfn hypot(float8 x, float8 y); -float16 __ovld __cnfn hypot(float16 x, float16 y); +float __ovld __cnfn hypot(float, float ); +float2 __ovld __cnfn hypot(float2, float2 ); +float3 __ovld __cnfn hypot(float3, float3 ); +float4 __ovld __cnfn hypot(float4, float4 ); +float8 __ovld __cnfn hypot(float8, float8 ); +float16 __ovld __cnfn hypot(float16, float16 ); #ifdef cl_khr_fp64 -double __ovld __cnfn hypot(double x, double y); -double2 __ovld __cnfn hypot(double2 x, double2 y); -double3 __ovld __cnfn hypot(double3 x, double3 y); -double4 __ovld __cnfn hypot(double4 x, double4 y); -double8 __ovld __cnfn hypot(double8 x, double8 y); -double16 __ovld __cnfn hypot(double16 x, double16 y); +double __ovld __cnfn hypot(double, double ); +double2 __ovld __cnfn hypot(double2, double2 ); +double3 __ovld __cnfn hypot(double3, double3 ); +double4 __ovld __cnfn hypot(double4, double4 ); +double8 __ovld __cnfn hypot(double8, double8 ); +double16 __ovld __cnfn hypot(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn hypot(half x, half y); -half2 __ovld __cnfn hypot(half2 x, half2 y); -half3 __ovld __cnfn hypot(half3 x, half3 y); -half4 __ovld __cnfn hypot(half4 x, half4 y); -half8 __ovld __cnfn hypot(half8 x, half8 y); -half16 __ovld __cnfn hypot(half16 x, half16 y); +half __ovld __cnfn hypot(half, half ); +half2 __ovld __cnfn hypot(half2, half2 ); +half3 __ovld __cnfn hypot(half3, half3 ); +half4 __ovld __cnfn hypot(half4, half4 ); +half8 __ovld __cnfn hypot(half8, half8 ); +half16 __ovld __cnfn hypot(half16, half16 ); #endif //cl_khr_fp16 /** @@ -8193,42 +8202,42 @@ int16 __ovld __cnfn ilogb(half16 x); /** * Multiply x by 2 to the power n. */ -float __ovld __cnfn ldexp(float x, int n); -float2 __ovld __cnfn ldexp(float2 x, int2 n); -float3 __ovld __cnfn ldexp(float3 x, int3 n); -float4 __ovld __cnfn ldexp(float4 x, int4 n); -float8 __ovld __cnfn ldexp(float8 x, int8 n); -float16 __ovld __cnfn ldexp(float16 x, int16 n); -float2 __ovld __cnfn ldexp(float2 x, int n); -float3 __ovld __cnfn ldexp(float3 x, int n); -float4 __ovld __cnfn ldexp(float4 x, int n); -float8 __ovld __cnfn ldexp(float8 x, int n); -float16 __ovld __cnfn ldexp(float16 x, int n); +float __ovld __cnfn ldexp(float, int); +float2 __ovld __cnfn ldexp(float2, int2); +float3 __ovld __cnfn ldexp(float3, int3); +float4 __ovld __cnfn ldexp(float4, int4); +float8 __ovld __cnfn ldexp(float8, int8); +float16 __ovld __cnfn ldexp(float16, int16); +float2 __ovld __cnfn ldexp(float2, int); +float3 __ovld __cnfn ldexp(float3, int); +float4 __ovld __cnfn ldexp(float4, int); +float8 __ovld __cnfn ldexp(float8, int); +float16 __ovld __cnfn ldexp(float16, int); #ifdef cl_khr_fp64 -double __ovld __cnfn ldexp(double x, int n); -double2 __ovld __cnfn ldexp(double2 x, int2 n); -double3 __ovld __cnfn ldexp(double3 x, int3 n); -double4 __ovld __cnfn ldexp(double4 x, int4 n); -double8 __ovld __cnfn ldexp(double8 x, int8 n); -double16 __ovld __cnfn ldexp(double16 x, int16 n); -double2 __ovld __cnfn ldexp(double2 x, int n); -double3 __ovld __cnfn ldexp(double3 x, int n); -double4 __ovld __cnfn ldexp(double4 x, int n); -double8 __ovld __cnfn ldexp(double8 x, int n); -double16 __ovld __cnfn ldexp(double16 x, int n); +double __ovld __cnfn ldexp(double, int); +double2 __ovld __cnfn ldexp(double2, int2); +double3 __ovld __cnfn ldexp(double3, int3); +double4 __ovld __cnfn ldexp(double4, int4); +double8 __ovld __cnfn ldexp(double8, int8); +double16 __ovld __cnfn ldexp(double16, int16); +double2 __ovld __cnfn ldexp(double2, int); +double3 __ovld __cnfn ldexp(double3, int); +double4 __ovld __cnfn ldexp(double4, int); +double8 __ovld __cnfn ldexp(double8, int); +double16 __ovld __cnfn ldexp(double16, int); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn ldexp(half x, int n); -half2 __ovld __cnfn ldexp(half2 x, int2 n); -half3 __ovld __cnfn ldexp(half3 x, int3 n); -half4 __ovld __cnfn ldexp(half4 x, int4 n); -half8 __ovld __cnfn ldexp(half8 x, int8 n); -half16 __ovld __cnfn ldexp(half16 x, int16 n); -half2 __ovld __cnfn ldexp(half2 x, int n); -half3 __ovld __cnfn ldexp(half3 x, int n); -half4 __ovld __cnfn ldexp(half4 x, int n); -half8 __ovld __cnfn ldexp(half8 x, int n); -half16 __ovld __cnfn ldexp(half16 x, int n); +half __ovld __cnfn ldexp(half, int); +half2 __ovld __cnfn ldexp(half2, int2); +half3 __ovld __cnfn ldexp(half3, int3); +half4 __ovld __cnfn ldexp(half4, int4); +half8 __ovld __cnfn ldexp(half8, int8); +half16 __ovld __cnfn ldexp(half16, int16); +half2 __ovld __cnfn ldexp(half2, int); +half3 __ovld __cnfn ldexp(half3, int); +half4 __ovld __cnfn ldexp(half4, int); +half8 __ovld __cnfn ldexp(half8, int); +half16 __ovld __cnfn ldexp(half16, int); #endif //cl_khr_fp16 /** @@ -8260,89 +8269,89 @@ half8 __ovld __cnfn lgamma(half8 x); half16 __ovld __cnfn lgamma(half16 x); #endif //cl_khr_fp16 -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -float __ovld lgamma_r(float x, int *signp); -float2 __ovld lgamma_r(float2 x, int2 *signp); -float3 __ovld lgamma_r(float3 x, int3 *signp); -float4 __ovld lgamma_r(float4 x, int4 *signp); -float8 __ovld lgamma_r(float8 x, int8 *signp); -float16 __ovld lgamma_r(float16 x, int16 *signp); +#if defined(__opencl_c_generic_address_space) +float __ovld lgamma_r(float, int *signp); +float2 __ovld lgamma_r(float2, int2 *signp); +float3 __ovld lgamma_r(float3, int3 *signp); +float4 __ovld lgamma_r(float4, int4 *signp); +float8 __ovld lgamma_r(float8, int8 *signp); +float16 __ovld lgamma_r(float16, int16 *signp); #ifdef cl_khr_fp64 -double __ovld lgamma_r(double x, int *signp); -double2 __ovld lgamma_r(double2 x, int2 *signp); -double3 __ovld lgamma_r(double3 x, int3 *signp); -double4 __ovld lgamma_r(double4 x, int4 *signp); -double8 __ovld lgamma_r(double8 x, int8 *signp); -double16 __ovld lgamma_r(double16 x, int16 *signp); +double __ovld lgamma_r(double, int *signp); +double2 __ovld lgamma_r(double2, int2 *signp); +double3 __ovld lgamma_r(double3, int3 *signp); +double4 __ovld lgamma_r(double4, int4 *signp); +double8 __ovld lgamma_r(double8, int8 *signp); +double16 __ovld lgamma_r(double16, int16 *signp); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld lgamma_r(half x, int *signp); -half2 __ovld lgamma_r(half2 x, int2 *signp); -half3 __ovld lgamma_r(half3 x, int3 *signp); -half4 __ovld lgamma_r(half4 x, int4 *signp); -half8 __ovld lgamma_r(half8 x, int8 *signp); -half16 __ovld lgamma_r(half16 x, int16 *signp); +half __ovld lgamma_r(half, int *signp); +half2 __ovld lgamma_r(half2, int2 *signp); +half3 __ovld lgamma_r(half3, int3 *signp); +half4 __ovld lgamma_r(half4, int4 *signp); +half8 __ovld lgamma_r(half8, int8 *signp); +half16 __ovld lgamma_r(half16, int16 *signp); #endif //cl_khr_fp16 #else -float __ovld lgamma_r(float x, __global int *signp); -float2 __ovld lgamma_r(float2 x, __global int2 *signp); -float3 __ovld lgamma_r(float3 x, __global int3 *signp); -float4 __ovld lgamma_r(float4 x, __global int4 *signp); -float8 __ovld lgamma_r(float8 x, __global int8 *signp); -float16 __ovld lgamma_r(float16 x, __global int16 *signp); -float __ovld lgamma_r(float x, __local int *signp); -float2 __ovld lgamma_r(float2 x, __local int2 *signp); -float3 __ovld lgamma_r(float3 x, __local int3 *signp); -float4 __ovld lgamma_r(float4 x, __local int4 *signp); -float8 __ovld lgamma_r(float8 x, __local int8 *signp); -float16 __ovld lgamma_r(float16 x, __local int16 *signp); -float __ovld lgamma_r(float x, __private int *signp); -float2 __ovld lgamma_r(float2 x, __private int2 *signp); -float3 __ovld lgamma_r(float3 x, __private int3 *signp); -float4 __ovld lgamma_r(float4 x, __private int4 *signp); -float8 __ovld lgamma_r(float8 x, __private int8 *signp); -float16 __ovld lgamma_r(float16 x, __private int16 *signp); +float __ovld lgamma_r(float, __global int *signp); +float2 __ovld lgamma_r(float2, __global int2 *signp); +float3 __ovld lgamma_r(float3, __global int3 *signp); +float4 __ovld lgamma_r(float4, __global int4 *signp); +float8 __ovld lgamma_r(float8, __global int8 *signp); +float16 __ovld lgamma_r(float16, __global int16 *signp); +float __ovld lgamma_r(float, __local int *signp); +float2 __ovld lgamma_r(float2, __local int2 *signp); +float3 __ovld lgamma_r(float3, __local int3 *signp); +float4 __ovld lgamma_r(float4, __local int4 *signp); +float8 __ovld lgamma_r(float8, __local int8 *signp); +float16 __ovld lgamma_r(float16, __local int16 *signp); +float __ovld lgamma_r(float, __private int *signp); +float2 __ovld lgamma_r(float2, __private int2 *signp); +float3 __ovld lgamma_r(float3, __private int3 *signp); +float4 __ovld lgamma_r(float4, __private int4 *signp); +float8 __ovld lgamma_r(float8, __private int8 *signp); +float16 __ovld lgamma_r(float16, __private int16 *signp); #ifdef cl_khr_fp64 -double __ovld lgamma_r(double x, __global int *signp); -double2 __ovld lgamma_r(double2 x, __global int2 *signp); -double3 __ovld lgamma_r(double3 x, __global int3 *signp); -double4 __ovld lgamma_r(double4 x, __global int4 *signp); -double8 __ovld lgamma_r(double8 x, __global int8 *signp); -double16 __ovld lgamma_r(double16 x, __global int16 *signp); -double __ovld lgamma_r(double x, __local int *signp); -double2 __ovld lgamma_r(double2 x, __local int2 *signp); -double3 __ovld lgamma_r(double3 x, __local int3 *signp); -double4 __ovld lgamma_r(double4 x, __local int4 *signp); -double8 __ovld lgamma_r(double8 x, __local int8 *signp); -double16 __ovld lgamma_r(double16 x, __local int16 *signp); -double __ovld lgamma_r(double x, __private int *signp); -double2 __ovld lgamma_r(double2 x, __private int2 *signp); -double3 __ovld lgamma_r(double3 x, __private int3 *signp); -double4 __ovld lgamma_r(double4 x, __private int4 *signp); -double8 __ovld lgamma_r(double8 x, __private int8 *signp); -double16 __ovld lgamma_r(double16 x, __private int16 *signp); +double __ovld lgamma_r(double, __global int *signp); +double2 __ovld lgamma_r(double2, __global int2 *signp); +double3 __ovld lgamma_r(double3, __global int3 *signp); +double4 __ovld lgamma_r(double4, __global int4 *signp); +double8 __ovld lgamma_r(double8, __global int8 *signp); +double16 __ovld lgamma_r(double16, __global int16 *signp); +double __ovld lgamma_r(double, __local int *signp); +double2 __ovld lgamma_r(double2, __local int2 *signp); +double3 __ovld lgamma_r(double3, __local int3 *signp); +double4 __ovld lgamma_r(double4, __local int4 *signp); +double8 __ovld lgamma_r(double8, __local int8 *signp); +double16 __ovld lgamma_r(double16, __local int16 *signp); +double __ovld lgamma_r(double, __private int *signp); +double2 __ovld lgamma_r(double2, __private int2 *signp); +double3 __ovld lgamma_r(double3, __private int3 *signp); +double4 __ovld lgamma_r(double4, __private int4 *signp); +double8 __ovld lgamma_r(double8, __private int8 *signp); +double16 __ovld lgamma_r(double16, __private int16 *signp); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld lgamma_r(half x, __global int *signp); -half2 __ovld lgamma_r(half2 x, __global int2 *signp); -half3 __ovld lgamma_r(half3 x, __global int3 *signp); -half4 __ovld lgamma_r(half4 x, __global int4 *signp); -half8 __ovld lgamma_r(half8 x, __global int8 *signp); -half16 __ovld lgamma_r(half16 x, __global int16 *signp); -half __ovld lgamma_r(half x, __local int *signp); -half2 __ovld lgamma_r(half2 x, __local int2 *signp); -half3 __ovld lgamma_r(half3 x, __local int3 *signp); -half4 __ovld lgamma_r(half4 x, __local int4 *signp); -half8 __ovld lgamma_r(half8 x, __local int8 *signp); -half16 __ovld lgamma_r(half16 x, __local int16 *signp); -half __ovld lgamma_r(half x, __private int *signp); -half2 __ovld lgamma_r(half2 x, __private int2 *signp); -half3 __ovld lgamma_r(half3 x, __private int3 *signp); -half4 __ovld lgamma_r(half4 x, __private int4 *signp); -half8 __ovld lgamma_r(half8 x, __private int8 *signp); -half16 __ovld lgamma_r(half16 x, __private int16 *signp); +half __ovld lgamma_r(half, __global int *signp); +half2 __ovld lgamma_r(half2, __global int2 *signp); +half3 __ovld lgamma_r(half3, __global int3 *signp); +half4 __ovld lgamma_r(half4, __global int4 *signp); +half8 __ovld lgamma_r(half8, __global int8 *signp); +half16 __ovld lgamma_r(half16, __global int16 *signp); +half __ovld lgamma_r(half, __local int *signp); +half2 __ovld lgamma_r(half2, __local int2 *signp); +half3 __ovld lgamma_r(half3, __local int3 *signp); +half4 __ovld lgamma_r(half4, __local int4 *signp); +half8 __ovld lgamma_r(half8, __local int8 *signp); +half16 __ovld lgamma_r(half16, __local int16 *signp); +half __ovld lgamma_r(half, __private int *signp); +half2 __ovld lgamma_r(half2, __private int2 *signp); +half3 __ovld lgamma_r(half3, __private int3 *signp); +half4 __ovld lgamma_r(half4, __private int4 *signp); +half8 __ovld lgamma_r(half8, __private int8 *signp); +half16 __ovld lgamma_r(half16, __private int16 *signp); #endif //cl_khr_fp16 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_generic_address_space) /** * Compute natural logarithm. @@ -8449,7 +8458,7 @@ half16 __ovld __cnfn log1p(half16 x); #endif //cl_khr_fp16 /** - * Compute the exponent of x, which is the integral + * Compute the exponent of, which is the integral * part of logr | x |. */ float __ovld __cnfn logb(float x); @@ -8482,81 +8491,81 @@ half16 __ovld __cnfn logb(half16 x); * defined. mad is intended to be used where speed is * preferred over accuracy. */ -float __ovld __cnfn mad(float a, float b, float c); -float2 __ovld __cnfn mad(float2 a, float2 b, float2 c); -float3 __ovld __cnfn mad(float3 a, float3 b, float3 c); -float4 __ovld __cnfn mad(float4 a, float4 b, float4 c); -float8 __ovld __cnfn mad(float8 a, float8 b, float8 c); -float16 __ovld __cnfn mad(float16 a, float16 b, float16 c); +float __ovld __cnfn mad(float, float, float); +float2 __ovld __cnfn mad(float2, float2, float2); +float3 __ovld __cnfn mad(float3, float3, float3); +float4 __ovld __cnfn mad(float4, float4, float4); +float8 __ovld __cnfn mad(float8, float8, float8); +float16 __ovld __cnfn mad(float16, float16, float16); #ifdef cl_khr_fp64 -double __ovld __cnfn mad(double a, double b, double c); -double2 __ovld __cnfn mad(double2 a, double2 b, double2 c); -double3 __ovld __cnfn mad(double3 a, double3 b, double3 c); -double4 __ovld __cnfn mad(double4 a, double4 b, double4 c); -double8 __ovld __cnfn mad(double8 a, double8 b, double8 c); -double16 __ovld __cnfn mad(double16 a, double16 b, double16 c); +double __ovld __cnfn mad(double, double, double); +double2 __ovld __cnfn mad(double2, double2, double2); +double3 __ovld __cnfn mad(double3, double3, double3); +double4 __ovld __cnfn mad(double4, double4, double4); +double8 __ovld __cnfn mad(double8, double8, double8); +double16 __ovld __cnfn mad(double16, double16, double16); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn mad(half a, half b, half c); -half2 __ovld __cnfn mad(half2 a, half2 b, half2 c); -half3 __ovld __cnfn mad(half3 a, half3 b, half3 c); -half4 __ovld __cnfn mad(half4 a, half4 b, half4 c); -half8 __ovld __cnfn mad(half8 a, half8 b, half8 c); -half16 __ovld __cnfn mad(half16 a, half16 b, half16 c); +half __ovld __cnfn mad(half, half, half); +half2 __ovld __cnfn mad(half2, half2, half2); +half3 __ovld __cnfn mad(half3, half3, half3); +half4 __ovld __cnfn mad(half4, half4, half4); +half8 __ovld __cnfn mad(half8, half8, half8); +half16 __ovld __cnfn mad(half16, half16, half16); #endif //cl_khr_fp16 /** * Returns x if | x | > | y |, y if | y | > | x |, otherwise - * fmax(x, y). + * fmax(x, ). */ -float __ovld __cnfn maxmag(float x, float y); -float2 __ovld __cnfn maxmag(float2 x, float2 y); -float3 __ovld __cnfn maxmag(float3 x, float3 y); -float4 __ovld __cnfn maxmag(float4 x, float4 y); -float8 __ovld __cnfn maxmag(float8 x, float8 y); -float16 __ovld __cnfn maxmag(float16 x, float16 y); +float __ovld __cnfn maxmag(float, float ); +float2 __ovld __cnfn maxmag(float2, float2 ); +float3 __ovld __cnfn maxmag(float3, float3 ); +float4 __ovld __cnfn maxmag(float4, float4 ); +float8 __ovld __cnfn maxmag(float8, float8 ); +float16 __ovld __cnfn maxmag(float16, float16 ); #ifdef cl_khr_fp64 -double __ovld __cnfn maxmag(double x, double y); -double2 __ovld __cnfn maxmag(double2 x, double2 y); -double3 __ovld __cnfn maxmag(double3 x, double3 y); -double4 __ovld __cnfn maxmag(double4 x, double4 y); -double8 __ovld __cnfn maxmag(double8 x, double8 y); -double16 __ovld __cnfn maxmag(double16 x, double16 y); +double __ovld __cnfn maxmag(double, double ); +double2 __ovld __cnfn maxmag(double2, double2 ); +double3 __ovld __cnfn maxmag(double3, double3 ); +double4 __ovld __cnfn maxmag(double4, double4 ); +double8 __ovld __cnfn maxmag(double8, double8 ); +double16 __ovld __cnfn maxmag(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn maxmag(half x, half y); -half2 __ovld __cnfn maxmag(half2 x, half2 y); -half3 __ovld __cnfn maxmag(half3 x, half3 y); -half4 __ovld __cnfn maxmag(half4 x, half4 y); -half8 __ovld __cnfn maxmag(half8 x, half8 y); -half16 __ovld __cnfn maxmag(half16 x, half16 y); +half __ovld __cnfn maxmag(half, half ); +half2 __ovld __cnfn maxmag(half2, half2 ); +half3 __ovld __cnfn maxmag(half3, half3 ); +half4 __ovld __cnfn maxmag(half4, half4 ); +half8 __ovld __cnfn maxmag(half8, half8 ); +half16 __ovld __cnfn maxmag(half16, half16 ); #endif //cl_khr_fp16 /** * Returns x if | x | < | y |, y if | y | < | x |, otherwise - * fmin(x, y). + * fmin(x, ). */ -float __ovld __cnfn minmag(float x, float y); -float2 __ovld __cnfn minmag(float2 x, float2 y); -float3 __ovld __cnfn minmag(float3 x, float3 y); -float4 __ovld __cnfn minmag(float4 x, float4 y); -float8 __ovld __cnfn minmag(float8 x, float8 y); -float16 __ovld __cnfn minmag(float16 x, float16 y); +float __ovld __cnfn minmag(float, float ); +float2 __ovld __cnfn minmag(float2, float2 ); +float3 __ovld __cnfn minmag(float3, float3 ); +float4 __ovld __cnfn minmag(float4, float4 ); +float8 __ovld __cnfn minmag(float8, float8 ); +float16 __ovld __cnfn minmag(float16, float16 ); #ifdef cl_khr_fp64 -double __ovld __cnfn minmag(double x, double y); -double2 __ovld __cnfn minmag(double2 x, double2 y); -double3 __ovld __cnfn minmag(double3 x, double3 y); -double4 __ovld __cnfn minmag(double4 x, double4 y); -double8 __ovld __cnfn minmag(double8 x, double8 y); -double16 __ovld __cnfn minmag(double16 x, double16 y); +double __ovld __cnfn minmag(double, double ); +double2 __ovld __cnfn minmag(double2, double2 ); +double3 __ovld __cnfn minmag(double3, double3 ); +double4 __ovld __cnfn minmag(double4, double4 ); +double8 __ovld __cnfn minmag(double8, double8 ); +double16 __ovld __cnfn minmag(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn minmag(half x, half y); -half2 __ovld __cnfn minmag(half2 x, half2 y); -half3 __ovld __cnfn minmag(half3 x, half3 y); -half4 __ovld __cnfn minmag(half4 x, half4 y); -half8 __ovld __cnfn minmag(half8 x, half8 y); -half16 __ovld __cnfn minmag(half16 x, half16 y); +half __ovld __cnfn minmag(half, half ); +half2 __ovld __cnfn minmag(half2, half2 ); +half3 __ovld __cnfn minmag(half3, half3 ); +half4 __ovld __cnfn minmag(half4, half4 ); +half8 __ovld __cnfn minmag(half8, half8 ); +half16 __ovld __cnfn minmag(half16, half16 ); #endif //cl_khr_fp16 /** @@ -8566,223 +8575,223 @@ half16 __ovld __cnfn minmag(half16 x, half16 y); * the argument. It stores the integral part in the object * pointed to by iptr. */ -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -float __ovld modf(float x, float *iptr); -float2 __ovld modf(float2 x, float2 *iptr); -float3 __ovld modf(float3 x, float3 *iptr); -float4 __ovld modf(float4 x, float4 *iptr); -float8 __ovld modf(float8 x, float8 *iptr); -float16 __ovld modf(float16 x, float16 *iptr); +#if defined(__opencl_c_generic_address_space) +float __ovld modf(float, float *iptr); +float2 __ovld modf(float2, float2 *iptr); +float3 __ovld modf(float3, float3 *iptr); +float4 __ovld modf(float4, float4 *iptr); +float8 __ovld modf(float8, float8 *iptr); +float16 __ovld modf(float16, float16 *iptr); #ifdef cl_khr_fp64 -double __ovld modf(double x, double *iptr); -double2 __ovld modf(double2 x, double2 *iptr); -double3 __ovld modf(double3 x, double3 *iptr); -double4 __ovld modf(double4 x, double4 *iptr); -double8 __ovld modf(double8 x, double8 *iptr); -double16 __ovld modf(double16 x, double16 *iptr); +double __ovld modf(double, double *iptr); +double2 __ovld modf(double2, double2 *iptr); +double3 __ovld modf(double3, double3 *iptr); +double4 __ovld modf(double4, double4 *iptr); +double8 __ovld modf(double8, double8 *iptr); +double16 __ovld modf(double16, double16 *iptr); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld modf(half x, half *iptr); -half2 __ovld modf(half2 x, half2 *iptr); -half3 __ovld modf(half3 x, half3 *iptr); -half4 __ovld modf(half4 x, half4 *iptr); -half8 __ovld modf(half8 x, half8 *iptr); -half16 __ovld modf(half16 x, half16 *iptr); +half __ovld modf(half, half *iptr); +half2 __ovld modf(half2, half2 *iptr); +half3 __ovld modf(half3, half3 *iptr); +half4 __ovld modf(half4, half4 *iptr); +half8 __ovld modf(half8, half8 *iptr); +half16 __ovld modf(half16, half16 *iptr); #endif //cl_khr_fp16 #else -float __ovld modf(float x, __global float *iptr); -float2 __ovld modf(float2 x, __global float2 *iptr); -float3 __ovld modf(float3 x, __global float3 *iptr); -float4 __ovld modf(float4 x, __global float4 *iptr); -float8 __ovld modf(float8 x, __global float8 *iptr); -float16 __ovld modf(float16 x, __global float16 *iptr); -float __ovld modf(float x, __local float *iptr); -float2 __ovld modf(float2 x, __local float2 *iptr); -float3 __ovld modf(float3 x, __local float3 *iptr); -float4 __ovld modf(float4 x, __local float4 *iptr); -float8 __ovld modf(float8 x, __local float8 *iptr); -float16 __ovld modf(float16 x, __local float16 *iptr); -float __ovld modf(float x, __private float *iptr); -float2 __ovld modf(float2 x, __private float2 *iptr); -float3 __ovld modf(float3 x, __private float3 *iptr); -float4 __ovld modf(float4 x, __private float4 *iptr); -float8 __ovld modf(float8 x, __private float8 *iptr); -float16 __ovld modf(float16 x, __private float16 *iptr); +float __ovld modf(float, __global float *iptr); +float2 __ovld modf(float2, __global float2 *iptr); +float3 __ovld modf(float3, __global float3 *iptr); +float4 __ovld modf(float4, __global float4 *iptr); +float8 __ovld modf(float8, __global float8 *iptr); +float16 __ovld modf(float16, __global float16 *iptr); +float __ovld modf(float, __local float *iptr); +float2 __ovld modf(float2, __local float2 *iptr); +float3 __ovld modf(float3, __local float3 *iptr); +float4 __ovld modf(float4, __local float4 *iptr); +float8 __ovld modf(float8, __local float8 *iptr); +float16 __ovld modf(float16, __local float16 *iptr); +float __ovld modf(float, __private float *iptr); +float2 __ovld modf(float2, __private float2 *iptr); +float3 __ovld modf(float3, __private float3 *iptr); +float4 __ovld modf(float4, __private float4 *iptr); +float8 __ovld modf(float8, __private float8 *iptr); +float16 __ovld modf(float16, __private float16 *iptr); #ifdef cl_khr_fp64 -double __ovld modf(double x, __global double *iptr); -double2 __ovld modf(double2 x, __global double2 *iptr); -double3 __ovld modf(double3 x, __global double3 *iptr); -double4 __ovld modf(double4 x, __global double4 *iptr); -double8 __ovld modf(double8 x, __global double8 *iptr); -double16 __ovld modf(double16 x, __global double16 *iptr); -double __ovld modf(double x, __local double *iptr); -double2 __ovld modf(double2 x, __local double2 *iptr); -double3 __ovld modf(double3 x, __local double3 *iptr); -double4 __ovld modf(double4 x, __local double4 *iptr); -double8 __ovld modf(double8 x, __local double8 *iptr); -double16 __ovld modf(double16 x, __local double16 *iptr); -double __ovld modf(double x, __private double *iptr); -double2 __ovld modf(double2 x, __private double2 *iptr); -double3 __ovld modf(double3 x, __private double3 *iptr); -double4 __ovld modf(double4 x, __private double4 *iptr); -double8 __ovld modf(double8 x, __private double8 *iptr); -double16 __ovld modf(double16 x, __private double16 *iptr); +double __ovld modf(double, __global double *iptr); +double2 __ovld modf(double2, __global double2 *iptr); +double3 __ovld modf(double3, __global double3 *iptr); +double4 __ovld modf(double4, __global double4 *iptr); +double8 __ovld modf(double8, __global double8 *iptr); +double16 __ovld modf(double16, __global double16 *iptr); +double __ovld modf(double, __local double *iptr); +double2 __ovld modf(double2, __local double2 *iptr); +double3 __ovld modf(double3, __local double3 *iptr); +double4 __ovld modf(double4, __local double4 *iptr); +double8 __ovld modf(double8, __local double8 *iptr); +double16 __ovld modf(double16, __local double16 *iptr); +double __ovld modf(double, __private double *iptr); +double2 __ovld modf(double2, __private double2 *iptr); +double3 __ovld modf(double3, __private double3 *iptr); +double4 __ovld modf(double4, __private double4 *iptr); +double8 __ovld modf(double8, __private double8 *iptr); +double16 __ovld modf(double16, __private double16 *iptr); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld modf(half x, __global half *iptr); -half2 __ovld modf(half2 x, __global half2 *iptr); -half3 __ovld modf(half3 x, __global half3 *iptr); -half4 __ovld modf(half4 x, __global half4 *iptr); -half8 __ovld modf(half8 x, __global half8 *iptr); -half16 __ovld modf(half16 x, __global half16 *iptr); -half __ovld modf(half x, __local half *iptr); -half2 __ovld modf(half2 x, __local half2 *iptr); -half3 __ovld modf(half3 x, __local half3 *iptr); -half4 __ovld modf(half4 x, __local half4 *iptr); -half8 __ovld modf(half8 x, __local half8 *iptr); -half16 __ovld modf(half16 x, __local half16 *iptr); -half __ovld modf(half x, __private half *iptr); -half2 __ovld modf(half2 x, __private half2 *iptr); -half3 __ovld modf(half3 x, __private half3 *iptr); -half4 __ovld modf(half4 x, __private half4 *iptr); -half8 __ovld modf(half8 x, __private half8 *iptr); -half16 __ovld modf(half16 x, __private half16 *iptr); +half __ovld modf(half, __global half *iptr); +half2 __ovld modf(half2, __global half2 *iptr); +half3 __ovld modf(half3, __global half3 *iptr); +half4 __ovld modf(half4, __global half4 *iptr); +half8 __ovld modf(half8, __global half8 *iptr); +half16 __ovld modf(half16, __global half16 *iptr); +half __ovld modf(half, __local half *iptr); +half2 __ovld modf(half2, __local half2 *iptr); +half3 __ovld modf(half3, __local half3 *iptr); +half4 __ovld modf(half4, __local half4 *iptr); +half8 __ovld modf(half8, __local half8 *iptr); +half16 __ovld modf(half16, __local half16 *iptr); +half __ovld modf(half, __private half *iptr); +half2 __ovld modf(half2, __private half2 *iptr); +half3 __ovld modf(half3, __private half3 *iptr); +half4 __ovld modf(half4, __private half4 *iptr); +half8 __ovld modf(half8, __private half8 *iptr); +half16 __ovld modf(half16, __private half16 *iptr); #endif //cl_khr_fp16 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_generic_address_space) /** * Returns a quiet NaN. The nancode may be placed * in the significand of the resulting NaN. */ -float __ovld __cnfn nan(uint nancode); -float2 __ovld __cnfn nan(uint2 nancode); -float3 __ovld __cnfn nan(uint3 nancode); -float4 __ovld __cnfn nan(uint4 nancode); -float8 __ovld __cnfn nan(uint8 nancode); -float16 __ovld __cnfn nan(uint16 nancode); +float __ovld __cnfn nan(uint); +float2 __ovld __cnfn nan(uint2); +float3 __ovld __cnfn nan(uint3); +float4 __ovld __cnfn nan(uint4); +float8 __ovld __cnfn nan(uint8); +float16 __ovld __cnfn nan(uint16); #ifdef cl_khr_fp64 -double __ovld __cnfn nan(ulong nancode); -double2 __ovld __cnfn nan(ulong2 nancode); -double3 __ovld __cnfn nan(ulong3 nancode); -double4 __ovld __cnfn nan(ulong4 nancode); -double8 __ovld __cnfn nan(ulong8 nancode); -double16 __ovld __cnfn nan(ulong16 nancode); +double __ovld __cnfn nan(ulong); +double2 __ovld __cnfn nan(ulong2); +double3 __ovld __cnfn nan(ulong3); +double4 __ovld __cnfn nan(ulong4); +double8 __ovld __cnfn nan(ulong8); +double16 __ovld __cnfn nan(ulong16); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn nan(ushort nancode); -half2 __ovld __cnfn nan(ushort2 nancode); -half3 __ovld __cnfn nan(ushort3 nancode); -half4 __ovld __cnfn nan(ushort4 nancode); -half8 __ovld __cnfn nan(ushort8 nancode); -half16 __ovld __cnfn nan(ushort16 nancode); +half __ovld __cnfn nan(ushort); +half2 __ovld __cnfn nan(ushort2); +half3 __ovld __cnfn nan(ushort3); +half4 __ovld __cnfn nan(ushort4); +half8 __ovld __cnfn nan(ushort8); +half16 __ovld __cnfn nan(ushort16); #endif //cl_khr_fp16 /** * Computes the next representable single-precision * floating-point value following x in the direction of - * y. Thus, if y is less than x, nextafter() returns the + * y. Thus, if y is less than, nextafter() returns the * largest representable floating-point number less * than x. */ -float __ovld __cnfn nextafter(float x, float y); -float2 __ovld __cnfn nextafter(float2 x, float2 y); -float3 __ovld __cnfn nextafter(float3 x, float3 y); -float4 __ovld __cnfn nextafter(float4 x, float4 y); -float8 __ovld __cnfn nextafter(float8 x, float8 y); -float16 __ovld __cnfn nextafter(float16 x, float16 y); +float __ovld __cnfn nextafter(float, float ); +float2 __ovld __cnfn nextafter(float2, float2 ); +float3 __ovld __cnfn nextafter(float3, float3 ); +float4 __ovld __cnfn nextafter(float4, float4 ); +float8 __ovld __cnfn nextafter(float8, float8 ); +float16 __ovld __cnfn nextafter(float16, float16 ); #ifdef cl_khr_fp64 -double __ovld __cnfn nextafter(double x, double y); -double2 __ovld __cnfn nextafter(double2 x, double2 y); -double3 __ovld __cnfn nextafter(double3 x, double3 y); -double4 __ovld __cnfn nextafter(double4 x, double4 y); -double8 __ovld __cnfn nextafter(double8 x, double8 y); -double16 __ovld __cnfn nextafter(double16 x, double16 y); +double __ovld __cnfn nextafter(double, double ); +double2 __ovld __cnfn nextafter(double2, double2 ); +double3 __ovld __cnfn nextafter(double3, double3 ); +double4 __ovld __cnfn nextafter(double4, double4 ); +double8 __ovld __cnfn nextafter(double8, double8 ); +double16 __ovld __cnfn nextafter(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn nextafter(half x, half y); -half2 __ovld __cnfn nextafter(half2 x, half2 y); -half3 __ovld __cnfn nextafter(half3 x, half3 y); -half4 __ovld __cnfn nextafter(half4 x, half4 y); -half8 __ovld __cnfn nextafter(half8 x, half8 y); -half16 __ovld __cnfn nextafter(half16 x, half16 y); +half __ovld __cnfn nextafter(half, half ); +half2 __ovld __cnfn nextafter(half2, half2 ); +half3 __ovld __cnfn nextafter(half3, half3 ); +half4 __ovld __cnfn nextafter(half4, half4 ); +half8 __ovld __cnfn nextafter(half8, half8 ); +half16 __ovld __cnfn nextafter(half16, half16 ); #endif //cl_khr_fp16 /** * Compute x to the power y. */ -float __ovld __cnfn pow(float x, float y); -float2 __ovld __cnfn pow(float2 x, float2 y); -float3 __ovld __cnfn pow(float3 x, float3 y); -float4 __ovld __cnfn pow(float4 x, float4 y); -float8 __ovld __cnfn pow(float8 x, float8 y); -float16 __ovld __cnfn pow(float16 x, float16 y); +float __ovld __cnfn pow(float, float ); +float2 __ovld __cnfn pow(float2, float2 ); +float3 __ovld __cnfn pow(float3, float3 ); +float4 __ovld __cnfn pow(float4, float4 ); +float8 __ovld __cnfn pow(float8, float8 ); +float16 __ovld __cnfn pow(float16, float16 ); #ifdef cl_khr_fp64 -double __ovld __cnfn pow(double x, double y); -double2 __ovld __cnfn pow(double2 x, double2 y); -double3 __ovld __cnfn pow(double3 x, double3 y); -double4 __ovld __cnfn pow(double4 x, double4 y); -double8 __ovld __cnfn pow(double8 x, double8 y); -double16 __ovld __cnfn pow(double16 x, double16 y); +double __ovld __cnfn pow(double, double ); +double2 __ovld __cnfn pow(double2, double2 ); +double3 __ovld __cnfn pow(double3, double3 ); +double4 __ovld __cnfn pow(double4, double4 ); +double8 __ovld __cnfn pow(double8, double8 ); +double16 __ovld __cnfn pow(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn pow(half x, half y); -half2 __ovld __cnfn pow(half2 x, half2 y); -half3 __ovld __cnfn pow(half3 x, half3 y); -half4 __ovld __cnfn pow(half4 x, half4 y); -half8 __ovld __cnfn pow(half8 x, half8 y); -half16 __ovld __cnfn pow(half16 x, half16 y); +half __ovld __cnfn pow(half, half ); +half2 __ovld __cnfn pow(half2, half2 ); +half3 __ovld __cnfn pow(half3, half3 ); +half4 __ovld __cnfn pow(half4, half4 ); +half8 __ovld __cnfn pow(half8, half8 ); +half16 __ovld __cnfn pow(half16, half16 ); #endif //cl_khr_fp16 /** - * Compute x to the power y, where y is an integer. + * Compute x to the power, where y is an integer. */ -float __ovld __cnfn pown(float x, int y); -float2 __ovld __cnfn pown(float2 x, int2 y); -float3 __ovld __cnfn pown(float3 x, int3 y); -float4 __ovld __cnfn pown(float4 x, int4 y); -float8 __ovld __cnfn pown(float8 x, int8 y); -float16 __ovld __cnfn pown(float16 x, int16 y); +float __ovld __cnfn pown(float, int ); +float2 __ovld __cnfn pown(float2, int2 ); +float3 __ovld __cnfn pown(float3, int3 ); +float4 __ovld __cnfn pown(float4, int4 ); +float8 __ovld __cnfn pown(float8, int8 ); +float16 __ovld __cnfn pown(float16, int16 ); #ifdef cl_khr_fp64 -double __ovld __cnfn pown(double x, int y); -double2 __ovld __cnfn pown(double2 x, int2 y); -double3 __ovld __cnfn pown(double3 x, int3 y); -double4 __ovld __cnfn pown(double4 x, int4 y); -double8 __ovld __cnfn pown(double8 x, int8 y); -double16 __ovld __cnfn pown(double16 x, int16 y); +double __ovld __cnfn pown(double, int ); +double2 __ovld __cnfn pown(double2, int2 ); +double3 __ovld __cnfn pown(double3, int3 ); +double4 __ovld __cnfn pown(double4, int4 ); +double8 __ovld __cnfn pown(double8, int8 ); +double16 __ovld __cnfn pown(double16, int16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn pown(half x, int y); -half2 __ovld __cnfn pown(half2 x, int2 y); -half3 __ovld __cnfn pown(half3 x, int3 y); -half4 __ovld __cnfn pown(half4 x, int4 y); -half8 __ovld __cnfn pown(half8 x, int8 y); -half16 __ovld __cnfn pown(half16 x, int16 y); +half __ovld __cnfn pown(half, int ); +half2 __ovld __cnfn pown(half2, int2 ); +half3 __ovld __cnfn pown(half3, int3 ); +half4 __ovld __cnfn pown(half4, int4 ); +half8 __ovld __cnfn pown(half8, int8 ); +half16 __ovld __cnfn pown(half16, int16 ); #endif //cl_khr_fp16 /** - * Compute x to the power y, where x is >= 0. + * Compute x to the power, where x is >= 0. */ -float __ovld __cnfn powr(float x, float y); -float2 __ovld __cnfn powr(float2 x, float2 y); -float3 __ovld __cnfn powr(float3 x, float3 y); -float4 __ovld __cnfn powr(float4 x, float4 y); -float8 __ovld __cnfn powr(float8 x, float8 y); -float16 __ovld __cnfn powr(float16 x, float16 y); +float __ovld __cnfn powr(float, float ); +float2 __ovld __cnfn powr(float2, float2 ); +float3 __ovld __cnfn powr(float3, float3 ); +float4 __ovld __cnfn powr(float4, float4 ); +float8 __ovld __cnfn powr(float8, float8 ); +float16 __ovld __cnfn powr(float16, float16 ); #ifdef cl_khr_fp64 -double __ovld __cnfn powr(double x, double y); -double2 __ovld __cnfn powr(double2 x, double2 y); -double3 __ovld __cnfn powr(double3 x, double3 y); -double4 __ovld __cnfn powr(double4 x, double4 y); -double8 __ovld __cnfn powr(double8 x, double8 y); -double16 __ovld __cnfn powr(double16 x, double16 y); +double __ovld __cnfn powr(double, double ); +double2 __ovld __cnfn powr(double2, double2 ); +double3 __ovld __cnfn powr(double3, double3 ); +double4 __ovld __cnfn powr(double4, double4 ); +double8 __ovld __cnfn powr(double8, double8 ); +double16 __ovld __cnfn powr(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn powr(half x, half y); -half2 __ovld __cnfn powr(half2 x, half2 y); -half3 __ovld __cnfn powr(half3 x, half3 y); -half4 __ovld __cnfn powr(half4 x, half4 y); -half8 __ovld __cnfn powr(half8 x, half8 y); -half16 __ovld __cnfn powr(half16 x, half16 y); +half __ovld __cnfn powr(half, half ); +half2 __ovld __cnfn powr(half2, half2 ); +half3 __ovld __cnfn powr(half3, half3 ); +half4 __ovld __cnfn powr(half4, half4 ); +half8 __ovld __cnfn powr(half8, half8 ); +half16 __ovld __cnfn powr(half16, half16 ); #endif //cl_khr_fp16 /** @@ -8791,27 +8800,27 @@ half16 __ovld __cnfn powr(half16 x, half16 y); * are two integers closest to x/y, n shall be the even * one. If r is zero, it is given the same sign as x. */ -float __ovld __cnfn remainder(float x, float y); -float2 __ovld __cnfn remainder(float2 x, float2 y); -float3 __ovld __cnfn remainder(float3 x, float3 y); -float4 __ovld __cnfn remainder(float4 x, float4 y); -float8 __ovld __cnfn remainder(float8 x, float8 y); -float16 __ovld __cnfn remainder(float16 x, float16 y); +float __ovld __cnfn remainder(float, float ); +float2 __ovld __cnfn remainder(float2, float2 ); +float3 __ovld __cnfn remainder(float3, float3 ); +float4 __ovld __cnfn remainder(float4, float4 ); +float8 __ovld __cnfn remainder(float8, float8 ); +float16 __ovld __cnfn remainder(float16, float16 ); #ifdef cl_khr_fp64 -double __ovld __cnfn remainder(double x, double y); -double2 __ovld __cnfn remainder(double2 x, double2 y); -double3 __ovld __cnfn remainder(double3 x, double3 y); -double4 __ovld __cnfn remainder(double4 x, double4 y); -double8 __ovld __cnfn remainder(double8 x, double8 y); -double16 __ovld __cnfn remainder(double16 x, double16 y); +double __ovld __cnfn remainder(double, double ); +double2 __ovld __cnfn remainder(double2, double2 ); +double3 __ovld __cnfn remainder(double3, double3 ); +double4 __ovld __cnfn remainder(double4, double4 ); +double8 __ovld __cnfn remainder(double8, double8 ); +double16 __ovld __cnfn remainder(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn remainder(half x, half y); -half2 __ovld __cnfn remainder(half2 x, half2 y); -half3 __ovld __cnfn remainder(half3 x, half3 y); -half4 __ovld __cnfn remainder(half4 x, half4 y); -half8 __ovld __cnfn remainder(half8 x, half8 y); -half16 __ovld __cnfn remainder(half16 x, half16 y); +half __ovld __cnfn remainder(half, half ); +half2 __ovld __cnfn remainder(half2, half2 ); +half3 __ovld __cnfn remainder(half3, half3 ); +half4 __ovld __cnfn remainder(half4, half4 ); +half8 __ovld __cnfn remainder(half8, half8 ); +half16 __ovld __cnfn remainder(half16, half16 ); #endif //cl_khr_fp16 /** @@ -8826,90 +8835,90 @@ half16 __ovld __cnfn remainder(half16 x, half16 y); * sign as x/y. It stores this signed value in the object * pointed to by quo. */ -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -float __ovld remquo(float x, float y, int *quo); -float2 __ovld remquo(float2 x, float2 y, int2 *quo); -float3 __ovld remquo(float3 x, float3 y, int3 *quo); -float4 __ovld remquo(float4 x, float4 y, int4 *quo); -float8 __ovld remquo(float8 x, float8 y, int8 *quo); -float16 __ovld remquo(float16 x, float16 y, int16 *quo); +#if defined(__opencl_c_generic_address_space) +float __ovld remquo(float, float, int *); +float2 __ovld remquo(float2, float2, int2 *); +float3 __ovld remquo(float3, float3, int3 *); +float4 __ovld remquo(float4, float4, int4 *); +float8 __ovld remquo(float8, float8, int8 *); +float16 __ovld remquo(float16, float16, int16 *); #ifdef cl_khr_fp64 -double __ovld remquo(double x, double y, int *quo); -double2 __ovld remquo(double2 x, double2 y, int2 *quo); -double3 __ovld remquo(double3 x, double3 y, int3 *quo); -double4 __ovld remquo(double4 x, double4 y, int4 *quo); -double8 __ovld remquo(double8 x, double8 y, int8 *quo); -double16 __ovld remquo(double16 x, double16 y, int16 *quo); +double __ovld remquo(double, double, int *); +double2 __ovld remquo(double2, double2, int2 *); +double3 __ovld remquo(double3, double3, int3 *); +double4 __ovld remquo(double4, double4, int4 *); +double8 __ovld remquo(double8, double8, int8 *); +double16 __ovld remquo(double16, double16, int16 *); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld remquo(half x, half y, int *quo); -half2 __ovld remquo(half2 x, half2 y, int2 *quo); -half3 __ovld remquo(half3 x, half3 y, int3 *quo); -half4 __ovld remquo(half4 x, half4 y, int4 *quo); -half8 __ovld remquo(half8 x, half8 y, int8 *quo); -half16 __ovld remquo(half16 x, half16 y, int16 *quo); +half __ovld remquo(half, half, int *); +half2 __ovld remquo(half2, half2, int2 *); +half3 __ovld remquo(half3, half3, int3 *); +half4 __ovld remquo(half4, half4, int4 *); +half8 __ovld remquo(half8, half8, int8 *); +half16 __ovld remquo(half16, half16, int16 *); #endif //cl_khr_fp16 #else -float __ovld remquo(float x, float y, __global int *quo); -float2 __ovld remquo(float2 x, float2 y, __global int2 *quo); -float3 __ovld remquo(float3 x, float3 y, __global int3 *quo); -float4 __ovld remquo(float4 x, float4 y, __global int4 *quo); -float8 __ovld remquo(float8 x, float8 y, __global int8 *quo); -float16 __ovld remquo(float16 x, float16 y, __global int16 *quo); -float __ovld remquo(float x, float y, __local int *quo); -float2 __ovld remquo(float2 x, float2 y, __local int2 *quo); -float3 __ovld remquo(float3 x, float3 y, __local int3 *quo); -float4 __ovld remquo(float4 x, float4 y, __local int4 *quo); -float8 __ovld remquo(float8 x, float8 y, __local int8 *quo); -float16 __ovld remquo(float16 x, float16 y, __local int16 *quo); -float __ovld remquo(float x, float y, __private int *quo); -float2 __ovld remquo(float2 x, float2 y, __private int2 *quo); -float3 __ovld remquo(float3 x, float3 y, __private int3 *quo); -float4 __ovld remquo(float4 x, float4 y, __private int4 *quo); -float8 __ovld remquo(float8 x, float8 y, __private int8 *quo); -float16 __ovld remquo(float16 x, float16 y, __private int16 *quo); +float __ovld remquo(float, float, __global int *); +float2 __ovld remquo(float2, float2, __global int2 *); +float3 __ovld remquo(float3, float3, __global int3 *); +float4 __ovld remquo(float4, float4, __global int4 *); +float8 __ovld remquo(float8, float8, __global int8 *); +float16 __ovld remquo(float16, float16, __global int16 *); +float __ovld remquo(float, float, __local int *); +float2 __ovld remquo(float2, float2, __local int2 *); +float3 __ovld remquo(float3, float3, __local int3 *); +float4 __ovld remquo(float4, float4, __local int4 *); +float8 __ovld remquo(float8, float8, __local int8 *); +float16 __ovld remquo(float16, float16, __local int16 *); +float __ovld remquo(float, float, __private int *); +float2 __ovld remquo(float2, float2, __private int2 *); +float3 __ovld remquo(float3, float3, __private int3 *); +float4 __ovld remquo(float4, float4, __private int4 *); +float8 __ovld remquo(float8, float8, __private int8 *); +float16 __ovld remquo(float16, float16, __private int16 *); #ifdef cl_khr_fp64 -double __ovld remquo(double x, double y, __global int *quo); -double2 __ovld remquo(double2 x, double2 y, __global int2 *quo); -double3 __ovld remquo(double3 x, double3 y, __global int3 *quo); -double4 __ovld remquo(double4 x, double4 y, __global int4 *quo); -double8 __ovld remquo(double8 x, double8 y, __global int8 *quo); -double16 __ovld remquo(double16 x, double16 y, __global int16 *quo); -double __ovld remquo(double x, double y, __local int *quo); -double2 __ovld remquo(double2 x, double2 y, __local int2 *quo); -double3 __ovld remquo(double3 x, double3 y, __local int3 *quo); -double4 __ovld remquo(double4 x, double4 y, __local int4 *quo); -double8 __ovld remquo(double8 x, double8 y, __local int8 *quo); -double16 __ovld remquo(double16 x, double16 y, __local int16 *quo); -double __ovld remquo(double x, double y, __private int *quo); -double2 __ovld remquo(double2 x, double2 y, __private int2 *quo); -double3 __ovld remquo(double3 x, double3 y, __private int3 *quo); -double4 __ovld remquo(double4 x, double4 y, __private int4 *quo); -double8 __ovld remquo(double8 x, double8 y, __private int8 *quo); -double16 __ovld remquo(double16 x, double16 y, __private int16 *quo); +double __ovld remquo(double, double, __global int *); +double2 __ovld remquo(double2, double2, __global int2 *); +double3 __ovld remquo(double3, double3, __global int3 *); +double4 __ovld remquo(double4, double4, __global int4 *); +double8 __ovld remquo(double8, double8, __global int8 *); +double16 __ovld remquo(double16, double16, __global int16 *); +double __ovld remquo(double, double, __local int *); +double2 __ovld remquo(double2, double2, __local int2 *); +double3 __ovld remquo(double3, double3, __local int3 *); +double4 __ovld remquo(double4, double4, __local int4 *); +double8 __ovld remquo(double8, double8, __local int8 *); +double16 __ovld remquo(double16, double16, __local int16 *); +double __ovld remquo(double, double, __private int *); +double2 __ovld remquo(double2, double2, __private int2 *); +double3 __ovld remquo(double3, double3, __private int3 *); +double4 __ovld remquo(double4, double4, __private int4 *); +double8 __ovld remquo(double8, double8, __private int8 *); +double16 __ovld remquo(double16, double16, __private int16 *); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld remquo(half x, half y, __global int *quo); -half2 __ovld remquo(half2 x, half2 y, __global int2 *quo); -half3 __ovld remquo(half3 x, half3 y, __global int3 *quo); -half4 __ovld remquo(half4 x, half4 y, __global int4 *quo); -half8 __ovld remquo(half8 x, half8 y, __global int8 *quo); -half16 __ovld remquo(half16 x, half16 y, __global int16 *quo); -half __ovld remquo(half x, half y, __local int *quo); -half2 __ovld remquo(half2 x, half2 y, __local int2 *quo); -half3 __ovld remquo(half3 x, half3 y, __local int3 *quo); -half4 __ovld remquo(half4 x, half4 y, __local int4 *quo); -half8 __ovld remquo(half8 x, half8 y, __local int8 *quo); -half16 __ovld remquo(half16 x, half16 y, __local int16 *quo); -half __ovld remquo(half x, half y, __private int *quo); -half2 __ovld remquo(half2 x, half2 y, __private int2 *quo); -half3 __ovld remquo(half3 x, half3 y, __private int3 *quo); -half4 __ovld remquo(half4 x, half4 y, __private int4 *quo); -half8 __ovld remquo(half8 x, half8 y, __private int8 *quo); -half16 __ovld remquo(half16 x, half16 y, __private int16 *quo); +half __ovld remquo(half, half, __global int *); +half2 __ovld remquo(half2, half2, __global int2 *); +half3 __ovld remquo(half3, half3, __global int3 *); +half4 __ovld remquo(half4, half4, __global int4 *); +half8 __ovld remquo(half8, half8, __global int8 *); +half16 __ovld remquo(half16, half16, __global int16 *); +half __ovld remquo(half, half, __local int *); +half2 __ovld remquo(half2, half2, __local int2 *); +half3 __ovld remquo(half3, half3, __local int3 *); +half4 __ovld remquo(half4, half4, __local int4 *); +half8 __ovld remquo(half8, half8, __local int8 *); +half16 __ovld remquo(half16, half16, __local int16 *); +half __ovld remquo(half, half, __private int *); +half2 __ovld remquo(half2, half2, __private int2 *); +half3 __ovld remquo(half3, half3, __private int3 *); +half4 __ovld remquo(half4, half4, __private int4 *); +half8 __ovld remquo(half8, half8, __private int8 *); +half16 __ovld remquo(half16, half16, __private int16 *); #endif //cl_khr_fp16 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_generic_address_space) /** * Round to integral value (using round to nearest * even rounding mode) in floating-point format. @@ -8942,27 +8951,27 @@ half16 __ovld __cnfn rint(half16); /** * Compute x to the power 1/y. */ -float __ovld __cnfn rootn(float x, int y); -float2 __ovld __cnfn rootn(float2 x, int2 y); -float3 __ovld __cnfn rootn(float3 x, int3 y); -float4 __ovld __cnfn rootn(float4 x, int4 y); -float8 __ovld __cnfn rootn(float8 x, int8 y); -float16 __ovld __cnfn rootn(float16 x, int16 y); +float __ovld __cnfn rootn(float, int ); +float2 __ovld __cnfn rootn(float2, int2 ); +float3 __ovld __cnfn rootn(float3, int3 ); +float4 __ovld __cnfn rootn(float4, int4 ); +float8 __ovld __cnfn rootn(float8, int8 ); +float16 __ovld __cnfn rootn(float16, int16 ); #ifdef cl_khr_fp64 -double __ovld __cnfn rootn(double x, int y); -double2 __ovld __cnfn rootn(double2 x, int2 y); -double3 __ovld __cnfn rootn(double3 x, int3 y); -double4 __ovld __cnfn rootn(double4 x, int4 y); -double8 __ovld __cnfn rootn(double8 x, int8 y); -double16 __ovld __cnfn rootn(double16 x, int16 y); +double __ovld __cnfn rootn(double, int ); +double2 __ovld __cnfn rootn(double2, int2 ); +double3 __ovld __cnfn rootn(double3, int3 ); +double4 __ovld __cnfn rootn(double4, int4 ); +double8 __ovld __cnfn rootn(double8, int8 ); +double16 __ovld __cnfn rootn(double16, int16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn rootn(half x, int y); -half2 __ovld __cnfn rootn(half2 x, int2 y); -half3 __ovld __cnfn rootn(half3 x, int3 y); -half4 __ovld __cnfn rootn(half4 x, int4 y); -half8 __ovld __cnfn rootn(half8 x, int8 y); -half16 __ovld __cnfn rootn(half16 x, int16 y); +half __ovld __cnfn rootn(half, int ); +half2 __ovld __cnfn rootn(half2, int2 ); +half3 __ovld __cnfn rootn(half3, int3 ); +half4 __ovld __cnfn rootn(half4, int4 ); +half8 __ovld __cnfn rootn(half8, int8 ); +half16 __ovld __cnfn rootn(half16, int16 ); #endif //cl_khr_fp16 /** @@ -9050,89 +9059,89 @@ half16 __ovld __cnfn sin(half16); * is the return value and computed cosine is returned * in cosval. */ -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -float __ovld sincos(float x, float *cosval); -float2 __ovld sincos(float2 x, float2 *cosval); -float3 __ovld sincos(float3 x, float3 *cosval); -float4 __ovld sincos(float4 x, float4 *cosval); -float8 __ovld sincos(float8 x, float8 *cosval); -float16 __ovld sincos(float16 x, float16 *cosval); +#if defined(__opencl_c_generic_address_space) +float __ovld sincos(float, float *cosval); +float2 __ovld sincos(float2, float2 *cosval); +float3 __ovld sincos(float3, float3 *cosval); +float4 __ovld sincos(float4, float4 *cosval); +float8 __ovld sincos(float8, float8 *cosval); +float16 __ovld sincos(float16, float16 *cosval); #ifdef cl_khr_fp64 -double __ovld sincos(double x, double *cosval); -double2 __ovld sincos(double2 x, double2 *cosval); -double3 __ovld sincos(double3 x, double3 *cosval); -double4 __ovld sincos(double4 x, double4 *cosval); -double8 __ovld sincos(double8 x, double8 *cosval); -double16 __ovld sincos(double16 x, double16 *cosval); +double __ovld sincos(double, double *cosval); +double2 __ovld sincos(double2, double2 *cosval); +double3 __ovld sincos(double3, double3 *cosval); +double4 __ovld sincos(double4, double4 *cosval); +double8 __ovld sincos(double8, double8 *cosval); +double16 __ovld sincos(double16, double16 *cosval); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld sincos(half x, half *cosval); -half2 __ovld sincos(half2 x, half2 *cosval); -half3 __ovld sincos(half3 x, half3 *cosval); -half4 __ovld sincos(half4 x, half4 *cosval); -half8 __ovld sincos(half8 x, half8 *cosval); -half16 __ovld sincos(half16 x, half16 *cosval); +half __ovld sincos(half, half *cosval); +half2 __ovld sincos(half2, half2 *cosval); +half3 __ovld sincos(half3, half3 *cosval); +half4 __ovld sincos(half4, half4 *cosval); +half8 __ovld sincos(half8, half8 *cosval); +half16 __ovld sincos(half16, half16 *cosval); #endif //cl_khr_fp16 #else -float __ovld sincos(float x, __global float *cosval); -float2 __ovld sincos(float2 x, __global float2 *cosval); -float3 __ovld sincos(float3 x, __global float3 *cosval); -float4 __ovld sincos(float4 x, __global float4 *cosval); -float8 __ovld sincos(float8 x, __global float8 *cosval); -float16 __ovld sincos(float16 x, __global float16 *cosval); -float __ovld sincos(float x, __local float *cosval); -float2 __ovld sincos(float2 x, __local float2 *cosval); -float3 __ovld sincos(float3 x, __local float3 *cosval); -float4 __ovld sincos(float4 x, __local float4 *cosval); -float8 __ovld sincos(float8 x, __local float8 *cosval); -float16 __ovld sincos(float16 x, __local float16 *cosval); -float __ovld sincos(float x, __private float *cosval); -float2 __ovld sincos(float2 x, __private float2 *cosval); -float3 __ovld sincos(float3 x, __private float3 *cosval); -float4 __ovld sincos(float4 x, __private float4 *cosval); -float8 __ovld sincos(float8 x, __private float8 *cosval); -float16 __ovld sincos(float16 x, __private float16 *cosval); +float __ovld sincos(float, __global float *cosval); +float2 __ovld sincos(float2, __global float2 *cosval); +float3 __ovld sincos(float3, __global float3 *cosval); +float4 __ovld sincos(float4, __global float4 *cosval); +float8 __ovld sincos(float8, __global float8 *cosval); +float16 __ovld sincos(float16, __global float16 *cosval); +float __ovld sincos(float, __local float *cosval); +float2 __ovld sincos(float2, __local float2 *cosval); +float3 __ovld sincos(float3, __local float3 *cosval); +float4 __ovld sincos(float4, __local float4 *cosval); +float8 __ovld sincos(float8, __local float8 *cosval); +float16 __ovld sincos(float16, __local float16 *cosval); +float __ovld sincos(float, __private float *cosval); +float2 __ovld sincos(float2, __private float2 *cosval); +float3 __ovld sincos(float3, __private float3 *cosval); +float4 __ovld sincos(float4, __private float4 *cosval); +float8 __ovld sincos(float8, __private float8 *cosval); +float16 __ovld sincos(float16, __private float16 *cosval); #ifdef cl_khr_fp64 -double __ovld sincos(double x, __global double *cosval); -double2 __ovld sincos(double2 x, __global double2 *cosval); -double3 __ovld sincos(double3 x, __global double3 *cosval); -double4 __ovld sincos(double4 x, __global double4 *cosval); -double8 __ovld sincos(double8 x, __global double8 *cosval); -double16 __ovld sincos(double16 x, __global double16 *cosval); -double __ovld sincos(double x, __local double *cosval); -double2 __ovld sincos(double2 x, __local double2 *cosval); -double3 __ovld sincos(double3 x, __local double3 *cosval); -double4 __ovld sincos(double4 x, __local double4 *cosval); -double8 __ovld sincos(double8 x, __local double8 *cosval); -double16 __ovld sincos(double16 x, __local double16 *cosval); -double __ovld sincos(double x, __private double *cosval); -double2 __ovld sincos(double2 x, __private double2 *cosval); -double3 __ovld sincos(double3 x, __private double3 *cosval); -double4 __ovld sincos(double4 x, __private double4 *cosval); -double8 __ovld sincos(double8 x, __private double8 *cosval); -double16 __ovld sincos(double16 x, __private double16 *cosval); +double __ovld sincos(double, __global double *cosval); +double2 __ovld sincos(double2, __global double2 *cosval); +double3 __ovld sincos(double3, __global double3 *cosval); +double4 __ovld sincos(double4, __global double4 *cosval); +double8 __ovld sincos(double8, __global double8 *cosval); +double16 __ovld sincos(double16, __global double16 *cosval); +double __ovld sincos(double, __local double *cosval); +double2 __ovld sincos(double2, __local double2 *cosval); +double3 __ovld sincos(double3, __local double3 *cosval); +double4 __ovld sincos(double4, __local double4 *cosval); +double8 __ovld sincos(double8, __local double8 *cosval); +double16 __ovld sincos(double16, __local double16 *cosval); +double __ovld sincos(double, __private double *cosval); +double2 __ovld sincos(double2, __private double2 *cosval); +double3 __ovld sincos(double3, __private double3 *cosval); +double4 __ovld sincos(double4, __private double4 *cosval); +double8 __ovld sincos(double8, __private double8 *cosval); +double16 __ovld sincos(double16, __private double16 *cosval); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld sincos(half x, __global half *cosval); -half2 __ovld sincos(half2 x, __global half2 *cosval); -half3 __ovld sincos(half3 x, __global half3 *cosval); -half4 __ovld sincos(half4 x, __global half4 *cosval); -half8 __ovld sincos(half8 x, __global half8 *cosval); -half16 __ovld sincos(half16 x, __global half16 *cosval); -half __ovld sincos(half x, __local half *cosval); -half2 __ovld sincos(half2 x, __local half2 *cosval); -half3 __ovld sincos(half3 x, __local half3 *cosval); -half4 __ovld sincos(half4 x, __local half4 *cosval); -half8 __ovld sincos(half8 x, __local half8 *cosval); -half16 __ovld sincos(half16 x, __local half16 *cosval); -half __ovld sincos(half x, __private half *cosval); -half2 __ovld sincos(half2 x, __private half2 *cosval); -half3 __ovld sincos(half3 x, __private half3 *cosval); -half4 __ovld sincos(half4 x, __private half4 *cosval); -half8 __ovld sincos(half8 x, __private half8 *cosval); -half16 __ovld sincos(half16 x, __private half16 *cosval); +half __ovld sincos(half, __global half *cosval); +half2 __ovld sincos(half2, __global half2 *cosval); +half3 __ovld sincos(half3, __global half3 *cosval); +half4 __ovld sincos(half4, __global half4 *cosval); +half8 __ovld sincos(half8, __global half8 *cosval); +half16 __ovld sincos(half16, __global half16 *cosval); +half __ovld sincos(half, __local half *cosval); +half2 __ovld sincos(half2, __local half2 *cosval); +half3 __ovld sincos(half3, __local half3 *cosval); +half4 __ovld sincos(half4, __local half4 *cosval); +half8 __ovld sincos(half8, __local half8 *cosval); +half16 __ovld sincos(half16, __local half16 *cosval); +half __ovld sincos(half, __private half *cosval); +half2 __ovld sincos(half2, __private half2 *cosval); +half3 __ovld sincos(half3, __private half3 *cosval); +half4 __ovld sincos(half4, __private half4 *cosval); +half8 __ovld sincos(half8, __private half8 *cosval); +half16 __ovld sincos(half16, __private half16 *cosval); #endif //cl_khr_fp16 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_generic_address_space) /** * Compute hyperbolic sine. @@ -9356,12 +9365,12 @@ float16 __ovld __cnfn half_cos(float16 x); /** * Compute x / y. */ -float __ovld __cnfn half_divide(float x, float y); -float2 __ovld __cnfn half_divide(float2 x, float2 y); -float3 __ovld __cnfn half_divide(float3 x, float3 y); -float4 __ovld __cnfn half_divide(float4 x, float4 y); -float8 __ovld __cnfn half_divide(float8 x, float8 y); -float16 __ovld __cnfn half_divide(float16 x, float16 y); +float __ovld __cnfn half_divide(float, float ); +float2 __ovld __cnfn half_divide(float2, float2 ); +float3 __ovld __cnfn half_divide(float3, float3 ); +float4 __ovld __cnfn half_divide(float4, float4 ); +float8 __ovld __cnfn half_divide(float8, float8 ); +float16 __ovld __cnfn half_divide(float16, float16 ); /** * Compute the base- e exponential of x. @@ -9424,14 +9433,14 @@ float8 __ovld __cnfn half_log10(float8 x); float16 __ovld __cnfn half_log10(float16 x); /** - * Compute x to the power y, where x is >= 0. + * Compute x to the power, where x is >= 0. */ -float __ovld __cnfn half_powr(float x, float y); -float2 __ovld __cnfn half_powr(float2 x, float2 y); -float3 __ovld __cnfn half_powr(float3 x, float3 y); -float4 __ovld __cnfn half_powr(float4 x, float4 y); -float8 __ovld __cnfn half_powr(float8 x, float8 y); -float16 __ovld __cnfn half_powr(float16 x, float16 y); +float __ovld __cnfn half_powr(float, float ); +float2 __ovld __cnfn half_powr(float2, float2 ); +float3 __ovld __cnfn half_powr(float3, float3 ); +float4 __ovld __cnfn half_powr(float4, float4 ); +float8 __ovld __cnfn half_powr(float8, float8 ); +float16 __ovld __cnfn half_powr(float16, float16 ); /** * Compute reciprocal. @@ -9498,12 +9507,12 @@ float16 __ovld __cnfn native_cos(float16 x); * Compute x / y over an implementation-defined range. * The maximum error is implementation-defined. */ -float __ovld __cnfn native_divide(float x, float y); -float2 __ovld __cnfn native_divide(float2 x, float2 y); -float3 __ovld __cnfn native_divide(float3 x, float3 y); -float4 __ovld __cnfn native_divide(float4 x, float4 y); -float8 __ovld __cnfn native_divide(float8 x, float8 y); -float16 __ovld __cnfn native_divide(float16 x, float16 y); +float __ovld __cnfn native_divide(float, float ); +float2 __ovld __cnfn native_divide(float2, float2 ); +float3 __ovld __cnfn native_divide(float3, float3 ); +float4 __ovld __cnfn native_divide(float4, float4 ); +float8 __ovld __cnfn native_divide(float8, float8 ); +float16 __ovld __cnfn native_divide(float16, float16 ); /** * Compute the base- e exponential of x over an @@ -9576,16 +9585,16 @@ float8 __ovld __cnfn native_log10(float8 x); float16 __ovld __cnfn native_log10(float16 x); /** - * Compute x to the power y, where x is >= 0. The range of + * Compute x to the power, where x is >= 0. The range of * x and y are implementation-defined. The maximum error * is implementation-defined. */ -float __ovld __cnfn native_powr(float x, float y); -float2 __ovld __cnfn native_powr(float2 x, float2 y); -float3 __ovld __cnfn native_powr(float3 x, float3 y); -float4 __ovld __cnfn native_powr(float4 x, float4 y); -float8 __ovld __cnfn native_powr(float8 x, float8 y); -float16 __ovld __cnfn native_powr(float16 x, float16 y); +float __ovld __cnfn native_powr(float, float ); +float2 __ovld __cnfn native_powr(float2, float2 ); +float3 __ovld __cnfn native_powr(float3, float3 ); +float4 __ovld __cnfn native_powr(float4, float4 ); +float8 __ovld __cnfn native_powr(float8, float8 ); +float16 __ovld __cnfn native_powr(float16, float16 ); /** * Compute reciprocal over an implementation-defined @@ -9699,308 +9708,308 @@ ulong16 __ovld __cnfn abs(ulong16 x); /** * Returns | x - y | without modulo overflow. */ -uchar __ovld __cnfn abs_diff(char x, char y); -uchar __ovld __cnfn abs_diff(uchar x, uchar y); -uchar2 __ovld __cnfn abs_diff(char2 x, char2 y); -uchar2 __ovld __cnfn abs_diff(uchar2 x, uchar2 y); -uchar3 __ovld __cnfn abs_diff(char3 x, char3 y); -uchar3 __ovld __cnfn abs_diff(uchar3 x, uchar3 y); -uchar4 __ovld __cnfn abs_diff(char4 x, char4 y); -uchar4 __ovld __cnfn abs_diff(uchar4 x, uchar4 y); -uchar8 __ovld __cnfn abs_diff(char8 x, char8 y); -uchar8 __ovld __cnfn abs_diff(uchar8 x, uchar8 y); -uchar16 __ovld __cnfn abs_diff(char16 x, char16 y); -uchar16 __ovld __cnfn abs_diff(uchar16 x, uchar16 y); -ushort __ovld __cnfn abs_diff(short x, short y); -ushort __ovld __cnfn abs_diff(ushort x, ushort y); -ushort2 __ovld __cnfn abs_diff(short2 x, short2 y); -ushort2 __ovld __cnfn abs_diff(ushort2 x, ushort2 y); -ushort3 __ovld __cnfn abs_diff(short3 x, short3 y); -ushort3 __ovld __cnfn abs_diff(ushort3 x, ushort3 y); -ushort4 __ovld __cnfn abs_diff(short4 x, short4 y); -ushort4 __ovld __cnfn abs_diff(ushort4 x, ushort4 y); -ushort8 __ovld __cnfn abs_diff(short8 x, short8 y); -ushort8 __ovld __cnfn abs_diff(ushort8 x, ushort8 y); -ushort16 __ovld __cnfn abs_diff(short16 x, short16 y); -ushort16 __ovld __cnfn abs_diff(ushort16 x, ushort16 y); -uint __ovld __cnfn abs_diff(int x, int y); -uint __ovld __cnfn abs_diff(uint x, uint y); -uint2 __ovld __cnfn abs_diff(int2 x, int2 y); -uint2 __ovld __cnfn abs_diff(uint2 x, uint2 y); -uint3 __ovld __cnfn abs_diff(int3 x, int3 y); -uint3 __ovld __cnfn abs_diff(uint3 x, uint3 y); -uint4 __ovld __cnfn abs_diff(int4 x, int4 y); -uint4 __ovld __cnfn abs_diff(uint4 x, uint4 y); -uint8 __ovld __cnfn abs_diff(int8 x, int8 y); -uint8 __ovld __cnfn abs_diff(uint8 x, uint8 y); -uint16 __ovld __cnfn abs_diff(int16 x, int16 y); -uint16 __ovld __cnfn abs_diff(uint16 x, uint16 y); -ulong __ovld __cnfn abs_diff(long x, long y); -ulong __ovld __cnfn abs_diff(ulong x, ulong y); -ulong2 __ovld __cnfn abs_diff(long2 x, long2 y); -ulong2 __ovld __cnfn abs_diff(ulong2 x, ulong2 y); -ulong3 __ovld __cnfn abs_diff(long3 x, long3 y); -ulong3 __ovld __cnfn abs_diff(ulong3 x, ulong3 y); -ulong4 __ovld __cnfn abs_diff(long4 x, long4 y); -ulong4 __ovld __cnfn abs_diff(ulong4 x, ulong4 y); -ulong8 __ovld __cnfn abs_diff(long8 x, long8 y); -ulong8 __ovld __cnfn abs_diff(ulong8 x, ulong8 y); -ulong16 __ovld __cnfn abs_diff(long16 x, long16 y); -ulong16 __ovld __cnfn abs_diff(ulong16 x, ulong16 y); +uchar __ovld __cnfn abs_diff(char, char ); +uchar __ovld __cnfn abs_diff(uchar, uchar ); +uchar2 __ovld __cnfn abs_diff(char2, char2 ); +uchar2 __ovld __cnfn abs_diff(uchar2, uchar2 ); +uchar3 __ovld __cnfn abs_diff(char3, char3 ); +uchar3 __ovld __cnfn abs_diff(uchar3, uchar3 ); +uchar4 __ovld __cnfn abs_diff(char4, char4 ); +uchar4 __ovld __cnfn abs_diff(uchar4, uchar4 ); +uchar8 __ovld __cnfn abs_diff(char8, char8 ); +uchar8 __ovld __cnfn abs_diff(uchar8, uchar8 ); +uchar16 __ovld __cnfn abs_diff(char16, char16 ); +uchar16 __ovld __cnfn abs_diff(uchar16, uchar16 ); +ushort __ovld __cnfn abs_diff(short, short ); +ushort __ovld __cnfn abs_diff(ushort, ushort ); +ushort2 __ovld __cnfn abs_diff(short2, short2 ); +ushort2 __ovld __cnfn abs_diff(ushort2, ushort2 ); +ushort3 __ovld __cnfn abs_diff(short3, short3 ); +ushort3 __ovld __cnfn abs_diff(ushort3, ushort3 ); +ushort4 __ovld __cnfn abs_diff(short4, short4 ); +ushort4 __ovld __cnfn abs_diff(ushort4, ushort4 ); +ushort8 __ovld __cnfn abs_diff(short8, short8 ); +ushort8 __ovld __cnfn abs_diff(ushort8, ushort8 ); +ushort16 __ovld __cnfn abs_diff(short16, short16 ); +ushort16 __ovld __cnfn abs_diff(ushort16, ushort16 ); +uint __ovld __cnfn abs_diff(int, int ); +uint __ovld __cnfn abs_diff(uint, uint ); +uint2 __ovld __cnfn abs_diff(int2, int2 ); +uint2 __ovld __cnfn abs_diff(uint2, uint2 ); +uint3 __ovld __cnfn abs_diff(int3, int3 ); +uint3 __ovld __cnfn abs_diff(uint3, uint3 ); +uint4 __ovld __cnfn abs_diff(int4, int4 ); +uint4 __ovld __cnfn abs_diff(uint4, uint4 ); +uint8 __ovld __cnfn abs_diff(int8, int8 ); +uint8 __ovld __cnfn abs_diff(uint8, uint8 ); +uint16 __ovld __cnfn abs_diff(int16, int16 ); +uint16 __ovld __cnfn abs_diff(uint16, uint16 ); +ulong __ovld __cnfn abs_diff(long, long ); +ulong __ovld __cnfn abs_diff(ulong, ulong ); +ulong2 __ovld __cnfn abs_diff(long2, long2 ); +ulong2 __ovld __cnfn abs_diff(ulong2, ulong2 ); +ulong3 __ovld __cnfn abs_diff(long3, long3 ); +ulong3 __ovld __cnfn abs_diff(ulong3, ulong3 ); +ulong4 __ovld __cnfn abs_diff(long4, long4 ); +ulong4 __ovld __cnfn abs_diff(ulong4, ulong4 ); +ulong8 __ovld __cnfn abs_diff(long8, long8 ); +ulong8 __ovld __cnfn abs_diff(ulong8, ulong8 ); +ulong16 __ovld __cnfn abs_diff(long16, long16 ); +ulong16 __ovld __cnfn abs_diff(ulong16, ulong16 ); /** * Returns x + y and saturates the result. */ -char __ovld __cnfn add_sat(char x, char y); -uchar __ovld __cnfn add_sat(uchar x, uchar y); -char2 __ovld __cnfn add_sat(char2 x, char2 y); -uchar2 __ovld __cnfn add_sat(uchar2 x, uchar2 y); -char3 __ovld __cnfn add_sat(char3 x, char3 y); -uchar3 __ovld __cnfn add_sat(uchar3 x, uchar3 y); -char4 __ovld __cnfn add_sat(char4 x, char4 y); -uchar4 __ovld __cnfn add_sat(uchar4 x, uchar4 y); -char8 __ovld __cnfn add_sat(char8 x, char8 y); -uchar8 __ovld __cnfn add_sat(uchar8 x, uchar8 y); -char16 __ovld __cnfn add_sat(char16 x, char16 y); -uchar16 __ovld __cnfn add_sat(uchar16 x, uchar16 y); -short __ovld __cnfn add_sat(short x, short y); -ushort __ovld __cnfn add_sat(ushort x, ushort y); -short2 __ovld __cnfn add_sat(short2 x, short2 y); -ushort2 __ovld __cnfn add_sat(ushort2 x, ushort2 y); -short3 __ovld __cnfn add_sat(short3 x, short3 y); -ushort3 __ovld __cnfn add_sat(ushort3 x, ushort3 y); -short4 __ovld __cnfn add_sat(short4 x, short4 y); -ushort4 __ovld __cnfn add_sat(ushort4 x, ushort4 y); -short8 __ovld __cnfn add_sat(short8 x, short8 y); -ushort8 __ovld __cnfn add_sat(ushort8 x, ushort8 y); -short16 __ovld __cnfn add_sat(short16 x, short16 y); -ushort16 __ovld __cnfn add_sat(ushort16 x, ushort16 y); -int __ovld __cnfn add_sat(int x, int y); -uint __ovld __cnfn add_sat(uint x, uint y); -int2 __ovld __cnfn add_sat(int2 x, int2 y); -uint2 __ovld __cnfn add_sat(uint2 x, uint2 y); -int3 __ovld __cnfn add_sat(int3 x, int3 y); -uint3 __ovld __cnfn add_sat(uint3 x, uint3 y); -int4 __ovld __cnfn add_sat(int4 x, int4 y); -uint4 __ovld __cnfn add_sat(uint4 x, uint4 y); -int8 __ovld __cnfn add_sat(int8 x, int8 y); -uint8 __ovld __cnfn add_sat(uint8 x, uint8 y); -int16 __ovld __cnfn add_sat(int16 x, int16 y); -uint16 __ovld __cnfn add_sat(uint16 x, uint16 y); -long __ovld __cnfn add_sat(long x, long y); -ulong __ovld __cnfn add_sat(ulong x, ulong y); -long2 __ovld __cnfn add_sat(long2 x, long2 y); -ulong2 __ovld __cnfn add_sat(ulong2 x, ulong2 y); -long3 __ovld __cnfn add_sat(long3 x, long3 y); -ulong3 __ovld __cnfn add_sat(ulong3 x, ulong3 y); -long4 __ovld __cnfn add_sat(long4 x, long4 y); -ulong4 __ovld __cnfn add_sat(ulong4 x, ulong4 y); -long8 __ovld __cnfn add_sat(long8 x, long8 y); -ulong8 __ovld __cnfn add_sat(ulong8 x, ulong8 y); -long16 __ovld __cnfn add_sat(long16 x, long16 y); -ulong16 __ovld __cnfn add_sat(ulong16 x, ulong16 y); +char __ovld __cnfn add_sat(char, char ); +uchar __ovld __cnfn add_sat(uchar, uchar ); +char2 __ovld __cnfn add_sat(char2, char2 ); +uchar2 __ovld __cnfn add_sat(uchar2, uchar2 ); +char3 __ovld __cnfn add_sat(char3, char3 ); +uchar3 __ovld __cnfn add_sat(uchar3, uchar3 ); +char4 __ovld __cnfn add_sat(char4, char4 ); +uchar4 __ovld __cnfn add_sat(uchar4, uchar4 ); +char8 __ovld __cnfn add_sat(char8, char8 ); +uchar8 __ovld __cnfn add_sat(uchar8, uchar8 ); +char16 __ovld __cnfn add_sat(char16, char16 ); +uchar16 __ovld __cnfn add_sat(uchar16, uchar16 ); +short __ovld __cnfn add_sat(short, short ); +ushort __ovld __cnfn add_sat(ushort, ushort ); +short2 __ovld __cnfn add_sat(short2, short2 ); +ushort2 __ovld __cnfn add_sat(ushort2, ushort2 ); +short3 __ovld __cnfn add_sat(short3, short3 ); +ushort3 __ovld __cnfn add_sat(ushort3, ushort3 ); +short4 __ovld __cnfn add_sat(short4, short4 ); +ushort4 __ovld __cnfn add_sat(ushort4, ushort4 ); +short8 __ovld __cnfn add_sat(short8, short8 ); +ushort8 __ovld __cnfn add_sat(ushort8, ushort8 ); +short16 __ovld __cnfn add_sat(short16, short16 ); +ushort16 __ovld __cnfn add_sat(ushort16, ushort16 ); +int __ovld __cnfn add_sat(int, int ); +uint __ovld __cnfn add_sat(uint, uint ); +int2 __ovld __cnfn add_sat(int2, int2 ); +uint2 __ovld __cnfn add_sat(uint2, uint2 ); +int3 __ovld __cnfn add_sat(int3, int3 ); +uint3 __ovld __cnfn add_sat(uint3, uint3 ); +int4 __ovld __cnfn add_sat(int4, int4 ); +uint4 __ovld __cnfn add_sat(uint4, uint4 ); +int8 __ovld __cnfn add_sat(int8, int8 ); +uint8 __ovld __cnfn add_sat(uint8, uint8 ); +int16 __ovld __cnfn add_sat(int16, int16 ); +uint16 __ovld __cnfn add_sat(uint16, uint16 ); +long __ovld __cnfn add_sat(long, long ); +ulong __ovld __cnfn add_sat(ulong, ulong ); +long2 __ovld __cnfn add_sat(long2, long2 ); +ulong2 __ovld __cnfn add_sat(ulong2, ulong2 ); +long3 __ovld __cnfn add_sat(long3, long3 ); +ulong3 __ovld __cnfn add_sat(ulong3, ulong3 ); +long4 __ovld __cnfn add_sat(long4, long4 ); +ulong4 __ovld __cnfn add_sat(ulong4, ulong4 ); +long8 __ovld __cnfn add_sat(long8, long8 ); +ulong8 __ovld __cnfn add_sat(ulong8, ulong8 ); +long16 __ovld __cnfn add_sat(long16, long16 ); +ulong16 __ovld __cnfn add_sat(ulong16, ulong16 ); /** - * Returns (x + y) >> 1. The intermediate sum does + * Returns (x + ) >> 1. The intermediate sum does * not modulo overflow. */ -char __ovld __cnfn hadd(char x, char y); -uchar __ovld __cnfn hadd(uchar x, uchar y); -char2 __ovld __cnfn hadd(char2 x, char2 y); -uchar2 __ovld __cnfn hadd(uchar2 x, uchar2 y); -char3 __ovld __cnfn hadd(char3 x, char3 y); -uchar3 __ovld __cnfn hadd(uchar3 x, uchar3 y); -char4 __ovld __cnfn hadd(char4 x, char4 y); -uchar4 __ovld __cnfn hadd(uchar4 x, uchar4 y); -char8 __ovld __cnfn hadd(char8 x, char8 y); -uchar8 __ovld __cnfn hadd(uchar8 x, uchar8 y); -char16 __ovld __cnfn hadd(char16 x, char16 y); -uchar16 __ovld __cnfn hadd(uchar16 x, uchar16 y); -short __ovld __cnfn hadd(short x, short y); -ushort __ovld __cnfn hadd(ushort x, ushort y); -short2 __ovld __cnfn hadd(short2 x, short2 y); -ushort2 __ovld __cnfn hadd(ushort2 x, ushort2 y); -short3 __ovld __cnfn hadd(short3 x, short3 y); -ushort3 __ovld __cnfn hadd(ushort3 x, ushort3 y); -short4 __ovld __cnfn hadd(short4 x, short4 y); -ushort4 __ovld __cnfn hadd(ushort4 x, ushort4 y); -short8 __ovld __cnfn hadd(short8 x, short8 y); -ushort8 __ovld __cnfn hadd(ushort8 x, ushort8 y); -short16 __ovld __cnfn hadd(short16 x, short16 y); -ushort16 __ovld __cnfn hadd(ushort16 x, ushort16 y); -int __ovld __cnfn hadd(int x, int y); -uint __ovld __cnfn hadd(uint x, uint y); -int2 __ovld __cnfn hadd(int2 x, int2 y); -uint2 __ovld __cnfn hadd(uint2 x, uint2 y); -int3 __ovld __cnfn hadd(int3 x, int3 y); -uint3 __ovld __cnfn hadd(uint3 x, uint3 y); -int4 __ovld __cnfn hadd(int4 x, int4 y); -uint4 __ovld __cnfn hadd(uint4 x, uint4 y); -int8 __ovld __cnfn hadd(int8 x, int8 y); -uint8 __ovld __cnfn hadd(uint8 x, uint8 y); -int16 __ovld __cnfn hadd(int16 x, int16 y); -uint16 __ovld __cnfn hadd(uint16 x, uint16 y); -long __ovld __cnfn hadd(long x, long y); -ulong __ovld __cnfn hadd(ulong x, ulong y); -long2 __ovld __cnfn hadd(long2 x, long2 y); -ulong2 __ovld __cnfn hadd(ulong2 x, ulong2 y); -long3 __ovld __cnfn hadd(long3 x, long3 y); -ulong3 __ovld __cnfn hadd(ulong3 x, ulong3 y); -long4 __ovld __cnfn hadd(long4 x, long4 y); -ulong4 __ovld __cnfn hadd(ulong4 x, ulong4 y); -long8 __ovld __cnfn hadd(long8 x, long8 y); -ulong8 __ovld __cnfn hadd(ulong8 x, ulong8 y); -long16 __ovld __cnfn hadd(long16 x, long16 y); -ulong16 __ovld __cnfn hadd(ulong16 x, ulong16 y); +char __ovld __cnfn hadd(char, char ); +uchar __ovld __cnfn hadd(uchar, uchar ); +char2 __ovld __cnfn hadd(char2, char2 ); +uchar2 __ovld __cnfn hadd(uchar2, uchar2 ); +char3 __ovld __cnfn hadd(char3, char3 ); +uchar3 __ovld __cnfn hadd(uchar3, uchar3 ); +char4 __ovld __cnfn hadd(char4, char4 ); +uchar4 __ovld __cnfn hadd(uchar4, uchar4 ); +char8 __ovld __cnfn hadd(char8, char8 ); +uchar8 __ovld __cnfn hadd(uchar8, uchar8 ); +char16 __ovld __cnfn hadd(char16, char16 ); +uchar16 __ovld __cnfn hadd(uchar16, uchar16 ); +short __ovld __cnfn hadd(short, short ); +ushort __ovld __cnfn hadd(ushort, ushort ); +short2 __ovld __cnfn hadd(short2, short2 ); +ushort2 __ovld __cnfn hadd(ushort2, ushort2 ); +short3 __ovld __cnfn hadd(short3, short3 ); +ushort3 __ovld __cnfn hadd(ushort3, ushort3 ); +short4 __ovld __cnfn hadd(short4, short4 ); +ushort4 __ovld __cnfn hadd(ushort4, ushort4 ); +short8 __ovld __cnfn hadd(short8, short8 ); +ushort8 __ovld __cnfn hadd(ushort8, ushort8 ); +short16 __ovld __cnfn hadd(short16, short16 ); +ushort16 __ovld __cnfn hadd(ushort16, ushort16 ); +int __ovld __cnfn hadd(int, int ); +uint __ovld __cnfn hadd(uint, uint ); +int2 __ovld __cnfn hadd(int2, int2 ); +uint2 __ovld __cnfn hadd(uint2, uint2 ); +int3 __ovld __cnfn hadd(int3, int3 ); +uint3 __ovld __cnfn hadd(uint3, uint3 ); +int4 __ovld __cnfn hadd(int4, int4 ); +uint4 __ovld __cnfn hadd(uint4, uint4 ); +int8 __ovld __cnfn hadd(int8, int8 ); +uint8 __ovld __cnfn hadd(uint8, uint8 ); +int16 __ovld __cnfn hadd(int16, int16 ); +uint16 __ovld __cnfn hadd(uint16, uint16 ); +long __ovld __cnfn hadd(long, long ); +ulong __ovld __cnfn hadd(ulong, ulong ); +long2 __ovld __cnfn hadd(long2, long2 ); +ulong2 __ovld __cnfn hadd(ulong2, ulong2 ); +long3 __ovld __cnfn hadd(long3, long3 ); +ulong3 __ovld __cnfn hadd(ulong3, ulong3 ); +long4 __ovld __cnfn hadd(long4, long4 ); +ulong4 __ovld __cnfn hadd(ulong4, ulong4 ); +long8 __ovld __cnfn hadd(long8, long8 ); +ulong8 __ovld __cnfn hadd(ulong8, ulong8 ); +long16 __ovld __cnfn hadd(long16, long16 ); +ulong16 __ovld __cnfn hadd(ulong16, ulong16 ); /** * Returns (x + y + 1) >> 1. The intermediate sum * does not modulo overflow. */ -char __ovld __cnfn rhadd(char x, char y); -uchar __ovld __cnfn rhadd(uchar x, uchar y); -char2 __ovld __cnfn rhadd(char2 x, char2 y); -uchar2 __ovld __cnfn rhadd(uchar2 x, uchar2 y); -char3 __ovld __cnfn rhadd(char3 x, char3 y); -uchar3 __ovld __cnfn rhadd(uchar3 x, uchar3 y); -char4 __ovld __cnfn rhadd(char4 x, char4 y); -uchar4 __ovld __cnfn rhadd(uchar4 x, uchar4 y); -char8 __ovld __cnfn rhadd(char8 x, char8 y); -uchar8 __ovld __cnfn rhadd(uchar8 x, uchar8 y); -char16 __ovld __cnfn rhadd(char16 x, char16 y); -uchar16 __ovld __cnfn rhadd(uchar16 x, uchar16 y); -short __ovld __cnfn rhadd(short x, short y); -ushort __ovld __cnfn rhadd(ushort x, ushort y); -short2 __ovld __cnfn rhadd(short2 x, short2 y); -ushort2 __ovld __cnfn rhadd(ushort2 x, ushort2 y); -short3 __ovld __cnfn rhadd(short3 x, short3 y); -ushort3 __ovld __cnfn rhadd(ushort3 x, ushort3 y); -short4 __ovld __cnfn rhadd(short4 x, short4 y); -ushort4 __ovld __cnfn rhadd(ushort4 x, ushort4 y); -short8 __ovld __cnfn rhadd(short8 x, short8 y); -ushort8 __ovld __cnfn rhadd(ushort8 x, ushort8 y); -short16 __ovld __cnfn rhadd(short16 x, short16 y); -ushort16 __ovld __cnfn rhadd(ushort16 x, ushort16 y); -int __ovld __cnfn rhadd(int x, int y); -uint __ovld __cnfn rhadd(uint x, uint y); -int2 __ovld __cnfn rhadd(int2 x, int2 y); -uint2 __ovld __cnfn rhadd(uint2 x, uint2 y); -int3 __ovld __cnfn rhadd(int3 x, int3 y); -uint3 __ovld __cnfn rhadd(uint3 x, uint3 y); -int4 __ovld __cnfn rhadd(int4 x, int4 y); -uint4 __ovld __cnfn rhadd(uint4 x, uint4 y); -int8 __ovld __cnfn rhadd(int8 x, int8 y); -uint8 __ovld __cnfn rhadd(uint8 x, uint8 y); -int16 __ovld __cnfn rhadd(int16 x, int16 y); -uint16 __ovld __cnfn rhadd(uint16 x, uint16 y); -long __ovld __cnfn rhadd(long x, long y); -ulong __ovld __cnfn rhadd(ulong x, ulong y); -long2 __ovld __cnfn rhadd(long2 x, long2 y); -ulong2 __ovld __cnfn rhadd(ulong2 x, ulong2 y); -long3 __ovld __cnfn rhadd(long3 x, long3 y); -ulong3 __ovld __cnfn rhadd(ulong3 x, ulong3 y); -long4 __ovld __cnfn rhadd(long4 x, long4 y); -ulong4 __ovld __cnfn rhadd(ulong4 x, ulong4 y); -long8 __ovld __cnfn rhadd(long8 x, long8 y); -ulong8 __ovld __cnfn rhadd(ulong8 x, ulong8 y); -long16 __ovld __cnfn rhadd(long16 x, long16 y); -ulong16 __ovld __cnfn rhadd(ulong16 x, ulong16 y); +char __ovld __cnfn rhadd(char, char ); +uchar __ovld __cnfn rhadd(uchar, uchar ); +char2 __ovld __cnfn rhadd(char2, char2 ); +uchar2 __ovld __cnfn rhadd(uchar2, uchar2 ); +char3 __ovld __cnfn rhadd(char3, char3 ); +uchar3 __ovld __cnfn rhadd(uchar3, uchar3 ); +char4 __ovld __cnfn rhadd(char4, char4 ); +uchar4 __ovld __cnfn rhadd(uchar4, uchar4 ); +char8 __ovld __cnfn rhadd(char8, char8 ); +uchar8 __ovld __cnfn rhadd(uchar8, uchar8 ); +char16 __ovld __cnfn rhadd(char16, char16 ); +uchar16 __ovld __cnfn rhadd(uchar16, uchar16 ); +short __ovld __cnfn rhadd(short, short ); +ushort __ovld __cnfn rhadd(ushort, ushort ); +short2 __ovld __cnfn rhadd(short2, short2 ); +ushort2 __ovld __cnfn rhadd(ushort2, ushort2 ); +short3 __ovld __cnfn rhadd(short3, short3 ); +ushort3 __ovld __cnfn rhadd(ushort3, ushort3 ); +short4 __ovld __cnfn rhadd(short4, short4 ); +ushort4 __ovld __cnfn rhadd(ushort4, ushort4 ); +short8 __ovld __cnfn rhadd(short8, short8 ); +ushort8 __ovld __cnfn rhadd(ushort8, ushort8 ); +short16 __ovld __cnfn rhadd(short16, short16 ); +ushort16 __ovld __cnfn rhadd(ushort16, ushort16 ); +int __ovld __cnfn rhadd(int, int ); +uint __ovld __cnfn rhadd(uint, uint ); +int2 __ovld __cnfn rhadd(int2, int2 ); +uint2 __ovld __cnfn rhadd(uint2, uint2 ); +int3 __ovld __cnfn rhadd(int3, int3 ); +uint3 __ovld __cnfn rhadd(uint3, uint3 ); +int4 __ovld __cnfn rhadd(int4, int4 ); +uint4 __ovld __cnfn rhadd(uint4, uint4 ); +int8 __ovld __cnfn rhadd(int8, int8 ); +uint8 __ovld __cnfn rhadd(uint8, uint8 ); +int16 __ovld __cnfn rhadd(int16, int16 ); +uint16 __ovld __cnfn rhadd(uint16, uint16 ); +long __ovld __cnfn rhadd(long, long ); +ulong __ovld __cnfn rhadd(ulong, ulong ); +long2 __ovld __cnfn rhadd(long2, long2 ); +ulong2 __ovld __cnfn rhadd(ulong2, ulong2 ); +long3 __ovld __cnfn rhadd(long3, long3 ); +ulong3 __ovld __cnfn rhadd(ulong3, ulong3 ); +long4 __ovld __cnfn rhadd(long4, long4 ); +ulong4 __ovld __cnfn rhadd(ulong4, ulong4 ); +long8 __ovld __cnfn rhadd(long8, long8 ); +ulong8 __ovld __cnfn rhadd(ulong8, ulong8 ); +long16 __ovld __cnfn rhadd(long16, long16 ); +ulong16 __ovld __cnfn rhadd(ulong16, ulong16 ); /** * Returns min(max(x, minval), maxval). * Results are undefined if minval > maxval. */ -char __ovld __cnfn clamp(char x, char minval, char maxval); -uchar __ovld __cnfn clamp(uchar x, uchar minval, uchar maxval); -char2 __ovld __cnfn clamp(char2 x, char2 minval, char2 maxval); -uchar2 __ovld __cnfn clamp(uchar2 x, uchar2 minval, uchar2 maxval); -char3 __ovld __cnfn clamp(char3 x, char3 minval, char3 maxval); -uchar3 __ovld __cnfn clamp(uchar3 x, uchar3 minval, uchar3 maxval); -char4 __ovld __cnfn clamp(char4 x, char4 minval, char4 maxval); -uchar4 __ovld __cnfn clamp(uchar4 x, uchar4 minval, uchar4 maxval); -char8 __ovld __cnfn clamp(char8 x, char8 minval, char8 maxval); -uchar8 __ovld __cnfn clamp(uchar8 x, uchar8 minval, uchar8 maxval); -char16 __ovld __cnfn clamp(char16 x, char16 minval, char16 maxval); -uchar16 __ovld __cnfn clamp(uchar16 x, uchar16 minval, uchar16 maxval); -short __ovld __cnfn clamp(short x, short minval, short maxval); -ushort __ovld __cnfn clamp(ushort x, ushort minval, ushort maxval); -short2 __ovld __cnfn clamp(short2 x, short2 minval, short2 maxval); -ushort2 __ovld __cnfn clamp(ushort2 x, ushort2 minval, ushort2 maxval); -short3 __ovld __cnfn clamp(short3 x, short3 minval, short3 maxval); -ushort3 __ovld __cnfn clamp(ushort3 x, ushort3 minval, ushort3 maxval); -short4 __ovld __cnfn clamp(short4 x, short4 minval, short4 maxval); -ushort4 __ovld __cnfn clamp(ushort4 x, ushort4 minval, ushort4 maxval); -short8 __ovld __cnfn clamp(short8 x, short8 minval, short8 maxval); -ushort8 __ovld __cnfn clamp(ushort8 x, ushort8 minval, ushort8 maxval); -short16 __ovld __cnfn clamp(short16 x, short16 minval, short16 maxval); -ushort16 __ovld __cnfn clamp(ushort16 x, ushort16 minval, ushort16 maxval); -int __ovld __cnfn clamp(int x, int minval, int maxval); -uint __ovld __cnfn clamp(uint x, uint minval, uint maxval); -int2 __ovld __cnfn clamp(int2 x, int2 minval, int2 maxval); -uint2 __ovld __cnfn clamp(uint2 x, uint2 minval, uint2 maxval); -int3 __ovld __cnfn clamp(int3 x, int3 minval, int3 maxval); -uint3 __ovld __cnfn clamp(uint3 x, uint3 minval, uint3 maxval); -int4 __ovld __cnfn clamp(int4 x, int4 minval, int4 maxval); -uint4 __ovld __cnfn clamp(uint4 x, uint4 minval, uint4 maxval); -int8 __ovld __cnfn clamp(int8 x, int8 minval, int8 maxval); -uint8 __ovld __cnfn clamp(uint8 x, uint8 minval, uint8 maxval); -int16 __ovld __cnfn clamp(int16 x, int16 minval, int16 maxval); -uint16 __ovld __cnfn clamp(uint16 x, uint16 minval, uint16 maxval); -long __ovld __cnfn clamp(long x, long minval, long maxval); -ulong __ovld __cnfn clamp(ulong x, ulong minval, ulong maxval); -long2 __ovld __cnfn clamp(long2 x, long2 minval, long2 maxval); -ulong2 __ovld __cnfn clamp(ulong2 x, ulong2 minval, ulong2 maxval); -long3 __ovld __cnfn clamp(long3 x, long3 minval, long3 maxval); -ulong3 __ovld __cnfn clamp(ulong3 x, ulong3 minval, ulong3 maxval); -long4 __ovld __cnfn clamp(long4 x, long4 minval, long4 maxval); -ulong4 __ovld __cnfn clamp(ulong4 x, ulong4 minval, ulong4 maxval); -long8 __ovld __cnfn clamp(long8 x, long8 minval, long8 maxval); -ulong8 __ovld __cnfn clamp(ulong8 x, ulong8 minval, ulong8 maxval); -long16 __ovld __cnfn clamp(long16 x, long16 minval, long16 maxval); -ulong16 __ovld __cnfn clamp(ulong16 x, ulong16 minval, ulong16 maxval); -char2 __ovld __cnfn clamp(char2 x, char minval, char maxval); -uchar2 __ovld __cnfn clamp(uchar2 x, uchar minval, uchar maxval); -char3 __ovld __cnfn clamp(char3 x, char minval, char maxval); -uchar3 __ovld __cnfn clamp(uchar3 x, uchar minval, uchar maxval); -char4 __ovld __cnfn clamp(char4 x, char minval, char maxval); -uchar4 __ovld __cnfn clamp(uchar4 x, uchar minval, uchar maxval); -char8 __ovld __cnfn clamp(char8 x, char minval, char maxval); -uchar8 __ovld __cnfn clamp(uchar8 x, uchar minval, uchar maxval); -char16 __ovld __cnfn clamp(char16 x, char minval, char maxval); -uchar16 __ovld __cnfn clamp(uchar16 x, uchar minval, uchar maxval); -short2 __ovld __cnfn clamp(short2 x, short minval, short maxval); -ushort2 __ovld __cnfn clamp(ushort2 x, ushort minval, ushort maxval); -short3 __ovld __cnfn clamp(short3 x, short minval, short maxval); -ushort3 __ovld __cnfn clamp(ushort3 x, ushort minval, ushort maxval); -short4 __ovld __cnfn clamp(short4 x, short minval, short maxval); -ushort4 __ovld __cnfn clamp(ushort4 x, ushort minval, ushort maxval); -short8 __ovld __cnfn clamp(short8 x, short minval, short maxval); -ushort8 __ovld __cnfn clamp(ushort8 x, ushort minval, ushort maxval); -short16 __ovld __cnfn clamp(short16 x, short minval, short maxval); -ushort16 __ovld __cnfn clamp(ushort16 x, ushort minval, ushort maxval); -int2 __ovld __cnfn clamp(int2 x, int minval, int maxval); -uint2 __ovld __cnfn clamp(uint2 x, uint minval, uint maxval); -int3 __ovld __cnfn clamp(int3 x, int minval, int maxval); -uint3 __ovld __cnfn clamp(uint3 x, uint minval, uint maxval); -int4 __ovld __cnfn clamp(int4 x, int minval, int maxval); -uint4 __ovld __cnfn clamp(uint4 x, uint minval, uint maxval); -int8 __ovld __cnfn clamp(int8 x, int minval, int maxval); -uint8 __ovld __cnfn clamp(uint8 x, uint minval, uint maxval); -int16 __ovld __cnfn clamp(int16 x, int minval, int maxval); -uint16 __ovld __cnfn clamp(uint16 x, uint minval, uint maxval); -long2 __ovld __cnfn clamp(long2 x, long minval, long maxval); -ulong2 __ovld __cnfn clamp(ulong2 x, ulong minval, ulong maxval); -long3 __ovld __cnfn clamp(long3 x, long minval, long maxval); -ulong3 __ovld __cnfn clamp(ulong3 x, ulong minval, ulong maxval); -long4 __ovld __cnfn clamp(long4 x, long minval, long maxval); -ulong4 __ovld __cnfn clamp(ulong4 x, ulong minval, ulong maxval); -long8 __ovld __cnfn clamp(long8 x, long minval, long maxval); -ulong8 __ovld __cnfn clamp(ulong8 x, ulong minval, ulong maxval); -long16 __ovld __cnfn clamp(long16 x, long minval, long maxval); -ulong16 __ovld __cnfn clamp(ulong16 x, ulong minval, ulong maxval); +char __ovld __cnfn clamp(char, char, char); +uchar __ovld __cnfn clamp(uchar, uchar, uchar); +char2 __ovld __cnfn clamp(char2, char2, char2); +uchar2 __ovld __cnfn clamp(uchar2, uchar2, uchar2); +char3 __ovld __cnfn clamp(char3, char3, char3); +uchar3 __ovld __cnfn clamp(uchar3, uchar3, uchar3); +char4 __ovld __cnfn clamp(char4, char4, char4); +uchar4 __ovld __cnfn clamp(uchar4, uchar4, uchar4); +char8 __ovld __cnfn clamp(char8, char8, char8); +uchar8 __ovld __cnfn clamp(uchar8, uchar8, uchar8); +char16 __ovld __cnfn clamp(char16, char16, char16); +uchar16 __ovld __cnfn clamp(uchar16, uchar16, uchar16); +short __ovld __cnfn clamp(short, short, short); +ushort __ovld __cnfn clamp(ushort, ushort, ushort); +short2 __ovld __cnfn clamp(short2, short2, short2); +ushort2 __ovld __cnfn clamp(ushort2, ushort2, ushort2); +short3 __ovld __cnfn clamp(short3, short3, short3); +ushort3 __ovld __cnfn clamp(ushort3, ushort3, ushort3); +short4 __ovld __cnfn clamp(short4, short4, short4); +ushort4 __ovld __cnfn clamp(ushort4, ushort4, ushort4); +short8 __ovld __cnfn clamp(short8, short8, short8); +ushort8 __ovld __cnfn clamp(ushort8, ushort8, ushort8); +short16 __ovld __cnfn clamp(short16, short16, short16); +ushort16 __ovld __cnfn clamp(ushort16, ushort16, ushort16); +int __ovld __cnfn clamp(int, int, int); +uint __ovld __cnfn clamp(uint, uint, uint); +int2 __ovld __cnfn clamp(int2, int2, int2); +uint2 __ovld __cnfn clamp(uint2, uint2, uint2); +int3 __ovld __cnfn clamp(int3, int3, int3); +uint3 __ovld __cnfn clamp(uint3, uint3, uint3); +int4 __ovld __cnfn clamp(int4, int4, int4); +uint4 __ovld __cnfn clamp(uint4, uint4, uint4); +int8 __ovld __cnfn clamp(int8, int8, int8); +uint8 __ovld __cnfn clamp(uint8, uint8, uint8); +int16 __ovld __cnfn clamp(int16, int16, int16); +uint16 __ovld __cnfn clamp(uint16, uint16, uint16); +long __ovld __cnfn clamp(long, long, long); +ulong __ovld __cnfn clamp(ulong, ulong, ulong); +long2 __ovld __cnfn clamp(long2, long2, long2); +ulong2 __ovld __cnfn clamp(ulong2, ulong2, ulong2); +long3 __ovld __cnfn clamp(long3, long3, long3); +ulong3 __ovld __cnfn clamp(ulong3, ulong3, ulong3); +long4 __ovld __cnfn clamp(long4, long4, long4); +ulong4 __ovld __cnfn clamp(ulong4, ulong4, ulong4); +long8 __ovld __cnfn clamp(long8, long8, long8); +ulong8 __ovld __cnfn clamp(ulong8, ulong8, ulong8); +long16 __ovld __cnfn clamp(long16, long16, long16); +ulong16 __ovld __cnfn clamp(ulong16, ulong16, ulong16); +char2 __ovld __cnfn clamp(char2, char, char); +uchar2 __ovld __cnfn clamp(uchar2, uchar, uchar); +char3 __ovld __cnfn clamp(char3, char, char); +uchar3 __ovld __cnfn clamp(uchar3, uchar, uchar); +char4 __ovld __cnfn clamp(char4, char, char); +uchar4 __ovld __cnfn clamp(uchar4, uchar, uchar); +char8 __ovld __cnfn clamp(char8, char, char); +uchar8 __ovld __cnfn clamp(uchar8, uchar, uchar); +char16 __ovld __cnfn clamp(char16, char, char); +uchar16 __ovld __cnfn clamp(uchar16, uchar, uchar); +short2 __ovld __cnfn clamp(short2, short, short); +ushort2 __ovld __cnfn clamp(ushort2, ushort, ushort); +short3 __ovld __cnfn clamp(short3, short, short); +ushort3 __ovld __cnfn clamp(ushort3, ushort, ushort); +short4 __ovld __cnfn clamp(short4, short, short); +ushort4 __ovld __cnfn clamp(ushort4, ushort, ushort); +short8 __ovld __cnfn clamp(short8, short, short); +ushort8 __ovld __cnfn clamp(ushort8, ushort, ushort); +short16 __ovld __cnfn clamp(short16, short, short); +ushort16 __ovld __cnfn clamp(ushort16, ushort, ushort); +int2 __ovld __cnfn clamp(int2, int, int); +uint2 __ovld __cnfn clamp(uint2, uint, uint); +int3 __ovld __cnfn clamp(int3, int, int); +uint3 __ovld __cnfn clamp(uint3, uint, uint); +int4 __ovld __cnfn clamp(int4, int, int); +uint4 __ovld __cnfn clamp(uint4, uint, uint); +int8 __ovld __cnfn clamp(int8, int, int); +uint8 __ovld __cnfn clamp(uint8, uint, uint); +int16 __ovld __cnfn clamp(int16, int, int); +uint16 __ovld __cnfn clamp(uint16, uint, uint); +long2 __ovld __cnfn clamp(long2, long, long); +ulong2 __ovld __cnfn clamp(ulong2, ulong, ulong); +long3 __ovld __cnfn clamp(long3, long, long); +ulong3 __ovld __cnfn clamp(ulong3, ulong, ulong); +long4 __ovld __cnfn clamp(long4, long, long); +ulong4 __ovld __cnfn clamp(ulong4, ulong, ulong); +long8 __ovld __cnfn clamp(long8, long, long); +ulong8 __ovld __cnfn clamp(ulong8, ulong, ulong); +long16 __ovld __cnfn clamp(long16, long, long); +ulong16 __ovld __cnfn clamp(ulong16, ulong, ulong); /** - * Returns the number of leading 0-bits in x, starting + * Returns the number of leading 0-bits in, starting * at the most significant bit position. */ char __ovld __cnfn clz(char x); @@ -10055,399 +10064,399 @@ ulong16 __ovld __cnfn clz(ulong16 x); /** * Returns the count of trailing 0-bits in x. If x is 0, * returns the size in bits of the type of x or - * component type of x, if x is a vector. + * component type of, if x is a vector. */ #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -char __ovld ctz(char x); -uchar __ovld ctz(uchar x); -char2 __ovld ctz(char2 x); -uchar2 __ovld ctz(uchar2 x); -char3 __ovld ctz(char3 x); -uchar3 __ovld ctz(uchar3 x); -char4 __ovld ctz(char4 x); -uchar4 __ovld ctz(uchar4 x); -char8 __ovld ctz(char8 x); -uchar8 __ovld ctz(uchar8 x); -char16 __ovld ctz(char16 x); -uchar16 __ovld ctz(uchar16 x); -short __ovld ctz(short x); -ushort __ovld ctz(ushort x); -short2 __ovld ctz(short2 x); -ushort2 __ovld ctz(ushort2 x); -short3 __ovld ctz(short3 x); -ushort3 __ovld ctz(ushort3 x); -short4 __ovld ctz(short4 x); -ushort4 __ovld ctz(ushort4 x); -short8 __ovld ctz(short8 x); -ushort8 __ovld ctz(ushort8 x); -short16 __ovld ctz(short16 x); -ushort16 __ovld ctz(ushort16 x); -int __ovld ctz(int x); -uint __ovld ctz(uint x); -int2 __ovld ctz(int2 x); -uint2 __ovld ctz(uint2 x); -int3 __ovld ctz(int3 x); -uint3 __ovld ctz(uint3 x); -int4 __ovld ctz(int4 x); -uint4 __ovld ctz(uint4 x); -int8 __ovld ctz(int8 x); -uint8 __ovld ctz(uint8 x); -int16 __ovld ctz(int16 x); -uint16 __ovld ctz(uint16 x); -long __ovld ctz(long x); -ulong __ovld ctz(ulong x); -long2 __ovld ctz(long2 x); -ulong2 __ovld ctz(ulong2 x); -long3 __ovld ctz(long3 x); -ulong3 __ovld ctz(ulong3 x); -long4 __ovld ctz(long4 x); -ulong4 __ovld ctz(ulong4 x); -long8 __ovld ctz(long8 x); -ulong8 __ovld ctz(ulong8 x); -long16 __ovld ctz(long16 x); -ulong16 __ovld ctz(ulong16 x); +char __ovld __cnfn ctz(char x); +uchar __ovld __cnfn ctz(uchar x); +char2 __ovld __cnfn ctz(char2 x); +uchar2 __ovld __cnfn ctz(uchar2 x); +char3 __ovld __cnfn ctz(char3 x); +uchar3 __ovld __cnfn ctz(uchar3 x); +char4 __ovld __cnfn ctz(char4 x); +uchar4 __ovld __cnfn ctz(uchar4 x); +char8 __ovld __cnfn ctz(char8 x); +uchar8 __ovld __cnfn ctz(uchar8 x); +char16 __ovld __cnfn ctz(char16 x); +uchar16 __ovld __cnfn ctz(uchar16 x); +short __ovld __cnfn ctz(short x); +ushort __ovld __cnfn ctz(ushort x); +short2 __ovld __cnfn ctz(short2 x); +ushort2 __ovld __cnfn ctz(ushort2 x); +short3 __ovld __cnfn ctz(short3 x); +ushort3 __ovld __cnfn ctz(ushort3 x); +short4 __ovld __cnfn ctz(short4 x); +ushort4 __ovld __cnfn ctz(ushort4 x); +short8 __ovld __cnfn ctz(short8 x); +ushort8 __ovld __cnfn ctz(ushort8 x); +short16 __ovld __cnfn ctz(short16 x); +ushort16 __ovld __cnfn ctz(ushort16 x); +int __ovld __cnfn ctz(int x); +uint __ovld __cnfn ctz(uint x); +int2 __ovld __cnfn ctz(int2 x); +uint2 __ovld __cnfn ctz(uint2 x); +int3 __ovld __cnfn ctz(int3 x); +uint3 __ovld __cnfn ctz(uint3 x); +int4 __ovld __cnfn ctz(int4 x); +uint4 __ovld __cnfn ctz(uint4 x); +int8 __ovld __cnfn ctz(int8 x); +uint8 __ovld __cnfn ctz(uint8 x); +int16 __ovld __cnfn ctz(int16 x); +uint16 __ovld __cnfn ctz(uint16 x); +long __ovld __cnfn ctz(long x); +ulong __ovld __cnfn ctz(ulong x); +long2 __ovld __cnfn ctz(long2 x); +ulong2 __ovld __cnfn ctz(ulong2 x); +long3 __ovld __cnfn ctz(long3 x); +ulong3 __ovld __cnfn ctz(ulong3 x); +long4 __ovld __cnfn ctz(long4 x); +ulong4 __ovld __cnfn ctz(ulong4 x); +long8 __ovld __cnfn ctz(long8 x); +ulong8 __ovld __cnfn ctz(ulong8 x); +long16 __ovld __cnfn ctz(long16 x); +ulong16 __ovld __cnfn ctz(ulong16 x); #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) /** * Returns mul_hi(a, b) + c. */ -char __ovld __cnfn mad_hi(char a, char b, char c); -uchar __ovld __cnfn mad_hi(uchar a, uchar b, uchar c); -char2 __ovld __cnfn mad_hi(char2 a, char2 b, char2 c); -uchar2 __ovld __cnfn mad_hi(uchar2 a, uchar2 b, uchar2 c); -char3 __ovld __cnfn mad_hi(char3 a, char3 b, char3 c); -uchar3 __ovld __cnfn mad_hi(uchar3 a, uchar3 b, uchar3 c); -char4 __ovld __cnfn mad_hi(char4 a, char4 b, char4 c); -uchar4 __ovld __cnfn mad_hi(uchar4 a, uchar4 b, uchar4 c); -char8 __ovld __cnfn mad_hi(char8 a, char8 b, char8 c); -uchar8 __ovld __cnfn mad_hi(uchar8 a, uchar8 b, uchar8 c); -char16 __ovld __cnfn mad_hi(char16 a, char16 b, char16 c); -uchar16 __ovld __cnfn mad_hi(uchar16 a, uchar16 b, uchar16 c); -short __ovld __cnfn mad_hi(short a, short b, short c); -ushort __ovld __cnfn mad_hi(ushort a, ushort b, ushort c); -short2 __ovld __cnfn mad_hi(short2 a, short2 b, short2 c); -ushort2 __ovld __cnfn mad_hi(ushort2 a, ushort2 b, ushort2 c); -short3 __ovld __cnfn mad_hi(short3 a, short3 b, short3 c); -ushort3 __ovld __cnfn mad_hi(ushort3 a, ushort3 b, ushort3 c); -short4 __ovld __cnfn mad_hi(short4 a, short4 b, short4 c); -ushort4 __ovld __cnfn mad_hi(ushort4 a, ushort4 b, ushort4 c); -short8 __ovld __cnfn mad_hi(short8 a, short8 b, short8 c); -ushort8 __ovld __cnfn mad_hi(ushort8 a, ushort8 b, ushort8 c); -short16 __ovld __cnfn mad_hi(short16 a, short16 b, short16 c); -ushort16 __ovld __cnfn mad_hi(ushort16 a, ushort16 b, ushort16 c); -int __ovld __cnfn mad_hi(int a, int b, int c); -uint __ovld __cnfn mad_hi(uint a, uint b, uint c); -int2 __ovld __cnfn mad_hi(int2 a, int2 b, int2 c); -uint2 __ovld __cnfn mad_hi(uint2 a, uint2 b, uint2 c); -int3 __ovld __cnfn mad_hi(int3 a, int3 b, int3 c); -uint3 __ovld __cnfn mad_hi(uint3 a, uint3 b, uint3 c); -int4 __ovld __cnfn mad_hi(int4 a, int4 b, int4 c); -uint4 __ovld __cnfn mad_hi(uint4 a, uint4 b, uint4 c); -int8 __ovld __cnfn mad_hi(int8 a, int8 b, int8 c); -uint8 __ovld __cnfn mad_hi(uint8 a, uint8 b, uint8 c); -int16 __ovld __cnfn mad_hi(int16 a, int16 b, int16 c); -uint16 __ovld __cnfn mad_hi(uint16 a, uint16 b, uint16 c); -long __ovld __cnfn mad_hi(long a, long b, long c); -ulong __ovld __cnfn mad_hi(ulong a, ulong b, ulong c); -long2 __ovld __cnfn mad_hi(long2 a, long2 b, long2 c); -ulong2 __ovld __cnfn mad_hi(ulong2 a, ulong2 b, ulong2 c); -long3 __ovld __cnfn mad_hi(long3 a, long3 b, long3 c); -ulong3 __ovld __cnfn mad_hi(ulong3 a, ulong3 b, ulong3 c); -long4 __ovld __cnfn mad_hi(long4 a, long4 b, long4 c); -ulong4 __ovld __cnfn mad_hi(ulong4 a, ulong4 b, ulong4 c); -long8 __ovld __cnfn mad_hi(long8 a, long8 b, long8 c); -ulong8 __ovld __cnfn mad_hi(ulong8 a, ulong8 b, ulong8 c); -long16 __ovld __cnfn mad_hi(long16 a, long16 b, long16 c); -ulong16 __ovld __cnfn mad_hi(ulong16 a, ulong16 b, ulong16 c); +char __ovld __cnfn mad_hi(char, char, char); +uchar __ovld __cnfn mad_hi(uchar, uchar, uchar); +char2 __ovld __cnfn mad_hi(char2, char2, char2); +uchar2 __ovld __cnfn mad_hi(uchar2, uchar2, uchar2); +char3 __ovld __cnfn mad_hi(char3, char3, char3); +uchar3 __ovld __cnfn mad_hi(uchar3, uchar3, uchar3); +char4 __ovld __cnfn mad_hi(char4, char4, char4); +uchar4 __ovld __cnfn mad_hi(uchar4, uchar4, uchar4); +char8 __ovld __cnfn mad_hi(char8, char8, char8); +uchar8 __ovld __cnfn mad_hi(uchar8, uchar8, uchar8); +char16 __ovld __cnfn mad_hi(char16, char16, char16); +uchar16 __ovld __cnfn mad_hi(uchar16, uchar16, uchar16); +short __ovld __cnfn mad_hi(short, short, short); +ushort __ovld __cnfn mad_hi(ushort, ushort, ushort); +short2 __ovld __cnfn mad_hi(short2, short2, short2); +ushort2 __ovld __cnfn mad_hi(ushort2, ushort2, ushort2); +short3 __ovld __cnfn mad_hi(short3, short3, short3); +ushort3 __ovld __cnfn mad_hi(ushort3, ushort3, ushort3); +short4 __ovld __cnfn mad_hi(short4, short4, short4); +ushort4 __ovld __cnfn mad_hi(ushort4, ushort4, ushort4); +short8 __ovld __cnfn mad_hi(short8, short8, short8); +ushort8 __ovld __cnfn mad_hi(ushort8, ushort8, ushort8); +short16 __ovld __cnfn mad_hi(short16, short16, short16); +ushort16 __ovld __cnfn mad_hi(ushort16, ushort16, ushort16); +int __ovld __cnfn mad_hi(int, int, int); +uint __ovld __cnfn mad_hi(uint, uint, uint); +int2 __ovld __cnfn mad_hi(int2, int2, int2); +uint2 __ovld __cnfn mad_hi(uint2, uint2, uint2); +int3 __ovld __cnfn mad_hi(int3, int3, int3); +uint3 __ovld __cnfn mad_hi(uint3, uint3, uint3); +int4 __ovld __cnfn mad_hi(int4, int4, int4); +uint4 __ovld __cnfn mad_hi(uint4, uint4, uint4); +int8 __ovld __cnfn mad_hi(int8, int8, int8); +uint8 __ovld __cnfn mad_hi(uint8, uint8, uint8); +int16 __ovld __cnfn mad_hi(int16, int16, int16); +uint16 __ovld __cnfn mad_hi(uint16, uint16, uint16); +long __ovld __cnfn mad_hi(long, long, long); +ulong __ovld __cnfn mad_hi(ulong, ulong, ulong); +long2 __ovld __cnfn mad_hi(long2, long2, long2); +ulong2 __ovld __cnfn mad_hi(ulong2, ulong2, ulong2); +long3 __ovld __cnfn mad_hi(long3, long3, long3); +ulong3 __ovld __cnfn mad_hi(ulong3, ulong3, ulong3); +long4 __ovld __cnfn mad_hi(long4, long4, long4); +ulong4 __ovld __cnfn mad_hi(ulong4, ulong4, ulong4); +long8 __ovld __cnfn mad_hi(long8, long8, long8); +ulong8 __ovld __cnfn mad_hi(ulong8, ulong8, ulong8); +long16 __ovld __cnfn mad_hi(long16, long16, long16); +ulong16 __ovld __cnfn mad_hi(ulong16, ulong16, ulong16); /** * Returns a * b + c and saturates the result. */ -char __ovld __cnfn mad_sat(char a, char b, char c); -uchar __ovld __cnfn mad_sat(uchar a, uchar b, uchar c); -char2 __ovld __cnfn mad_sat(char2 a, char2 b, char2 c); -uchar2 __ovld __cnfn mad_sat(uchar2 a, uchar2 b, uchar2 c); -char3 __ovld __cnfn mad_sat(char3 a, char3 b, char3 c); -uchar3 __ovld __cnfn mad_sat(uchar3 a, uchar3 b, uchar3 c); -char4 __ovld __cnfn mad_sat(char4 a, char4 b, char4 c); -uchar4 __ovld __cnfn mad_sat(uchar4 a, uchar4 b, uchar4 c); -char8 __ovld __cnfn mad_sat(char8 a, char8 b, char8 c); -uchar8 __ovld __cnfn mad_sat(uchar8 a, uchar8 b, uchar8 c); -char16 __ovld __cnfn mad_sat(char16 a, char16 b, char16 c); -uchar16 __ovld __cnfn mad_sat(uchar16 a, uchar16 b, uchar16 c); -short __ovld __cnfn mad_sat(short a, short b, short c); -ushort __ovld __cnfn mad_sat(ushort a, ushort b, ushort c); -short2 __ovld __cnfn mad_sat(short2 a, short2 b, short2 c); -ushort2 __ovld __cnfn mad_sat(ushort2 a, ushort2 b, ushort2 c); -short3 __ovld __cnfn mad_sat(short3 a, short3 b, short3 c); -ushort3 __ovld __cnfn mad_sat(ushort3 a, ushort3 b, ushort3 c); -short4 __ovld __cnfn mad_sat(short4 a, short4 b, short4 c); -ushort4 __ovld __cnfn mad_sat(ushort4 a, ushort4 b, ushort4 c); -short8 __ovld __cnfn mad_sat(short8 a, short8 b, short8 c); -ushort8 __ovld __cnfn mad_sat(ushort8 a, ushort8 b, ushort8 c); -short16 __ovld __cnfn mad_sat(short16 a, short16 b, short16 c); -ushort16 __ovld __cnfn mad_sat(ushort16 a, ushort16 b, ushort16 c); -int __ovld __cnfn mad_sat(int a, int b, int c); -uint __ovld __cnfn mad_sat(uint a, uint b, uint c); -int2 __ovld __cnfn mad_sat(int2 a, int2 b, int2 c); -uint2 __ovld __cnfn mad_sat(uint2 a, uint2 b, uint2 c); -int3 __ovld __cnfn mad_sat(int3 a, int3 b, int3 c); -uint3 __ovld __cnfn mad_sat(uint3 a, uint3 b, uint3 c); -int4 __ovld __cnfn mad_sat(int4 a, int4 b, int4 c); -uint4 __ovld __cnfn mad_sat(uint4 a, uint4 b, uint4 c); -int8 __ovld __cnfn mad_sat(int8 a, int8 b, int8 c); -uint8 __ovld __cnfn mad_sat(uint8 a, uint8 b, uint8 c); -int16 __ovld __cnfn mad_sat(int16 a, int16 b, int16 c); -uint16 __ovld __cnfn mad_sat(uint16 a, uint16 b, uint16 c); -long __ovld __cnfn mad_sat(long a, long b, long c); -ulong __ovld __cnfn mad_sat(ulong a, ulong b, ulong c); -long2 __ovld __cnfn mad_sat(long2 a, long2 b, long2 c); -ulong2 __ovld __cnfn mad_sat(ulong2 a, ulong2 b, ulong2 c); -long3 __ovld __cnfn mad_sat(long3 a, long3 b, long3 c); -ulong3 __ovld __cnfn mad_sat(ulong3 a, ulong3 b, ulong3 c); -long4 __ovld __cnfn mad_sat(long4 a, long4 b, long4 c); -ulong4 __ovld __cnfn mad_sat(ulong4 a, ulong4 b, ulong4 c); -long8 __ovld __cnfn mad_sat(long8 a, long8 b, long8 c); -ulong8 __ovld __cnfn mad_sat(ulong8 a, ulong8 b, ulong8 c); -long16 __ovld __cnfn mad_sat(long16 a, long16 b, long16 c); -ulong16 __ovld __cnfn mad_sat(ulong16 a, ulong16 b, ulong16 c); +char __ovld __cnfn mad_sat(char, char, char); +uchar __ovld __cnfn mad_sat(uchar, uchar, uchar); +char2 __ovld __cnfn mad_sat(char2, char2, char2); +uchar2 __ovld __cnfn mad_sat(uchar2, uchar2, uchar2); +char3 __ovld __cnfn mad_sat(char3, char3, char3); +uchar3 __ovld __cnfn mad_sat(uchar3, uchar3, uchar3); +char4 __ovld __cnfn mad_sat(char4, char4, char4); +uchar4 __ovld __cnfn mad_sat(uchar4, uchar4, uchar4); +char8 __ovld __cnfn mad_sat(char8, char8, char8); +uchar8 __ovld __cnfn mad_sat(uchar8, uchar8, uchar8); +char16 __ovld __cnfn mad_sat(char16, char16, char16); +uchar16 __ovld __cnfn mad_sat(uchar16, uchar16, uchar16); +short __ovld __cnfn mad_sat(short, short, short); +ushort __ovld __cnfn mad_sat(ushort, ushort, ushort); +short2 __ovld __cnfn mad_sat(short2, short2, short2); +ushort2 __ovld __cnfn mad_sat(ushort2, ushort2, ushort2); +short3 __ovld __cnfn mad_sat(short3, short3, short3); +ushort3 __ovld __cnfn mad_sat(ushort3, ushort3, ushort3); +short4 __ovld __cnfn mad_sat(short4, short4, short4); +ushort4 __ovld __cnfn mad_sat(ushort4, ushort4, ushort4); +short8 __ovld __cnfn mad_sat(short8, short8, short8); +ushort8 __ovld __cnfn mad_sat(ushort8, ushort8, ushort8); +short16 __ovld __cnfn mad_sat(short16, short16, short16); +ushort16 __ovld __cnfn mad_sat(ushort16, ushort16, ushort16); +int __ovld __cnfn mad_sat(int, int, int); +uint __ovld __cnfn mad_sat(uint, uint, uint); +int2 __ovld __cnfn mad_sat(int2, int2, int2); +uint2 __ovld __cnfn mad_sat(uint2, uint2, uint2); +int3 __ovld __cnfn mad_sat(int3, int3, int3); +uint3 __ovld __cnfn mad_sat(uint3, uint3, uint3); +int4 __ovld __cnfn mad_sat(int4, int4, int4); +uint4 __ovld __cnfn mad_sat(uint4, uint4, uint4); +int8 __ovld __cnfn mad_sat(int8, int8, int8); +uint8 __ovld __cnfn mad_sat(uint8, uint8, uint8); +int16 __ovld __cnfn mad_sat(int16, int16, int16); +uint16 __ovld __cnfn mad_sat(uint16, uint16, uint16); +long __ovld __cnfn mad_sat(long, long, long); +ulong __ovld __cnfn mad_sat(ulong, ulong, ulong); +long2 __ovld __cnfn mad_sat(long2, long2, long2); +ulong2 __ovld __cnfn mad_sat(ulong2, ulong2, ulong2); +long3 __ovld __cnfn mad_sat(long3, long3, long3); +ulong3 __ovld __cnfn mad_sat(ulong3, ulong3, ulong3); +long4 __ovld __cnfn mad_sat(long4, long4, long4); +ulong4 __ovld __cnfn mad_sat(ulong4, ulong4, ulong4); +long8 __ovld __cnfn mad_sat(long8, long8, long8); +ulong8 __ovld __cnfn mad_sat(ulong8, ulong8, ulong8); +long16 __ovld __cnfn mad_sat(long16, long16, long16); +ulong16 __ovld __cnfn mad_sat(ulong16, ulong16, ulong16); /** - * Returns y if x < y, otherwise it returns x. + * Returns y if x <, otherwise it returns x. */ -char __ovld __cnfn max(char x, char y); -uchar __ovld __cnfn max(uchar x, uchar y); -char2 __ovld __cnfn max(char2 x, char2 y); -uchar2 __ovld __cnfn max(uchar2 x, uchar2 y); -char3 __ovld __cnfn max(char3 x, char3 y); -uchar3 __ovld __cnfn max(uchar3 x, uchar3 y); -char4 __ovld __cnfn max(char4 x, char4 y); -uchar4 __ovld __cnfn max(uchar4 x, uchar4 y); -char8 __ovld __cnfn max(char8 x, char8 y); -uchar8 __ovld __cnfn max(uchar8 x, uchar8 y); -char16 __ovld __cnfn max(char16 x, char16 y); -uchar16 __ovld __cnfn max(uchar16 x, uchar16 y); -short __ovld __cnfn max(short x, short y); -ushort __ovld __cnfn max(ushort x, ushort y); -short2 __ovld __cnfn max(short2 x, short2 y); -ushort2 __ovld __cnfn max(ushort2 x, ushort2 y); -short3 __ovld __cnfn max(short3 x, short3 y); -ushort3 __ovld __cnfn max(ushort3 x, ushort3 y); -short4 __ovld __cnfn max(short4 x, short4 y); -ushort4 __ovld __cnfn max(ushort4 x, ushort4 y); -short8 __ovld __cnfn max(short8 x, short8 y); -ushort8 __ovld __cnfn max(ushort8 x, ushort8 y); -short16 __ovld __cnfn max(short16 x, short16 y); -ushort16 __ovld __cnfn max(ushort16 x, ushort16 y); -int __ovld __cnfn max(int x, int y); -uint __ovld __cnfn max(uint x, uint y); -int2 __ovld __cnfn max(int2 x, int2 y); -uint2 __ovld __cnfn max(uint2 x, uint2 y); -int3 __ovld __cnfn max(int3 x, int3 y); -uint3 __ovld __cnfn max(uint3 x, uint3 y); -int4 __ovld __cnfn max(int4 x, int4 y); -uint4 __ovld __cnfn max(uint4 x, uint4 y); -int8 __ovld __cnfn max(int8 x, int8 y); -uint8 __ovld __cnfn max(uint8 x, uint8 y); -int16 __ovld __cnfn max(int16 x, int16 y); -uint16 __ovld __cnfn max(uint16 x, uint16 y); -long __ovld __cnfn max(long x, long y); -ulong __ovld __cnfn max(ulong x, ulong y); -long2 __ovld __cnfn max(long2 x, long2 y); -ulong2 __ovld __cnfn max(ulong2 x, ulong2 y); -long3 __ovld __cnfn max(long3 x, long3 y); -ulong3 __ovld __cnfn max(ulong3 x, ulong3 y); -long4 __ovld __cnfn max(long4 x, long4 y); -ulong4 __ovld __cnfn max(ulong4 x, ulong4 y); -long8 __ovld __cnfn max(long8 x, long8 y); -ulong8 __ovld __cnfn max(ulong8 x, ulong8 y); -long16 __ovld __cnfn max(long16 x, long16 y); -ulong16 __ovld __cnfn max(ulong16 x, ulong16 y); -char2 __ovld __cnfn max(char2 x, char y); -uchar2 __ovld __cnfn max(uchar2 x, uchar y); -char3 __ovld __cnfn max(char3 x, char y); -uchar3 __ovld __cnfn max(uchar3 x, uchar y); -char4 __ovld __cnfn max(char4 x, char y); -uchar4 __ovld __cnfn max(uchar4 x, uchar y); -char8 __ovld __cnfn max(char8 x, char y); -uchar8 __ovld __cnfn max(uchar8 x, uchar y); -char16 __ovld __cnfn max(char16 x, char y); -uchar16 __ovld __cnfn max(uchar16 x, uchar y); -short2 __ovld __cnfn max(short2 x, short y); -ushort2 __ovld __cnfn max(ushort2 x, ushort y); -short3 __ovld __cnfn max(short3 x, short y); -ushort3 __ovld __cnfn max(ushort3 x, ushort y); -short4 __ovld __cnfn max(short4 x, short y); -ushort4 __ovld __cnfn max(ushort4 x, ushort y); -short8 __ovld __cnfn max(short8 x, short y); -ushort8 __ovld __cnfn max(ushort8 x, ushort y); -short16 __ovld __cnfn max(short16 x, short y); -ushort16 __ovld __cnfn max(ushort16 x, ushort y); -int2 __ovld __cnfn max(int2 x, int y); -uint2 __ovld __cnfn max(uint2 x, uint y); -int3 __ovld __cnfn max(int3 x, int y); -uint3 __ovld __cnfn max(uint3 x, uint y); -int4 __ovld __cnfn max(int4 x, int y); -uint4 __ovld __cnfn max(uint4 x, uint y); -int8 __ovld __cnfn max(int8 x, int y); -uint8 __ovld __cnfn max(uint8 x, uint y); -int16 __ovld __cnfn max(int16 x, int y); -uint16 __ovld __cnfn max(uint16 x, uint y); -long2 __ovld __cnfn max(long2 x, long y); -ulong2 __ovld __cnfn max(ulong2 x, ulong y); -long3 __ovld __cnfn max(long3 x, long y); -ulong3 __ovld __cnfn max(ulong3 x, ulong y); -long4 __ovld __cnfn max(long4 x, long y); -ulong4 __ovld __cnfn max(ulong4 x, ulong y); -long8 __ovld __cnfn max(long8 x, long y); -ulong8 __ovld __cnfn max(ulong8 x, ulong y); -long16 __ovld __cnfn max(long16 x, long y); -ulong16 __ovld __cnfn max(ulong16 x, ulong y); +char __ovld __cnfn max(char, char ); +uchar __ovld __cnfn max(uchar, uchar ); +char2 __ovld __cnfn max(char2, char2 ); +uchar2 __ovld __cnfn max(uchar2, uchar2 ); +char3 __ovld __cnfn max(char3, char3 ); +uchar3 __ovld __cnfn max(uchar3, uchar3 ); +char4 __ovld __cnfn max(char4, char4 ); +uchar4 __ovld __cnfn max(uchar4, uchar4 ); +char8 __ovld __cnfn max(char8, char8 ); +uchar8 __ovld __cnfn max(uchar8, uchar8 ); +char16 __ovld __cnfn max(char16, char16 ); +uchar16 __ovld __cnfn max(uchar16, uchar16 ); +short __ovld __cnfn max(short, short ); +ushort __ovld __cnfn max(ushort, ushort ); +short2 __ovld __cnfn max(short2, short2 ); +ushort2 __ovld __cnfn max(ushort2, ushort2 ); +short3 __ovld __cnfn max(short3, short3 ); +ushort3 __ovld __cnfn max(ushort3, ushort3 ); +short4 __ovld __cnfn max(short4, short4 ); +ushort4 __ovld __cnfn max(ushort4, ushort4 ); +short8 __ovld __cnfn max(short8, short8 ); +ushort8 __ovld __cnfn max(ushort8, ushort8 ); +short16 __ovld __cnfn max(short16, short16 ); +ushort16 __ovld __cnfn max(ushort16, ushort16 ); +int __ovld __cnfn max(int, int ); +uint __ovld __cnfn max(uint, uint ); +int2 __ovld __cnfn max(int2, int2 ); +uint2 __ovld __cnfn max(uint2, uint2 ); +int3 __ovld __cnfn max(int3, int3 ); +uint3 __ovld __cnfn max(uint3, uint3 ); +int4 __ovld __cnfn max(int4, int4 ); +uint4 __ovld __cnfn max(uint4, uint4 ); +int8 __ovld __cnfn max(int8, int8 ); +uint8 __ovld __cnfn max(uint8, uint8 ); +int16 __ovld __cnfn max(int16, int16 ); +uint16 __ovld __cnfn max(uint16, uint16 ); +long __ovld __cnfn max(long, long ); +ulong __ovld __cnfn max(ulong, ulong ); +long2 __ovld __cnfn max(long2, long2 ); +ulong2 __ovld __cnfn max(ulong2, ulong2 ); +long3 __ovld __cnfn max(long3, long3 ); +ulong3 __ovld __cnfn max(ulong3, ulong3 ); +long4 __ovld __cnfn max(long4, long4 ); +ulong4 __ovld __cnfn max(ulong4, ulong4 ); +long8 __ovld __cnfn max(long8, long8 ); +ulong8 __ovld __cnfn max(ulong8, ulong8 ); +long16 __ovld __cnfn max(long16, long16 ); +ulong16 __ovld __cnfn max(ulong16, ulong16 ); +char2 __ovld __cnfn max(char2, char ); +uchar2 __ovld __cnfn max(uchar2, uchar ); +char3 __ovld __cnfn max(char3, char ); +uchar3 __ovld __cnfn max(uchar3, uchar ); +char4 __ovld __cnfn max(char4, char ); +uchar4 __ovld __cnfn max(uchar4, uchar ); +char8 __ovld __cnfn max(char8, char ); +uchar8 __ovld __cnfn max(uchar8, uchar ); +char16 __ovld __cnfn max(char16, char ); +uchar16 __ovld __cnfn max(uchar16, uchar ); +short2 __ovld __cnfn max(short2, short ); +ushort2 __ovld __cnfn max(ushort2, ushort ); +short3 __ovld __cnfn max(short3, short ); +ushort3 __ovld __cnfn max(ushort3, ushort ); +short4 __ovld __cnfn max(short4, short ); +ushort4 __ovld __cnfn max(ushort4, ushort ); +short8 __ovld __cnfn max(short8, short ); +ushort8 __ovld __cnfn max(ushort8, ushort ); +short16 __ovld __cnfn max(short16, short ); +ushort16 __ovld __cnfn max(ushort16, ushort ); +int2 __ovld __cnfn max(int2, int ); +uint2 __ovld __cnfn max(uint2, uint ); +int3 __ovld __cnfn max(int3, int ); +uint3 __ovld __cnfn max(uint3, uint ); +int4 __ovld __cnfn max(int4, int ); +uint4 __ovld __cnfn max(uint4, uint ); +int8 __ovld __cnfn max(int8, int ); +uint8 __ovld __cnfn max(uint8, uint ); +int16 __ovld __cnfn max(int16, int ); +uint16 __ovld __cnfn max(uint16, uint ); +long2 __ovld __cnfn max(long2, long ); +ulong2 __ovld __cnfn max(ulong2, ulong ); +long3 __ovld __cnfn max(long3, long ); +ulong3 __ovld __cnfn max(ulong3, ulong ); +long4 __ovld __cnfn max(long4, long ); +ulong4 __ovld __cnfn max(ulong4, ulong ); +long8 __ovld __cnfn max(long8, long ); +ulong8 __ovld __cnfn max(ulong8, ulong ); +long16 __ovld __cnfn max(long16, long ); +ulong16 __ovld __cnfn max(ulong16, ulong ); /** - * Returns y if y < x, otherwise it returns x. + * Returns y if y <, otherwise it returns x. */ -char __ovld __cnfn min(char x, char y); -uchar __ovld __cnfn min(uchar x, uchar y); -char2 __ovld __cnfn min(char2 x, char2 y); -uchar2 __ovld __cnfn min(uchar2 x, uchar2 y); -char3 __ovld __cnfn min(char3 x, char3 y); -uchar3 __ovld __cnfn min(uchar3 x, uchar3 y); -char4 __ovld __cnfn min(char4 x, char4 y); -uchar4 __ovld __cnfn min(uchar4 x, uchar4 y); -char8 __ovld __cnfn min(char8 x, char8 y); -uchar8 __ovld __cnfn min(uchar8 x, uchar8 y); -char16 __ovld __cnfn min(char16 x, char16 y); -uchar16 __ovld __cnfn min(uchar16 x, uchar16 y); -short __ovld __cnfn min(short x, short y); -ushort __ovld __cnfn min(ushort x, ushort y); -short2 __ovld __cnfn min(short2 x, short2 y); -ushort2 __ovld __cnfn min(ushort2 x, ushort2 y); -short3 __ovld __cnfn min(short3 x, short3 y); -ushort3 __ovld __cnfn min(ushort3 x, ushort3 y); -short4 __ovld __cnfn min(short4 x, short4 y); -ushort4 __ovld __cnfn min(ushort4 x, ushort4 y); -short8 __ovld __cnfn min(short8 x, short8 y); -ushort8 __ovld __cnfn min(ushort8 x, ushort8 y); -short16 __ovld __cnfn min(short16 x, short16 y); -ushort16 __ovld __cnfn min(ushort16 x, ushort16 y); -int __ovld __cnfn min(int x, int y); -uint __ovld __cnfn min(uint x, uint y); -int2 __ovld __cnfn min(int2 x, int2 y); -uint2 __ovld __cnfn min(uint2 x, uint2 y); -int3 __ovld __cnfn min(int3 x, int3 y); -uint3 __ovld __cnfn min(uint3 x, uint3 y); -int4 __ovld __cnfn min(int4 x, int4 y); -uint4 __ovld __cnfn min(uint4 x, uint4 y); -int8 __ovld __cnfn min(int8 x, int8 y); -uint8 __ovld __cnfn min(uint8 x, uint8 y); -int16 __ovld __cnfn min(int16 x, int16 y); -uint16 __ovld __cnfn min(uint16 x, uint16 y); -long __ovld __cnfn min(long x, long y); -ulong __ovld __cnfn min(ulong x, ulong y); -long2 __ovld __cnfn min(long2 x, long2 y); -ulong2 __ovld __cnfn min(ulong2 x, ulong2 y); -long3 __ovld __cnfn min(long3 x, long3 y); -ulong3 __ovld __cnfn min(ulong3 x, ulong3 y); -long4 __ovld __cnfn min(long4 x, long4 y); -ulong4 __ovld __cnfn min(ulong4 x, ulong4 y); -long8 __ovld __cnfn min(long8 x, long8 y); -ulong8 __ovld __cnfn min(ulong8 x, ulong8 y); -long16 __ovld __cnfn min(long16 x, long16 y); -ulong16 __ovld __cnfn min(ulong16 x, ulong16 y); -char2 __ovld __cnfn min(char2 x, char y); -uchar2 __ovld __cnfn min(uchar2 x, uchar y); -char3 __ovld __cnfn min(char3 x, char y); -uchar3 __ovld __cnfn min(uchar3 x, uchar y); -char4 __ovld __cnfn min(char4 x, char y); -uchar4 __ovld __cnfn min(uchar4 x, uchar y); -char8 __ovld __cnfn min(char8 x, char y); -uchar8 __ovld __cnfn min(uchar8 x, uchar y); -char16 __ovld __cnfn min(char16 x, char y); -uchar16 __ovld __cnfn min(uchar16 x, uchar y); -short2 __ovld __cnfn min(short2 x, short y); -ushort2 __ovld __cnfn min(ushort2 x, ushort y); -short3 __ovld __cnfn min(short3 x, short y); -ushort3 __ovld __cnfn min(ushort3 x, ushort y); -short4 __ovld __cnfn min(short4 x, short y); -ushort4 __ovld __cnfn min(ushort4 x, ushort y); -short8 __ovld __cnfn min(short8 x, short y); -ushort8 __ovld __cnfn min(ushort8 x, ushort y); -short16 __ovld __cnfn min(short16 x, short y); -ushort16 __ovld __cnfn min(ushort16 x, ushort y); -int2 __ovld __cnfn min(int2 x, int y); -uint2 __ovld __cnfn min(uint2 x, uint y); -int3 __ovld __cnfn min(int3 x, int y); -uint3 __ovld __cnfn min(uint3 x, uint y); -int4 __ovld __cnfn min(int4 x, int y); -uint4 __ovld __cnfn min(uint4 x, uint y); -int8 __ovld __cnfn min(int8 x, int y); -uint8 __ovld __cnfn min(uint8 x, uint y); -int16 __ovld __cnfn min(int16 x, int y); -uint16 __ovld __cnfn min(uint16 x, uint y); -long2 __ovld __cnfn min(long2 x, long y); -ulong2 __ovld __cnfn min(ulong2 x, ulong y); -long3 __ovld __cnfn min(long3 x, long y); -ulong3 __ovld __cnfn min(ulong3 x, ulong y); -long4 __ovld __cnfn min(long4 x, long y); -ulong4 __ovld __cnfn min(ulong4 x, ulong y); -long8 __ovld __cnfn min(long8 x, long y); -ulong8 __ovld __cnfn min(ulong8 x, ulong y); -long16 __ovld __cnfn min(long16 x, long y); -ulong16 __ovld __cnfn min(ulong16 x, ulong y); +char __ovld __cnfn min(char, char ); +uchar __ovld __cnfn min(uchar, uchar ); +char2 __ovld __cnfn min(char2, char2 ); +uchar2 __ovld __cnfn min(uchar2, uchar2 ); +char3 __ovld __cnfn min(char3, char3 ); +uchar3 __ovld __cnfn min(uchar3, uchar3 ); +char4 __ovld __cnfn min(char4, char4 ); +uchar4 __ovld __cnfn min(uchar4, uchar4 ); +char8 __ovld __cnfn min(char8, char8 ); +uchar8 __ovld __cnfn min(uchar8, uchar8 ); +char16 __ovld __cnfn min(char16, char16 ); +uchar16 __ovld __cnfn min(uchar16, uchar16 ); +short __ovld __cnfn min(short, short ); +ushort __ovld __cnfn min(ushort, ushort ); +short2 __ovld __cnfn min(short2, short2 ); +ushort2 __ovld __cnfn min(ushort2, ushort2 ); +short3 __ovld __cnfn min(short3, short3 ); +ushort3 __ovld __cnfn min(ushort3, ushort3 ); +short4 __ovld __cnfn min(short4, short4 ); +ushort4 __ovld __cnfn min(ushort4, ushort4 ); +short8 __ovld __cnfn min(short8, short8 ); +ushort8 __ovld __cnfn min(ushort8, ushort8 ); +short16 __ovld __cnfn min(short16, short16 ); +ushort16 __ovld __cnfn min(ushort16, ushort16 ); +int __ovld __cnfn min(int, int ); +uint __ovld __cnfn min(uint, uint ); +int2 __ovld __cnfn min(int2, int2 ); +uint2 __ovld __cnfn min(uint2, uint2 ); +int3 __ovld __cnfn min(int3, int3 ); +uint3 __ovld __cnfn min(uint3, uint3 ); +int4 __ovld __cnfn min(int4, int4 ); +uint4 __ovld __cnfn min(uint4, uint4 ); +int8 __ovld __cnfn min(int8, int8 ); +uint8 __ovld __cnfn min(uint8, uint8 ); +int16 __ovld __cnfn min(int16, int16 ); +uint16 __ovld __cnfn min(uint16, uint16 ); +long __ovld __cnfn min(long, long ); +ulong __ovld __cnfn min(ulong, ulong ); +long2 __ovld __cnfn min(long2, long2 ); +ulong2 __ovld __cnfn min(ulong2, ulong2 ); +long3 __ovld __cnfn min(long3, long3 ); +ulong3 __ovld __cnfn min(ulong3, ulong3 ); +long4 __ovld __cnfn min(long4, long4 ); +ulong4 __ovld __cnfn min(ulong4, ulong4 ); +long8 __ovld __cnfn min(long8, long8 ); +ulong8 __ovld __cnfn min(ulong8, ulong8 ); +long16 __ovld __cnfn min(long16, long16 ); +ulong16 __ovld __cnfn min(ulong16, ulong16 ); +char2 __ovld __cnfn min(char2, char ); +uchar2 __ovld __cnfn min(uchar2, uchar ); +char3 __ovld __cnfn min(char3, char ); +uchar3 __ovld __cnfn min(uchar3, uchar ); +char4 __ovld __cnfn min(char4, char ); +uchar4 __ovld __cnfn min(uchar4, uchar ); +char8 __ovld __cnfn min(char8, char ); +uchar8 __ovld __cnfn min(uchar8, uchar ); +char16 __ovld __cnfn min(char16, char ); +uchar16 __ovld __cnfn min(uchar16, uchar ); +short2 __ovld __cnfn min(short2, short ); +ushort2 __ovld __cnfn min(ushort2, ushort ); +short3 __ovld __cnfn min(short3, short ); +ushort3 __ovld __cnfn min(ushort3, ushort ); +short4 __ovld __cnfn min(short4, short ); +ushort4 __ovld __cnfn min(ushort4, ushort ); +short8 __ovld __cnfn min(short8, short ); +ushort8 __ovld __cnfn min(ushort8, ushort ); +short16 __ovld __cnfn min(short16, short ); +ushort16 __ovld __cnfn min(ushort16, ushort ); +int2 __ovld __cnfn min(int2, int ); +uint2 __ovld __cnfn min(uint2, uint ); +int3 __ovld __cnfn min(int3, int ); +uint3 __ovld __cnfn min(uint3, uint ); +int4 __ovld __cnfn min(int4, int ); +uint4 __ovld __cnfn min(uint4, uint ); +int8 __ovld __cnfn min(int8, int ); +uint8 __ovld __cnfn min(uint8, uint ); +int16 __ovld __cnfn min(int16, int ); +uint16 __ovld __cnfn min(uint16, uint ); +long2 __ovld __cnfn min(long2, long ); +ulong2 __ovld __cnfn min(ulong2, ulong ); +long3 __ovld __cnfn min(long3, long ); +ulong3 __ovld __cnfn min(ulong3, ulong ); +long4 __ovld __cnfn min(long4, long ); +ulong4 __ovld __cnfn min(ulong4, ulong ); +long8 __ovld __cnfn min(long8, long ); +ulong8 __ovld __cnfn min(ulong8, ulong ); +long16 __ovld __cnfn min(long16, long ); +ulong16 __ovld __cnfn min(ulong16, ulong ); /** * Computes x * y and returns the high half of the * product of x and y. */ -char __ovld __cnfn mul_hi(char x, char y); -uchar __ovld __cnfn mul_hi(uchar x, uchar y); -char2 __ovld __cnfn mul_hi(char2 x, char2 y); -uchar2 __ovld __cnfn mul_hi(uchar2 x, uchar2 y); -char3 __ovld __cnfn mul_hi(char3 x, char3 y); -uchar3 __ovld __cnfn mul_hi(uchar3 x, uchar3 y); -char4 __ovld __cnfn mul_hi(char4 x, char4 y); -uchar4 __ovld __cnfn mul_hi(uchar4 x, uchar4 y); -char8 __ovld __cnfn mul_hi(char8 x, char8 y); -uchar8 __ovld __cnfn mul_hi(uchar8 x, uchar8 y); -char16 __ovld __cnfn mul_hi(char16 x, char16 y); -uchar16 __ovld __cnfn mul_hi(uchar16 x, uchar16 y); -short __ovld __cnfn mul_hi(short x, short y); -ushort __ovld __cnfn mul_hi(ushort x, ushort y); -short2 __ovld __cnfn mul_hi(short2 x, short2 y); -ushort2 __ovld __cnfn mul_hi(ushort2 x, ushort2 y); -short3 __ovld __cnfn mul_hi(short3 x, short3 y); -ushort3 __ovld __cnfn mul_hi(ushort3 x, ushort3 y); -short4 __ovld __cnfn mul_hi(short4 x, short4 y); -ushort4 __ovld __cnfn mul_hi(ushort4 x, ushort4 y); -short8 __ovld __cnfn mul_hi(short8 x, short8 y); -ushort8 __ovld __cnfn mul_hi(ushort8 x, ushort8 y); -short16 __ovld __cnfn mul_hi(short16 x, short16 y); -ushort16 __ovld __cnfn mul_hi(ushort16 x, ushort16 y); -int __ovld __cnfn mul_hi(int x, int y); -uint __ovld __cnfn mul_hi(uint x, uint y); -int2 __ovld __cnfn mul_hi(int2 x, int2 y); -uint2 __ovld __cnfn mul_hi(uint2 x, uint2 y); -int3 __ovld __cnfn mul_hi(int3 x, int3 y); -uint3 __ovld __cnfn mul_hi(uint3 x, uint3 y); -int4 __ovld __cnfn mul_hi(int4 x, int4 y); -uint4 __ovld __cnfn mul_hi(uint4 x, uint4 y); -int8 __ovld __cnfn mul_hi(int8 x, int8 y); -uint8 __ovld __cnfn mul_hi(uint8 x, uint8 y); -int16 __ovld __cnfn mul_hi(int16 x, int16 y); -uint16 __ovld __cnfn mul_hi(uint16 x, uint16 y); -long __ovld __cnfn mul_hi(long x, long y); -ulong __ovld __cnfn mul_hi(ulong x, ulong y); -long2 __ovld __cnfn mul_hi(long2 x, long2 y); -ulong2 __ovld __cnfn mul_hi(ulong2 x, ulong2 y); -long3 __ovld __cnfn mul_hi(long3 x, long3 y); -ulong3 __ovld __cnfn mul_hi(ulong3 x, ulong3 y); -long4 __ovld __cnfn mul_hi(long4 x, long4 y); -ulong4 __ovld __cnfn mul_hi(ulong4 x, ulong4 y); -long8 __ovld __cnfn mul_hi(long8 x, long8 y); -ulong8 __ovld __cnfn mul_hi(ulong8 x, ulong8 y); -long16 __ovld __cnfn mul_hi(long16 x, long16 y); -ulong16 __ovld __cnfn mul_hi(ulong16 x, ulong16 y); +char __ovld __cnfn mul_hi(char, char ); +uchar __ovld __cnfn mul_hi(uchar, uchar ); +char2 __ovld __cnfn mul_hi(char2, char2 ); +uchar2 __ovld __cnfn mul_hi(uchar2, uchar2 ); +char3 __ovld __cnfn mul_hi(char3, char3 ); +uchar3 __ovld __cnfn mul_hi(uchar3, uchar3 ); +char4 __ovld __cnfn mul_hi(char4, char4 ); +uchar4 __ovld __cnfn mul_hi(uchar4, uchar4 ); +char8 __ovld __cnfn mul_hi(char8, char8 ); +uchar8 __ovld __cnfn mul_hi(uchar8, uchar8 ); +char16 __ovld __cnfn mul_hi(char16, char16 ); +uchar16 __ovld __cnfn mul_hi(uchar16, uchar16 ); +short __ovld __cnfn mul_hi(short, short ); +ushort __ovld __cnfn mul_hi(ushort, ushort ); +short2 __ovld __cnfn mul_hi(short2, short2 ); +ushort2 __ovld __cnfn mul_hi(ushort2, ushort2 ); +short3 __ovld __cnfn mul_hi(short3, short3 ); +ushort3 __ovld __cnfn mul_hi(ushort3, ushort3 ); +short4 __ovld __cnfn mul_hi(short4, short4 ); +ushort4 __ovld __cnfn mul_hi(ushort4, ushort4 ); +short8 __ovld __cnfn mul_hi(short8, short8 ); +ushort8 __ovld __cnfn mul_hi(ushort8, ushort8 ); +short16 __ovld __cnfn mul_hi(short16, short16 ); +ushort16 __ovld __cnfn mul_hi(ushort16, ushort16 ); +int __ovld __cnfn mul_hi(int, int ); +uint __ovld __cnfn mul_hi(uint, uint ); +int2 __ovld __cnfn mul_hi(int2, int2 ); +uint2 __ovld __cnfn mul_hi(uint2, uint2 ); +int3 __ovld __cnfn mul_hi(int3, int3 ); +uint3 __ovld __cnfn mul_hi(uint3, uint3 ); +int4 __ovld __cnfn mul_hi(int4, int4 ); +uint4 __ovld __cnfn mul_hi(uint4, uint4 ); +int8 __ovld __cnfn mul_hi(int8, int8 ); +uint8 __ovld __cnfn mul_hi(uint8, uint8 ); +int16 __ovld __cnfn mul_hi(int16, int16 ); +uint16 __ovld __cnfn mul_hi(uint16, uint16 ); +long __ovld __cnfn mul_hi(long, long ); +ulong __ovld __cnfn mul_hi(ulong, ulong ); +long2 __ovld __cnfn mul_hi(long2, long2 ); +ulong2 __ovld __cnfn mul_hi(ulong2, ulong2 ); +long3 __ovld __cnfn mul_hi(long3, long3 ); +ulong3 __ovld __cnfn mul_hi(ulong3, ulong3 ); +long4 __ovld __cnfn mul_hi(long4, long4 ); +ulong4 __ovld __cnfn mul_hi(ulong4, ulong4 ); +long8 __ovld __cnfn mul_hi(long8, long8 ); +ulong8 __ovld __cnfn mul_hi(ulong8, ulong8 ); +long16 __ovld __cnfn mul_hi(long16, long16 ); +ulong16 __ovld __cnfn mul_hi(ulong16, ulong16 ); /** * For each element in v, the bits are shifted left by @@ -10457,156 +10466,156 @@ ulong16 __ovld __cnfn mul_hi(ulong16 x, ulong16 y); * side of the element are shifted back in from the * right. */ -char __ovld __cnfn rotate(char v, char i); -uchar __ovld __cnfn rotate(uchar v, uchar i); -char2 __ovld __cnfn rotate(char2 v, char2 i); -uchar2 __ovld __cnfn rotate(uchar2 v, uchar2 i); -char3 __ovld __cnfn rotate(char3 v, char3 i); -uchar3 __ovld __cnfn rotate(uchar3 v, uchar3 i); -char4 __ovld __cnfn rotate(char4 v, char4 i); -uchar4 __ovld __cnfn rotate(uchar4 v, uchar4 i); -char8 __ovld __cnfn rotate(char8 v, char8 i); -uchar8 __ovld __cnfn rotate(uchar8 v, uchar8 i); -char16 __ovld __cnfn rotate(char16 v, char16 i); -uchar16 __ovld __cnfn rotate(uchar16 v, uchar16 i); -short __ovld __cnfn rotate(short v, short i); -ushort __ovld __cnfn rotate(ushort v, ushort i); -short2 __ovld __cnfn rotate(short2 v, short2 i); -ushort2 __ovld __cnfn rotate(ushort2 v, ushort2 i); -short3 __ovld __cnfn rotate(short3 v, short3 i); -ushort3 __ovld __cnfn rotate(ushort3 v, ushort3 i); -short4 __ovld __cnfn rotate(short4 v, short4 i); -ushort4 __ovld __cnfn rotate(ushort4 v, ushort4 i); -short8 __ovld __cnfn rotate(short8 v, short8 i); -ushort8 __ovld __cnfn rotate(ushort8 v, ushort8 i); -short16 __ovld __cnfn rotate(short16 v, short16 i); -ushort16 __ovld __cnfn rotate(ushort16 v, ushort16 i); -int __ovld __cnfn rotate(int v, int i); -uint __ovld __cnfn rotate(uint v, uint i); -int2 __ovld __cnfn rotate(int2 v, int2 i); -uint2 __ovld __cnfn rotate(uint2 v, uint2 i); -int3 __ovld __cnfn rotate(int3 v, int3 i); -uint3 __ovld __cnfn rotate(uint3 v, uint3 i); -int4 __ovld __cnfn rotate(int4 v, int4 i); -uint4 __ovld __cnfn rotate(uint4 v, uint4 i); -int8 __ovld __cnfn rotate(int8 v, int8 i); -uint8 __ovld __cnfn rotate(uint8 v, uint8 i); -int16 __ovld __cnfn rotate(int16 v, int16 i); -uint16 __ovld __cnfn rotate(uint16 v, uint16 i); -long __ovld __cnfn rotate(long v, long i); -ulong __ovld __cnfn rotate(ulong v, ulong i); -long2 __ovld __cnfn rotate(long2 v, long2 i); -ulong2 __ovld __cnfn rotate(ulong2 v, ulong2 i); -long3 __ovld __cnfn rotate(long3 v, long3 i); -ulong3 __ovld __cnfn rotate(ulong3 v, ulong3 i); -long4 __ovld __cnfn rotate(long4 v, long4 i); -ulong4 __ovld __cnfn rotate(ulong4 v, ulong4 i); -long8 __ovld __cnfn rotate(long8 v, long8 i); -ulong8 __ovld __cnfn rotate(ulong8 v, ulong8 i); -long16 __ovld __cnfn rotate(long16 v, long16 i); -ulong16 __ovld __cnfn rotate(ulong16 v, ulong16 i); +char __ovld __cnfn rotate(char, char); +uchar __ovld __cnfn rotate(uchar, uchar); +char2 __ovld __cnfn rotate(char2, char2); +uchar2 __ovld __cnfn rotate(uchar2, uchar2); +char3 __ovld __cnfn rotate(char3, char3); +uchar3 __ovld __cnfn rotate(uchar3, uchar3); +char4 __ovld __cnfn rotate(char4, char4); +uchar4 __ovld __cnfn rotate(uchar4, uchar4); +char8 __ovld __cnfn rotate(char8, char8); +uchar8 __ovld __cnfn rotate(uchar8, uchar8); +char16 __ovld __cnfn rotate(char16, char16); +uchar16 __ovld __cnfn rotate(uchar16, uchar16); +short __ovld __cnfn rotate(short, short); +ushort __ovld __cnfn rotate(ushort, ushort); +short2 __ovld __cnfn rotate(short2, short2); +ushort2 __ovld __cnfn rotate(ushort2, ushort2); +short3 __ovld __cnfn rotate(short3, short3); +ushort3 __ovld __cnfn rotate(ushort3, ushort3); +short4 __ovld __cnfn rotate(short4, short4); +ushort4 __ovld __cnfn rotate(ushort4, ushort4); +short8 __ovld __cnfn rotate(short8, short8); +ushort8 __ovld __cnfn rotate(ushort8, ushort8); +short16 __ovld __cnfn rotate(short16, short16); +ushort16 __ovld __cnfn rotate(ushort16, ushort16); +int __ovld __cnfn rotate(int, int); +uint __ovld __cnfn rotate(uint, uint); +int2 __ovld __cnfn rotate(int2, int2); +uint2 __ovld __cnfn rotate(uint2, uint2); +int3 __ovld __cnfn rotate(int3, int3); +uint3 __ovld __cnfn rotate(uint3, uint3); +int4 __ovld __cnfn rotate(int4, int4); +uint4 __ovld __cnfn rotate(uint4, uint4); +int8 __ovld __cnfn rotate(int8, int8); +uint8 __ovld __cnfn rotate(uint8, uint8); +int16 __ovld __cnfn rotate(int16, int16); +uint16 __ovld __cnfn rotate(uint16, uint16); +long __ovld __cnfn rotate(long, long); +ulong __ovld __cnfn rotate(ulong, ulong); +long2 __ovld __cnfn rotate(long2, long2); +ulong2 __ovld __cnfn rotate(ulong2, ulong2); +long3 __ovld __cnfn rotate(long3, long3); +ulong3 __ovld __cnfn rotate(ulong3, ulong3); +long4 __ovld __cnfn rotate(long4, long4); +ulong4 __ovld __cnfn rotate(ulong4, ulong4); +long8 __ovld __cnfn rotate(long8, long8); +ulong8 __ovld __cnfn rotate(ulong8, ulong8); +long16 __ovld __cnfn rotate(long16, long16); +ulong16 __ovld __cnfn rotate(ulong16, ulong16); /** * Returns x - y and saturates the result. */ -char __ovld __cnfn sub_sat(char x, char y); -uchar __ovld __cnfn sub_sat(uchar x, uchar y); -char2 __ovld __cnfn sub_sat(char2 x, char2 y); -uchar2 __ovld __cnfn sub_sat(uchar2 x, uchar2 y); -char3 __ovld __cnfn sub_sat(char3 x, char3 y); -uchar3 __ovld __cnfn sub_sat(uchar3 x, uchar3 y); -char4 __ovld __cnfn sub_sat(char4 x, char4 y); -uchar4 __ovld __cnfn sub_sat(uchar4 x, uchar4 y); -char8 __ovld __cnfn sub_sat(char8 x, char8 y); -uchar8 __ovld __cnfn sub_sat(uchar8 x, uchar8 y); -char16 __ovld __cnfn sub_sat(char16 x, char16 y); -uchar16 __ovld __cnfn sub_sat(uchar16 x, uchar16 y); -short __ovld __cnfn sub_sat(short x, short y); -ushort __ovld __cnfn sub_sat(ushort x, ushort y); -short2 __ovld __cnfn sub_sat(short2 x, short2 y); -ushort2 __ovld __cnfn sub_sat(ushort2 x, ushort2 y); -short3 __ovld __cnfn sub_sat(short3 x, short3 y); -ushort3 __ovld __cnfn sub_sat(ushort3 x, ushort3 y); -short4 __ovld __cnfn sub_sat(short4 x, short4 y); -ushort4 __ovld __cnfn sub_sat(ushort4 x, ushort4 y); -short8 __ovld __cnfn sub_sat(short8 x, short8 y); -ushort8 __ovld __cnfn sub_sat(ushort8 x, ushort8 y); -short16 __ovld __cnfn sub_sat(short16 x, short16 y); -ushort16 __ovld __cnfn sub_sat(ushort16 x, ushort16 y); -int __ovld __cnfn sub_sat(int x, int y); -uint __ovld __cnfn sub_sat(uint x, uint y); -int2 __ovld __cnfn sub_sat(int2 x, int2 y); -uint2 __ovld __cnfn sub_sat(uint2 x, uint2 y); -int3 __ovld __cnfn sub_sat(int3 x, int3 y); -uint3 __ovld __cnfn sub_sat(uint3 x, uint3 y); -int4 __ovld __cnfn sub_sat(int4 x, int4 y); -uint4 __ovld __cnfn sub_sat(uint4 x, uint4 y); -int8 __ovld __cnfn sub_sat(int8 x, int8 y); -uint8 __ovld __cnfn sub_sat(uint8 x, uint8 y); -int16 __ovld __cnfn sub_sat(int16 x, int16 y); -uint16 __ovld __cnfn sub_sat(uint16 x, uint16 y); -long __ovld __cnfn sub_sat(long x, long y); -ulong __ovld __cnfn sub_sat(ulong x, ulong y); -long2 __ovld __cnfn sub_sat(long2 x, long2 y); -ulong2 __ovld __cnfn sub_sat(ulong2 x, ulong2 y); -long3 __ovld __cnfn sub_sat(long3 x, long3 y); -ulong3 __ovld __cnfn sub_sat(ulong3 x, ulong3 y); -long4 __ovld __cnfn sub_sat(long4 x, long4 y); -ulong4 __ovld __cnfn sub_sat(ulong4 x, ulong4 y); -long8 __ovld __cnfn sub_sat(long8 x, long8 y); -ulong8 __ovld __cnfn sub_sat(ulong8 x, ulong8 y); -long16 __ovld __cnfn sub_sat(long16 x, long16 y); -ulong16 __ovld __cnfn sub_sat(ulong16 x, ulong16 y); +char __ovld __cnfn sub_sat(char, char ); +uchar __ovld __cnfn sub_sat(uchar, uchar ); +char2 __ovld __cnfn sub_sat(char2, char2 ); +uchar2 __ovld __cnfn sub_sat(uchar2, uchar2 ); +char3 __ovld __cnfn sub_sat(char3, char3 ); +uchar3 __ovld __cnfn sub_sat(uchar3, uchar3 ); +char4 __ovld __cnfn sub_sat(char4, char4 ); +uchar4 __ovld __cnfn sub_sat(uchar4, uchar4 ); +char8 __ovld __cnfn sub_sat(char8, char8 ); +uchar8 __ovld __cnfn sub_sat(uchar8, uchar8 ); +char16 __ovld __cnfn sub_sat(char16, char16 ); +uchar16 __ovld __cnfn sub_sat(uchar16, uchar16 ); +short __ovld __cnfn sub_sat(short, short ); +ushort __ovld __cnfn sub_sat(ushort, ushort ); +short2 __ovld __cnfn sub_sat(short2, short2 ); +ushort2 __ovld __cnfn sub_sat(ushort2, ushort2 ); +short3 __ovld __cnfn sub_sat(short3, short3 ); +ushort3 __ovld __cnfn sub_sat(ushort3, ushort3 ); +short4 __ovld __cnfn sub_sat(short4, short4 ); +ushort4 __ovld __cnfn sub_sat(ushort4, ushort4 ); +short8 __ovld __cnfn sub_sat(short8, short8 ); +ushort8 __ovld __cnfn sub_sat(ushort8, ushort8 ); +short16 __ovld __cnfn sub_sat(short16, short16 ); +ushort16 __ovld __cnfn sub_sat(ushort16, ushort16 ); +int __ovld __cnfn sub_sat(int, int ); +uint __ovld __cnfn sub_sat(uint, uint ); +int2 __ovld __cnfn sub_sat(int2, int2 ); +uint2 __ovld __cnfn sub_sat(uint2, uint2 ); +int3 __ovld __cnfn sub_sat(int3, int3 ); +uint3 __ovld __cnfn sub_sat(uint3, uint3 ); +int4 __ovld __cnfn sub_sat(int4, int4 ); +uint4 __ovld __cnfn sub_sat(uint4, uint4 ); +int8 __ovld __cnfn sub_sat(int8, int8 ); +uint8 __ovld __cnfn sub_sat(uint8, uint8 ); +int16 __ovld __cnfn sub_sat(int16, int16 ); +uint16 __ovld __cnfn sub_sat(uint16, uint16 ); +long __ovld __cnfn sub_sat(long, long ); +ulong __ovld __cnfn sub_sat(ulong, ulong ); +long2 __ovld __cnfn sub_sat(long2, long2 ); +ulong2 __ovld __cnfn sub_sat(ulong2, ulong2 ); +long3 __ovld __cnfn sub_sat(long3, long3 ); +ulong3 __ovld __cnfn sub_sat(ulong3, ulong3 ); +long4 __ovld __cnfn sub_sat(long4, long4 ); +ulong4 __ovld __cnfn sub_sat(ulong4, ulong4 ); +long8 __ovld __cnfn sub_sat(long8, long8 ); +ulong8 __ovld __cnfn sub_sat(ulong8, ulong8 ); +long16 __ovld __cnfn sub_sat(long16, long16 ); +ulong16 __ovld __cnfn sub_sat(ulong16, ulong16 ); /** * result[i] = ((short)hi[i] << 8) | lo[i] * result[i] = ((ushort)hi[i] << 8) | lo[i] */ -short __ovld __cnfn upsample(char hi, uchar lo); -ushort __ovld __cnfn upsample(uchar hi, uchar lo); -short2 __ovld __cnfn upsample(char2 hi, uchar2 lo); -short3 __ovld __cnfn upsample(char3 hi, uchar3 lo); -short4 __ovld __cnfn upsample(char4 hi, uchar4 lo); -short8 __ovld __cnfn upsample(char8 hi, uchar8 lo); -short16 __ovld __cnfn upsample(char16 hi, uchar16 lo); -ushort2 __ovld __cnfn upsample(uchar2 hi, uchar2 lo); -ushort3 __ovld __cnfn upsample(uchar3 hi, uchar3 lo); -ushort4 __ovld __cnfn upsample(uchar4 hi, uchar4 lo); -ushort8 __ovld __cnfn upsample(uchar8 hi, uchar8 lo); -ushort16 __ovld __cnfn upsample(uchar16 hi, uchar16 lo); +short __ovld __cnfn upsample(char, uchar); +ushort __ovld __cnfn upsample(uchar, uchar); +short2 __ovld __cnfn upsample(char2, uchar2); +short3 __ovld __cnfn upsample(char3, uchar3); +short4 __ovld __cnfn upsample(char4, uchar4); +short8 __ovld __cnfn upsample(char8, uchar8); +short16 __ovld __cnfn upsample(char16, uchar16); +ushort2 __ovld __cnfn upsample(uchar2, uchar2); +ushort3 __ovld __cnfn upsample(uchar3, uchar3); +ushort4 __ovld __cnfn upsample(uchar4, uchar4); +ushort8 __ovld __cnfn upsample(uchar8, uchar8); +ushort16 __ovld __cnfn upsample(uchar16, uchar16); /** * result[i] = ((int)hi[i] << 16) | lo[i] * result[i] = ((uint)hi[i] << 16) | lo[i] */ -int __ovld __cnfn upsample(short hi, ushort lo); -uint __ovld __cnfn upsample(ushort hi, ushort lo); -int2 __ovld __cnfn upsample(short2 hi, ushort2 lo); -int3 __ovld __cnfn upsample(short3 hi, ushort3 lo); -int4 __ovld __cnfn upsample(short4 hi, ushort4 lo); -int8 __ovld __cnfn upsample(short8 hi, ushort8 lo); -int16 __ovld __cnfn upsample(short16 hi, ushort16 lo); -uint2 __ovld __cnfn upsample(ushort2 hi, ushort2 lo); -uint3 __ovld __cnfn upsample(ushort3 hi, ushort3 lo); -uint4 __ovld __cnfn upsample(ushort4 hi, ushort4 lo); -uint8 __ovld __cnfn upsample(ushort8 hi, ushort8 lo); -uint16 __ovld __cnfn upsample(ushort16 hi, ushort16 lo); +int __ovld __cnfn upsample(short, ushort); +uint __ovld __cnfn upsample(ushort, ushort); +int2 __ovld __cnfn upsample(short2, ushort2); +int3 __ovld __cnfn upsample(short3, ushort3); +int4 __ovld __cnfn upsample(short4, ushort4); +int8 __ovld __cnfn upsample(short8, ushort8); +int16 __ovld __cnfn upsample(short16, ushort16); +uint2 __ovld __cnfn upsample(ushort2, ushort2); +uint3 __ovld __cnfn upsample(ushort3, ushort3); +uint4 __ovld __cnfn upsample(ushort4, ushort4); +uint8 __ovld __cnfn upsample(ushort8, ushort8); +uint16 __ovld __cnfn upsample(ushort16, ushort16); /** * result[i] = ((long)hi[i] << 32) | lo[i] * result[i] = ((ulong)hi[i] << 32) | lo[i] */ -long __ovld __cnfn upsample(int hi, uint lo); -ulong __ovld __cnfn upsample(uint hi, uint lo); -long2 __ovld __cnfn upsample(int2 hi, uint2 lo); -long3 __ovld __cnfn upsample(int3 hi, uint3 lo); -long4 __ovld __cnfn upsample(int4 hi, uint4 lo); -long8 __ovld __cnfn upsample(int8 hi, uint8 lo); -long16 __ovld __cnfn upsample(int16 hi, uint16 lo); -ulong2 __ovld __cnfn upsample(uint2 hi, uint2 lo); -ulong3 __ovld __cnfn upsample(uint3 hi, uint3 lo); -ulong4 __ovld __cnfn upsample(uint4 hi, uint4 lo); -ulong8 __ovld __cnfn upsample(uint8 hi, uint8 lo); -ulong16 __ovld __cnfn upsample(uint16 hi, uint16 lo); +long __ovld __cnfn upsample(int, uint); +ulong __ovld __cnfn upsample(uint, uint); +long2 __ovld __cnfn upsample(int2, uint2); +long3 __ovld __cnfn upsample(int3, uint3); +long4 __ovld __cnfn upsample(int4, uint4); +long8 __ovld __cnfn upsample(int8, uint8); +long16 __ovld __cnfn upsample(int16, uint16); +ulong2 __ovld __cnfn upsample(uint2, uint2); +ulong3 __ovld __cnfn upsample(uint3, uint3); +ulong4 __ovld __cnfn upsample(uint4, uint4); +ulong8 __ovld __cnfn upsample(uint8, uint8); +ulong16 __ovld __cnfn upsample(uint16, uint16); /* * popcount(x): returns the number of set bit in x @@ -10668,18 +10677,18 @@ ulong16 __ovld __cnfn popcount(ulong16 x); * Refer to definition of mul24 to see how the 24-bit * integer multiplication is performed. */ -int __ovld __cnfn mad24(int x, int y, int z); -uint __ovld __cnfn mad24(uint x, uint y, uint z); -int2 __ovld __cnfn mad24(int2 x, int2 y, int2 z); -uint2 __ovld __cnfn mad24(uint2 x, uint2 y, uint2 z); -int3 __ovld __cnfn mad24(int3 x, int3 y, int3 z); -uint3 __ovld __cnfn mad24(uint3 x, uint3 y, uint3 z); -int4 __ovld __cnfn mad24(int4 x, int4 y, int4 z); -uint4 __ovld __cnfn mad24(uint4 x, uint4 y, uint4 z); -int8 __ovld __cnfn mad24(int8 x, int8 y, int8 z); -uint8 __ovld __cnfn mad24(uint8 x, uint8 y, uint8 z); -int16 __ovld __cnfn mad24(int16 x, int16 y, int16 z); -uint16 __ovld __cnfn mad24(uint16 x, uint16 y, uint16 z); +int __ovld __cnfn mad24(int, int, int ); +uint __ovld __cnfn mad24(uint, uint, uint ); +int2 __ovld __cnfn mad24(int2, int2, int2 ); +uint2 __ovld __cnfn mad24(uint2, uint2, uint2 ); +int3 __ovld __cnfn mad24(int3, int3, int3 ); +uint3 __ovld __cnfn mad24(uint3, uint3, uint3 ); +int4 __ovld __cnfn mad24(int4, int4, int4 ); +uint4 __ovld __cnfn mad24(uint4, uint4, uint4 ); +int8 __ovld __cnfn mad24(int8, int8, int8 ); +uint8 __ovld __cnfn mad24(uint8, uint8, uint8 ); +int16 __ovld __cnfn mad24(int16, int16, int16 ); +uint16 __ovld __cnfn mad24(uint16, uint16, uint16 ); /** * Multiply two 24-bit integer values x and y. x and y @@ -10691,18 +10700,18 @@ uint16 __ovld __cnfn mad24(uint16 x, uint16 y, uint16 z); * x and y are not in this range, the multiplication * result is implementation-defined. */ -int __ovld __cnfn mul24(int x, int y); -uint __ovld __cnfn mul24(uint x, uint y); -int2 __ovld __cnfn mul24(int2 x, int2 y); -uint2 __ovld __cnfn mul24(uint2 x, uint2 y); -int3 __ovld __cnfn mul24(int3 x, int3 y); -uint3 __ovld __cnfn mul24(uint3 x, uint3 y); -int4 __ovld __cnfn mul24(int4 x, int4 y); -uint4 __ovld __cnfn mul24(uint4 x, uint4 y); -int8 __ovld __cnfn mul24(int8 x, int8 y); -uint8 __ovld __cnfn mul24(uint8 x, uint8 y); -int16 __ovld __cnfn mul24(int16 x, int16 y); -uint16 __ovld __cnfn mul24(uint16 x, uint16 y); +int __ovld __cnfn mul24(int, int ); +uint __ovld __cnfn mul24(uint, uint ); +int2 __ovld __cnfn mul24(int2, int2 ); +uint2 __ovld __cnfn mul24(uint2, uint2 ); +int3 __ovld __cnfn mul24(int3, int3 ); +uint3 __ovld __cnfn mul24(uint3, uint3 ); +int4 __ovld __cnfn mul24(int4, int4 ); +uint4 __ovld __cnfn mul24(uint4, uint4 ); +int8 __ovld __cnfn mul24(int8, int8 ); +uint8 __ovld __cnfn mul24(uint8, uint8 ); +int16 __ovld __cnfn mul24(int16, int16 ); +uint16 __ovld __cnfn mul24(uint16, uint16 ); // OpenCL v1.1 s6.11.4, v1.2 s6.12.4, v2.0 s6.13.4 - Common Functions @@ -10710,153 +10719,153 @@ uint16 __ovld __cnfn mul24(uint16 x, uint16 y); * Returns fmin(fmax(x, minval), maxval). * Results are undefined if minval > maxval. */ -float __ovld __cnfn clamp(float x, float minval, float maxval); -float2 __ovld __cnfn clamp(float2 x, float2 minval, float2 maxval); -float3 __ovld __cnfn clamp(float3 x, float3 minval, float3 maxval); -float4 __ovld __cnfn clamp(float4 x, float4 minval, float4 maxval); -float8 __ovld __cnfn clamp(float8 x, float8 minval, float8 maxval); -float16 __ovld __cnfn clamp(float16 x, float16 minval, float16 maxval); -float2 __ovld __cnfn clamp(float2 x, float minval, float maxval); -float3 __ovld __cnfn clamp(float3 x, float minval, float maxval); -float4 __ovld __cnfn clamp(float4 x, float minval, float maxval); -float8 __ovld __cnfn clamp(float8 x, float minval, float maxval); -float16 __ovld __cnfn clamp(float16 x, float minval, float maxval); +float __ovld __cnfn clamp(float, float, float); +float2 __ovld __cnfn clamp(float2, float2, float2); +float3 __ovld __cnfn clamp(float3, float3, float3); +float4 __ovld __cnfn clamp(float4, float4, float4); +float8 __ovld __cnfn clamp(float8, float8, float8); +float16 __ovld __cnfn clamp(float16, float16, float16); +float2 __ovld __cnfn clamp(float2, float, float); +float3 __ovld __cnfn clamp(float3, float, float); +float4 __ovld __cnfn clamp(float4, float, float); +float8 __ovld __cnfn clamp(float8, float, float); +float16 __ovld __cnfn clamp(float16, float, float); #ifdef cl_khr_fp64 -double __ovld __cnfn clamp(double x, double minval, double maxval); -double2 __ovld __cnfn clamp(double2 x, double2 minval, double2 maxval); -double3 __ovld __cnfn clamp(double3 x, double3 minval, double3 maxval); -double4 __ovld __cnfn clamp(double4 x, double4 minval, double4 maxval); -double8 __ovld __cnfn clamp(double8 x, double8 minval, double8 maxval); -double16 __ovld __cnfn clamp(double16 x, double16 minval, double16 maxval); -double2 __ovld __cnfn clamp(double2 x, double minval, double maxval); -double3 __ovld __cnfn clamp(double3 x, double minval, double maxval); -double4 __ovld __cnfn clamp(double4 x, double minval, double maxval); -double8 __ovld __cnfn clamp(double8 x, double minval, double maxval); -double16 __ovld __cnfn clamp(double16 x, double minval, double maxval); +double __ovld __cnfn clamp(double, double, double); +double2 __ovld __cnfn clamp(double2, double2, double2); +double3 __ovld __cnfn clamp(double3, double3, double3); +double4 __ovld __cnfn clamp(double4, double4, double4); +double8 __ovld __cnfn clamp(double8, double8, double8); +double16 __ovld __cnfn clamp(double16, double16, double16); +double2 __ovld __cnfn clamp(double2, double, double); +double3 __ovld __cnfn clamp(double3, double, double); +double4 __ovld __cnfn clamp(double4, double, double); +double8 __ovld __cnfn clamp(double8, double, double); +double16 __ovld __cnfn clamp(double16, double, double); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn clamp(half x, half minval, half maxval); -half2 __ovld __cnfn clamp(half2 x, half2 minval, half2 maxval); -half3 __ovld __cnfn clamp(half3 x, half3 minval, half3 maxval); -half4 __ovld __cnfn clamp(half4 x, half4 minval, half4 maxval); -half8 __ovld __cnfn clamp(half8 x, half8 minval, half8 maxval); -half16 __ovld __cnfn clamp(half16 x, half16 minval, half16 maxval); -half2 __ovld __cnfn clamp(half2 x, half minval, half maxval); -half3 __ovld __cnfn clamp(half3 x, half minval, half maxval); -half4 __ovld __cnfn clamp(half4 x, half minval, half maxval); -half8 __ovld __cnfn clamp(half8 x, half minval, half maxval); -half16 __ovld __cnfn clamp(half16 x, half minval, half maxval); +half __ovld __cnfn clamp(half, half, half); +half2 __ovld __cnfn clamp(half2, half2, half2); +half3 __ovld __cnfn clamp(half3, half3, half3); +half4 __ovld __cnfn clamp(half4, half4, half4); +half8 __ovld __cnfn clamp(half8, half8, half8); +half16 __ovld __cnfn clamp(half16, half16, half16); +half2 __ovld __cnfn clamp(half2, half, half); +half3 __ovld __cnfn clamp(half3, half, half); +half4 __ovld __cnfn clamp(half4, half, half); +half8 __ovld __cnfn clamp(half8, half, half); +half16 __ovld __cnfn clamp(half16, half, half); #endif //cl_khr_fp16 /** * Converts radians to degrees, i.e. (180 / PI) * * radians. */ -float __ovld __cnfn degrees(float radians); -float2 __ovld __cnfn degrees(float2 radians); -float3 __ovld __cnfn degrees(float3 radians); -float4 __ovld __cnfn degrees(float4 radians); -float8 __ovld __cnfn degrees(float8 radians); -float16 __ovld __cnfn degrees(float16 radians); +float __ovld __cnfn degrees(float); +float2 __ovld __cnfn degrees(float2); +float3 __ovld __cnfn degrees(float3); +float4 __ovld __cnfn degrees(float4); +float8 __ovld __cnfn degrees(float8); +float16 __ovld __cnfn degrees(float16); #ifdef cl_khr_fp64 -double __ovld __cnfn degrees(double radians); -double2 __ovld __cnfn degrees(double2 radians); -double3 __ovld __cnfn degrees(double3 radians); -double4 __ovld __cnfn degrees(double4 radians); -double8 __ovld __cnfn degrees(double8 radians); -double16 __ovld __cnfn degrees(double16 radians); +double __ovld __cnfn degrees(double); +double2 __ovld __cnfn degrees(double2); +double3 __ovld __cnfn degrees(double3); +double4 __ovld __cnfn degrees(double4); +double8 __ovld __cnfn degrees(double8); +double16 __ovld __cnfn degrees(double16); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn degrees(half radians); -half2 __ovld __cnfn degrees(half2 radians); -half3 __ovld __cnfn degrees(half3 radians); -half4 __ovld __cnfn degrees(half4 radians); -half8 __ovld __cnfn degrees(half8 radians); -half16 __ovld __cnfn degrees(half16 radians); +half __ovld __cnfn degrees(half); +half2 __ovld __cnfn degrees(half2); +half3 __ovld __cnfn degrees(half3); +half4 __ovld __cnfn degrees(half4); +half8 __ovld __cnfn degrees(half8); +half16 __ovld __cnfn degrees(half16); #endif //cl_khr_fp16 /** - * Returns y if x < y, otherwise it returns x. If x and y + * Returns y if x <, otherwise it returns x. If x and y * are infinite or NaN, the return values are undefined. */ -float __ovld __cnfn max(float x, float y); -float2 __ovld __cnfn max(float2 x, float2 y); -float3 __ovld __cnfn max(float3 x, float3 y); -float4 __ovld __cnfn max(float4 x, float4 y); -float8 __ovld __cnfn max(float8 x, float8 y); -float16 __ovld __cnfn max(float16 x, float16 y); -float2 __ovld __cnfn max(float2 x, float y); -float3 __ovld __cnfn max(float3 x, float y); -float4 __ovld __cnfn max(float4 x, float y); -float8 __ovld __cnfn max(float8 x, float y); -float16 __ovld __cnfn max(float16 x, float y); +float __ovld __cnfn max(float, float ); +float2 __ovld __cnfn max(float2, float2 ); +float3 __ovld __cnfn max(float3, float3 ); +float4 __ovld __cnfn max(float4, float4 ); +float8 __ovld __cnfn max(float8, float8 ); +float16 __ovld __cnfn max(float16, float16 ); +float2 __ovld __cnfn max(float2, float ); +float3 __ovld __cnfn max(float3, float ); +float4 __ovld __cnfn max(float4, float ); +float8 __ovld __cnfn max(float8, float ); +float16 __ovld __cnfn max(float16, float ); #ifdef cl_khr_fp64 -double __ovld __cnfn max(double x, double y); -double2 __ovld __cnfn max(double2 x, double2 y); -double3 __ovld __cnfn max(double3 x, double3 y); -double4 __ovld __cnfn max(double4 x, double4 y); -double8 __ovld __cnfn max(double8 x, double8 y); -double16 __ovld __cnfn max(double16 x, double16 y); -double2 __ovld __cnfn max(double2 x, double y); -double3 __ovld __cnfn max(double3 x, double y); -double4 __ovld __cnfn max(double4 x, double y); -double8 __ovld __cnfn max(double8 x, double y); -double16 __ovld __cnfn max(double16 x, double y); +double __ovld __cnfn max(double, double ); +double2 __ovld __cnfn max(double2, double2 ); +double3 __ovld __cnfn max(double3, double3 ); +double4 __ovld __cnfn max(double4, double4 ); +double8 __ovld __cnfn max(double8, double8 ); +double16 __ovld __cnfn max(double16, double16 ); +double2 __ovld __cnfn max(double2, double ); +double3 __ovld __cnfn max(double3, double ); +double4 __ovld __cnfn max(double4, double ); +double8 __ovld __cnfn max(double8, double ); +double16 __ovld __cnfn max(double16, double ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn max(half x, half y); -half2 __ovld __cnfn max(half2 x, half2 y); -half3 __ovld __cnfn max(half3 x, half3 y); -half4 __ovld __cnfn max(half4 x, half4 y); -half8 __ovld __cnfn max(half8 x, half8 y); -half16 __ovld __cnfn max(half16 x, half16 y); -half2 __ovld __cnfn max(half2 x, half y); -half3 __ovld __cnfn max(half3 x, half y); -half4 __ovld __cnfn max(half4 x, half y); -half8 __ovld __cnfn max(half8 x, half y); -half16 __ovld __cnfn max(half16 x, half y); +half __ovld __cnfn max(half, half ); +half2 __ovld __cnfn max(half2, half2 ); +half3 __ovld __cnfn max(half3, half3 ); +half4 __ovld __cnfn max(half4, half4 ); +half8 __ovld __cnfn max(half8, half8 ); +half16 __ovld __cnfn max(half16, half16 ); +half2 __ovld __cnfn max(half2, half ); +half3 __ovld __cnfn max(half3, half ); +half4 __ovld __cnfn max(half4, half ); +half8 __ovld __cnfn max(half8, half ); +half16 __ovld __cnfn max(half16, half ); #endif //cl_khr_fp16 /** - * Returns y if y < x, otherwise it returns x. If x and y + * Returns y if y <, otherwise it returns x. If x and y * are infinite or NaN, the return values are undefined. */ -float __ovld __cnfn min(float x, float y); -float2 __ovld __cnfn min(float2 x, float2 y); -float3 __ovld __cnfn min(float3 x, float3 y); -float4 __ovld __cnfn min(float4 x, float4 y); -float8 __ovld __cnfn min(float8 x, float8 y); -float16 __ovld __cnfn min(float16 x, float16 y); -float2 __ovld __cnfn min(float2 x, float y); -float3 __ovld __cnfn min(float3 x, float y); -float4 __ovld __cnfn min(float4 x, float y); -float8 __ovld __cnfn min(float8 x, float y); -float16 __ovld __cnfn min(float16 x, float y); +float __ovld __cnfn min(float, float ); +float2 __ovld __cnfn min(float2, float2 ); +float3 __ovld __cnfn min(float3, float3 ); +float4 __ovld __cnfn min(float4, float4 ); +float8 __ovld __cnfn min(float8, float8 ); +float16 __ovld __cnfn min(float16, float16 ); +float2 __ovld __cnfn min(float2, float ); +float3 __ovld __cnfn min(float3, float ); +float4 __ovld __cnfn min(float4, float ); +float8 __ovld __cnfn min(float8, float ); +float16 __ovld __cnfn min(float16, float ); #ifdef cl_khr_fp64 -double __ovld __cnfn min(double x, double y); -double2 __ovld __cnfn min(double2 x, double2 y); -double3 __ovld __cnfn min(double3 x, double3 y); -double4 __ovld __cnfn min(double4 x, double4 y); -double8 __ovld __cnfn min(double8 x, double8 y); -double16 __ovld __cnfn min(double16 x, double16 y); -double2 __ovld __cnfn min(double2 x, double y); -double3 __ovld __cnfn min(double3 x, double y); -double4 __ovld __cnfn min(double4 x, double y); -double8 __ovld __cnfn min(double8 x, double y); -double16 __ovld __cnfn min(double16 x, double y); +double __ovld __cnfn min(double, double ); +double2 __ovld __cnfn min(double2, double2 ); +double3 __ovld __cnfn min(double3, double3 ); +double4 __ovld __cnfn min(double4, double4 ); +double8 __ovld __cnfn min(double8, double8 ); +double16 __ovld __cnfn min(double16, double16 ); +double2 __ovld __cnfn min(double2, double ); +double3 __ovld __cnfn min(double3, double ); +double4 __ovld __cnfn min(double4, double ); +double8 __ovld __cnfn min(double8, double ); +double16 __ovld __cnfn min(double16, double ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn min(half x, half y); -half2 __ovld __cnfn min(half2 x, half2 y); -half3 __ovld __cnfn min(half3 x, half3 y); -half4 __ovld __cnfn min(half4 x, half4 y); -half8 __ovld __cnfn min(half8 x, half8 y); -half16 __ovld __cnfn min(half16 x, half16 y); -half2 __ovld __cnfn min(half2 x, half y); -half3 __ovld __cnfn min(half3 x, half y); -half4 __ovld __cnfn min(half4 x, half y); -half8 __ovld __cnfn min(half8 x, half y); -half16 __ovld __cnfn min(half16 x, half y); +half __ovld __cnfn min(half, half ); +half2 __ovld __cnfn min(half2, half2 ); +half3 __ovld __cnfn min(half3, half3 ); +half4 __ovld __cnfn min(half4, half4 ); +half8 __ovld __cnfn min(half8, half8 ); +half16 __ovld __cnfn min(half16, half16 ); +half2 __ovld __cnfn min(half2, half ); +half3 __ovld __cnfn min(half3, half ); +half4 __ovld __cnfn min(half4, half ); +half8 __ovld __cnfn min(half8, half ); +half16 __ovld __cnfn min(half16, half ); #endif //cl_khr_fp16 /** @@ -10866,110 +10875,110 @@ half16 __ovld __cnfn min(half16 x, half y); * in the range 0.0 ... 1.0, the return values are * undefined. */ -float __ovld __cnfn mix(float x, float y, float a); -float2 __ovld __cnfn mix(float2 x, float2 y, float2 a); -float3 __ovld __cnfn mix(float3 x, float3 y, float3 a); -float4 __ovld __cnfn mix(float4 x, float4 y, float4 a); -float8 __ovld __cnfn mix(float8 x, float8 y, float8 a); -float16 __ovld __cnfn mix(float16 x, float16 y, float16 a); -float2 __ovld __cnfn mix(float2 x, float2 y, float a); -float3 __ovld __cnfn mix(float3 x, float3 y, float a); -float4 __ovld __cnfn mix(float4 x, float4 y, float a); -float8 __ovld __cnfn mix(float8 x, float8 y, float a); -float16 __ovld __cnfn mix(float16 x, float16 y, float a); +float __ovld __cnfn mix(float, float, float); +float2 __ovld __cnfn mix(float2, float2, float2); +float3 __ovld __cnfn mix(float3, float3, float3); +float4 __ovld __cnfn mix(float4, float4, float4); +float8 __ovld __cnfn mix(float8, float8, float8); +float16 __ovld __cnfn mix(float16, float16, float16); +float2 __ovld __cnfn mix(float2, float2, float); +float3 __ovld __cnfn mix(float3, float3, float); +float4 __ovld __cnfn mix(float4, float4, float); +float8 __ovld __cnfn mix(float8, float8, float); +float16 __ovld __cnfn mix(float16, float16, float); #ifdef cl_khr_fp64 -double __ovld __cnfn mix(double x, double y, double a); -double2 __ovld __cnfn mix(double2 x, double2 y, double2 a); -double3 __ovld __cnfn mix(double3 x, double3 y, double3 a); -double4 __ovld __cnfn mix(double4 x, double4 y, double4 a); -double8 __ovld __cnfn mix(double8 x, double8 y, double8 a); -double16 __ovld __cnfn mix(double16 x, double16 y, double16 a); -double2 __ovld __cnfn mix(double2 x, double2 y, double a); -double3 __ovld __cnfn mix(double3 x, double3 y, double a); -double4 __ovld __cnfn mix(double4 x, double4 y, double a); -double8 __ovld __cnfn mix(double8 x, double8 y, double a); -double16 __ovld __cnfn mix(double16 x, double16 y, double a); +double __ovld __cnfn mix(double, double, double); +double2 __ovld __cnfn mix(double2, double2, double2); +double3 __ovld __cnfn mix(double3, double3, double3); +double4 __ovld __cnfn mix(double4, double4, double4); +double8 __ovld __cnfn mix(double8, double8, double8); +double16 __ovld __cnfn mix(double16, double16, double16); +double2 __ovld __cnfn mix(double2, double2, double); +double3 __ovld __cnfn mix(double3, double3, double); +double4 __ovld __cnfn mix(double4, double4, double); +double8 __ovld __cnfn mix(double8, double8, double); +double16 __ovld __cnfn mix(double16, double16, double); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn mix(half x, half y, half a); -half2 __ovld __cnfn mix(half2 x, half2 y, half2 a); -half3 __ovld __cnfn mix(half3 x, half3 y, half3 a); -half4 __ovld __cnfn mix(half4 x, half4 y, half4 a); -half8 __ovld __cnfn mix(half8 x, half8 y, half8 a); -half16 __ovld __cnfn mix(half16 x, half16 y, half16 a); -half2 __ovld __cnfn mix(half2 x, half2 y, half a); -half3 __ovld __cnfn mix(half3 x, half3 y, half a); -half4 __ovld __cnfn mix(half4 x, half4 y, half a); -half8 __ovld __cnfn mix(half8 x, half8 y, half a); -half16 __ovld __cnfn mix(half16 x, half16 y, half a); +half __ovld __cnfn mix(half, half, half); +half2 __ovld __cnfn mix(half2, half2, half2); +half3 __ovld __cnfn mix(half3, half3, half3); +half4 __ovld __cnfn mix(half4, half4, half4); +half8 __ovld __cnfn mix(half8, half8, half8); +half16 __ovld __cnfn mix(half16, half16, half16); +half2 __ovld __cnfn mix(half2, half2, half); +half3 __ovld __cnfn mix(half3, half3, half); +half4 __ovld __cnfn mix(half4, half4, half); +half8 __ovld __cnfn mix(half8, half8, half); +half16 __ovld __cnfn mix(half16, half16, half); #endif //cl_khr_fp16 /** * Converts degrees to radians, i.e. (PI / 180) * * degrees. */ -float __ovld __cnfn radians(float degrees); -float2 __ovld __cnfn radians(float2 degrees); -float3 __ovld __cnfn radians(float3 degrees); -float4 __ovld __cnfn radians(float4 degrees); -float8 __ovld __cnfn radians(float8 degrees); -float16 __ovld __cnfn radians(float16 degrees); +float __ovld __cnfn radians(float); +float2 __ovld __cnfn radians(float2); +float3 __ovld __cnfn radians(float3); +float4 __ovld __cnfn radians(float4); +float8 __ovld __cnfn radians(float8); +float16 __ovld __cnfn radians(float16); #ifdef cl_khr_fp64 -double __ovld __cnfn radians(double degrees); -double2 __ovld __cnfn radians(double2 degrees); -double3 __ovld __cnfn radians(double3 degrees); -double4 __ovld __cnfn radians(double4 degrees); -double8 __ovld __cnfn radians(double8 degrees); -double16 __ovld __cnfn radians(double16 degrees); +double __ovld __cnfn radians(double); +double2 __ovld __cnfn radians(double2); +double3 __ovld __cnfn radians(double3); +double4 __ovld __cnfn radians(double4); +double8 __ovld __cnfn radians(double8); +double16 __ovld __cnfn radians(double16); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn radians(half degrees); -half2 __ovld __cnfn radians(half2 degrees); -half3 __ovld __cnfn radians(half3 degrees); -half4 __ovld __cnfn radians(half4 degrees); -half8 __ovld __cnfn radians(half8 degrees); -half16 __ovld __cnfn radians(half16 degrees); +half __ovld __cnfn radians(half); +half2 __ovld __cnfn radians(half2); +half3 __ovld __cnfn radians(half3); +half4 __ovld __cnfn radians(half4); +half8 __ovld __cnfn radians(half8); +half16 __ovld __cnfn radians(half16); #endif //cl_khr_fp16 /** * Returns 0.0 if x < edge, otherwise it returns 1.0. */ -float __ovld __cnfn step(float edge, float x); -float2 __ovld __cnfn step(float2 edge, float2 x); -float3 __ovld __cnfn step(float3 edge, float3 x); -float4 __ovld __cnfn step(float4 edge, float4 x); -float8 __ovld __cnfn step(float8 edge, float8 x); -float16 __ovld __cnfn step(float16 edge, float16 x); -float2 __ovld __cnfn step(float edge, float2 x); -float3 __ovld __cnfn step(float edge, float3 x); -float4 __ovld __cnfn step(float edge, float4 x); -float8 __ovld __cnfn step(float edge, float8 x); -float16 __ovld __cnfn step(float edge, float16 x); +float __ovld __cnfn step(float edge, float); +float2 __ovld __cnfn step(float2 edge, float2); +float3 __ovld __cnfn step(float3 edge, float3); +float4 __ovld __cnfn step(float4 edge, float4); +float8 __ovld __cnfn step(float8 edge, float8); +float16 __ovld __cnfn step(float16 edge, float16); +float2 __ovld __cnfn step(float edge, float2); +float3 __ovld __cnfn step(float edge, float3); +float4 __ovld __cnfn step(float edge, float4); +float8 __ovld __cnfn step(float edge, float8); +float16 __ovld __cnfn step(float edge, float16); #ifdef cl_khr_fp64 -double __ovld __cnfn step(double edge, double x); -double2 __ovld __cnfn step(double2 edge, double2 x); -double3 __ovld __cnfn step(double3 edge, double3 x); -double4 __ovld __cnfn step(double4 edge, double4 x); -double8 __ovld __cnfn step(double8 edge, double8 x); -double16 __ovld __cnfn step(double16 edge, double16 x); -double2 __ovld __cnfn step(double edge, double2 x); -double3 __ovld __cnfn step(double edge, double3 x); -double4 __ovld __cnfn step(double edge, double4 x); -double8 __ovld __cnfn step(double edge, double8 x); -double16 __ovld __cnfn step(double edge, double16 x); +double __ovld __cnfn step(double edge, double); +double2 __ovld __cnfn step(double2 edge, double2); +double3 __ovld __cnfn step(double3 edge, double3); +double4 __ovld __cnfn step(double4 edge, double4); +double8 __ovld __cnfn step(double8 edge, double8); +double16 __ovld __cnfn step(double16 edge, double16); +double2 __ovld __cnfn step(double edge, double2); +double3 __ovld __cnfn step(double edge, double3); +double4 __ovld __cnfn step(double edge, double4); +double8 __ovld __cnfn step(double edge, double8); +double16 __ovld __cnfn step(double edge, double16); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn step(half edge, half x); -half2 __ovld __cnfn step(half2 edge, half2 x); -half3 __ovld __cnfn step(half3 edge, half3 x); -half4 __ovld __cnfn step(half4 edge, half4 x); -half8 __ovld __cnfn step(half8 edge, half8 x); -half16 __ovld __cnfn step(half16 edge, half16 x); -half2 __ovld __cnfn step(half edge, half2 x); -half3 __ovld __cnfn step(half edge, half3 x); -half4 __ovld __cnfn step(half edge, half4 x); -half8 __ovld __cnfn step(half edge, half8 x); -half16 __ovld __cnfn step(half edge, half16 x); +half __ovld __cnfn step(half edge, half); +half2 __ovld __cnfn step(half2 edge, half2); +half3 __ovld __cnfn step(half3 edge, half3); +half4 __ovld __cnfn step(half4 edge, half4); +half8 __ovld __cnfn step(half8 edge, half8); +half16 __ovld __cnfn step(half16 edge, half16); +half2 __ovld __cnfn step(half edge, half2); +half3 __ovld __cnfn step(half edge, half3); +half4 __ovld __cnfn step(half edge, half4); +half8 __ovld __cnfn step(half edge, half8); +half16 __ovld __cnfn step(half edge, half16); #endif //cl_khr_fp16 /** @@ -10982,7 +10991,7 @@ half16 __ovld __cnfn step(half edge, half16 x); * gentype t; * t = clamp ((x - edge0) / (edge1 - edge0), 0, 1); * return t * t * (3 - 2 * t); - * Results are undefined if edge0 >= edge1 or if x, + * Results are undefined if edge0 >= edge1 or if, * edge0 or edge1 is a NaN. */ float __ovld __cnfn smoothstep(float edge0, float edge1, float x); @@ -11056,128 +11065,116 @@ half16 __ovld __cnfn sign(half16 x); * Returns the cross product of p0.xyz and p1.xyz. The * w component of float4 result returned will be 0.0. */ -float4 __ovld __cnfn cross(float4 p0, float4 p1); -float3 __ovld __cnfn cross(float3 p0, float3 p1); +float4 __ovld __cnfn cross(float4, float4); +float3 __ovld __cnfn cross(float3, float3); #ifdef cl_khr_fp64 -double4 __ovld __cnfn cross(double4 p0, double4 p1); -double3 __ovld __cnfn cross(double3 p0, double3 p1); +double4 __ovld __cnfn cross(double4, double4); +double3 __ovld __cnfn cross(double3, double3); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half4 __ovld __cnfn cross(half4 p0, half4 p1); -half3 __ovld __cnfn cross(half3 p0, half3 p1); +half4 __ovld __cnfn cross(half4, half4); +half3 __ovld __cnfn cross(half3, half3); #endif //cl_khr_fp16 /** * Compute dot product. */ -float __ovld __cnfn dot(float p0, float p1); -float __ovld __cnfn dot(float2 p0, float2 p1); -float __ovld __cnfn dot(float3 p0, float3 p1); -float __ovld __cnfn dot(float4 p0, float4 p1); +float __ovld __cnfn dot(float, float); +float __ovld __cnfn dot(float2, float2); +float __ovld __cnfn dot(float3, float3); +float __ovld __cnfn dot(float4, float4); #ifdef cl_khr_fp64 -double __ovld __cnfn dot(double p0, double p1); -double __ovld __cnfn dot(double2 p0, double2 p1); -double __ovld __cnfn dot(double3 p0, double3 p1); -double __ovld __cnfn dot(double4 p0, double4 p1); +double __ovld __cnfn dot(double, double); +double __ovld __cnfn dot(double2, double2); +double __ovld __cnfn dot(double3, double3); +double __ovld __cnfn dot(double4, double4); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn dot(half p0, half p1); -half __ovld __cnfn dot(half2 p0, half2 p1); -half __ovld __cnfn dot(half3 p0, half3 p1); -half __ovld __cnfn dot(half4 p0, half4 p1); +half __ovld __cnfn dot(half, half); +half __ovld __cnfn dot(half2, half2); +half __ovld __cnfn dot(half3, half3); +half __ovld __cnfn dot(half4, half4); #endif //cl_khr_fp16 /** * Returns the distance between p0 and p1. This is * calculated as length(p0 - p1). */ -float __ovld __cnfn distance(float p0, float p1); -float __ovld __cnfn distance(float2 p0, float2 p1); -float __ovld __cnfn distance(float3 p0, float3 p1); -float __ovld __cnfn distance(float4 p0, float4 p1); +float __ovld __cnfn distance(float, float); +float __ovld __cnfn distance(float2, float2); +float __ovld __cnfn distance(float3, float3); +float __ovld __cnfn distance(float4, float4); #ifdef cl_khr_fp64 -double __ovld __cnfn distance(double p0, double p1); -double __ovld __cnfn distance(double2 p0, double2 p1); -double __ovld __cnfn distance(double3 p0, double3 p1); -double __ovld __cnfn distance(double4 p0, double4 p1); +double __ovld __cnfn distance(double, double); +double __ovld __cnfn distance(double2, double2); +double __ovld __cnfn distance(double3, double3); +double __ovld __cnfn distance(double4, double4); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn distance(half p0, half p1); -half __ovld __cnfn distance(half2 p0, half2 p1); -half __ovld __cnfn distance(half3 p0, half3 p1); -half __ovld __cnfn distance(half4 p0, half4 p1); +half __ovld __cnfn distance(half, half); +half __ovld __cnfn distance(half2, half2); +half __ovld __cnfn distance(half3, half3); +half __ovld __cnfn distance(half4, half4); #endif //cl_khr_fp16 /** * Return the length of vector p, i.e., * sqrt(p.x2 + p.y 2 + ...) */ -float __ovld __cnfn length(float p); -float __ovld __cnfn length(float2 p); -float __ovld __cnfn length(float3 p); -float __ovld __cnfn length(float4 p); +float __ovld __cnfn length(float); +float __ovld __cnfn length(float2); +float __ovld __cnfn length(float3); +float __ovld __cnfn length(float4); #ifdef cl_khr_fp64 -double __ovld __cnfn length(double p); -double __ovld __cnfn length(double2 p); -double __ovld __cnfn length(double3 p); -double __ovld __cnfn length(double4 p); +double __ovld __cnfn length(double); +double __ovld __cnfn length(double2); +double __ovld __cnfn length(double3); +double __ovld __cnfn length(double4); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn length(half p); -half __ovld __cnfn length(half2 p); -half __ovld __cnfn length(half3 p); -half __ovld __cnfn length(half4 p); +half __ovld __cnfn length(half); +half __ovld __cnfn length(half2); +half __ovld __cnfn length(half3); +half __ovld __cnfn length(half4); #endif //cl_khr_fp16 /** * Returns a vector in the same direction as p but with a * length of 1. */ -float __ovld __cnfn normalize(float p); -float2 __ovld __cnfn normalize(float2 p); -float3 __ovld __cnfn normalize(float3 p); -float4 __ovld __cnfn normalize(float4 p); +float __ovld __cnfn normalize(float); +float2 __ovld __cnfn normalize(float2); +float3 __ovld __cnfn normalize(float3); +float4 __ovld __cnfn normalize(float4); #ifdef cl_khr_fp64 -double __ovld __cnfn normalize(double p); -double2 __ovld __cnfn normalize(double2 p); -double3 __ovld __cnfn normalize(double3 p); -double4 __ovld __cnfn normalize(double4 p); +double __ovld __cnfn normalize(double); +double2 __ovld __cnfn normalize(double2); +double3 __ovld __cnfn normalize(double3); +double4 __ovld __cnfn normalize(double4); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn normalize(half p); -half2 __ovld __cnfn normalize(half2 p); -half3 __ovld __cnfn normalize(half3 p); -half4 __ovld __cnfn normalize(half4 p); +half __ovld __cnfn normalize(half); +half2 __ovld __cnfn normalize(half2); +half3 __ovld __cnfn normalize(half3); +half4 __ovld __cnfn normalize(half4); #endif //cl_khr_fp16 /** * Returns fast_length(p0 - p1). */ -float __ovld __cnfn fast_distance(float p0, float p1); -float __ovld __cnfn fast_distance(float2 p0, float2 p1); -float __ovld __cnfn fast_distance(float3 p0, float3 p1); -float __ovld __cnfn fast_distance(float4 p0, float4 p1); -#ifdef cl_khr_fp16 -half __ovld __cnfn fast_distance(half p0, half p1); -half __ovld __cnfn fast_distance(half2 p0, half2 p1); -half __ovld __cnfn fast_distance(half3 p0, half3 p1); -half __ovld __cnfn fast_distance(half4 p0, half4 p1); -#endif //cl_khr_fp16 +float __ovld __cnfn fast_distance(float, float); +float __ovld __cnfn fast_distance(float2, float2); +float __ovld __cnfn fast_distance(float3, float3); +float __ovld __cnfn fast_distance(float4, float4); /** * Returns the length of vector p computed as: * half_sqrt(p.x2 + p.y2 + ...) */ -float __ovld __cnfn fast_length(float p); -float __ovld __cnfn fast_length(float2 p); -float __ovld __cnfn fast_length(float3 p); -float __ovld __cnfn fast_length(float4 p); -#ifdef cl_khr_fp16 -half __ovld __cnfn fast_length(half p); -half __ovld __cnfn fast_length(half2 p); -half __ovld __cnfn fast_length(half3 p); -half __ovld __cnfn fast_length(half4 p); -#endif //cl_khr_fp16 +float __ovld __cnfn fast_length(float); +float __ovld __cnfn fast_length(float2); +float __ovld __cnfn fast_length(float3); +float __ovld __cnfn fast_length(float4); /** * Returns a vector in the same direction as p but with a @@ -11200,201 +11197,195 @@ half __ovld __cnfn fast_length(half4 p); * less than sqrt(FLT_MIN) may be flushed to zero * before proceeding with the calculation. */ -float __ovld __cnfn fast_normalize(float p); -float2 __ovld __cnfn fast_normalize(float2 p); -float3 __ovld __cnfn fast_normalize(float3 p); -float4 __ovld __cnfn fast_normalize(float4 p); -#ifdef cl_khr_fp16 -half __ovld __cnfn fast_normalize(half p); -half2 __ovld __cnfn fast_normalize(half2 p); -half3 __ovld __cnfn fast_normalize(half3 p); -half4 __ovld __cnfn fast_normalize(half4 p); -#endif //cl_khr_fp16 +float __ovld __cnfn fast_normalize(float); +float2 __ovld __cnfn fast_normalize(float2); +float3 __ovld __cnfn fast_normalize(float3); +float4 __ovld __cnfn fast_normalize(float4); // OpenCL v1.1 s6.11.6, v1.2 s6.12.6, v2.0 s6.13.6 - Relational Functions /** - * intn isequal (floatn x, floatn y) + * intn isequal (floatn, floatn ) * Returns the component-wise compare of x == y. */ -int __ovld __cnfn isequal(float x, float y); -int2 __ovld __cnfn isequal(float2 x, float2 y); -int3 __ovld __cnfn isequal(float3 x, float3 y); -int4 __ovld __cnfn isequal(float4 x, float4 y); -int8 __ovld __cnfn isequal(float8 x, float8 y); -int16 __ovld __cnfn isequal(float16 x, float16 y); +int __ovld __cnfn isequal(float, float ); +int2 __ovld __cnfn isequal(float2, float2 ); +int3 __ovld __cnfn isequal(float3, float3 ); +int4 __ovld __cnfn isequal(float4, float4 ); +int8 __ovld __cnfn isequal(float8, float8 ); +int16 __ovld __cnfn isequal(float16, float16 ); #ifdef cl_khr_fp64 -int __ovld __cnfn isequal(double x, double y); -long2 __ovld __cnfn isequal(double2 x, double2 y); -long3 __ovld __cnfn isequal(double3 x, double3 y); -long4 __ovld __cnfn isequal(double4 x, double4 y); -long8 __ovld __cnfn isequal(double8 x, double8 y); -long16 __ovld __cnfn isequal(double16 x, double16 y); +int __ovld __cnfn isequal(double, double ); +long2 __ovld __cnfn isequal(double2, double2 ); +long3 __ovld __cnfn isequal(double3, double3 ); +long4 __ovld __cnfn isequal(double4, double4 ); +long8 __ovld __cnfn isequal(double8, double8 ); +long16 __ovld __cnfn isequal(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -int __ovld __cnfn isequal(half x, half y); -short2 __ovld __cnfn isequal(half2 x, half2 y); -short3 __ovld __cnfn isequal(half3 x, half3 y); -short4 __ovld __cnfn isequal(half4 x, half4 y); -short8 __ovld __cnfn isequal(half8 x, half8 y); -short16 __ovld __cnfn isequal(half16 x, half16 y); +int __ovld __cnfn isequal(half, half ); +short2 __ovld __cnfn isequal(half2, half2 ); +short3 __ovld __cnfn isequal(half3, half3 ); +short4 __ovld __cnfn isequal(half4, half4 ); +short8 __ovld __cnfn isequal(half8, half8 ); +short16 __ovld __cnfn isequal(half16, half16 ); #endif //cl_khr_fp16 /** * Returns the component-wise compare of x != y. */ -int __ovld __cnfn isnotequal(float x, float y); -int2 __ovld __cnfn isnotequal(float2 x, float2 y); -int3 __ovld __cnfn isnotequal(float3 x, float3 y); -int4 __ovld __cnfn isnotequal(float4 x, float4 y); -int8 __ovld __cnfn isnotequal(float8 x, float8 y); -int16 __ovld __cnfn isnotequal(float16 x, float16 y); +int __ovld __cnfn isnotequal(float, float ); +int2 __ovld __cnfn isnotequal(float2, float2 ); +int3 __ovld __cnfn isnotequal(float3, float3 ); +int4 __ovld __cnfn isnotequal(float4, float4 ); +int8 __ovld __cnfn isnotequal(float8, float8 ); +int16 __ovld __cnfn isnotequal(float16, float16 ); #ifdef cl_khr_fp64 -int __ovld __cnfn isnotequal(double x, double y); -long2 __ovld __cnfn isnotequal(double2 x, double2 y); -long3 __ovld __cnfn isnotequal(double3 x, double3 y); -long4 __ovld __cnfn isnotequal(double4 x, double4 y); -long8 __ovld __cnfn isnotequal(double8 x, double8 y); -long16 __ovld __cnfn isnotequal(double16 x, double16 y); +int __ovld __cnfn isnotequal(double, double ); +long2 __ovld __cnfn isnotequal(double2, double2 ); +long3 __ovld __cnfn isnotequal(double3, double3 ); +long4 __ovld __cnfn isnotequal(double4, double4 ); +long8 __ovld __cnfn isnotequal(double8, double8 ); +long16 __ovld __cnfn isnotequal(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -int __ovld __cnfn isnotequal(half x, half y); -short2 __ovld __cnfn isnotequal(half2 x, half2 y); -short3 __ovld __cnfn isnotequal(half3 x, half3 y); -short4 __ovld __cnfn isnotequal(half4 x, half4 y); -short8 __ovld __cnfn isnotequal(half8 x, half8 y); -short16 __ovld __cnfn isnotequal(half16 x, half16 y); +int __ovld __cnfn isnotequal(half, half ); +short2 __ovld __cnfn isnotequal(half2, half2 ); +short3 __ovld __cnfn isnotequal(half3, half3 ); +short4 __ovld __cnfn isnotequal(half4, half4 ); +short8 __ovld __cnfn isnotequal(half8, half8 ); +short16 __ovld __cnfn isnotequal(half16, half16 ); #endif //cl_khr_fp16 /** * Returns the component-wise compare of x > y. */ -int __ovld __cnfn isgreater(float x, float y); -int2 __ovld __cnfn isgreater(float2 x, float2 y); -int3 __ovld __cnfn isgreater(float3 x, float3 y); -int4 __ovld __cnfn isgreater(float4 x, float4 y); -int8 __ovld __cnfn isgreater(float8 x, float8 y); -int16 __ovld __cnfn isgreater(float16 x, float16 y); +int __ovld __cnfn isgreater(float, float ); +int2 __ovld __cnfn isgreater(float2, float2 ); +int3 __ovld __cnfn isgreater(float3, float3 ); +int4 __ovld __cnfn isgreater(float4, float4 ); +int8 __ovld __cnfn isgreater(float8, float8 ); +int16 __ovld __cnfn isgreater(float16, float16 ); #ifdef cl_khr_fp64 -int __ovld __cnfn isgreater(double x, double y); -long2 __ovld __cnfn isgreater(double2 x, double2 y); -long3 __ovld __cnfn isgreater(double3 x, double3 y); -long4 __ovld __cnfn isgreater(double4 x, double4 y); -long8 __ovld __cnfn isgreater(double8 x, double8 y); -long16 __ovld __cnfn isgreater(double16 x, double16 y); +int __ovld __cnfn isgreater(double, double ); +long2 __ovld __cnfn isgreater(double2, double2 ); +long3 __ovld __cnfn isgreater(double3, double3 ); +long4 __ovld __cnfn isgreater(double4, double4 ); +long8 __ovld __cnfn isgreater(double8, double8 ); +long16 __ovld __cnfn isgreater(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -int __ovld __cnfn isgreater(half x, half y); -short2 __ovld __cnfn isgreater(half2 x, half2 y); -short3 __ovld __cnfn isgreater(half3 x, half3 y); -short4 __ovld __cnfn isgreater(half4 x, half4 y); -short8 __ovld __cnfn isgreater(half8 x, half8 y); -short16 __ovld __cnfn isgreater(half16 x, half16 y); +int __ovld __cnfn isgreater(half, half ); +short2 __ovld __cnfn isgreater(half2, half2 ); +short3 __ovld __cnfn isgreater(half3, half3 ); +short4 __ovld __cnfn isgreater(half4, half4 ); +short8 __ovld __cnfn isgreater(half8, half8 ); +short16 __ovld __cnfn isgreater(half16, half16 ); #endif //cl_khr_fp16 /** * Returns the component-wise compare of x >= y. */ -int __ovld __cnfn isgreaterequal(float x, float y); -int2 __ovld __cnfn isgreaterequal(float2 x, float2 y); -int3 __ovld __cnfn isgreaterequal(float3 x, float3 y); -int4 __ovld __cnfn isgreaterequal(float4 x, float4 y); -int8 __ovld __cnfn isgreaterequal(float8 x, float8 y); -int16 __ovld __cnfn isgreaterequal(float16 x, float16 y); +int __ovld __cnfn isgreaterequal(float, float ); +int2 __ovld __cnfn isgreaterequal(float2, float2 ); +int3 __ovld __cnfn isgreaterequal(float3, float3 ); +int4 __ovld __cnfn isgreaterequal(float4, float4 ); +int8 __ovld __cnfn isgreaterequal(float8, float8 ); +int16 __ovld __cnfn isgreaterequal(float16, float16 ); #ifdef cl_khr_fp64 -int __ovld __cnfn isgreaterequal(double x, double y); -long2 __ovld __cnfn isgreaterequal(double2 x, double2 y); -long3 __ovld __cnfn isgreaterequal(double3 x, double3 y); -long4 __ovld __cnfn isgreaterequal(double4 x, double4 y); -long8 __ovld __cnfn isgreaterequal(double8 x, double8 y); -long16 __ovld __cnfn isgreaterequal(double16 x, double16 y); +int __ovld __cnfn isgreaterequal(double, double ); +long2 __ovld __cnfn isgreaterequal(double2, double2 ); +long3 __ovld __cnfn isgreaterequal(double3, double3 ); +long4 __ovld __cnfn isgreaterequal(double4, double4 ); +long8 __ovld __cnfn isgreaterequal(double8, double8 ); +long16 __ovld __cnfn isgreaterequal(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -int __ovld __cnfn isgreaterequal(half x, half y); -short2 __ovld __cnfn isgreaterequal(half2 x, half2 y); -short3 __ovld __cnfn isgreaterequal(half3 x, half3 y); -short4 __ovld __cnfn isgreaterequal(half4 x, half4 y); -short8 __ovld __cnfn isgreaterequal(half8 x, half8 y); -short16 __ovld __cnfn isgreaterequal(half16 x, half16 y); +int __ovld __cnfn isgreaterequal(half, half ); +short2 __ovld __cnfn isgreaterequal(half2, half2 ); +short3 __ovld __cnfn isgreaterequal(half3, half3 ); +short4 __ovld __cnfn isgreaterequal(half4, half4 ); +short8 __ovld __cnfn isgreaterequal(half8, half8 ); +short16 __ovld __cnfn isgreaterequal(half16, half16 ); #endif //cl_khr_fp16 /** * Returns the component-wise compare of x < y. */ -int __ovld __cnfn isless(float x, float y); -int2 __ovld __cnfn isless(float2 x, float2 y); -int3 __ovld __cnfn isless(float3 x, float3 y); -int4 __ovld __cnfn isless(float4 x, float4 y); -int8 __ovld __cnfn isless(float8 x, float8 y); -int16 __ovld __cnfn isless(float16 x, float16 y); +int __ovld __cnfn isless(float, float ); +int2 __ovld __cnfn isless(float2, float2 ); +int3 __ovld __cnfn isless(float3, float3 ); +int4 __ovld __cnfn isless(float4, float4 ); +int8 __ovld __cnfn isless(float8, float8 ); +int16 __ovld __cnfn isless(float16, float16 ); #ifdef cl_khr_fp64 -int __ovld __cnfn isless(double x, double y); -long2 __ovld __cnfn isless(double2 x, double2 y); -long3 __ovld __cnfn isless(double3 x, double3 y); -long4 __ovld __cnfn isless(double4 x, double4 y); -long8 __ovld __cnfn isless(double8 x, double8 y); -long16 __ovld __cnfn isless(double16 x, double16 y); +int __ovld __cnfn isless(double, double ); +long2 __ovld __cnfn isless(double2, double2 ); +long3 __ovld __cnfn isless(double3, double3 ); +long4 __ovld __cnfn isless(double4, double4 ); +long8 __ovld __cnfn isless(double8, double8 ); +long16 __ovld __cnfn isless(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -int __ovld __cnfn isless(half x, half y); -short2 __ovld __cnfn isless(half2 x, half2 y); -short3 __ovld __cnfn isless(half3 x, half3 y); -short4 __ovld __cnfn isless(half4 x, half4 y); -short8 __ovld __cnfn isless(half8 x, half8 y); -short16 __ovld __cnfn isless(half16 x, half16 y); +int __ovld __cnfn isless(half, half ); +short2 __ovld __cnfn isless(half2, half2 ); +short3 __ovld __cnfn isless(half3, half3 ); +short4 __ovld __cnfn isless(half4, half4 ); +short8 __ovld __cnfn isless(half8, half8 ); +short16 __ovld __cnfn isless(half16, half16 ); #endif //cl_khr_fp16 /** * Returns the component-wise compare of x <= y. */ -int __ovld __cnfn islessequal(float x, float y); -int2 __ovld __cnfn islessequal(float2 x, float2 y); -int3 __ovld __cnfn islessequal(float3 x, float3 y); -int4 __ovld __cnfn islessequal(float4 x, float4 y); -int8 __ovld __cnfn islessequal(float8 x, float8 y); -int16 __ovld __cnfn islessequal(float16 x, float16 y); +int __ovld __cnfn islessequal(float, float ); +int2 __ovld __cnfn islessequal(float2, float2 ); +int3 __ovld __cnfn islessequal(float3, float3 ); +int4 __ovld __cnfn islessequal(float4, float4 ); +int8 __ovld __cnfn islessequal(float8, float8 ); +int16 __ovld __cnfn islessequal(float16, float16 ); #ifdef cl_khr_fp64 -int __ovld __cnfn islessequal(double x, double y); -long2 __ovld __cnfn islessequal(double2 x, double2 y); -long3 __ovld __cnfn islessequal(double3 x, double3 y); -long4 __ovld __cnfn islessequal(double4 x, double4 y); -long8 __ovld __cnfn islessequal(double8 x, double8 y); -long16 __ovld __cnfn islessequal(double16 x, double16 y); +int __ovld __cnfn islessequal(double, double ); +long2 __ovld __cnfn islessequal(double2, double2 ); +long3 __ovld __cnfn islessequal(double3, double3 ); +long4 __ovld __cnfn islessequal(double4, double4 ); +long8 __ovld __cnfn islessequal(double8, double8 ); +long16 __ovld __cnfn islessequal(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -int __ovld __cnfn islessequal(half x, half y); -short2 __ovld __cnfn islessequal(half2 x, half2 y); -short3 __ovld __cnfn islessequal(half3 x, half3 y); -short4 __ovld __cnfn islessequal(half4 x, half4 y); -short8 __ovld __cnfn islessequal(half8 x, half8 y); -short16 __ovld __cnfn islessequal(half16 x, half16 y); +int __ovld __cnfn islessequal(half, half ); +short2 __ovld __cnfn islessequal(half2, half2 ); +short3 __ovld __cnfn islessequal(half3, half3 ); +short4 __ovld __cnfn islessequal(half4, half4 ); +short8 __ovld __cnfn islessequal(half8, half8 ); +short16 __ovld __cnfn islessequal(half16, half16 ); #endif //cl_khr_fp16 /** * Returns the component-wise compare of - * (x < y) || (x > y) . + * (x < ) || (x > y) . */ -int __ovld __cnfn islessgreater(float x, float y); -int2 __ovld __cnfn islessgreater(float2 x, float2 y); -int3 __ovld __cnfn islessgreater(float3 x, float3 y); -int4 __ovld __cnfn islessgreater(float4 x, float4 y); -int8 __ovld __cnfn islessgreater(float8 x, float8 y); -int16 __ovld __cnfn islessgreater(float16 x, float16 y); +int __ovld __cnfn islessgreater(float, float ); +int2 __ovld __cnfn islessgreater(float2, float2 ); +int3 __ovld __cnfn islessgreater(float3, float3 ); +int4 __ovld __cnfn islessgreater(float4, float4 ); +int8 __ovld __cnfn islessgreater(float8, float8 ); +int16 __ovld __cnfn islessgreater(float16, float16 ); #ifdef cl_khr_fp64 -int __ovld __cnfn islessgreater(double x, double y); -long2 __ovld __cnfn islessgreater(double2 x, double2 y); -long3 __ovld __cnfn islessgreater(double3 x, double3 y); -long4 __ovld __cnfn islessgreater(double4 x, double4 y); -long8 __ovld __cnfn islessgreater(double8 x, double8 y); -long16 __ovld __cnfn islessgreater(double16 x, double16 y); +int __ovld __cnfn islessgreater(double, double ); +long2 __ovld __cnfn islessgreater(double2, double2 ); +long3 __ovld __cnfn islessgreater(double3, double3 ); +long4 __ovld __cnfn islessgreater(double4, double4 ); +long8 __ovld __cnfn islessgreater(double8, double8 ); +long16 __ovld __cnfn islessgreater(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -int __ovld __cnfn islessgreater(half x, half y); -short2 __ovld __cnfn islessgreater(half2 x, half2 y); -short3 __ovld __cnfn islessgreater(half3 x, half3 y); -short4 __ovld __cnfn islessgreater(half4 x, half4 y); -short8 __ovld __cnfn islessgreater(half8 x, half8 y); -short16 __ovld __cnfn islessgreater(half16 x, half16 y); +int __ovld __cnfn islessgreater(half, half ); +short2 __ovld __cnfn islessgreater(half2, half2 ); +short3 __ovld __cnfn islessgreater(half3, half3 ); +short4 __ovld __cnfn islessgreater(half4, half4 ); +short8 __ovld __cnfn islessgreater(half8, half8 ); +short16 __ovld __cnfn islessgreater(half16, half16 ); #endif //cl_khr_fp16 /** @@ -11503,58 +11494,58 @@ short16 __ovld __cnfn isnormal(half16); /** * Test if arguments are ordered. isordered() takes - * arguments x and y, and returns the result - * isequal(x, x) && isequal(y, y). + * arguments x and, and returns the result + * isequal(x, x) && isequal(y, ). */ -int __ovld __cnfn isordered(float x, float y); -int2 __ovld __cnfn isordered(float2 x, float2 y); -int3 __ovld __cnfn isordered(float3 x, float3 y); -int4 __ovld __cnfn isordered(float4 x, float4 y); -int8 __ovld __cnfn isordered(float8 x, float8 y); -int16 __ovld __cnfn isordered(float16 x, float16 y); +int __ovld __cnfn isordered(float, float ); +int2 __ovld __cnfn isordered(float2, float2 ); +int3 __ovld __cnfn isordered(float3, float3 ); +int4 __ovld __cnfn isordered(float4, float4 ); +int8 __ovld __cnfn isordered(float8, float8 ); +int16 __ovld __cnfn isordered(float16, float16 ); #ifdef cl_khr_fp64 -int __ovld __cnfn isordered(double x, double y); -long2 __ovld __cnfn isordered(double2 x, double2 y); -long3 __ovld __cnfn isordered(double3 x, double3 y); -long4 __ovld __cnfn isordered(double4 x, double4 y); -long8 __ovld __cnfn isordered(double8 x, double8 y); -long16 __ovld __cnfn isordered(double16 x, double16 y); +int __ovld __cnfn isordered(double, double ); +long2 __ovld __cnfn isordered(double2, double2 ); +long3 __ovld __cnfn isordered(double3, double3 ); +long4 __ovld __cnfn isordered(double4, double4 ); +long8 __ovld __cnfn isordered(double8, double8 ); +long16 __ovld __cnfn isordered(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -int __ovld __cnfn isordered(half x, half y); -short2 __ovld __cnfn isordered(half2 x, half2 y); -short3 __ovld __cnfn isordered(half3 x, half3 y); -short4 __ovld __cnfn isordered(half4 x, half4 y); -short8 __ovld __cnfn isordered(half8 x, half8 y); -short16 __ovld __cnfn isordered(half16 x, half16 y); +int __ovld __cnfn isordered(half, half ); +short2 __ovld __cnfn isordered(half2, half2 ); +short3 __ovld __cnfn isordered(half3, half3 ); +short4 __ovld __cnfn isordered(half4, half4 ); +short8 __ovld __cnfn isordered(half8, half8 ); +short16 __ovld __cnfn isordered(half16, half16 ); #endif //cl_khr_fp16 /** * Test if arguments are unordered. isunordered() - * takes arguments x and y, returning non-zero if x or y + * takes arguments x and, returning non-zero if x or y * is NaN, and zero otherwise. */ -int __ovld __cnfn isunordered(float x, float y); -int2 __ovld __cnfn isunordered(float2 x, float2 y); -int3 __ovld __cnfn isunordered(float3 x, float3 y); -int4 __ovld __cnfn isunordered(float4 x, float4 y); -int8 __ovld __cnfn isunordered(float8 x, float8 y); -int16 __ovld __cnfn isunordered(float16 x, float16 y); +int __ovld __cnfn isunordered(float, float ); +int2 __ovld __cnfn isunordered(float2, float2 ); +int3 __ovld __cnfn isunordered(float3, float3 ); +int4 __ovld __cnfn isunordered(float4, float4 ); +int8 __ovld __cnfn isunordered(float8, float8 ); +int16 __ovld __cnfn isunordered(float16, float16 ); #ifdef cl_khr_fp64 -int __ovld __cnfn isunordered(double x, double y); -long2 __ovld __cnfn isunordered(double2 x, double2 y); -long3 __ovld __cnfn isunordered(double3 x, double3 y); -long4 __ovld __cnfn isunordered(double4 x, double4 y); -long8 __ovld __cnfn isunordered(double8 x, double8 y); -long16 __ovld __cnfn isunordered(double16 x, double16 y); +int __ovld __cnfn isunordered(double, double ); +long2 __ovld __cnfn isunordered(double2, double2 ); +long3 __ovld __cnfn isunordered(double3, double3 ); +long4 __ovld __cnfn isunordered(double4, double4 ); +long8 __ovld __cnfn isunordered(double8, double8 ); +long16 __ovld __cnfn isunordered(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -int __ovld __cnfn isunordered(half x, half y); -short2 __ovld __cnfn isunordered(half2 x, half2 y); -short3 __ovld __cnfn isunordered(half3 x, half3 y); -short4 __ovld __cnfn isunordered(half4 x, half4 y); -short8 __ovld __cnfn isunordered(half8 x, half8 y); -short16 __ovld __cnfn isunordered(half16 x, half16 y); +int __ovld __cnfn isunordered(half, half ); +short2 __ovld __cnfn isunordered(half2, half2 ); +short3 __ovld __cnfn isunordered(half3, half3 ); +short4 __ovld __cnfn isunordered(half4, half4 ); +short8 __ovld __cnfn isunordered(half8, half8 ); +short16 __ovld __cnfn isunordered(half16, half16 ); #endif //cl_khr_fp16 /** @@ -11650,75 +11641,75 @@ int __ovld __cnfn all(long16 x); * the corresponding bit of c is 0. Otherwise it is the * corresponding bit of b. */ -char __ovld __cnfn bitselect(char a, char b, char c); -uchar __ovld __cnfn bitselect(uchar a, uchar b, uchar c); -char2 __ovld __cnfn bitselect(char2 a, char2 b, char2 c); -uchar2 __ovld __cnfn bitselect(uchar2 a, uchar2 b, uchar2 c); -char3 __ovld __cnfn bitselect(char3 a, char3 b, char3 c); -uchar3 __ovld __cnfn bitselect(uchar3 a, uchar3 b, uchar3 c); -char4 __ovld __cnfn bitselect(char4 a, char4 b, char4 c); -uchar4 __ovld __cnfn bitselect(uchar4 a, uchar4 b, uchar4 c); -char8 __ovld __cnfn bitselect(char8 a, char8 b, char8 c); -uchar8 __ovld __cnfn bitselect(uchar8 a, uchar8 b, uchar8 c); -char16 __ovld __cnfn bitselect(char16 a, char16 b, char16 c); -uchar16 __ovld __cnfn bitselect(uchar16 a, uchar16 b, uchar16 c); -short __ovld __cnfn bitselect(short a, short b, short c); -ushort __ovld __cnfn bitselect(ushort a, ushort b, ushort c); -short2 __ovld __cnfn bitselect(short2 a, short2 b, short2 c); -ushort2 __ovld __cnfn bitselect(ushort2 a, ushort2 b, ushort2 c); -short3 __ovld __cnfn bitselect(short3 a, short3 b, short3 c); -ushort3 __ovld __cnfn bitselect(ushort3 a, ushort3 b, ushort3 c); -short4 __ovld __cnfn bitselect(short4 a, short4 b, short4 c); -ushort4 __ovld __cnfn bitselect(ushort4 a, ushort4 b, ushort4 c); -short8 __ovld __cnfn bitselect(short8 a, short8 b, short8 c); -ushort8 __ovld __cnfn bitselect(ushort8 a, ushort8 b, ushort8 c); -short16 __ovld __cnfn bitselect(short16 a, short16 b, short16 c); -ushort16 __ovld __cnfn bitselect(ushort16 a, ushort16 b, ushort16 c); -int __ovld __cnfn bitselect(int a, int b, int c); -uint __ovld __cnfn bitselect(uint a, uint b, uint c); -int2 __ovld __cnfn bitselect(int2 a, int2 b, int2 c); -uint2 __ovld __cnfn bitselect(uint2 a, uint2 b, uint2 c); -int3 __ovld __cnfn bitselect(int3 a, int3 b, int3 c); -uint3 __ovld __cnfn bitselect(uint3 a, uint3 b, uint3 c); -int4 __ovld __cnfn bitselect(int4 a, int4 b, int4 c); -uint4 __ovld __cnfn bitselect(uint4 a, uint4 b, uint4 c); -int8 __ovld __cnfn bitselect(int8 a, int8 b, int8 c); -uint8 __ovld __cnfn bitselect(uint8 a, uint8 b, uint8 c); -int16 __ovld __cnfn bitselect(int16 a, int16 b, int16 c); -uint16 __ovld __cnfn bitselect(uint16 a, uint16 b, uint16 c); -long __ovld __cnfn bitselect(long a, long b, long c); -ulong __ovld __cnfn bitselect(ulong a, ulong b, ulong c); -long2 __ovld __cnfn bitselect(long2 a, long2 b, long2 c); -ulong2 __ovld __cnfn bitselect(ulong2 a, ulong2 b, ulong2 c); -long3 __ovld __cnfn bitselect(long3 a, long3 b, long3 c); -ulong3 __ovld __cnfn bitselect(ulong3 a, ulong3 b, ulong3 c); -long4 __ovld __cnfn bitselect(long4 a, long4 b, long4 c); -ulong4 __ovld __cnfn bitselect(ulong4 a, ulong4 b, ulong4 c); -long8 __ovld __cnfn bitselect(long8 a, long8 b, long8 c); -ulong8 __ovld __cnfn bitselect(ulong8 a, ulong8 b, ulong8 c); -long16 __ovld __cnfn bitselect(long16 a, long16 b, long16 c); -ulong16 __ovld __cnfn bitselect(ulong16 a, ulong16 b, ulong16 c); -float __ovld __cnfn bitselect(float a, float b, float c); -float2 __ovld __cnfn bitselect(float2 a, float2 b, float2 c); -float3 __ovld __cnfn bitselect(float3 a, float3 b, float3 c); -float4 __ovld __cnfn bitselect(float4 a, float4 b, float4 c); -float8 __ovld __cnfn bitselect(float8 a, float8 b, float8 c); -float16 __ovld __cnfn bitselect(float16 a, float16 b, float16 c); +char __ovld __cnfn bitselect(char, char, char); +uchar __ovld __cnfn bitselect(uchar, uchar, uchar); +char2 __ovld __cnfn bitselect(char2, char2, char2); +uchar2 __ovld __cnfn bitselect(uchar2, uchar2, uchar2); +char3 __ovld __cnfn bitselect(char3, char3, char3); +uchar3 __ovld __cnfn bitselect(uchar3, uchar3, uchar3); +char4 __ovld __cnfn bitselect(char4, char4, char4); +uchar4 __ovld __cnfn bitselect(uchar4, uchar4, uchar4); +char8 __ovld __cnfn bitselect(char8, char8, char8); +uchar8 __ovld __cnfn bitselect(uchar8, uchar8, uchar8); +char16 __ovld __cnfn bitselect(char16, char16, char16); +uchar16 __ovld __cnfn bitselect(uchar16, uchar16, uchar16); +short __ovld __cnfn bitselect(short, short, short); +ushort __ovld __cnfn bitselect(ushort, ushort, ushort); +short2 __ovld __cnfn bitselect(short2, short2, short2); +ushort2 __ovld __cnfn bitselect(ushort2, ushort2, ushort2); +short3 __ovld __cnfn bitselect(short3, short3, short3); +ushort3 __ovld __cnfn bitselect(ushort3, ushort3, ushort3); +short4 __ovld __cnfn bitselect(short4, short4, short4); +ushort4 __ovld __cnfn bitselect(ushort4, ushort4, ushort4); +short8 __ovld __cnfn bitselect(short8, short8, short8); +ushort8 __ovld __cnfn bitselect(ushort8, ushort8, ushort8); +short16 __ovld __cnfn bitselect(short16, short16, short16); +ushort16 __ovld __cnfn bitselect(ushort16, ushort16, ushort16); +int __ovld __cnfn bitselect(int, int, int); +uint __ovld __cnfn bitselect(uint, uint, uint); +int2 __ovld __cnfn bitselect(int2, int2, int2); +uint2 __ovld __cnfn bitselect(uint2, uint2, uint2); +int3 __ovld __cnfn bitselect(int3, int3, int3); +uint3 __ovld __cnfn bitselect(uint3, uint3, uint3); +int4 __ovld __cnfn bitselect(int4, int4, int4); +uint4 __ovld __cnfn bitselect(uint4, uint4, uint4); +int8 __ovld __cnfn bitselect(int8, int8, int8); +uint8 __ovld __cnfn bitselect(uint8, uint8, uint8); +int16 __ovld __cnfn bitselect(int16, int16, int16); +uint16 __ovld __cnfn bitselect(uint16, uint16, uint16); +long __ovld __cnfn bitselect(long, long, long); +ulong __ovld __cnfn bitselect(ulong, ulong, ulong); +long2 __ovld __cnfn bitselect(long2, long2, long2); +ulong2 __ovld __cnfn bitselect(ulong2, ulong2, ulong2); +long3 __ovld __cnfn bitselect(long3, long3, long3); +ulong3 __ovld __cnfn bitselect(ulong3, ulong3, ulong3); +long4 __ovld __cnfn bitselect(long4, long4, long4); +ulong4 __ovld __cnfn bitselect(ulong4, ulong4, ulong4); +long8 __ovld __cnfn bitselect(long8, long8, long8); +ulong8 __ovld __cnfn bitselect(ulong8, ulong8, ulong8); +long16 __ovld __cnfn bitselect(long16, long16, long16); +ulong16 __ovld __cnfn bitselect(ulong16, ulong16, ulong16); +float __ovld __cnfn bitselect(float, float, float); +float2 __ovld __cnfn bitselect(float2, float2, float2); +float3 __ovld __cnfn bitselect(float3, float3, float3); +float4 __ovld __cnfn bitselect(float4, float4, float4); +float8 __ovld __cnfn bitselect(float8, float8, float8); +float16 __ovld __cnfn bitselect(float16, float16, float16); #ifdef cl_khr_fp64 -double __ovld __cnfn bitselect(double a, double b, double c); -double2 __ovld __cnfn bitselect(double2 a, double2 b, double2 c); -double3 __ovld __cnfn bitselect(double3 a, double3 b, double3 c); -double4 __ovld __cnfn bitselect(double4 a, double4 b, double4 c); -double8 __ovld __cnfn bitselect(double8 a, double8 b, double8 c); -double16 __ovld __cnfn bitselect(double16 a, double16 b, double16 c); +double __ovld __cnfn bitselect(double, double, double); +double2 __ovld __cnfn bitselect(double2, double2, double2); +double3 __ovld __cnfn bitselect(double3, double3, double3); +double4 __ovld __cnfn bitselect(double4, double4, double4); +double8 __ovld __cnfn bitselect(double8, double8, double8); +double16 __ovld __cnfn bitselect(double16, double16, double16); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn bitselect(half a, half b, half c); -half2 __ovld __cnfn bitselect(half2 a, half2 b, half2 c); -half3 __ovld __cnfn bitselect(half3 a, half3 b, half3 c); -half4 __ovld __cnfn bitselect(half4 a, half4 b, half4 c); -half8 __ovld __cnfn bitselect(half8 a, half8 b, half8 c); -half16 __ovld __cnfn bitselect(half16 a, half16 b, half16 c); +half __ovld __cnfn bitselect(half, half, half); +half2 __ovld __cnfn bitselect(half2, half2, half2); +half3 __ovld __cnfn bitselect(half3, half3, half3); +half4 __ovld __cnfn bitselect(half4, half4, half4); +half8 __ovld __cnfn bitselect(half8, half8, half8); +half16 __ovld __cnfn bitselect(half16, half16, half16); #endif //cl_khr_fp16 /** @@ -11728,149 +11719,149 @@ half16 __ovld __cnfn bitselect(half16 a, half16 b, half16 c); * b and a must have the same type. * c must have the same number of elements and bits as a. */ -char __ovld __cnfn select(char a, char b, char c); -uchar __ovld __cnfn select(uchar a, uchar b, char c); -char2 __ovld __cnfn select(char2 a, char2 b, char2 c); -uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, char2 c); -char3 __ovld __cnfn select(char3 a, char3 b, char3 c); -uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, char3 c); -char4 __ovld __cnfn select(char4 a, char4 b, char4 c); -uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, char4 c); -char8 __ovld __cnfn select(char8 a, char8 b, char8 c); -uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, char8 c); -char16 __ovld __cnfn select(char16 a, char16 b, char16 c); -uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, char16 c); - -short __ovld __cnfn select(short a, short b, short c); -ushort __ovld __cnfn select(ushort a, ushort b, short c); -short2 __ovld __cnfn select(short2 a, short2 b, short2 c); -ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, short2 c); -short3 __ovld __cnfn select(short3 a, short3 b, short3 c); -ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, short3 c); -short4 __ovld __cnfn select(short4 a, short4 b, short4 c); -ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, short4 c); -short8 __ovld __cnfn select(short8 a, short8 b, short8 c); -ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, short8 c); -short16 __ovld __cnfn select(short16 a, short16 b, short16 c); -ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, short16 c); - -int __ovld __cnfn select(int a, int b, int c); -uint __ovld __cnfn select(uint a, uint b, int c); -int2 __ovld __cnfn select(int2 a, int2 b, int2 c); -uint2 __ovld __cnfn select(uint2 a, uint2 b, int2 c); -int3 __ovld __cnfn select(int3 a, int3 b, int3 c); -uint3 __ovld __cnfn select(uint3 a, uint3 b, int3 c); -int4 __ovld __cnfn select(int4 a, int4 b, int4 c); -uint4 __ovld __cnfn select(uint4 a, uint4 b, int4 c); -int8 __ovld __cnfn select(int8 a, int8 b, int8 c); -uint8 __ovld __cnfn select(uint8 a, uint8 b, int8 c); -int16 __ovld __cnfn select(int16 a, int16 b, int16 c); -uint16 __ovld __cnfn select(uint16 a, uint16 b, int16 c); -float __ovld __cnfn select(float a, float b, int c); -float2 __ovld __cnfn select(float2 a, float2 b, int2 c); -float3 __ovld __cnfn select(float3 a, float3 b, int3 c); -float4 __ovld __cnfn select(float4 a, float4 b, int4 c); -float8 __ovld __cnfn select(float8 a, float8 b, int8 c); -float16 __ovld __cnfn select(float16 a, float16 b, int16 c); - -long __ovld __cnfn select(long a, long b, long c); -ulong __ovld __cnfn select(ulong a, ulong b, long c); -long2 __ovld __cnfn select(long2 a, long2 b, long2 c); -ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, long2 c); -long3 __ovld __cnfn select(long3 a, long3 b, long3 c); -ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, long3 c); -long4 __ovld __cnfn select(long4 a, long4 b, long4 c); -ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, long4 c); -long8 __ovld __cnfn select(long8 a, long8 b, long8 c); -ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, long8 c); -long16 __ovld __cnfn select(long16 a, long16 b, long16 c); -ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, long16 c); - -char __ovld __cnfn select(char a, char b, uchar c); -uchar __ovld __cnfn select(uchar a, uchar b, uchar c); -char2 __ovld __cnfn select(char2 a, char2 b, uchar2 c); -uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, uchar2 c); -char3 __ovld __cnfn select(char3 a, char3 b, uchar3 c); -uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, uchar3 c); -char4 __ovld __cnfn select(char4 a, char4 b, uchar4 c); -uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, uchar4 c); -char8 __ovld __cnfn select(char8 a, char8 b, uchar8 c); -uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, uchar8 c); -char16 __ovld __cnfn select(char16 a, char16 b, uchar16 c); -uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, uchar16 c); - -short __ovld __cnfn select(short a, short b, ushort c); -ushort __ovld __cnfn select(ushort a, ushort b, ushort c); -short2 __ovld __cnfn select(short2 a, short2 b, ushort2 c); -ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, ushort2 c); -short3 __ovld __cnfn select(short3 a, short3 b, ushort3 c); -ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, ushort3 c); -short4 __ovld __cnfn select(short4 a, short4 b, ushort4 c); -ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, ushort4 c); -short8 __ovld __cnfn select(short8 a, short8 b, ushort8 c); -ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, ushort8 c); -short16 __ovld __cnfn select(short16 a, short16 b, ushort16 c); -ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, ushort16 c); - -int __ovld __cnfn select(int a, int b, uint c); -uint __ovld __cnfn select(uint a, uint b, uint c); -int2 __ovld __cnfn select(int2 a, int2 b, uint2 c); -uint2 __ovld __cnfn select(uint2 a, uint2 b, uint2 c); -int3 __ovld __cnfn select(int3 a, int3 b, uint3 c); -uint3 __ovld __cnfn select(uint3 a, uint3 b, uint3 c); -int4 __ovld __cnfn select(int4 a, int4 b, uint4 c); -uint4 __ovld __cnfn select(uint4 a, uint4 b, uint4 c); -int8 __ovld __cnfn select(int8 a, int8 b, uint8 c); -uint8 __ovld __cnfn select(uint8 a, uint8 b, uint8 c); -int16 __ovld __cnfn select(int16 a, int16 b, uint16 c); -uint16 __ovld __cnfn select(uint16 a, uint16 b, uint16 c); -float __ovld __cnfn select(float a, float b, uint c); -float2 __ovld __cnfn select(float2 a, float2 b, uint2 c); -float3 __ovld __cnfn select(float3 a, float3 b, uint3 c); -float4 __ovld __cnfn select(float4 a, float4 b, uint4 c); -float8 __ovld __cnfn select(float8 a, float8 b, uint8 c); -float16 __ovld __cnfn select(float16 a, float16 b, uint16 c); - -long __ovld __cnfn select(long a, long b, ulong c); -ulong __ovld __cnfn select(ulong a, ulong b, ulong c); -long2 __ovld __cnfn select(long2 a, long2 b, ulong2 c); -ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, ulong2 c); -long3 __ovld __cnfn select(long3 a, long3 b, ulong3 c); -ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, ulong3 c); -long4 __ovld __cnfn select(long4 a, long4 b, ulong4 c); -ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, ulong4 c); -long8 __ovld __cnfn select(long8 a, long8 b, ulong8 c); -ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, ulong8 c); -long16 __ovld __cnfn select(long16 a, long16 b, ulong16 c); -ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, ulong16 c); +char __ovld __cnfn select(char, char, char); +uchar __ovld __cnfn select(uchar, uchar, char); +char2 __ovld __cnfn select(char2, char2, char2); +uchar2 __ovld __cnfn select(uchar2, uchar2, char2); +char3 __ovld __cnfn select(char3, char3, char3); +uchar3 __ovld __cnfn select(uchar3, uchar3, char3); +char4 __ovld __cnfn select(char4, char4, char4); +uchar4 __ovld __cnfn select(uchar4, uchar4, char4); +char8 __ovld __cnfn select(char8, char8, char8); +uchar8 __ovld __cnfn select(uchar8, uchar8, char8); +char16 __ovld __cnfn select(char16, char16, char16); +uchar16 __ovld __cnfn select(uchar16, uchar16, char16); + +short __ovld __cnfn select(short, short, short); +ushort __ovld __cnfn select(ushort, ushort, short); +short2 __ovld __cnfn select(short2, short2, short2); +ushort2 __ovld __cnfn select(ushort2, ushort2, short2); +short3 __ovld __cnfn select(short3, short3, short3); +ushort3 __ovld __cnfn select(ushort3, ushort3, short3); +short4 __ovld __cnfn select(short4, short4, short4); +ushort4 __ovld __cnfn select(ushort4, ushort4, short4); +short8 __ovld __cnfn select(short8, short8, short8); +ushort8 __ovld __cnfn select(ushort8, ushort8, short8); +short16 __ovld __cnfn select(short16, short16, short16); +ushort16 __ovld __cnfn select(ushort16, ushort16, short16); + +int __ovld __cnfn select(int, int, int); +uint __ovld __cnfn select(uint, uint, int); +int2 __ovld __cnfn select(int2, int2, int2); +uint2 __ovld __cnfn select(uint2, uint2, int2); +int3 __ovld __cnfn select(int3, int3, int3); +uint3 __ovld __cnfn select(uint3, uint3, int3); +int4 __ovld __cnfn select(int4, int4, int4); +uint4 __ovld __cnfn select(uint4, uint4, int4); +int8 __ovld __cnfn select(int8, int8, int8); +uint8 __ovld __cnfn select(uint8, uint8, int8); +int16 __ovld __cnfn select(int16, int16, int16); +uint16 __ovld __cnfn select(uint16, uint16, int16); +float __ovld __cnfn select(float, float, int); +float2 __ovld __cnfn select(float2, float2, int2); +float3 __ovld __cnfn select(float3, float3, int3); +float4 __ovld __cnfn select(float4, float4, int4); +float8 __ovld __cnfn select(float8, float8, int8); +float16 __ovld __cnfn select(float16, float16, int16); + +long __ovld __cnfn select(long, long, long); +ulong __ovld __cnfn select(ulong, ulong, long); +long2 __ovld __cnfn select(long2, long2, long2); +ulong2 __ovld __cnfn select(ulong2, ulong2, long2); +long3 __ovld __cnfn select(long3, long3, long3); +ulong3 __ovld __cnfn select(ulong3, ulong3, long3); +long4 __ovld __cnfn select(long4, long4, long4); +ulong4 __ovld __cnfn select(ulong4, ulong4, long4); +long8 __ovld __cnfn select(long8, long8, long8); +ulong8 __ovld __cnfn select(ulong8, ulong8, long8); +long16 __ovld __cnfn select(long16, long16, long16); +ulong16 __ovld __cnfn select(ulong16, ulong16, long16); + +char __ovld __cnfn select(char, char, uchar); +uchar __ovld __cnfn select(uchar, uchar, uchar); +char2 __ovld __cnfn select(char2, char2, uchar2); +uchar2 __ovld __cnfn select(uchar2, uchar2, uchar2); +char3 __ovld __cnfn select(char3, char3, uchar3); +uchar3 __ovld __cnfn select(uchar3, uchar3, uchar3); +char4 __ovld __cnfn select(char4, char4, uchar4); +uchar4 __ovld __cnfn select(uchar4, uchar4, uchar4); +char8 __ovld __cnfn select(char8, char8, uchar8); +uchar8 __ovld __cnfn select(uchar8, uchar8, uchar8); +char16 __ovld __cnfn select(char16, char16, uchar16); +uchar16 __ovld __cnfn select(uchar16, uchar16, uchar16); + +short __ovld __cnfn select(short, short, ushort); +ushort __ovld __cnfn select(ushort, ushort, ushort); +short2 __ovld __cnfn select(short2, short2, ushort2); +ushort2 __ovld __cnfn select(ushort2, ushort2, ushort2); +short3 __ovld __cnfn select(short3, short3, ushort3); +ushort3 __ovld __cnfn select(ushort3, ushort3, ushort3); +short4 __ovld __cnfn select(short4, short4, ushort4); +ushort4 __ovld __cnfn select(ushort4, ushort4, ushort4); +short8 __ovld __cnfn select(short8, short8, ushort8); +ushort8 __ovld __cnfn select(ushort8, ushort8, ushort8); +short16 __ovld __cnfn select(short16, short16, ushort16); +ushort16 __ovld __cnfn select(ushort16, ushort16, ushort16); + +int __ovld __cnfn select(int, int, uint); +uint __ovld __cnfn select(uint, uint, uint); +int2 __ovld __cnfn select(int2, int2, uint2); +uint2 __ovld __cnfn select(uint2, uint2, uint2); +int3 __ovld __cnfn select(int3, int3, uint3); +uint3 __ovld __cnfn select(uint3, uint3, uint3); +int4 __ovld __cnfn select(int4, int4, uint4); +uint4 __ovld __cnfn select(uint4, uint4, uint4); +int8 __ovld __cnfn select(int8, int8, uint8); +uint8 __ovld __cnfn select(uint8, uint8, uint8); +int16 __ovld __cnfn select(int16, int16, uint16); +uint16 __ovld __cnfn select(uint16, uint16, uint16); +float __ovld __cnfn select(float, float, uint); +float2 __ovld __cnfn select(float2, float2, uint2); +float3 __ovld __cnfn select(float3, float3, uint3); +float4 __ovld __cnfn select(float4, float4, uint4); +float8 __ovld __cnfn select(float8, float8, uint8); +float16 __ovld __cnfn select(float16, float16, uint16); + +long __ovld __cnfn select(long, long, ulong); +ulong __ovld __cnfn select(ulong, ulong, ulong); +long2 __ovld __cnfn select(long2, long2, ulong2); +ulong2 __ovld __cnfn select(ulong2, ulong2, ulong2); +long3 __ovld __cnfn select(long3, long3, ulong3); +ulong3 __ovld __cnfn select(ulong3, ulong3, ulong3); +long4 __ovld __cnfn select(long4, long4, ulong4); +ulong4 __ovld __cnfn select(ulong4, ulong4, ulong4); +long8 __ovld __cnfn select(long8, long8, ulong8); +ulong8 __ovld __cnfn select(ulong8, ulong8, ulong8); +long16 __ovld __cnfn select(long16, long16, ulong16); +ulong16 __ovld __cnfn select(ulong16, ulong16, ulong16); #ifdef cl_khr_fp64 -double __ovld __cnfn select(double a, double b, long c); -double2 __ovld __cnfn select(double2 a, double2 b, long2 c); -double3 __ovld __cnfn select(double3 a, double3 b, long3 c); -double4 __ovld __cnfn select(double4 a, double4 b, long4 c); -double8 __ovld __cnfn select(double8 a, double8 b, long8 c); -double16 __ovld __cnfn select(double16 a, double16 b, long16 c); -double __ovld __cnfn select(double a, double b, ulong c); -double2 __ovld __cnfn select(double2 a, double2 b, ulong2 c); -double3 __ovld __cnfn select(double3 a, double3 b, ulong3 c); -double4 __ovld __cnfn select(double4 a, double4 b, ulong4 c); -double8 __ovld __cnfn select(double8 a, double8 b, ulong8 c); -double16 __ovld __cnfn select(double16 a, double16 b, ulong16 c); +double __ovld __cnfn select(double, double, long); +double2 __ovld __cnfn select(double2, double2, long2); +double3 __ovld __cnfn select(double3, double3, long3); +double4 __ovld __cnfn select(double4, double4, long4); +double8 __ovld __cnfn select(double8, double8, long8); +double16 __ovld __cnfn select(double16, double16, long16); +double __ovld __cnfn select(double, double, ulong); +double2 __ovld __cnfn select(double2, double2, ulong2); +double3 __ovld __cnfn select(double3, double3, ulong3); +double4 __ovld __cnfn select(double4, double4, ulong4); +double8 __ovld __cnfn select(double8, double8, ulong8); +double16 __ovld __cnfn select(double16, double16, ulong16); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn select(half a, half b, short c); -half2 __ovld __cnfn select(half2 a, half2 b, short2 c); -half3 __ovld __cnfn select(half3 a, half3 b, short3 c); -half4 __ovld __cnfn select(half4 a, half4 b, short4 c); -half8 __ovld __cnfn select(half8 a, half8 b, short8 c); -half16 __ovld __cnfn select(half16 a, half16 b, short16 c); -half __ovld __cnfn select(half a, half b, ushort c); -half2 __ovld __cnfn select(half2 a, half2 b, ushort2 c); -half3 __ovld __cnfn select(half3 a, half3 b, ushort3 c); -half4 __ovld __cnfn select(half4 a, half4 b, ushort4 c); -half8 __ovld __cnfn select(half8 a, half8 b, ushort8 c); -half16 __ovld __cnfn select(half16 a, half16 b, ushort16 c); +half __ovld __cnfn select(half, half, short); +half2 __ovld __cnfn select(half2, half2, short2); +half3 __ovld __cnfn select(half3, half3, short3); +half4 __ovld __cnfn select(half4, half4, short4); +half8 __ovld __cnfn select(half8, half8, short8); +half16 __ovld __cnfn select(half16, half16, short16); +half __ovld __cnfn select(half, half, ushort); +half2 __ovld __cnfn select(half2, half2, ushort2); +half3 __ovld __cnfn select(half3, half3, ushort3); +half4 __ovld __cnfn select(half4, half4, ushort4); +half8 __ovld __cnfn select(half8, half8, ushort8); +half16 __ovld __cnfn select(half16, half16, ushort16); #endif //cl_khr_fp16 // OpenCL v1.1 s6.11.7, v1.2 s6.12.7, v2.0 s6.13.7 - Vector Data Load and Store Functions @@ -11891,543 +11882,539 @@ half16 __ovld __cnfn select(half16 a, half16 b, ushort16 c); * 64-bit aligned if gentype is long, ulong, double. */ -char2 __ovld vload2(size_t offset, const __constant char *p); -uchar2 __ovld vload2(size_t offset, const __constant uchar *p); -short2 __ovld vload2(size_t offset, const __constant short *p); -ushort2 __ovld vload2(size_t offset, const __constant ushort *p); -int2 __ovld vload2(size_t offset, const __constant int *p); -uint2 __ovld vload2(size_t offset, const __constant uint *p); -long2 __ovld vload2(size_t offset, const __constant long *p); -ulong2 __ovld vload2(size_t offset, const __constant ulong *p); -float2 __ovld vload2(size_t offset, const __constant float *p); -char3 __ovld vload3(size_t offset, const __constant char *p); -uchar3 __ovld vload3(size_t offset, const __constant uchar *p); -short3 __ovld vload3(size_t offset, const __constant short *p); -ushort3 __ovld vload3(size_t offset, const __constant ushort *p); -int3 __ovld vload3(size_t offset, const __constant int *p); -uint3 __ovld vload3(size_t offset, const __constant uint *p); -long3 __ovld vload3(size_t offset, const __constant long *p); -ulong3 __ovld vload3(size_t offset, const __constant ulong *p); -float3 __ovld vload3(size_t offset, const __constant float *p); -char4 __ovld vload4(size_t offset, const __constant char *p); -uchar4 __ovld vload4(size_t offset, const __constant uchar *p); -short4 __ovld vload4(size_t offset, const __constant short *p); -ushort4 __ovld vload4(size_t offset, const __constant ushort *p); -int4 __ovld vload4(size_t offset, const __constant int *p); -uint4 __ovld vload4(size_t offset, const __constant uint *p); -long4 __ovld vload4(size_t offset, const __constant long *p); -ulong4 __ovld vload4(size_t offset, const __constant ulong *p); -float4 __ovld vload4(size_t offset, const __constant float *p); -char8 __ovld vload8(size_t offset, const __constant char *p); -uchar8 __ovld vload8(size_t offset, const __constant uchar *p); -short8 __ovld vload8(size_t offset, const __constant short *p); -ushort8 __ovld vload8(size_t offset, const __constant ushort *p); -int8 __ovld vload8(size_t offset, const __constant int *p); -uint8 __ovld vload8(size_t offset, const __constant uint *p); -long8 __ovld vload8(size_t offset, const __constant long *p); -ulong8 __ovld vload8(size_t offset, const __constant ulong *p); -float8 __ovld vload8(size_t offset, const __constant float *p); -char16 __ovld vload16(size_t offset, const __constant char *p); -uchar16 __ovld vload16(size_t offset, const __constant uchar *p); -short16 __ovld vload16(size_t offset, const __constant short *p); -ushort16 __ovld vload16(size_t offset, const __constant ushort *p); -int16 __ovld vload16(size_t offset, const __constant int *p); -uint16 __ovld vload16(size_t offset, const __constant uint *p); -long16 __ovld vload16(size_t offset, const __constant long *p); -ulong16 __ovld vload16(size_t offset, const __constant ulong *p); -float16 __ovld vload16(size_t offset, const __constant float *p); +char2 __ovld __purefn vload2(size_t, const __constant char *); +uchar2 __ovld __purefn vload2(size_t, const __constant uchar *); +short2 __ovld __purefn vload2(size_t, const __constant short *); +ushort2 __ovld __purefn vload2(size_t, const __constant ushort *); +int2 __ovld __purefn vload2(size_t, const __constant int *); +uint2 __ovld __purefn vload2(size_t, const __constant uint *); +long2 __ovld __purefn vload2(size_t, const __constant long *); +ulong2 __ovld __purefn vload2(size_t, const __constant ulong *); +float2 __ovld __purefn vload2(size_t, const __constant float *); +char3 __ovld __purefn vload3(size_t, const __constant char *); +uchar3 __ovld __purefn vload3(size_t, const __constant uchar *); +short3 __ovld __purefn vload3(size_t, const __constant short *); +ushort3 __ovld __purefn vload3(size_t, const __constant ushort *); +int3 __ovld __purefn vload3(size_t, const __constant int *); +uint3 __ovld __purefn vload3(size_t, const __constant uint *); +long3 __ovld __purefn vload3(size_t, const __constant long *); +ulong3 __ovld __purefn vload3(size_t, const __constant ulong *); +float3 __ovld __purefn vload3(size_t, const __constant float *); +char4 __ovld __purefn vload4(size_t, const __constant char *); +uchar4 __ovld __purefn vload4(size_t, const __constant uchar *); +short4 __ovld __purefn vload4(size_t, const __constant short *); +ushort4 __ovld __purefn vload4(size_t, const __constant ushort *); +int4 __ovld __purefn vload4(size_t, const __constant int *); +uint4 __ovld __purefn vload4(size_t, const __constant uint *); +long4 __ovld __purefn vload4(size_t, const __constant long *); +ulong4 __ovld __purefn vload4(size_t, const __constant ulong *); +float4 __ovld __purefn vload4(size_t, const __constant float *); +char8 __ovld __purefn vload8(size_t, const __constant char *); +uchar8 __ovld __purefn vload8(size_t, const __constant uchar *); +short8 __ovld __purefn vload8(size_t, const __constant short *); +ushort8 __ovld __purefn vload8(size_t, const __constant ushort *); +int8 __ovld __purefn vload8(size_t, const __constant int *); +uint8 __ovld __purefn vload8(size_t, const __constant uint *); +long8 __ovld __purefn vload8(size_t, const __constant long *); +ulong8 __ovld __purefn vload8(size_t, const __constant ulong *); +float8 __ovld __purefn vload8(size_t, const __constant float *); +char16 __ovld __purefn vload16(size_t, const __constant char *); +uchar16 __ovld __purefn vload16(size_t, const __constant uchar *); +short16 __ovld __purefn vload16(size_t, const __constant short *); +ushort16 __ovld __purefn vload16(size_t, const __constant ushort *); +int16 __ovld __purefn vload16(size_t, const __constant int *); +uint16 __ovld __purefn vload16(size_t, const __constant uint *); +long16 __ovld __purefn vload16(size_t, const __constant long *); +ulong16 __ovld __purefn vload16(size_t, const __constant ulong *); +float16 __ovld __purefn vload16(size_t, const __constant float *); #ifdef cl_khr_fp64 -double2 __ovld vload2(size_t offset, const __constant double *p); -double3 __ovld vload3(size_t offset, const __constant double *p); -double4 __ovld vload4(size_t offset, const __constant double *p); -double8 __ovld vload8(size_t offset, const __constant double *p); -double16 __ovld vload16(size_t offset, const __constant double *p); +double2 __ovld __purefn vload2(size_t, const __constant double *); +double3 __ovld __purefn vload3(size_t, const __constant double *); +double4 __ovld __purefn vload4(size_t, const __constant double *); +double8 __ovld __purefn vload8(size_t, const __constant double *); +double16 __ovld __purefn vload16(size_t, const __constant double *); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld vload(size_t offset, const __constant half *p); -half2 __ovld vload2(size_t offset, const __constant half *p); -half3 __ovld vload3(size_t offset, const __constant half *p); -half4 __ovld vload4(size_t offset, const __constant half *p); -half8 __ovld vload8(size_t offset, const __constant half *p); -half16 __ovld vload16(size_t offset, const __constant half *p); +half2 __ovld __purefn vload2(size_t, const __constant half *); +half3 __ovld __purefn vload3(size_t, const __constant half *); +half4 __ovld __purefn vload4(size_t, const __constant half *); +half8 __ovld __purefn vload8(size_t, const __constant half *); +half16 __ovld __purefn vload16(size_t, const __constant half *); #endif //cl_khr_fp16 -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -char2 __ovld vload2(size_t offset, const char *p); -uchar2 __ovld vload2(size_t offset, const uchar *p); -short2 __ovld vload2(size_t offset, const short *p); -ushort2 __ovld vload2(size_t offset, const ushort *p); -int2 __ovld vload2(size_t offset, const int *p); -uint2 __ovld vload2(size_t offset, const uint *p); -long2 __ovld vload2(size_t offset, const long *p); -ulong2 __ovld vload2(size_t offset, const ulong *p); -float2 __ovld vload2(size_t offset, const float *p); -char3 __ovld vload3(size_t offset, const char *p); -uchar3 __ovld vload3(size_t offset, const uchar *p); -short3 __ovld vload3(size_t offset, const short *p); -ushort3 __ovld vload3(size_t offset, const ushort *p); -int3 __ovld vload3(size_t offset, const int *p); -uint3 __ovld vload3(size_t offset, const uint *p); -long3 __ovld vload3(size_t offset, const long *p); -ulong3 __ovld vload3(size_t offset, const ulong *p); -float3 __ovld vload3(size_t offset, const float *p); -char4 __ovld vload4(size_t offset, const char *p); -uchar4 __ovld vload4(size_t offset, const uchar *p); -short4 __ovld vload4(size_t offset, const short *p); -ushort4 __ovld vload4(size_t offset, const ushort *p); -int4 __ovld vload4(size_t offset, const int *p); -uint4 __ovld vload4(size_t offset, const uint *p); -long4 __ovld vload4(size_t offset, const long *p); -ulong4 __ovld vload4(size_t offset, const ulong *p); -float4 __ovld vload4(size_t offset, const float *p); -char8 __ovld vload8(size_t offset, const char *p); -uchar8 __ovld vload8(size_t offset, const uchar *p); -short8 __ovld vload8(size_t offset, const short *p); -ushort8 __ovld vload8(size_t offset, const ushort *p); -int8 __ovld vload8(size_t offset, const int *p); -uint8 __ovld vload8(size_t offset, const uint *p); -long8 __ovld vload8(size_t offset, const long *p); -ulong8 __ovld vload8(size_t offset, const ulong *p); -float8 __ovld vload8(size_t offset, const float *p); -char16 __ovld vload16(size_t offset, const char *p); -uchar16 __ovld vload16(size_t offset, const uchar *p); -short16 __ovld vload16(size_t offset, const short *p); -ushort16 __ovld vload16(size_t offset, const ushort *p); -int16 __ovld vload16(size_t offset, const int *p); -uint16 __ovld vload16(size_t offset, const uint *p); -long16 __ovld vload16(size_t offset, const long *p); -ulong16 __ovld vload16(size_t offset, const ulong *p); -float16 __ovld vload16(size_t offset, const float *p); +#if defined(__opencl_c_generic_address_space) +char2 __ovld __purefn vload2(size_t, const char *); +uchar2 __ovld __purefn vload2(size_t, const uchar *); +short2 __ovld __purefn vload2(size_t, const short *); +ushort2 __ovld __purefn vload2(size_t, const ushort *); +int2 __ovld __purefn vload2(size_t, const int *); +uint2 __ovld __purefn vload2(size_t, const uint *); +long2 __ovld __purefn vload2(size_t, const long *); +ulong2 __ovld __purefn vload2(size_t, const ulong *); +float2 __ovld __purefn vload2(size_t, const float *); +char3 __ovld __purefn vload3(size_t, const char *); +uchar3 __ovld __purefn vload3(size_t, const uchar *); +short3 __ovld __purefn vload3(size_t, const short *); +ushort3 __ovld __purefn vload3(size_t, const ushort *); +int3 __ovld __purefn vload3(size_t, const int *); +uint3 __ovld __purefn vload3(size_t, const uint *); +long3 __ovld __purefn vload3(size_t, const long *); +ulong3 __ovld __purefn vload3(size_t, const ulong *); +float3 __ovld __purefn vload3(size_t, const float *); +char4 __ovld __purefn vload4(size_t, const char *); +uchar4 __ovld __purefn vload4(size_t, const uchar *); +short4 __ovld __purefn vload4(size_t, const short *); +ushort4 __ovld __purefn vload4(size_t, const ushort *); +int4 __ovld __purefn vload4(size_t, const int *); +uint4 __ovld __purefn vload4(size_t, const uint *); +long4 __ovld __purefn vload4(size_t, const long *); +ulong4 __ovld __purefn vload4(size_t, const ulong *); +float4 __ovld __purefn vload4(size_t, const float *); +char8 __ovld __purefn vload8(size_t, const char *); +uchar8 __ovld __purefn vload8(size_t, const uchar *); +short8 __ovld __purefn vload8(size_t, const short *); +ushort8 __ovld __purefn vload8(size_t, const ushort *); +int8 __ovld __purefn vload8(size_t, const int *); +uint8 __ovld __purefn vload8(size_t, const uint *); +long8 __ovld __purefn vload8(size_t, const long *); +ulong8 __ovld __purefn vload8(size_t, const ulong *); +float8 __ovld __purefn vload8(size_t, const float *); +char16 __ovld __purefn vload16(size_t, const char *); +uchar16 __ovld __purefn vload16(size_t, const uchar *); +short16 __ovld __purefn vload16(size_t, const short *); +ushort16 __ovld __purefn vload16(size_t, const ushort *); +int16 __ovld __purefn vload16(size_t, const int *); +uint16 __ovld __purefn vload16(size_t, const uint *); +long16 __ovld __purefn vload16(size_t, const long *); +ulong16 __ovld __purefn vload16(size_t, const ulong *); +float16 __ovld __purefn vload16(size_t, const float *); #ifdef cl_khr_fp64 -double2 __ovld vload2(size_t offset, const double *p); -double3 __ovld vload3(size_t offset, const double *p); -double4 __ovld vload4(size_t offset, const double *p); -double8 __ovld vload8(size_t offset, const double *p); -double16 __ovld vload16(size_t offset, const double *p); +double2 __ovld __purefn vload2(size_t, const double *); +double3 __ovld __purefn vload3(size_t, const double *); +double4 __ovld __purefn vload4(size_t, const double *); +double8 __ovld __purefn vload8(size_t, const double *); +double16 __ovld __purefn vload16(size_t, const double *); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld vload(size_t offset, const half *p); -half2 __ovld vload2(size_t offset, const half *p); -half3 __ovld vload3(size_t offset, const half *p); -half4 __ovld vload4(size_t offset, const half *p); -half8 __ovld vload8(size_t offset, const half *p); -half16 __ovld vload16(size_t offset, const half *p); +half2 __ovld __purefn vload2(size_t, const half *); +half3 __ovld __purefn vload3(size_t, const half *); +half4 __ovld __purefn vload4(size_t, const half *); +half8 __ovld __purefn vload8(size_t, const half *); +half16 __ovld __purefn vload16(size_t, const half *); #endif //cl_khr_fp16 #else -char2 __ovld vload2(size_t offset, const __global char *p); -uchar2 __ovld vload2(size_t offset, const __global uchar *p); -short2 __ovld vload2(size_t offset, const __global short *p); -ushort2 __ovld vload2(size_t offset, const __global ushort *p); -int2 __ovld vload2(size_t offset, const __global int *p); -uint2 __ovld vload2(size_t offset, const __global uint *p); -long2 __ovld vload2(size_t offset, const __global long *p); -ulong2 __ovld vload2(size_t offset, const __global ulong *p); -float2 __ovld vload2(size_t offset, const __global float *p); -char3 __ovld vload3(size_t offset, const __global char *p); -uchar3 __ovld vload3(size_t offset, const __global uchar *p); -short3 __ovld vload3(size_t offset, const __global short *p); -ushort3 __ovld vload3(size_t offset, const __global ushort *p); -int3 __ovld vload3(size_t offset, const __global int *p); -uint3 __ovld vload3(size_t offset, const __global uint *p); -long3 __ovld vload3(size_t offset, const __global long *p); -ulong3 __ovld vload3(size_t offset, const __global ulong *p); -float3 __ovld vload3(size_t offset, const __global float *p); -char4 __ovld vload4(size_t offset, const __global char *p); -uchar4 __ovld vload4(size_t offset, const __global uchar *p); -short4 __ovld vload4(size_t offset, const __global short *p); -ushort4 __ovld vload4(size_t offset, const __global ushort *p); -int4 __ovld vload4(size_t offset, const __global int *p); -uint4 __ovld vload4(size_t offset, const __global uint *p); -long4 __ovld vload4(size_t offset, const __global long *p); -ulong4 __ovld vload4(size_t offset, const __global ulong *p); -float4 __ovld vload4(size_t offset, const __global float *p); -char8 __ovld vload8(size_t offset, const __global char *p); -uchar8 __ovld vload8(size_t offset, const __global uchar *p); -short8 __ovld vload8(size_t offset, const __global short *p); -ushort8 __ovld vload8(size_t offset, const __global ushort *p); -int8 __ovld vload8(size_t offset, const __global int *p); -uint8 __ovld vload8(size_t offset, const __global uint *p); -long8 __ovld vload8(size_t offset, const __global long *p); -ulong8 __ovld vload8(size_t offset, const __global ulong *p); -float8 __ovld vload8(size_t offset, const __global float *p); -char16 __ovld vload16(size_t offset, const __global char *p); -uchar16 __ovld vload16(size_t offset, const __global uchar *p); -short16 __ovld vload16(size_t offset, const __global short *p); -ushort16 __ovld vload16(size_t offset, const __global ushort *p); -int16 __ovld vload16(size_t offset, const __global int *p); -uint16 __ovld vload16(size_t offset, const __global uint *p); -long16 __ovld vload16(size_t offset, const __global long *p); -ulong16 __ovld vload16(size_t offset, const __global ulong *p); -float16 __ovld vload16(size_t offset, const __global float *p); -char2 __ovld vload2(size_t offset, const __local char *p); -uchar2 __ovld vload2(size_t offset, const __local uchar *p); -short2 __ovld vload2(size_t offset, const __local short *p); -ushort2 __ovld vload2(size_t offset, const __local ushort *p); -int2 __ovld vload2(size_t offset, const __local int *p); -uint2 __ovld vload2(size_t offset, const __local uint *p); -long2 __ovld vload2(size_t offset, const __local long *p); -ulong2 __ovld vload2(size_t offset, const __local ulong *p); -float2 __ovld vload2(size_t offset, const __local float *p); -char3 __ovld vload3(size_t offset, const __local char *p); -uchar3 __ovld vload3(size_t offset, const __local uchar *p); -short3 __ovld vload3(size_t offset, const __local short *p); -ushort3 __ovld vload3(size_t offset, const __local ushort *p); -int3 __ovld vload3(size_t offset, const __local int *p); -uint3 __ovld vload3(size_t offset, const __local uint *p); -long3 __ovld vload3(size_t offset, const __local long *p); -ulong3 __ovld vload3(size_t offset, const __local ulong *p); -float3 __ovld vload3(size_t offset, const __local float *p); -char4 __ovld vload4(size_t offset, const __local char *p); -uchar4 __ovld vload4(size_t offset, const __local uchar *p); -short4 __ovld vload4(size_t offset, const __local short *p); -ushort4 __ovld vload4(size_t offset, const __local ushort *p); -int4 __ovld vload4(size_t offset, const __local int *p); -uint4 __ovld vload4(size_t offset, const __local uint *p); -long4 __ovld vload4(size_t offset, const __local long *p); -ulong4 __ovld vload4(size_t offset, const __local ulong *p); -float4 __ovld vload4(size_t offset, const __local float *p); -char8 __ovld vload8(size_t offset, const __local char *p); -uchar8 __ovld vload8(size_t offset, const __local uchar *p); -short8 __ovld vload8(size_t offset, const __local short *p); -ushort8 __ovld vload8(size_t offset, const __local ushort *p); -int8 __ovld vload8(size_t offset, const __local int *p); -uint8 __ovld vload8(size_t offset, const __local uint *p); -long8 __ovld vload8(size_t offset, const __local long *p); -ulong8 __ovld vload8(size_t offset, const __local ulong *p); -float8 __ovld vload8(size_t offset, const __local float *p); -char16 __ovld vload16(size_t offset, const __local char *p); -uchar16 __ovld vload16(size_t offset, const __local uchar *p); -short16 __ovld vload16(size_t offset, const __local short *p); -ushort16 __ovld vload16(size_t offset, const __local ushort *p); -int16 __ovld vload16(size_t offset, const __local int *p); -uint16 __ovld vload16(size_t offset, const __local uint *p); -long16 __ovld vload16(size_t offset, const __local long *p); -ulong16 __ovld vload16(size_t offset, const __local ulong *p); -float16 __ovld vload16(size_t offset, const __local float *p); -char2 __ovld vload2(size_t offset, const __private char *p); -uchar2 __ovld vload2(size_t offset, const __private uchar *p); -short2 __ovld vload2(size_t offset, const __private short *p); -ushort2 __ovld vload2(size_t offset, const __private ushort *p); -int2 __ovld vload2(size_t offset, const __private int *p); -uint2 __ovld vload2(size_t offset, const __private uint *p); -long2 __ovld vload2(size_t offset, const __private long *p); -ulong2 __ovld vload2(size_t offset, const __private ulong *p); -float2 __ovld vload2(size_t offset, const __private float *p); -char3 __ovld vload3(size_t offset, const __private char *p); -uchar3 __ovld vload3(size_t offset, const __private uchar *p); -short3 __ovld vload3(size_t offset, const __private short *p); -ushort3 __ovld vload3(size_t offset, const __private ushort *p); -int3 __ovld vload3(size_t offset, const __private int *p); -uint3 __ovld vload3(size_t offset, const __private uint *p); -long3 __ovld vload3(size_t offset, const __private long *p); -ulong3 __ovld vload3(size_t offset, const __private ulong *p); -float3 __ovld vload3(size_t offset, const __private float *p); -char4 __ovld vload4(size_t offset, const __private char *p); -uchar4 __ovld vload4(size_t offset, const __private uchar *p); -short4 __ovld vload4(size_t offset, const __private short *p); -ushort4 __ovld vload4(size_t offset, const __private ushort *p); -int4 __ovld vload4(size_t offset, const __private int *p); -uint4 __ovld vload4(size_t offset, const __private uint *p); -long4 __ovld vload4(size_t offset, const __private long *p); -ulong4 __ovld vload4(size_t offset, const __private ulong *p); -float4 __ovld vload4(size_t offset, const __private float *p); -char8 __ovld vload8(size_t offset, const __private char *p); -uchar8 __ovld vload8(size_t offset, const __private uchar *p); -short8 __ovld vload8(size_t offset, const __private short *p); -ushort8 __ovld vload8(size_t offset, const __private ushort *p); -int8 __ovld vload8(size_t offset, const __private int *p); -uint8 __ovld vload8(size_t offset, const __private uint *p); -long8 __ovld vload8(size_t offset, const __private long *p); -ulong8 __ovld vload8(size_t offset, const __private ulong *p); -float8 __ovld vload8(size_t offset, const __private float *p); -char16 __ovld vload16(size_t offset, const __private char *p); -uchar16 __ovld vload16(size_t offset, const __private uchar *p); -short16 __ovld vload16(size_t offset, const __private short *p); -ushort16 __ovld vload16(size_t offset, const __private ushort *p); -int16 __ovld vload16(size_t offset, const __private int *p); -uint16 __ovld vload16(size_t offset, const __private uint *p); -long16 __ovld vload16(size_t offset, const __private long *p); -ulong16 __ovld vload16(size_t offset, const __private ulong *p); -float16 __ovld vload16(size_t offset, const __private float *p); +char2 __ovld __purefn vload2(size_t, const __global char *); +uchar2 __ovld __purefn vload2(size_t, const __global uchar *); +short2 __ovld __purefn vload2(size_t, const __global short *); +ushort2 __ovld __purefn vload2(size_t, const __global ushort *); +int2 __ovld __purefn vload2(size_t, const __global int *); +uint2 __ovld __purefn vload2(size_t, const __global uint *); +long2 __ovld __purefn vload2(size_t, const __global long *); +ulong2 __ovld __purefn vload2(size_t, const __global ulong *); +float2 __ovld __purefn vload2(size_t, const __global float *); +char3 __ovld __purefn vload3(size_t, const __global char *); +uchar3 __ovld __purefn vload3(size_t, const __global uchar *); +short3 __ovld __purefn vload3(size_t, const __global short *); +ushort3 __ovld __purefn vload3(size_t, const __global ushort *); +int3 __ovld __purefn vload3(size_t, const __global int *); +uint3 __ovld __purefn vload3(size_t, const __global uint *); +long3 __ovld __purefn vload3(size_t, const __global long *); +ulong3 __ovld __purefn vload3(size_t, const __global ulong *); +float3 __ovld __purefn vload3(size_t, const __global float *); +char4 __ovld __purefn vload4(size_t, const __global char *); +uchar4 __ovld __purefn vload4(size_t, const __global uchar *); +short4 __ovld __purefn vload4(size_t, const __global short *); +ushort4 __ovld __purefn vload4(size_t, const __global ushort *); +int4 __ovld __purefn vload4(size_t, const __global int *); +uint4 __ovld __purefn vload4(size_t, const __global uint *); +long4 __ovld __purefn vload4(size_t, const __global long *); +ulong4 __ovld __purefn vload4(size_t, const __global ulong *); +float4 __ovld __purefn vload4(size_t, const __global float *); +char8 __ovld __purefn vload8(size_t, const __global char *); +uchar8 __ovld __purefn vload8(size_t, const __global uchar *); +short8 __ovld __purefn vload8(size_t, const __global short *); +ushort8 __ovld __purefn vload8(size_t, const __global ushort *); +int8 __ovld __purefn vload8(size_t, const __global int *); +uint8 __ovld __purefn vload8(size_t, const __global uint *); +long8 __ovld __purefn vload8(size_t, const __global long *); +ulong8 __ovld __purefn vload8(size_t, const __global ulong *); +float8 __ovld __purefn vload8(size_t, const __global float *); +char16 __ovld __purefn vload16(size_t, const __global char *); +uchar16 __ovld __purefn vload16(size_t, const __global uchar *); +short16 __ovld __purefn vload16(size_t, const __global short *); +ushort16 __ovld __purefn vload16(size_t, const __global ushort *); +int16 __ovld __purefn vload16(size_t, const __global int *); +uint16 __ovld __purefn vload16(size_t, const __global uint *); +long16 __ovld __purefn vload16(size_t, const __global long *); +ulong16 __ovld __purefn vload16(size_t, const __global ulong *); +float16 __ovld __purefn vload16(size_t, const __global float *); +char2 __ovld __purefn vload2(size_t, const __local char *); +uchar2 __ovld __purefn vload2(size_t, const __local uchar *); +short2 __ovld __purefn vload2(size_t, const __local short *); +ushort2 __ovld __purefn vload2(size_t, const __local ushort *); +int2 __ovld __purefn vload2(size_t, const __local int *); +uint2 __ovld __purefn vload2(size_t, const __local uint *); +long2 __ovld __purefn vload2(size_t, const __local long *); +ulong2 __ovld __purefn vload2(size_t, const __local ulong *); +float2 __ovld __purefn vload2(size_t, const __local float *); +char3 __ovld __purefn vload3(size_t, const __local char *); +uchar3 __ovld __purefn vload3(size_t, const __local uchar *); +short3 __ovld __purefn vload3(size_t, const __local short *); +ushort3 __ovld __purefn vload3(size_t, const __local ushort *); +int3 __ovld __purefn vload3(size_t, const __local int *); +uint3 __ovld __purefn vload3(size_t, const __local uint *); +long3 __ovld __purefn vload3(size_t, const __local long *); +ulong3 __ovld __purefn vload3(size_t, const __local ulong *); +float3 __ovld __purefn vload3(size_t, const __local float *); +char4 __ovld __purefn vload4(size_t, const __local char *); +uchar4 __ovld __purefn vload4(size_t, const __local uchar *); +short4 __ovld __purefn vload4(size_t, const __local short *); +ushort4 __ovld __purefn vload4(size_t, const __local ushort *); +int4 __ovld __purefn vload4(size_t, const __local int *); +uint4 __ovld __purefn vload4(size_t, const __local uint *); +long4 __ovld __purefn vload4(size_t, const __local long *); +ulong4 __ovld __purefn vload4(size_t, const __local ulong *); +float4 __ovld __purefn vload4(size_t, const __local float *); +char8 __ovld __purefn vload8(size_t, const __local char *); +uchar8 __ovld __purefn vload8(size_t, const __local uchar *); +short8 __ovld __purefn vload8(size_t, const __local short *); +ushort8 __ovld __purefn vload8(size_t, const __local ushort *); +int8 __ovld __purefn vload8(size_t, const __local int *); +uint8 __ovld __purefn vload8(size_t, const __local uint *); +long8 __ovld __purefn vload8(size_t, const __local long *); +ulong8 __ovld __purefn vload8(size_t, const __local ulong *); +float8 __ovld __purefn vload8(size_t, const __local float *); +char16 __ovld __purefn vload16(size_t, const __local char *); +uchar16 __ovld __purefn vload16(size_t, const __local uchar *); +short16 __ovld __purefn vload16(size_t, const __local short *); +ushort16 __ovld __purefn vload16(size_t, const __local ushort *); +int16 __ovld __purefn vload16(size_t, const __local int *); +uint16 __ovld __purefn vload16(size_t, const __local uint *); +long16 __ovld __purefn vload16(size_t, const __local long *); +ulong16 __ovld __purefn vload16(size_t, const __local ulong *); +float16 __ovld __purefn vload16(size_t, const __local float *); +char2 __ovld __purefn vload2(size_t, const __private char *); +uchar2 __ovld __purefn vload2(size_t, const __private uchar *); +short2 __ovld __purefn vload2(size_t, const __private short *); +ushort2 __ovld __purefn vload2(size_t, const __private ushort *); +int2 __ovld __purefn vload2(size_t, const __private int *); +uint2 __ovld __purefn vload2(size_t, const __private uint *); +long2 __ovld __purefn vload2(size_t, const __private long *); +ulong2 __ovld __purefn vload2(size_t, const __private ulong *); +float2 __ovld __purefn vload2(size_t, const __private float *); +char3 __ovld __purefn vload3(size_t, const __private char *); +uchar3 __ovld __purefn vload3(size_t, const __private uchar *); +short3 __ovld __purefn vload3(size_t, const __private short *); +ushort3 __ovld __purefn vload3(size_t, const __private ushort *); +int3 __ovld __purefn vload3(size_t, const __private int *); +uint3 __ovld __purefn vload3(size_t, const __private uint *); +long3 __ovld __purefn vload3(size_t, const __private long *); +ulong3 __ovld __purefn vload3(size_t, const __private ulong *); +float3 __ovld __purefn vload3(size_t, const __private float *); +char4 __ovld __purefn vload4(size_t, const __private char *); +uchar4 __ovld __purefn vload4(size_t, const __private uchar *); +short4 __ovld __purefn vload4(size_t, const __private short *); +ushort4 __ovld __purefn vload4(size_t, const __private ushort *); +int4 __ovld __purefn vload4(size_t, const __private int *); +uint4 __ovld __purefn vload4(size_t, const __private uint *); +long4 __ovld __purefn vload4(size_t, const __private long *); +ulong4 __ovld __purefn vload4(size_t, const __private ulong *); +float4 __ovld __purefn vload4(size_t, const __private float *); +char8 __ovld __purefn vload8(size_t, const __private char *); +uchar8 __ovld __purefn vload8(size_t, const __private uchar *); +short8 __ovld __purefn vload8(size_t, const __private short *); +ushort8 __ovld __purefn vload8(size_t, const __private ushort *); +int8 __ovld __purefn vload8(size_t, const __private int *); +uint8 __ovld __purefn vload8(size_t, const __private uint *); +long8 __ovld __purefn vload8(size_t, const __private long *); +ulong8 __ovld __purefn vload8(size_t, const __private ulong *); +float8 __ovld __purefn vload8(size_t, const __private float *); +char16 __ovld __purefn vload16(size_t, const __private char *); +uchar16 __ovld __purefn vload16(size_t, const __private uchar *); +short16 __ovld __purefn vload16(size_t, const __private short *); +ushort16 __ovld __purefn vload16(size_t, const __private ushort *); +int16 __ovld __purefn vload16(size_t, const __private int *); +uint16 __ovld __purefn vload16(size_t, const __private uint *); +long16 __ovld __purefn vload16(size_t, const __private long *); +ulong16 __ovld __purefn vload16(size_t, const __private ulong *); +float16 __ovld __purefn vload16(size_t, const __private float *); #ifdef cl_khr_fp64 -double2 __ovld vload2(size_t offset, const __global double *p); -double3 __ovld vload3(size_t offset, const __global double *p); -double4 __ovld vload4(size_t offset, const __global double *p); -double8 __ovld vload8(size_t offset, const __global double *p); -double16 __ovld vload16(size_t offset, const __global double *p); -double2 __ovld vload2(size_t offset, const __local double *p); -double3 __ovld vload3(size_t offset, const __local double *p); -double4 __ovld vload4(size_t offset, const __local double *p); -double8 __ovld vload8(size_t offset, const __local double *p); -double16 __ovld vload16(size_t offset, const __local double *p); -double2 __ovld vload2(size_t offset, const __private double *p); -double3 __ovld vload3(size_t offset, const __private double *p); -double4 __ovld vload4(size_t offset, const __private double *p); -double8 __ovld vload8(size_t offset, const __private double *p); -double16 __ovld vload16(size_t offset, const __private double *p); +double2 __ovld __purefn vload2(size_t, const __global double *); +double3 __ovld __purefn vload3(size_t, const __global double *); +double4 __ovld __purefn vload4(size_t, const __global double *); +double8 __ovld __purefn vload8(size_t, const __global double *); +double16 __ovld __purefn vload16(size_t, const __global double *); +double2 __ovld __purefn vload2(size_t, const __local double *); +double3 __ovld __purefn vload3(size_t, const __local double *); +double4 __ovld __purefn vload4(size_t, const __local double *); +double8 __ovld __purefn vload8(size_t, const __local double *); +double16 __ovld __purefn vload16(size_t, const __local double *); +double2 __ovld __purefn vload2(size_t, const __private double *); +double3 __ovld __purefn vload3(size_t, const __private double *); +double4 __ovld __purefn vload4(size_t, const __private double *); +double8 __ovld __purefn vload8(size_t, const __private double *); +double16 __ovld __purefn vload16(size_t, const __private double *); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld vload(size_t offset, const __global half *p); -half2 __ovld vload2(size_t offset, const __global half *p); -half3 __ovld vload3(size_t offset, const __global half *p); -half4 __ovld vload4(size_t offset, const __global half *p); -half8 __ovld vload8(size_t offset, const __global half *p); -half16 __ovld vload16(size_t offset, const __global half *p); -half __ovld vload(size_t offset, const __local half *p); -half2 __ovld vload2(size_t offset, const __local half *p); -half3 __ovld vload3(size_t offset, const __local half *p); -half4 __ovld vload4(size_t offset, const __local half *p); -half8 __ovld vload8(size_t offset, const __local half *p); -half16 __ovld vload16(size_t offset, const __local half *p); -half __ovld vload(size_t offset, const __private half *p); -half2 __ovld vload2(size_t offset, const __private half *p); -half3 __ovld vload3(size_t offset, const __private half *p); -half4 __ovld vload4(size_t offset, const __private half *p); -half8 __ovld vload8(size_t offset, const __private half *p); -half16 __ovld vload16(size_t offset, const __private half *p); +half2 __ovld __purefn vload2(size_t, const __global half *); +half3 __ovld __purefn vload3(size_t, const __global half *); +half4 __ovld __purefn vload4(size_t, const __global half *); +half8 __ovld __purefn vload8(size_t, const __global half *); +half16 __ovld __purefn vload16(size_t, const __global half *); +half2 __ovld __purefn vload2(size_t, const __local half *); +half3 __ovld __purefn vload3(size_t, const __local half *); +half4 __ovld __purefn vload4(size_t, const __local half *); +half8 __ovld __purefn vload8(size_t, const __local half *); +half16 __ovld __purefn vload16(size_t, const __local half *); +half2 __ovld __purefn vload2(size_t, const __private half *); +half3 __ovld __purefn vload3(size_t, const __private half *); +half4 __ovld __purefn vload4(size_t, const __private half *); +half8 __ovld __purefn vload8(size_t, const __private half *); +half16 __ovld __purefn vload16(size_t, const __private half *); #endif //cl_khr_fp16 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -void __ovld vstore2(char2 data, size_t offset, char *p); -void __ovld vstore2(uchar2 data, size_t offset, uchar *p); -void __ovld vstore2(short2 data, size_t offset, short *p); -void __ovld vstore2(ushort2 data, size_t offset, ushort *p); -void __ovld vstore2(int2 data, size_t offset, int *p); -void __ovld vstore2(uint2 data, size_t offset, uint *p); -void __ovld vstore2(long2 data, size_t offset, long *p); -void __ovld vstore2(ulong2 data, size_t offset, ulong *p); -void __ovld vstore2(float2 data, size_t offset, float *p); -void __ovld vstore3(char3 data, size_t offset, char *p); -void __ovld vstore3(uchar3 data, size_t offset, uchar *p); -void __ovld vstore3(short3 data, size_t offset, short *p); -void __ovld vstore3(ushort3 data, size_t offset, ushort *p); -void __ovld vstore3(int3 data, size_t offset, int *p); -void __ovld vstore3(uint3 data, size_t offset, uint *p); -void __ovld vstore3(long3 data, size_t offset, long *p); -void __ovld vstore3(ulong3 data, size_t offset, ulong *p); -void __ovld vstore3(float3 data, size_t offset, float *p); -void __ovld vstore4(char4 data, size_t offset, char *p); -void __ovld vstore4(uchar4 data, size_t offset, uchar *p); -void __ovld vstore4(short4 data, size_t offset, short *p); -void __ovld vstore4(ushort4 data, size_t offset, ushort *p); -void __ovld vstore4(int4 data, size_t offset, int *p); -void __ovld vstore4(uint4 data, size_t offset, uint *p); -void __ovld vstore4(long4 data, size_t offset, long *p); -void __ovld vstore4(ulong4 data, size_t offset, ulong *p); -void __ovld vstore4(float4 data, size_t offset, float *p); -void __ovld vstore8(char8 data, size_t offset, char *p); -void __ovld vstore8(uchar8 data, size_t offset, uchar *p); -void __ovld vstore8(short8 data, size_t offset, short *p); -void __ovld vstore8(ushort8 data, size_t offset, ushort *p); -void __ovld vstore8(int8 data, size_t offset, int *p); -void __ovld vstore8(uint8 data, size_t offset, uint *p); -void __ovld vstore8(long8 data, size_t offset, long *p); -void __ovld vstore8(ulong8 data, size_t offset, ulong *p); -void __ovld vstore8(float8 data, size_t offset, float *p); -void __ovld vstore16(char16 data, size_t offset, char *p); -void __ovld vstore16(uchar16 data, size_t offset, uchar *p); -void __ovld vstore16(short16 data, size_t offset, short *p); -void __ovld vstore16(ushort16 data, size_t offset, ushort *p); -void __ovld vstore16(int16 data, size_t offset, int *p); -void __ovld vstore16(uint16 data, size_t offset, uint *p); -void __ovld vstore16(long16 data, size_t offset, long *p); -void __ovld vstore16(ulong16 data, size_t offset, ulong *p); -void __ovld vstore16(float16 data, size_t offset, float *p); +#endif //defined(__opencl_c_generic_address_space) + +#if defined(__opencl_c_generic_address_space) +void __ovld vstore2(char2 data, size_t, char *); +void __ovld vstore2(uchar2 data, size_t, uchar *); +void __ovld vstore2(short2 data, size_t, short *); +void __ovld vstore2(ushort2 data, size_t, ushort *); +void __ovld vstore2(int2 data, size_t, int *); +void __ovld vstore2(uint2 data, size_t, uint *); +void __ovld vstore2(long2 data, size_t, long *); +void __ovld vstore2(ulong2 data, size_t, ulong *); +void __ovld vstore2(float2 data, size_t, float *); +void __ovld vstore3(char3 data, size_t, char *); +void __ovld vstore3(uchar3 data, size_t, uchar *); +void __ovld vstore3(short3 data, size_t, short *); +void __ovld vstore3(ushort3 data, size_t, ushort *); +void __ovld vstore3(int3 data, size_t, int *); +void __ovld vstore3(uint3 data, size_t, uint *); +void __ovld vstore3(long3 data, size_t, long *); +void __ovld vstore3(ulong3 data, size_t, ulong *); +void __ovld vstore3(float3 data, size_t, float *); +void __ovld vstore4(char4 data, size_t, char *); +void __ovld vstore4(uchar4 data, size_t, uchar *); +void __ovld vstore4(short4 data, size_t, short *); +void __ovld vstore4(ushort4 data, size_t, ushort *); +void __ovld vstore4(int4 data, size_t, int *); +void __ovld vstore4(uint4 data, size_t, uint *); +void __ovld vstore4(long4 data, size_t, long *); +void __ovld vstore4(ulong4 data, size_t, ulong *); +void __ovld vstore4(float4 data, size_t, float *); +void __ovld vstore8(char8 data, size_t, char *); +void __ovld vstore8(uchar8 data, size_t, uchar *); +void __ovld vstore8(short8 data, size_t, short *); +void __ovld vstore8(ushort8 data, size_t, ushort *); +void __ovld vstore8(int8 data, size_t, int *); +void __ovld vstore8(uint8 data, size_t, uint *); +void __ovld vstore8(long8 data, size_t, long *); +void __ovld vstore8(ulong8 data, size_t, ulong *); +void __ovld vstore8(float8 data, size_t, float *); +void __ovld vstore16(char16 data, size_t, char *); +void __ovld vstore16(uchar16 data, size_t, uchar *); +void __ovld vstore16(short16 data, size_t, short *); +void __ovld vstore16(ushort16 data, size_t, ushort *); +void __ovld vstore16(int16 data, size_t, int *); +void __ovld vstore16(uint16 data, size_t, uint *); +void __ovld vstore16(long16 data, size_t, long *); +void __ovld vstore16(ulong16 data, size_t, ulong *); +void __ovld vstore16(float16 data, size_t, float *); #ifdef cl_khr_fp64 -void __ovld vstore2(double2 data, size_t offset, double *p); -void __ovld vstore3(double3 data, size_t offset, double *p); -void __ovld vstore4(double4 data, size_t offset, double *p); -void __ovld vstore8(double8 data, size_t offset, double *p); -void __ovld vstore16(double16 data, size_t offset, double *p); +void __ovld vstore2(double2 data, size_t, double *); +void __ovld vstore3(double3 data, size_t, double *); +void __ovld vstore4(double4 data, size_t, double *); +void __ovld vstore8(double8 data, size_t, double *); +void __ovld vstore16(double16 data, size_t, double *); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -void __ovld vstore(half data, size_t offset, half *p); -void __ovld vstore2(half2 data, size_t offset, half *p); -void __ovld vstore3(half3 data, size_t offset, half *p); -void __ovld vstore4(half4 data, size_t offset, half *p); -void __ovld vstore8(half8 data, size_t offset, half *p); -void __ovld vstore16(half16 data, size_t offset, half *p); + +void __ovld vstore(half, size_t, half *); +void __ovld vstore2(half2, size_t, half *); +void __ovld vstore3(half3, size_t, half *); +void __ovld vstore4(half4, size_t, half *); +void __ovld vstore8(half8, size_t, half *); +void __ovld vstore16(half16, size_t, half *); #endif //cl_khr_fp16 #else -void __ovld vstore2(char2 data, size_t offset, __global char *p); -void __ovld vstore2(uchar2 data, size_t offset, __global uchar *p); -void __ovld vstore2(short2 data, size_t offset, __global short *p); -void __ovld vstore2(ushort2 data, size_t offset, __global ushort *p); -void __ovld vstore2(int2 data, size_t offset, __global int *p); -void __ovld vstore2(uint2 data, size_t offset, __global uint *p); -void __ovld vstore2(long2 data, size_t offset, __global long *p); -void __ovld vstore2(ulong2 data, size_t offset, __global ulong *p); -void __ovld vstore2(float2 data, size_t offset, __global float *p); -void __ovld vstore3(char3 data, size_t offset, __global char *p); -void __ovld vstore3(uchar3 data, size_t offset, __global uchar *p); -void __ovld vstore3(short3 data, size_t offset, __global short *p); -void __ovld vstore3(ushort3 data, size_t offset, __global ushort *p); -void __ovld vstore3(int3 data, size_t offset, __global int *p); -void __ovld vstore3(uint3 data, size_t offset, __global uint *p); -void __ovld vstore3(long3 data, size_t offset, __global long *p); -void __ovld vstore3(ulong3 data, size_t offset, __global ulong *p); -void __ovld vstore3(float3 data, size_t offset, __global float *p); -void __ovld vstore4(char4 data, size_t offset, __global char *p); -void __ovld vstore4(uchar4 data, size_t offset, __global uchar *p); -void __ovld vstore4(short4 data, size_t offset, __global short *p); -void __ovld vstore4(ushort4 data, size_t offset, __global ushort *p); -void __ovld vstore4(int4 data, size_t offset, __global int *p); -void __ovld vstore4(uint4 data, size_t offset, __global uint *p); -void __ovld vstore4(long4 data, size_t offset, __global long *p); -void __ovld vstore4(ulong4 data, size_t offset, __global ulong *p); -void __ovld vstore4(float4 data, size_t offset, __global float *p); -void __ovld vstore8(char8 data, size_t offset, __global char *p); -void __ovld vstore8(uchar8 data, size_t offset, __global uchar *p); -void __ovld vstore8(short8 data, size_t offset, __global short *p); -void __ovld vstore8(ushort8 data, size_t offset, __global ushort *p); -void __ovld vstore8(int8 data, size_t offset, __global int *p); -void __ovld vstore8(uint8 data, size_t offset, __global uint *p); -void __ovld vstore8(long8 data, size_t offset, __global long *p); -void __ovld vstore8(ulong8 data, size_t offset, __global ulong *p); -void __ovld vstore8(float8 data, size_t offset, __global float *p); -void __ovld vstore16(char16 data, size_t offset, __global char *p); -void __ovld vstore16(uchar16 data, size_t offset, __global uchar *p); -void __ovld vstore16(short16 data, size_t offset, __global short *p); -void __ovld vstore16(ushort16 data, size_t offset, __global ushort *p); -void __ovld vstore16(int16 data, size_t offset, __global int *p); -void __ovld vstore16(uint16 data, size_t offset, __global uint *p); -void __ovld vstore16(long16 data, size_t offset, __global long *p); -void __ovld vstore16(ulong16 data, size_t offset, __global ulong *p); -void __ovld vstore16(float16 data, size_t offset, __global float *p); -void __ovld vstore2(char2 data, size_t offset, __local char *p); -void __ovld vstore2(uchar2 data, size_t offset, __local uchar *p); -void __ovld vstore2(short2 data, size_t offset, __local short *p); -void __ovld vstore2(ushort2 data, size_t offset, __local ushort *p); -void __ovld vstore2(int2 data, size_t offset, __local int *p); -void __ovld vstore2(uint2 data, size_t offset, __local uint *p); -void __ovld vstore2(long2 data, size_t offset, __local long *p); -void __ovld vstore2(ulong2 data, size_t offset, __local ulong *p); -void __ovld vstore2(float2 data, size_t offset, __local float *p); -void __ovld vstore3(char3 data, size_t offset, __local char *p); -void __ovld vstore3(uchar3 data, size_t offset, __local uchar *p); -void __ovld vstore3(short3 data, size_t offset, __local short *p); -void __ovld vstore3(ushort3 data, size_t offset, __local ushort *p); -void __ovld vstore3(int3 data, size_t offset, __local int *p); -void __ovld vstore3(uint3 data, size_t offset, __local uint *p); -void __ovld vstore3(long3 data, size_t offset, __local long *p); -void __ovld vstore3(ulong3 data, size_t offset, __local ulong *p); -void __ovld vstore3(float3 data, size_t offset, __local float *p); -void __ovld vstore4(char4 data, size_t offset, __local char *p); -void __ovld vstore4(uchar4 data, size_t offset, __local uchar *p); -void __ovld vstore4(short4 data, size_t offset, __local short *p); -void __ovld vstore4(ushort4 data, size_t offset, __local ushort *p); -void __ovld vstore4(int4 data, size_t offset, __local int *p); -void __ovld vstore4(uint4 data, size_t offset, __local uint *p); -void __ovld vstore4(long4 data, size_t offset, __local long *p); -void __ovld vstore4(ulong4 data, size_t offset, __local ulong *p); -void __ovld vstore4(float4 data, size_t offset, __local float *p); -void __ovld vstore8(char8 data, size_t offset, __local char *p); -void __ovld vstore8(uchar8 data, size_t offset, __local uchar *p); -void __ovld vstore8(short8 data, size_t offset, __local short *p); -void __ovld vstore8(ushort8 data, size_t offset, __local ushort *p); -void __ovld vstore8(int8 data, size_t offset, __local int *p); -void __ovld vstore8(uint8 data, size_t offset, __local uint *p); -void __ovld vstore8(long8 data, size_t offset, __local long *p); -void __ovld vstore8(ulong8 data, size_t offset, __local ulong *p); -void __ovld vstore8(float8 data, size_t offset, __local float *p); -void __ovld vstore16(char16 data, size_t offset, __local char *p); -void __ovld vstore16(uchar16 data, size_t offset, __local uchar *p); -void __ovld vstore16(short16 data, size_t offset, __local short *p); -void __ovld vstore16(ushort16 data, size_t offset, __local ushort *p); -void __ovld vstore16(int16 data, size_t offset, __local int *p); -void __ovld vstore16(uint16 data, size_t offset, __local uint *p); -void __ovld vstore16(long16 data, size_t offset, __local long *p); -void __ovld vstore16(ulong16 data, size_t offset, __local ulong *p); -void __ovld vstore16(float16 data, size_t offset, __local float *p); -void __ovld vstore2(char2 data, size_t offset, __private char *p); -void __ovld vstore2(uchar2 data, size_t offset, __private uchar *p); -void __ovld vstore2(short2 data, size_t offset, __private short *p); -void __ovld vstore2(ushort2 data, size_t offset, __private ushort *p); -void __ovld vstore2(int2 data, size_t offset, __private int *p); -void __ovld vstore2(uint2 data, size_t offset, __private uint *p); -void __ovld vstore2(long2 data, size_t offset, __private long *p); -void __ovld vstore2(ulong2 data, size_t offset, __private ulong *p); -void __ovld vstore2(float2 data, size_t offset, __private float *p); -void __ovld vstore3(char3 data, size_t offset, __private char *p); -void __ovld vstore3(uchar3 data, size_t offset, __private uchar *p); -void __ovld vstore3(short3 data, size_t offset, __private short *p); -void __ovld vstore3(ushort3 data, size_t offset, __private ushort *p); -void __ovld vstore3(int3 data, size_t offset, __private int *p); -void __ovld vstore3(uint3 data, size_t offset, __private uint *p); -void __ovld vstore3(long3 data, size_t offset, __private long *p); -void __ovld vstore3(ulong3 data, size_t offset, __private ulong *p); -void __ovld vstore3(float3 data, size_t offset, __private float *p); -void __ovld vstore4(char4 data, size_t offset, __private char *p); -void __ovld vstore4(uchar4 data, size_t offset, __private uchar *p); -void __ovld vstore4(short4 data, size_t offset, __private short *p); -void __ovld vstore4(ushort4 data, size_t offset, __private ushort *p); -void __ovld vstore4(int4 data, size_t offset, __private int *p); -void __ovld vstore4(uint4 data, size_t offset, __private uint *p); -void __ovld vstore4(long4 data, size_t offset, __private long *p); -void __ovld vstore4(ulong4 data, size_t offset, __private ulong *p); -void __ovld vstore4(float4 data, size_t offset, __private float *p); -void __ovld vstore8(char8 data, size_t offset, __private char *p); -void __ovld vstore8(uchar8 data, size_t offset, __private uchar *p); -void __ovld vstore8(short8 data, size_t offset, __private short *p); -void __ovld vstore8(ushort8 data, size_t offset, __private ushort *p); -void __ovld vstore8(int8 data, size_t offset, __private int *p); -void __ovld vstore8(uint8 data, size_t offset, __private uint *p); -void __ovld vstore8(long8 data, size_t offset, __private long *p); -void __ovld vstore8(ulong8 data, size_t offset, __private ulong *p); -void __ovld vstore8(float8 data, size_t offset, __private float *p); -void __ovld vstore16(char16 data, size_t offset, __private char *p); -void __ovld vstore16(uchar16 data, size_t offset, __private uchar *p); -void __ovld vstore16(short16 data, size_t offset, __private short *p); -void __ovld vstore16(ushort16 data, size_t offset, __private ushort *p); -void __ovld vstore16(int16 data, size_t offset, __private int *p); -void __ovld vstore16(uint16 data, size_t offset, __private uint *p); -void __ovld vstore16(long16 data, size_t offset, __private long *p); -void __ovld vstore16(ulong16 data, size_t offset, __private ulong *p); -void __ovld vstore16(float16 data, size_t offset, __private float *p); +void __ovld vstore2(char2 data, size_t, __global char *); +void __ovld vstore2(uchar2 data, size_t, __global uchar *); +void __ovld vstore2(short2 data, size_t, __global short *); +void __ovld vstore2(ushort2 data, size_t, __global ushort *); +void __ovld vstore2(int2 data, size_t, __global int *); +void __ovld vstore2(uint2 data, size_t, __global uint *); +void __ovld vstore2(long2 data, size_t, __global long *); +void __ovld vstore2(ulong2 data, size_t, __global ulong *); +void __ovld vstore2(float2 data, size_t, __global float *); +void __ovld vstore3(char3 data, size_t, __global char *); +void __ovld vstore3(uchar3 data, size_t, __global uchar *); +void __ovld vstore3(short3 data, size_t, __global short *); +void __ovld vstore3(ushort3 data, size_t, __global ushort *); +void __ovld vstore3(int3 data, size_t, __global int *); +void __ovld vstore3(uint3 data, size_t, __global uint *); +void __ovld vstore3(long3 data, size_t, __global long *); +void __ovld vstore3(ulong3 data, size_t, __global ulong *); +void __ovld vstore3(float3 data, size_t, __global float *); +void __ovld vstore4(char4 data, size_t, __global char *); +void __ovld vstore4(uchar4 data, size_t, __global uchar *); +void __ovld vstore4(short4 data, size_t, __global short *); +void __ovld vstore4(ushort4 data, size_t, __global ushort *); +void __ovld vstore4(int4 data, size_t, __global int *); +void __ovld vstore4(uint4 data, size_t, __global uint *); +void __ovld vstore4(long4 data, size_t, __global long *); +void __ovld vstore4(ulong4 data, size_t, __global ulong *); +void __ovld vstore4(float4 data, size_t, __global float *); +void __ovld vstore8(char8 data, size_t, __global char *); +void __ovld vstore8(uchar8 data, size_t, __global uchar *); +void __ovld vstore8(short8 data, size_t, __global short *); +void __ovld vstore8(ushort8 data, size_t, __global ushort *); +void __ovld vstore8(int8 data, size_t, __global int *); +void __ovld vstore8(uint8 data, size_t, __global uint *); +void __ovld vstore8(long8 data, size_t, __global long *); +void __ovld vstore8(ulong8 data, size_t, __global ulong *); +void __ovld vstore8(float8 data, size_t, __global float *); +void __ovld vstore16(char16 data, size_t, __global char *); +void __ovld vstore16(uchar16 data, size_t, __global uchar *); +void __ovld vstore16(short16 data, size_t, __global short *); +void __ovld vstore16(ushort16 data, size_t, __global ushort *); +void __ovld vstore16(int16 data, size_t, __global int *); +void __ovld vstore16(uint16 data, size_t, __global uint *); +void __ovld vstore16(long16 data, size_t, __global long *); +void __ovld vstore16(ulong16 data, size_t, __global ulong *); +void __ovld vstore16(float16 data, size_t, __global float *); +void __ovld vstore2(char2 data, size_t, __local char *); +void __ovld vstore2(uchar2 data, size_t, __local uchar *); +void __ovld vstore2(short2 data, size_t, __local short *); +void __ovld vstore2(ushort2 data, size_t, __local ushort *); +void __ovld vstore2(int2 data, size_t, __local int *); +void __ovld vstore2(uint2 data, size_t, __local uint *); +void __ovld vstore2(long2 data, size_t, __local long *); +void __ovld vstore2(ulong2 data, size_t, __local ulong *); +void __ovld vstore2(float2 data, size_t, __local float *); +void __ovld vstore3(char3 data, size_t, __local char *); +void __ovld vstore3(uchar3 data, size_t, __local uchar *); +void __ovld vstore3(short3 data, size_t, __local short *); +void __ovld vstore3(ushort3 data, size_t, __local ushort *); +void __ovld vstore3(int3 data, size_t, __local int *); +void __ovld vstore3(uint3 data, size_t, __local uint *); +void __ovld vstore3(long3 data, size_t, __local long *); +void __ovld vstore3(ulong3 data, size_t, __local ulong *); +void __ovld vstore3(float3 data, size_t, __local float *); +void __ovld vstore4(char4 data, size_t, __local char *); +void __ovld vstore4(uchar4 data, size_t, __local uchar *); +void __ovld vstore4(short4 data, size_t, __local short *); +void __ovld vstore4(ushort4 data, size_t, __local ushort *); +void __ovld vstore4(int4 data, size_t, __local int *); +void __ovld vstore4(uint4 data, size_t, __local uint *); +void __ovld vstore4(long4 data, size_t, __local long *); +void __ovld vstore4(ulong4 data, size_t, __local ulong *); +void __ovld vstore4(float4 data, size_t, __local float *); +void __ovld vstore8(char8 data, size_t, __local char *); +void __ovld vstore8(uchar8 data, size_t, __local uchar *); +void __ovld vstore8(short8 data, size_t, __local short *); +void __ovld vstore8(ushort8 data, size_t, __local ushort *); +void __ovld vstore8(int8 data, size_t, __local int *); +void __ovld vstore8(uint8 data, size_t, __local uint *); +void __ovld vstore8(long8 data, size_t, __local long *); +void __ovld vstore8(ulong8 data, size_t, __local ulong *); +void __ovld vstore8(float8 data, size_t, __local float *); +void __ovld vstore16(char16 data, size_t, __local char *); +void __ovld vstore16(uchar16 data, size_t, __local uchar *); +void __ovld vstore16(short16 data, size_t, __local short *); +void __ovld vstore16(ushort16 data, size_t, __local ushort *); +void __ovld vstore16(int16 data, size_t, __local int *); +void __ovld vstore16(uint16 data, size_t, __local uint *); +void __ovld vstore16(long16 data, size_t, __local long *); +void __ovld vstore16(ulong16 data, size_t, __local ulong *); +void __ovld vstore16(float16 data, size_t, __local float *); +void __ovld vstore2(char2 data, size_t, __private char *); +void __ovld vstore2(uchar2 data, size_t, __private uchar *); +void __ovld vstore2(short2 data, size_t, __private short *); +void __ovld vstore2(ushort2 data, size_t, __private ushort *); +void __ovld vstore2(int2 data, size_t, __private int *); +void __ovld vstore2(uint2 data, size_t, __private uint *); +void __ovld vstore2(long2 data, size_t, __private long *); +void __ovld vstore2(ulong2 data, size_t, __private ulong *); +void __ovld vstore2(float2 data, size_t, __private float *); +void __ovld vstore3(char3 data, size_t, __private char *); +void __ovld vstore3(uchar3 data, size_t, __private uchar *); +void __ovld vstore3(short3 data, size_t, __private short *); +void __ovld vstore3(ushort3 data, size_t, __private ushort *); +void __ovld vstore3(int3 data, size_t, __private int *); +void __ovld vstore3(uint3 data, size_t, __private uint *); +void __ovld vstore3(long3 data, size_t, __private long *); +void __ovld vstore3(ulong3 data, size_t, __private ulong *); +void __ovld vstore3(float3 data, size_t, __private float *); +void __ovld vstore4(char4 data, size_t, __private char *); +void __ovld vstore4(uchar4 data, size_t, __private uchar *); +void __ovld vstore4(short4 data, size_t, __private short *); +void __ovld vstore4(ushort4 data, size_t, __private ushort *); +void __ovld vstore4(int4 data, size_t, __private int *); +void __ovld vstore4(uint4 data, size_t, __private uint *); +void __ovld vstore4(long4 data, size_t, __private long *); +void __ovld vstore4(ulong4 data, size_t, __private ulong *); +void __ovld vstore4(float4 data, size_t, __private float *); +void __ovld vstore8(char8 data, size_t, __private char *); +void __ovld vstore8(uchar8 data, size_t, __private uchar *); +void __ovld vstore8(short8 data, size_t, __private short *); +void __ovld vstore8(ushort8 data, size_t, __private ushort *); +void __ovld vstore8(int8 data, size_t, __private int *); +void __ovld vstore8(uint8 data, size_t, __private uint *); +void __ovld vstore8(long8 data, size_t, __private long *); +void __ovld vstore8(ulong8 data, size_t, __private ulong *); +void __ovld vstore8(float8 data, size_t, __private float *); +void __ovld vstore16(char16 data, size_t, __private char *); +void __ovld vstore16(uchar16 data, size_t, __private uchar *); +void __ovld vstore16(short16 data, size_t, __private short *); +void __ovld vstore16(ushort16 data, size_t, __private ushort *); +void __ovld vstore16(int16 data, size_t, __private int *); +void __ovld vstore16(uint16 data, size_t, __private uint *); +void __ovld vstore16(long16 data, size_t, __private long *); +void __ovld vstore16(ulong16 data, size_t, __private ulong *); +void __ovld vstore16(float16 data, size_t, __private float *); #ifdef cl_khr_fp64 -void __ovld vstore2(double2 data, size_t offset, __global double *p); -void __ovld vstore3(double3 data, size_t offset, __global double *p); -void __ovld vstore4(double4 data, size_t offset, __global double *p); -void __ovld vstore8(double8 data, size_t offset, __global double *p); -void __ovld vstore16(double16 data, size_t offset, __global double *p); -void __ovld vstore2(double2 data, size_t offset, __local double *p); -void __ovld vstore3(double3 data, size_t offset, __local double *p); -void __ovld vstore4(double4 data, size_t offset, __local double *p); -void __ovld vstore8(double8 data, size_t offset, __local double *p); -void __ovld vstore16(double16 data, size_t offset, __local double *p); -void __ovld vstore2(double2 data, size_t offset, __private double *p); -void __ovld vstore3(double3 data, size_t offset, __private double *p); -void __ovld vstore4(double4 data, size_t offset, __private double *p); -void __ovld vstore8(double8 data, size_t offset, __private double *p); -void __ovld vstore16(double16 data, size_t offset, __private double *p); +void __ovld vstore2(double2 data, size_t, __global double *); +void __ovld vstore3(double3 data, size_t, __global double *); +void __ovld vstore4(double4 data, size_t, __global double *); +void __ovld vstore8(double8 data, size_t, __global double *); +void __ovld vstore16(double16 data, size_t, __global double *); +void __ovld vstore2(double2 data, size_t, __local double *); +void __ovld vstore3(double3 data, size_t, __local double *); +void __ovld vstore4(double4 data, size_t, __local double *); +void __ovld vstore8(double8 data, size_t, __local double *); +void __ovld vstore16(double16 data, size_t, __local double *); +void __ovld vstore2(double2 data, size_t, __private double *); +void __ovld vstore3(double3 data, size_t, __private double *); +void __ovld vstore4(double4 data, size_t, __private double *); +void __ovld vstore8(double8 data, size_t, __private double *); +void __ovld vstore16(double16 data, size_t, __private double *); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -void __ovld vstore(half data, size_t offset, __global half *p); -void __ovld vstore2(half2 data, size_t offset, __global half *p); -void __ovld vstore3(half3 data, size_t offset, __global half *p); -void __ovld vstore4(half4 data, size_t offset, __global half *p); -void __ovld vstore8(half8 data, size_t offset, __global half *p); -void __ovld vstore16(half16 data, size_t offset, __global half *p); -void __ovld vstore(half data, size_t offset, __local half *p); -void __ovld vstore2(half2 data, size_t offset, __local half *p); -void __ovld vstore3(half3 data, size_t offset, __local half *p); -void __ovld vstore4(half4 data, size_t offset, __local half *p); -void __ovld vstore8(half8 data, size_t offset, __local half *p); -void __ovld vstore16(half16 data, size_t offset, __local half *p); -void __ovld vstore(half data, size_t offset, __private half *p); -void __ovld vstore2(half2 data, size_t offset, __private half *p); -void __ovld vstore3(half3 data, size_t offset, __private half *p); -void __ovld vstore4(half4 data, size_t offset, __private half *p); -void __ovld vstore8(half8 data, size_t offset, __private half *p); -void __ovld vstore16(half16 data, size_t offset, __private half *p); +void __ovld vstore(half, size_t, __global half *); +void __ovld vstore2(half2, size_t, __global half *); +void __ovld vstore3(half3, size_t, __global half *); +void __ovld vstore4(half4, size_t, __global half *); +void __ovld vstore8(half8, size_t, __global half *); +void __ovld vstore16(half16, size_t, __global half *); +void __ovld vstore(half, size_t, __local half *); +void __ovld vstore2(half2, size_t, __local half *); +void __ovld vstore3(half3, size_t, __local half *); +void __ovld vstore4(half4, size_t, __local half *); +void __ovld vstore8(half8, size_t, __local half *); +void __ovld vstore16(half16, size_t, __local half *); +void __ovld vstore(half, size_t, __private half *); +void __ovld vstore2(half2, size_t, __private half *); +void __ovld vstore3(half3, size_t, __private half *); +void __ovld vstore4(half4, size_t, __private half *); +void __ovld vstore8(half8, size_t, __private half *); +void __ovld vstore16(half16, size_t, __private half *); #endif //cl_khr_fp16 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_generic_address_space) /** * Read sizeof (half) bytes of data from address @@ -12437,14 +12424,14 @@ void __ovld vstore16(half16 data, size_t offset, __private half *p); * The read address computed as (p + offset) * must be 16-bit aligned. */ -float __ovld vload_half(size_t offset, const __constant half *p); -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -float __ovld vload_half(size_t offset, const half *p); +float __ovld __purefn vload_half(size_t, const __constant half *); +#if defined(__opencl_c_generic_address_space) +float __ovld __purefn vload_half(size_t, const half *); #else -float __ovld vload_half(size_t offset, const __global half *p); -float __ovld vload_half(size_t offset, const __local half *p); -float __ovld vload_half(size_t offset, const __private half *p); -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +float __ovld __purefn vload_half(size_t, const __global half *); +float __ovld __purefn vload_half(size_t, const __local half *); +float __ovld __purefn vload_half(size_t, const __private half *); +#endif //defined(__opencl_c_generic_address_space) /** * Read sizeof (halfn) bytes of data from address @@ -12454,34 +12441,34 @@ float __ovld vload_half(size_t offset, const __private half *p); * value is returned. The read address computed * as (p + (offset * n)) must be 16-bit aligned. */ -float2 __ovld vload_half2(size_t offset, const __constant half *p); -float3 __ovld vload_half3(size_t offset, const __constant half *p); -float4 __ovld vload_half4(size_t offset, const __constant half *p); -float8 __ovld vload_half8(size_t offset, const __constant half *p); -float16 __ovld vload_half16(size_t offset, const __constant half *p); -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -float2 __ovld vload_half2(size_t offset, const half *p); -float3 __ovld vload_half3(size_t offset, const half *p); -float4 __ovld vload_half4(size_t offset, const half *p); -float8 __ovld vload_half8(size_t offset, const half *p); -float16 __ovld vload_half16(size_t offset, const half *p); +float2 __ovld __purefn vload_half2(size_t, const __constant half *); +float3 __ovld __purefn vload_half3(size_t, const __constant half *); +float4 __ovld __purefn vload_half4(size_t, const __constant half *); +float8 __ovld __purefn vload_half8(size_t, const __constant half *); +float16 __ovld __purefn vload_half16(size_t, const __constant half *); +#if defined(__opencl_c_generic_address_space) +float2 __ovld __purefn vload_half2(size_t, const half *); +float3 __ovld __purefn vload_half3(size_t, const half *); +float4 __ovld __purefn vload_half4(size_t, const half *); +float8 __ovld __purefn vload_half8(size_t, const half *); +float16 __ovld __purefn vload_half16(size_t, const half *); #else -float2 __ovld vload_half2(size_t offset, const __global half *p); -float3 __ovld vload_half3(size_t offset, const __global half *p); -float4 __ovld vload_half4(size_t offset, const __global half *p); -float8 __ovld vload_half8(size_t offset, const __global half *p); -float16 __ovld vload_half16(size_t offset, const __global half *p); -float2 __ovld vload_half2(size_t offset, const __local half *p); -float3 __ovld vload_half3(size_t offset, const __local half *p); -float4 __ovld vload_half4(size_t offset, const __local half *p); -float8 __ovld vload_half8(size_t offset, const __local half *p); -float16 __ovld vload_half16(size_t offset, const __local half *p); -float2 __ovld vload_half2(size_t offset, const __private half *p); -float3 __ovld vload_half3(size_t offset, const __private half *p); -float4 __ovld vload_half4(size_t offset, const __private half *p); -float8 __ovld vload_half8(size_t offset, const __private half *p); -float16 __ovld vload_half16(size_t offset, const __private half *p); -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +float2 __ovld __purefn vload_half2(size_t, const __global half *); +float3 __ovld __purefn vload_half3(size_t, const __global half *); +float4 __ovld __purefn vload_half4(size_t, const __global half *); +float8 __ovld __purefn vload_half8(size_t, const __global half *); +float16 __ovld __purefn vload_half16(size_t, const __global half *); +float2 __ovld __purefn vload_half2(size_t, const __local half *); +float3 __ovld __purefn vload_half3(size_t, const __local half *); +float4 __ovld __purefn vload_half4(size_t, const __local half *); +float8 __ovld __purefn vload_half8(size_t, const __local half *); +float16 __ovld __purefn vload_half16(size_t, const __local half *); +float2 __ovld __purefn vload_half2(size_t, const __private half *); +float3 __ovld __purefn vload_half3(size_t, const __private half *); +float4 __ovld __purefn vload_half4(size_t, const __private half *); +float8 __ovld __purefn vload_half8(size_t, const __private half *); +float16 __ovld __purefn vload_half16(size_t, const __private half *); +#endif //defined(__opencl_c_generic_address_space) /** * The float value given by data is first @@ -12494,53 +12481,53 @@ float16 __ovld vload_half16(size_t offset, const __private half *p); * The default current rounding mode is round to * nearest even. */ -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -void __ovld vstore_half(float data, size_t offset, half *p); -void __ovld vstore_half_rte(float data, size_t offset, half *p); -void __ovld vstore_half_rtz(float data, size_t offset, half *p); -void __ovld vstore_half_rtp(float data, size_t offset, half *p); -void __ovld vstore_half_rtn(float data, size_t offset, half *p); +#if defined(__opencl_c_generic_address_space) +void __ovld vstore_half(float data, size_t, half *); +void __ovld vstore_half_rte(float data, size_t, half *); +void __ovld vstore_half_rtz(float data, size_t, half *); +void __ovld vstore_half_rtp(float data, size_t, half *); +void __ovld vstore_half_rtn(float data, size_t, half *); #ifdef cl_khr_fp64 -void __ovld vstore_half(double data, size_t offset, half *p); -void __ovld vstore_half_rte(double data, size_t offset, half *p); -void __ovld vstore_half_rtz(double data, size_t offset, half *p); -void __ovld vstore_half_rtp(double data, size_t offset, half *p); -void __ovld vstore_half_rtn(double data, size_t offset, half *p); +void __ovld vstore_half(double data, size_t, half *); +void __ovld vstore_half_rte(double data, size_t, half *); +void __ovld vstore_half_rtz(double data, size_t, half *); +void __ovld vstore_half_rtp(double data, size_t, half *); +void __ovld vstore_half_rtn(double data, size_t, half *); #endif //cl_khr_fp64 #else -void __ovld vstore_half(float data, size_t offset, __global half *p); -void __ovld vstore_half_rte(float data, size_t offset, __global half *p); -void __ovld vstore_half_rtz(float data, size_t offset, __global half *p); -void __ovld vstore_half_rtp(float data, size_t offset, __global half *p); -void __ovld vstore_half_rtn(float data, size_t offset, __global half *p); -void __ovld vstore_half(float data, size_t offset, __local half *p); -void __ovld vstore_half_rte(float data, size_t offset, __local half *p); -void __ovld vstore_half_rtz(float data, size_t offset, __local half *p); -void __ovld vstore_half_rtp(float data, size_t offset, __local half *p); -void __ovld vstore_half_rtn(float data, size_t offset, __local half *p); -void __ovld vstore_half(float data, size_t offset, __private half *p); -void __ovld vstore_half_rte(float data, size_t offset, __private half *p); -void __ovld vstore_half_rtz(float data, size_t offset, __private half *p); -void __ovld vstore_half_rtp(float data, size_t offset, __private half *p); -void __ovld vstore_half_rtn(float data, size_t offset, __private half *p); +void __ovld vstore_half(float data, size_t, __global half *); +void __ovld vstore_half_rte(float data, size_t, __global half *); +void __ovld vstore_half_rtz(float data, size_t, __global half *); +void __ovld vstore_half_rtp(float data, size_t, __global half *); +void __ovld vstore_half_rtn(float data, size_t, __global half *); +void __ovld vstore_half(float data, size_t, __local half *); +void __ovld vstore_half_rte(float data, size_t, __local half *); +void __ovld vstore_half_rtz(float data, size_t, __local half *); +void __ovld vstore_half_rtp(float data, size_t, __local half *); +void __ovld vstore_half_rtn(float data, size_t, __local half *); +void __ovld vstore_half(float data, size_t, __private half *); +void __ovld vstore_half_rte(float data, size_t, __private half *); +void __ovld vstore_half_rtz(float data, size_t, __private half *); +void __ovld vstore_half_rtp(float data, size_t, __private half *); +void __ovld vstore_half_rtn(float data, size_t, __private half *); #ifdef cl_khr_fp64 -void __ovld vstore_half(double data, size_t offset, __global half *p); -void __ovld vstore_half_rte(double data, size_t offset, __global half *p); -void __ovld vstore_half_rtz(double data, size_t offset, __global half *p); -void __ovld vstore_half_rtp(double data, size_t offset, __global half *p); -void __ovld vstore_half_rtn(double data, size_t offset, __global half *p); -void __ovld vstore_half(double data, size_t offset, __local half *p); -void __ovld vstore_half_rte(double data, size_t offset, __local half *p); -void __ovld vstore_half_rtz(double data, size_t offset, __local half *p); -void __ovld vstore_half_rtp(double data, size_t offset, __local half *p); -void __ovld vstore_half_rtn(double data, size_t offset, __local half *p); -void __ovld vstore_half(double data, size_t offset, __private half *p); -void __ovld vstore_half_rte(double data, size_t offset, __private half *p); -void __ovld vstore_half_rtz(double data, size_t offset, __private half *p); -void __ovld vstore_half_rtp(double data, size_t offset, __private half *p); -void __ovld vstore_half_rtn(double data, size_t offset, __private half *p); +void __ovld vstore_half(double data, size_t, __global half *); +void __ovld vstore_half_rte(double data, size_t, __global half *); +void __ovld vstore_half_rtz(double data, size_t, __global half *); +void __ovld vstore_half_rtp(double data, size_t, __global half *); +void __ovld vstore_half_rtn(double data, size_t, __global half *); +void __ovld vstore_half(double data, size_t, __local half *); +void __ovld vstore_half_rte(double data, size_t, __local half *); +void __ovld vstore_half_rtz(double data, size_t, __local half *); +void __ovld vstore_half_rtp(double data, size_t, __local half *); +void __ovld vstore_half_rtn(double data, size_t, __local half *); +void __ovld vstore_half(double data, size_t, __private half *); +void __ovld vstore_half_rte(double data, size_t, __private half *); +void __ovld vstore_half_rtz(double data, size_t, __private half *); +void __ovld vstore_half_rtp(double data, size_t, __private half *); +void __ovld vstore_half_rtn(double data, size_t, __private half *); #endif //cl_khr_fp64 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_generic_address_space) /** * The floatn value given by data is converted to @@ -12553,213 +12540,213 @@ void __ovld vstore_half_rtn(double data, size_t offset, __private half *p); * The default current rounding mode is round to * nearest even. */ -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -void __ovld vstore_half2(float2 data, size_t offset, half *p); -void __ovld vstore_half3(float3 data, size_t offset, half *p); -void __ovld vstore_half4(float4 data, size_t offset, half *p); -void __ovld vstore_half8(float8 data, size_t offset, half *p); -void __ovld vstore_half16(float16 data, size_t offset, half *p); -void __ovld vstore_half2_rte(float2 data, size_t offset, half *p); -void __ovld vstore_half3_rte(float3 data, size_t offset, half *p); -void __ovld vstore_half4_rte(float4 data, size_t offset, half *p); -void __ovld vstore_half8_rte(float8 data, size_t offset, half *p); -void __ovld vstore_half16_rte(float16 data, size_t offset, half *p); -void __ovld vstore_half2_rtz(float2 data, size_t offset, half *p); -void __ovld vstore_half3_rtz(float3 data, size_t offset, half *p); -void __ovld vstore_half4_rtz(float4 data, size_t offset, half *p); -void __ovld vstore_half8_rtz(float8 data, size_t offset, half *p); -void __ovld vstore_half16_rtz(float16 data, size_t offset, half *p); -void __ovld vstore_half2_rtp(float2 data, size_t offset, half *p); -void __ovld vstore_half3_rtp(float3 data, size_t offset, half *p); -void __ovld vstore_half4_rtp(float4 data, size_t offset, half *p); -void __ovld vstore_half8_rtp(float8 data, size_t offset, half *p); -void __ovld vstore_half16_rtp(float16 data, size_t offset, half *p); -void __ovld vstore_half2_rtn(float2 data, size_t offset, half *p); -void __ovld vstore_half3_rtn(float3 data, size_t offset, half *p); -void __ovld vstore_half4_rtn(float4 data, size_t offset, half *p); -void __ovld vstore_half8_rtn(float8 data, size_t offset, half *p); -void __ovld vstore_half16_rtn(float16 data, size_t offset, half *p); +#if defined(__opencl_c_generic_address_space) +void __ovld vstore_half2(float2 data, size_t, half *); +void __ovld vstore_half3(float3 data, size_t, half *); +void __ovld vstore_half4(float4 data, size_t, half *); +void __ovld vstore_half8(float8 data, size_t, half *); +void __ovld vstore_half16(float16 data, size_t, half *); +void __ovld vstore_half2_rte(float2 data, size_t, half *); +void __ovld vstore_half3_rte(float3 data, size_t, half *); +void __ovld vstore_half4_rte(float4 data, size_t, half *); +void __ovld vstore_half8_rte(float8 data, size_t, half *); +void __ovld vstore_half16_rte(float16 data, size_t, half *); +void __ovld vstore_half2_rtz(float2 data, size_t, half *); +void __ovld vstore_half3_rtz(float3 data, size_t, half *); +void __ovld vstore_half4_rtz(float4 data, size_t, half *); +void __ovld vstore_half8_rtz(float8 data, size_t, half *); +void __ovld vstore_half16_rtz(float16 data, size_t, half *); +void __ovld vstore_half2_rtp(float2 data, size_t, half *); +void __ovld vstore_half3_rtp(float3 data, size_t, half *); +void __ovld vstore_half4_rtp(float4 data, size_t, half *); +void __ovld vstore_half8_rtp(float8 data, size_t, half *); +void __ovld vstore_half16_rtp(float16 data, size_t, half *); +void __ovld vstore_half2_rtn(float2 data, size_t, half *); +void __ovld vstore_half3_rtn(float3 data, size_t, half *); +void __ovld vstore_half4_rtn(float4 data, size_t, half *); +void __ovld vstore_half8_rtn(float8 data, size_t, half *); +void __ovld vstore_half16_rtn(float16 data, size_t, half *); #ifdef cl_khr_fp64 -void __ovld vstore_half2(double2 data, size_t offset, half *p); -void __ovld vstore_half3(double3 data, size_t offset, half *p); -void __ovld vstore_half4(double4 data, size_t offset, half *p); -void __ovld vstore_half8(double8 data, size_t offset, half *p); -void __ovld vstore_half16(double16 data, size_t offset, half *p); -void __ovld vstore_half2_rte(double2 data, size_t offset, half *p); -void __ovld vstore_half3_rte(double3 data, size_t offset, half *p); -void __ovld vstore_half4_rte(double4 data, size_t offset, half *p); -void __ovld vstore_half8_rte(double8 data, size_t offset, half *p); -void __ovld vstore_half16_rte(double16 data, size_t offset, half *p); -void __ovld vstore_half2_rtz(double2 data, size_t offset, half *p); -void __ovld vstore_half3_rtz(double3 data, size_t offset, half *p); -void __ovld vstore_half4_rtz(double4 data, size_t offset, half *p); -void __ovld vstore_half8_rtz(double8 data, size_t offset, half *p); -void __ovld vstore_half16_rtz(double16 data, size_t offset, half *p); -void __ovld vstore_half2_rtp(double2 data, size_t offset, half *p); -void __ovld vstore_half3_rtp(double3 data, size_t offset, half *p); -void __ovld vstore_half4_rtp(double4 data, size_t offset, half *p); -void __ovld vstore_half8_rtp(double8 data, size_t offset, half *p); -void __ovld vstore_half16_rtp(double16 data, size_t offset, half *p); -void __ovld vstore_half2_rtn(double2 data, size_t offset, half *p); -void __ovld vstore_half3_rtn(double3 data, size_t offset, half *p); -void __ovld vstore_half4_rtn(double4 data, size_t offset, half *p); -void __ovld vstore_half8_rtn(double8 data, size_t offset, half *p); -void __ovld vstore_half16_rtn(double16 data, size_t offset, half *p); +void __ovld vstore_half2(double2 data, size_t, half *); +void __ovld vstore_half3(double3 data, size_t, half *); +void __ovld vstore_half4(double4 data, size_t, half *); +void __ovld vstore_half8(double8 data, size_t, half *); +void __ovld vstore_half16(double16 data, size_t, half *); +void __ovld vstore_half2_rte(double2 data, size_t, half *); +void __ovld vstore_half3_rte(double3 data, size_t, half *); +void __ovld vstore_half4_rte(double4 data, size_t, half *); +void __ovld vstore_half8_rte(double8 data, size_t, half *); +void __ovld vstore_half16_rte(double16 data, size_t, half *); +void __ovld vstore_half2_rtz(double2 data, size_t, half *); +void __ovld vstore_half3_rtz(double3 data, size_t, half *); +void __ovld vstore_half4_rtz(double4 data, size_t, half *); +void __ovld vstore_half8_rtz(double8 data, size_t, half *); +void __ovld vstore_half16_rtz(double16 data, size_t, half *); +void __ovld vstore_half2_rtp(double2 data, size_t, half *); +void __ovld vstore_half3_rtp(double3 data, size_t, half *); +void __ovld vstore_half4_rtp(double4 data, size_t, half *); +void __ovld vstore_half8_rtp(double8 data, size_t, half *); +void __ovld vstore_half16_rtp(double16 data, size_t, half *); +void __ovld vstore_half2_rtn(double2 data, size_t, half *); +void __ovld vstore_half3_rtn(double3 data, size_t, half *); +void __ovld vstore_half4_rtn(double4 data, size_t, half *); +void __ovld vstore_half8_rtn(double8 data, size_t, half *); +void __ovld vstore_half16_rtn(double16 data, size_t, half *); #endif //cl_khr_fp64 #else -void __ovld vstore_half2(float2 data, size_t offset, __global half *p); -void __ovld vstore_half3(float3 data, size_t offset, __global half *p); -void __ovld vstore_half4(float4 data, size_t offset, __global half *p); -void __ovld vstore_half8(float8 data, size_t offset, __global half *p); -void __ovld vstore_half16(float16 data, size_t offset, __global half *p); -void __ovld vstore_half2_rte(float2 data, size_t offset, __global half *p); -void __ovld vstore_half3_rte(float3 data, size_t offset, __global half *p); -void __ovld vstore_half4_rte(float4 data, size_t offset, __global half *p); -void __ovld vstore_half8_rte(float8 data, size_t offset, __global half *p); -void __ovld vstore_half16_rte(float16 data, size_t offset, __global half *p); -void __ovld vstore_half2_rtz(float2 data, size_t offset, __global half *p); -void __ovld vstore_half3_rtz(float3 data, size_t offset, __global half *p); -void __ovld vstore_half4_rtz(float4 data, size_t offset, __global half *p); -void __ovld vstore_half8_rtz(float8 data, size_t offset, __global half *p); -void __ovld vstore_half16_rtz(float16 data, size_t offset, __global half *p); -void __ovld vstore_half2_rtp(float2 data, size_t offset, __global half *p); -void __ovld vstore_half3_rtp(float3 data, size_t offset, __global half *p); -void __ovld vstore_half4_rtp(float4 data, size_t offset, __global half *p); -void __ovld vstore_half8_rtp(float8 data, size_t offset, __global half *p); -void __ovld vstore_half16_rtp(float16 data, size_t offset, __global half *p); -void __ovld vstore_half2_rtn(float2 data, size_t offset, __global half *p); -void __ovld vstore_half3_rtn(float3 data, size_t offset, __global half *p); -void __ovld vstore_half4_rtn(float4 data, size_t offset, __global half *p); -void __ovld vstore_half8_rtn(float8 data, size_t offset, __global half *p); -void __ovld vstore_half16_rtn(float16 data, size_t offset, __global half *p); -void __ovld vstore_half2(float2 data, size_t offset, __local half *p); -void __ovld vstore_half3(float3 data, size_t offset, __local half *p); -void __ovld vstore_half4(float4 data, size_t offset, __local half *p); -void __ovld vstore_half8(float8 data, size_t offset, __local half *p); -void __ovld vstore_half16(float16 data, size_t offset, __local half *p); -void __ovld vstore_half2_rte(float2 data, size_t offset, __local half *p); -void __ovld vstore_half3_rte(float3 data, size_t offset, __local half *p); -void __ovld vstore_half4_rte(float4 data, size_t offset, __local half *p); -void __ovld vstore_half8_rte(float8 data, size_t offset, __local half *p); -void __ovld vstore_half16_rte(float16 data, size_t offset, __local half *p); -void __ovld vstore_half2_rtz(float2 data, size_t offset, __local half *p); -void __ovld vstore_half3_rtz(float3 data, size_t offset, __local half *p); -void __ovld vstore_half4_rtz(float4 data, size_t offset, __local half *p); -void __ovld vstore_half8_rtz(float8 data, size_t offset, __local half *p); -void __ovld vstore_half16_rtz(float16 data, size_t offset, __local half *p); -void __ovld vstore_half2_rtp(float2 data, size_t offset, __local half *p); -void __ovld vstore_half3_rtp(float3 data, size_t offset, __local half *p); -void __ovld vstore_half4_rtp(float4 data, size_t offset, __local half *p); -void __ovld vstore_half8_rtp(float8 data, size_t offset, __local half *p); -void __ovld vstore_half16_rtp(float16 data, size_t offset, __local half *p); -void __ovld vstore_half2_rtn(float2 data, size_t offset, __local half *p); -void __ovld vstore_half3_rtn(float3 data, size_t offset, __local half *p); -void __ovld vstore_half4_rtn(float4 data, size_t offset, __local half *p); -void __ovld vstore_half8_rtn(float8 data, size_t offset, __local half *p); -void __ovld vstore_half16_rtn(float16 data, size_t offset, __local half *p); -void __ovld vstore_half2(float2 data, size_t offset, __private half *p); -void __ovld vstore_half3(float3 data, size_t offset, __private half *p); -void __ovld vstore_half4(float4 data, size_t offset, __private half *p); -void __ovld vstore_half8(float8 data, size_t offset, __private half *p); -void __ovld vstore_half16(float16 data, size_t offset, __private half *p); -void __ovld vstore_half2_rte(float2 data, size_t offset, __private half *p); -void __ovld vstore_half3_rte(float3 data, size_t offset, __private half *p); -void __ovld vstore_half4_rte(float4 data, size_t offset, __private half *p); -void __ovld vstore_half8_rte(float8 data, size_t offset, __private half *p); -void __ovld vstore_half16_rte(float16 data, size_t offset, __private half *p); -void __ovld vstore_half2_rtz(float2 data, size_t offset, __private half *p); -void __ovld vstore_half3_rtz(float3 data, size_t offset, __private half *p); -void __ovld vstore_half4_rtz(float4 data, size_t offset, __private half *p); -void __ovld vstore_half8_rtz(float8 data, size_t offset, __private half *p); -void __ovld vstore_half16_rtz(float16 data, size_t offset, __private half *p); -void __ovld vstore_half2_rtp(float2 data, size_t offset, __private half *p); -void __ovld vstore_half3_rtp(float3 data, size_t offset, __private half *p); -void __ovld vstore_half4_rtp(float4 data, size_t offset, __private half *p); -void __ovld vstore_half8_rtp(float8 data, size_t offset, __private half *p); -void __ovld vstore_half16_rtp(float16 data, size_t offset, __private half *p); -void __ovld vstore_half2_rtn(float2 data, size_t offset, __private half *p); -void __ovld vstore_half3_rtn(float3 data, size_t offset, __private half *p); -void __ovld vstore_half4_rtn(float4 data, size_t offset, __private half *p); -void __ovld vstore_half8_rtn(float8 data, size_t offset, __private half *p); -void __ovld vstore_half16_rtn(float16 data, size_t offset, __private half *p); +void __ovld vstore_half2(float2 data, size_t, __global half *); +void __ovld vstore_half3(float3 data, size_t, __global half *); +void __ovld vstore_half4(float4 data, size_t, __global half *); +void __ovld vstore_half8(float8 data, size_t, __global half *); +void __ovld vstore_half16(float16 data, size_t, __global half *); +void __ovld vstore_half2_rte(float2 data, size_t, __global half *); +void __ovld vstore_half3_rte(float3 data, size_t, __global half *); +void __ovld vstore_half4_rte(float4 data, size_t, __global half *); +void __ovld vstore_half8_rte(float8 data, size_t, __global half *); +void __ovld vstore_half16_rte(float16 data, size_t, __global half *); +void __ovld vstore_half2_rtz(float2 data, size_t, __global half *); +void __ovld vstore_half3_rtz(float3 data, size_t, __global half *); +void __ovld vstore_half4_rtz(float4 data, size_t, __global half *); +void __ovld vstore_half8_rtz(float8 data, size_t, __global half *); +void __ovld vstore_half16_rtz(float16 data, size_t, __global half *); +void __ovld vstore_half2_rtp(float2 data, size_t, __global half *); +void __ovld vstore_half3_rtp(float3 data, size_t, __global half *); +void __ovld vstore_half4_rtp(float4 data, size_t, __global half *); +void __ovld vstore_half8_rtp(float8 data, size_t, __global half *); +void __ovld vstore_half16_rtp(float16 data, size_t, __global half *); +void __ovld vstore_half2_rtn(float2 data, size_t, __global half *); +void __ovld vstore_half3_rtn(float3 data, size_t, __global half *); +void __ovld vstore_half4_rtn(float4 data, size_t, __global half *); +void __ovld vstore_half8_rtn(float8 data, size_t, __global half *); +void __ovld vstore_half16_rtn(float16 data, size_t, __global half *); +void __ovld vstore_half2(float2 data, size_t, __local half *); +void __ovld vstore_half3(float3 data, size_t, __local half *); +void __ovld vstore_half4(float4 data, size_t, __local half *); +void __ovld vstore_half8(float8 data, size_t, __local half *); +void __ovld vstore_half16(float16 data, size_t, __local half *); +void __ovld vstore_half2_rte(float2 data, size_t, __local half *); +void __ovld vstore_half3_rte(float3 data, size_t, __local half *); +void __ovld vstore_half4_rte(float4 data, size_t, __local half *); +void __ovld vstore_half8_rte(float8 data, size_t, __local half *); +void __ovld vstore_half16_rte(float16 data, size_t, __local half *); +void __ovld vstore_half2_rtz(float2 data, size_t, __local half *); +void __ovld vstore_half3_rtz(float3 data, size_t, __local half *); +void __ovld vstore_half4_rtz(float4 data, size_t, __local half *); +void __ovld vstore_half8_rtz(float8 data, size_t, __local half *); +void __ovld vstore_half16_rtz(float16 data, size_t, __local half *); +void __ovld vstore_half2_rtp(float2 data, size_t, __local half *); +void __ovld vstore_half3_rtp(float3 data, size_t, __local half *); +void __ovld vstore_half4_rtp(float4 data, size_t, __local half *); +void __ovld vstore_half8_rtp(float8 data, size_t, __local half *); +void __ovld vstore_half16_rtp(float16 data, size_t, __local half *); +void __ovld vstore_half2_rtn(float2 data, size_t, __local half *); +void __ovld vstore_half3_rtn(float3 data, size_t, __local half *); +void __ovld vstore_half4_rtn(float4 data, size_t, __local half *); +void __ovld vstore_half8_rtn(float8 data, size_t, __local half *); +void __ovld vstore_half16_rtn(float16 data, size_t, __local half *); +void __ovld vstore_half2(float2 data, size_t, __private half *); +void __ovld vstore_half3(float3 data, size_t, __private half *); +void __ovld vstore_half4(float4 data, size_t, __private half *); +void __ovld vstore_half8(float8 data, size_t, __private half *); +void __ovld vstore_half16(float16 data, size_t, __private half *); +void __ovld vstore_half2_rte(float2 data, size_t, __private half *); +void __ovld vstore_half3_rte(float3 data, size_t, __private half *); +void __ovld vstore_half4_rte(float4 data, size_t, __private half *); +void __ovld vstore_half8_rte(float8 data, size_t, __private half *); +void __ovld vstore_half16_rte(float16 data, size_t, __private half *); +void __ovld vstore_half2_rtz(float2 data, size_t, __private half *); +void __ovld vstore_half3_rtz(float3 data, size_t, __private half *); +void __ovld vstore_half4_rtz(float4 data, size_t, __private half *); +void __ovld vstore_half8_rtz(float8 data, size_t, __private half *); +void __ovld vstore_half16_rtz(float16 data, size_t, __private half *); +void __ovld vstore_half2_rtp(float2 data, size_t, __private half *); +void __ovld vstore_half3_rtp(float3 data, size_t, __private half *); +void __ovld vstore_half4_rtp(float4 data, size_t, __private half *); +void __ovld vstore_half8_rtp(float8 data, size_t, __private half *); +void __ovld vstore_half16_rtp(float16 data, size_t, __private half *); +void __ovld vstore_half2_rtn(float2 data, size_t, __private half *); +void __ovld vstore_half3_rtn(float3 data, size_t, __private half *); +void __ovld vstore_half4_rtn(float4 data, size_t, __private half *); +void __ovld vstore_half8_rtn(float8 data, size_t, __private half *); +void __ovld vstore_half16_rtn(float16 data, size_t, __private half *); #ifdef cl_khr_fp64 -void __ovld vstore_half2(double2 data, size_t offset, __global half *p); -void __ovld vstore_half3(double3 data, size_t offset, __global half *p); -void __ovld vstore_half4(double4 data, size_t offset, __global half *p); -void __ovld vstore_half8(double8 data, size_t offset, __global half *p); -void __ovld vstore_half16(double16 data, size_t offset, __global half *p); -void __ovld vstore_half2_rte(double2 data, size_t offset, __global half *p); -void __ovld vstore_half3_rte(double3 data, size_t offset, __global half *p); -void __ovld vstore_half4_rte(double4 data, size_t offset, __global half *p); -void __ovld vstore_half8_rte(double8 data, size_t offset, __global half *p); -void __ovld vstore_half16_rte(double16 data, size_t offset, __global half *p); -void __ovld vstore_half2_rtz(double2 data, size_t offset, __global half *p); -void __ovld vstore_half3_rtz(double3 data, size_t offset, __global half *p); -void __ovld vstore_half4_rtz(double4 data, size_t offset, __global half *p); -void __ovld vstore_half8_rtz(double8 data, size_t offset, __global half *p); -void __ovld vstore_half16_rtz(double16 data, size_t offset, __global half *p); -void __ovld vstore_half2_rtp(double2 data, size_t offset, __global half *p); -void __ovld vstore_half3_rtp(double3 data, size_t offset, __global half *p); -void __ovld vstore_half4_rtp(double4 data, size_t offset, __global half *p); -void __ovld vstore_half8_rtp(double8 data, size_t offset, __global half *p); -void __ovld vstore_half16_rtp(double16 data, size_t offset, __global half *p); -void __ovld vstore_half2_rtn(double2 data, size_t offset, __global half *p); -void __ovld vstore_half3_rtn(double3 data, size_t offset, __global half *p); -void __ovld vstore_half4_rtn(double4 data, size_t offset, __global half *p); -void __ovld vstore_half8_rtn(double8 data, size_t offset, __global half *p); -void __ovld vstore_half16_rtn(double16 data, size_t offset, __global half *p); -void __ovld vstore_half2(double2 data, size_t offset, __local half *p); -void __ovld vstore_half3(double3 data, size_t offset, __local half *p); -void __ovld vstore_half4(double4 data, size_t offset, __local half *p); -void __ovld vstore_half8(double8 data, size_t offset, __local half *p); -void __ovld vstore_half16(double16 data, size_t offset, __local half *p); -void __ovld vstore_half2_rte(double2 data, size_t offset, __local half *p); -void __ovld vstore_half3_rte(double3 data, size_t offset, __local half *p); -void __ovld vstore_half4_rte(double4 data, size_t offset, __local half *p); -void __ovld vstore_half8_rte(double8 data, size_t offset, __local half *p); -void __ovld vstore_half16_rte(double16 data, size_t offset, __local half *p); -void __ovld vstore_half2_rtz(double2 data, size_t offset, __local half *p); -void __ovld vstore_half3_rtz(double3 data, size_t offset, __local half *p); -void __ovld vstore_half4_rtz(double4 data, size_t offset, __local half *p); -void __ovld vstore_half8_rtz(double8 data, size_t offset, __local half *p); -void __ovld vstore_half16_rtz(double16 data, size_t offset, __local half *p); -void __ovld vstore_half2_rtp(double2 data, size_t offset, __local half *p); -void __ovld vstore_half3_rtp(double3 data, size_t offset, __local half *p); -void __ovld vstore_half4_rtp(double4 data, size_t offset, __local half *p); -void __ovld vstore_half8_rtp(double8 data, size_t offset, __local half *p); -void __ovld vstore_half16_rtp(double16 data, size_t offset, __local half *p); -void __ovld vstore_half2_rtn(double2 data, size_t offset, __local half *p); -void __ovld vstore_half3_rtn(double3 data, size_t offset, __local half *p); -void __ovld vstore_half4_rtn(double4 data, size_t offset, __local half *p); -void __ovld vstore_half8_rtn(double8 data, size_t offset, __local half *p); -void __ovld vstore_half16_rtn(double16 data, size_t offset, __local half *p); -void __ovld vstore_half2(double2 data, size_t offset, __private half *p); -void __ovld vstore_half3(double3 data, size_t offset, __private half *p); -void __ovld vstore_half4(double4 data, size_t offset, __private half *p); -void __ovld vstore_half8(double8 data, size_t offset, __private half *p); -void __ovld vstore_half16(double16 data, size_t offset, __private half *p); -void __ovld vstore_half2_rte(double2 data, size_t offset, __private half *p); -void __ovld vstore_half3_rte(double3 data, size_t offset, __private half *p); -void __ovld vstore_half4_rte(double4 data, size_t offset, __private half *p); -void __ovld vstore_half8_rte(double8 data, size_t offset, __private half *p); -void __ovld vstore_half16_rte(double16 data, size_t offset, __private half *p); -void __ovld vstore_half2_rtz(double2 data, size_t offset, __private half *p); -void __ovld vstore_half3_rtz(double3 data, size_t offset, __private half *p); -void __ovld vstore_half4_rtz(double4 data, size_t offset, __private half *p); -void __ovld vstore_half8_rtz(double8 data, size_t offset, __private half *p); -void __ovld vstore_half16_rtz(double16 data, size_t offset, __private half *p); -void __ovld vstore_half2_rtp(double2 data, size_t offset, __private half *p); -void __ovld vstore_half3_rtp(double3 data, size_t offset, __private half *p); -void __ovld vstore_half4_rtp(double4 data, size_t offset, __private half *p); -void __ovld vstore_half8_rtp(double8 data, size_t offset, __private half *p); -void __ovld vstore_half16_rtp(double16 data, size_t offset, __private half *p); -void __ovld vstore_half2_rtn(double2 data, size_t offset, __private half *p); -void __ovld vstore_half3_rtn(double3 data, size_t offset, __private half *p); -void __ovld vstore_half4_rtn(double4 data, size_t offset, __private half *p); -void __ovld vstore_half8_rtn(double8 data, size_t offset, __private half *p); -void __ovld vstore_half16_rtn(double16 data, size_t offset, __private half *p); +void __ovld vstore_half2(double2 data, size_t, __global half *); +void __ovld vstore_half3(double3 data, size_t, __global half *); +void __ovld vstore_half4(double4 data, size_t, __global half *); +void __ovld vstore_half8(double8 data, size_t, __global half *); +void __ovld vstore_half16(double16 data, size_t, __global half *); +void __ovld vstore_half2_rte(double2 data, size_t, __global half *); +void __ovld vstore_half3_rte(double3 data, size_t, __global half *); +void __ovld vstore_half4_rte(double4 data, size_t, __global half *); +void __ovld vstore_half8_rte(double8 data, size_t, __global half *); +void __ovld vstore_half16_rte(double16 data, size_t, __global half *); +void __ovld vstore_half2_rtz(double2 data, size_t, __global half *); +void __ovld vstore_half3_rtz(double3 data, size_t, __global half *); +void __ovld vstore_half4_rtz(double4 data, size_t, __global half *); +void __ovld vstore_half8_rtz(double8 data, size_t, __global half *); +void __ovld vstore_half16_rtz(double16 data, size_t, __global half *); +void __ovld vstore_half2_rtp(double2 data, size_t, __global half *); +void __ovld vstore_half3_rtp(double3 data, size_t, __global half *); +void __ovld vstore_half4_rtp(double4 data, size_t, __global half *); +void __ovld vstore_half8_rtp(double8 data, size_t, __global half *); +void __ovld vstore_half16_rtp(double16 data, size_t, __global half *); +void __ovld vstore_half2_rtn(double2 data, size_t, __global half *); +void __ovld vstore_half3_rtn(double3 data, size_t, __global half *); +void __ovld vstore_half4_rtn(double4 data, size_t, __global half *); +void __ovld vstore_half8_rtn(double8 data, size_t, __global half *); +void __ovld vstore_half16_rtn(double16 data, size_t, __global half *); +void __ovld vstore_half2(double2 data, size_t, __local half *); +void __ovld vstore_half3(double3 data, size_t, __local half *); +void __ovld vstore_half4(double4 data, size_t, __local half *); +void __ovld vstore_half8(double8 data, size_t, __local half *); +void __ovld vstore_half16(double16 data, size_t, __local half *); +void __ovld vstore_half2_rte(double2 data, size_t, __local half *); +void __ovld vstore_half3_rte(double3 data, size_t, __local half *); +void __ovld vstore_half4_rte(double4 data, size_t, __local half *); +void __ovld vstore_half8_rte(double8 data, size_t, __local half *); +void __ovld vstore_half16_rte(double16 data, size_t, __local half *); +void __ovld vstore_half2_rtz(double2 data, size_t, __local half *); +void __ovld vstore_half3_rtz(double3 data, size_t, __local half *); +void __ovld vstore_half4_rtz(double4 data, size_t, __local half *); +void __ovld vstore_half8_rtz(double8 data, size_t, __local half *); +void __ovld vstore_half16_rtz(double16 data, size_t, __local half *); +void __ovld vstore_half2_rtp(double2 data, size_t, __local half *); +void __ovld vstore_half3_rtp(double3 data, size_t, __local half *); +void __ovld vstore_half4_rtp(double4 data, size_t, __local half *); +void __ovld vstore_half8_rtp(double8 data, size_t, __local half *); +void __ovld vstore_half16_rtp(double16 data, size_t, __local half *); +void __ovld vstore_half2_rtn(double2 data, size_t, __local half *); +void __ovld vstore_half3_rtn(double3 data, size_t, __local half *); +void __ovld vstore_half4_rtn(double4 data, size_t, __local half *); +void __ovld vstore_half8_rtn(double8 data, size_t, __local half *); +void __ovld vstore_half16_rtn(double16 data, size_t, __local half *); +void __ovld vstore_half2(double2 data, size_t, __private half *); +void __ovld vstore_half3(double3 data, size_t, __private half *); +void __ovld vstore_half4(double4 data, size_t, __private half *); +void __ovld vstore_half8(double8 data, size_t, __private half *); +void __ovld vstore_half16(double16 data, size_t, __private half *); +void __ovld vstore_half2_rte(double2 data, size_t, __private half *); +void __ovld vstore_half3_rte(double3 data, size_t, __private half *); +void __ovld vstore_half4_rte(double4 data, size_t, __private half *); +void __ovld vstore_half8_rte(double8 data, size_t, __private half *); +void __ovld vstore_half16_rte(double16 data, size_t, __private half *); +void __ovld vstore_half2_rtz(double2 data, size_t, __private half *); +void __ovld vstore_half3_rtz(double3 data, size_t, __private half *); +void __ovld vstore_half4_rtz(double4 data, size_t, __private half *); +void __ovld vstore_half8_rtz(double8 data, size_t, __private half *); +void __ovld vstore_half16_rtz(double16 data, size_t, __private half *); +void __ovld vstore_half2_rtp(double2 data, size_t, __private half *); +void __ovld vstore_half3_rtp(double3 data, size_t, __private half *); +void __ovld vstore_half4_rtp(double4 data, size_t, __private half *); +void __ovld vstore_half8_rtp(double8 data, size_t, __private half *); +void __ovld vstore_half16_rtp(double16 data, size_t, __private half *); +void __ovld vstore_half2_rtn(double2 data, size_t, __private half *); +void __ovld vstore_half3_rtn(double3 data, size_t, __private half *); +void __ovld vstore_half4_rtn(double4 data, size_t, __private half *); +void __ovld vstore_half8_rtn(double8 data, size_t, __private half *); +void __ovld vstore_half16_rtn(double16 data, size_t, __private half *); #endif //cl_khr_fp64 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_generic_address_space) /** * For n = 1, 2, 4, 8 and 16 read sizeof (halfn) @@ -12774,39 +12761,39 @@ void __ovld vstore_half16_rtn(double16 data, size_t offset, __private half *p); * The address computed as (p + (offset * 4)) * must be aligned to sizeof (half) * 4 bytes. */ -float __ovld vloada_half(size_t offset, const __constant half *p); -float2 __ovld vloada_half2(size_t offset, const __constant half *p); -float3 __ovld vloada_half3(size_t offset, const __constant half *p); -float4 __ovld vloada_half4(size_t offset, const __constant half *p); -float8 __ovld vloada_half8(size_t offset, const __constant half *p); -float16 __ovld vloada_half16(size_t offset, const __constant half *p); -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -float __ovld vloada_half(size_t offset, const half *p); -float2 __ovld vloada_half2(size_t offset, const half *p); -float3 __ovld vloada_half3(size_t offset, const half *p); -float4 __ovld vloada_half4(size_t offset, const half *p); -float8 __ovld vloada_half8(size_t offset, const half *p); -float16 __ovld vloada_half16(size_t offset, const half *p); +float __ovld __purefn vloada_half(size_t, const __constant half *); +float2 __ovld __purefn vloada_half2(size_t, const __constant half *); +float3 __ovld __purefn vloada_half3(size_t, const __constant half *); +float4 __ovld __purefn vloada_half4(size_t, const __constant half *); +float8 __ovld __purefn vloada_half8(size_t, const __constant half *); +float16 __ovld __purefn vloada_half16(size_t, const __constant half *); +#if defined(__opencl_c_generic_address_space) +float __ovld __purefn vloada_half(size_t, const half *); +float2 __ovld __purefn vloada_half2(size_t, const half *); +float3 __ovld __purefn vloada_half3(size_t, const half *); +float4 __ovld __purefn vloada_half4(size_t, const half *); +float8 __ovld __purefn vloada_half8(size_t, const half *); +float16 __ovld __purefn vloada_half16(size_t, const half *); #else -float __ovld vloada_half(size_t offset, const __global half *p); -float2 __ovld vloada_half2(size_t offset, const __global half *p); -float3 __ovld vloada_half3(size_t offset, const __global half *p); -float4 __ovld vloada_half4(size_t offset, const __global half *p); -float8 __ovld vloada_half8(size_t offset, const __global half *p); -float16 __ovld vloada_half16(size_t offset, const __global half *p); -float __ovld vloada_half(size_t offset, const __local half *p); -float2 __ovld vloada_half2(size_t offset, const __local half *p); -float3 __ovld vloada_half3(size_t offset, const __local half *p); -float4 __ovld vloada_half4(size_t offset, const __local half *p); -float8 __ovld vloada_half8(size_t offset, const __local half *p); -float16 __ovld vloada_half16(size_t offset, const __local half *p); -float __ovld vloada_half(size_t offset, const __private half *p); -float2 __ovld vloada_half2(size_t offset, const __private half *p); -float3 __ovld vloada_half3(size_t offset, const __private half *p); -float4 __ovld vloada_half4(size_t offset, const __private half *p); -float8 __ovld vloada_half8(size_t offset, const __private half *p); -float16 __ovld vloada_half16(size_t offset, const __private half *p); -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +float __ovld __purefn vloada_half(size_t, const __global half *); +float2 __ovld __purefn vloada_half2(size_t, const __global half *); +float3 __ovld __purefn vloada_half3(size_t, const __global half *); +float4 __ovld __purefn vloada_half4(size_t, const __global half *); +float8 __ovld __purefn vloada_half8(size_t, const __global half *); +float16 __ovld __purefn vloada_half16(size_t, const __global half *); +float __ovld __purefn vloada_half(size_t, const __local half *); +float2 __ovld __purefn vloada_half2(size_t, const __local half *); +float3 __ovld __purefn vloada_half3(size_t, const __local half *); +float4 __ovld __purefn vloada_half4(size_t, const __local half *); +float8 __ovld __purefn vloada_half8(size_t, const __local half *); +float16 __ovld __purefn vloada_half16(size_t, const __local half *); +float __ovld __purefn vloada_half(size_t, const __private half *); +float2 __ovld __purefn vloada_half2(size_t, const __private half *); +float3 __ovld __purefn vloada_half3(size_t, const __private half *); +float4 __ovld __purefn vloada_half4(size_t, const __private half *); +float8 __ovld __purefn vloada_half8(size_t, const __private half *); +float16 __ovld __purefn vloada_half16(size_t, const __private half *); +#endif //defined(__opencl_c_generic_address_space) /** * The floatn value given by data is converted to @@ -12824,292 +12811,292 @@ float16 __ovld vloada_half16(size_t offset, const __private half *p); * mode. The default current rounding mode is * round to nearest even. */ -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -void __ovld vstorea_half(float data, size_t offset, half *p); -void __ovld vstorea_half2(float2 data, size_t offset, half *p); -void __ovld vstorea_half3(float3 data, size_t offset, half *p); -void __ovld vstorea_half4(float4 data, size_t offset, half *p); -void __ovld vstorea_half8(float8 data, size_t offset, half *p); -void __ovld vstorea_half16(float16 data, size_t offset, half *p); - -void __ovld vstorea_half_rte(float data, size_t offset, half *p); -void __ovld vstorea_half2_rte(float2 data, size_t offset, half *p); -void __ovld vstorea_half3_rte(float3 data, size_t offset, half *p); -void __ovld vstorea_half4_rte(float4 data, size_t offset, half *p); -void __ovld vstorea_half8_rte(float8 data, size_t offset, half *p); -void __ovld vstorea_half16_rte(float16 data, size_t offset, half *p); - -void __ovld vstorea_half_rtz(float data, size_t offset, half *p); -void __ovld vstorea_half2_rtz(float2 data, size_t offset, half *p); -void __ovld vstorea_half3_rtz(float3 data, size_t offset, half *p); -void __ovld vstorea_half4_rtz(float4 data, size_t offset, half *p); -void __ovld vstorea_half8_rtz(float8 data, size_t offset, half *p); -void __ovld vstorea_half16_rtz(float16 data, size_t offset, half *p); - -void __ovld vstorea_half_rtp(float data, size_t offset, half *p); -void __ovld vstorea_half2_rtp(float2 data, size_t offset, half *p); -void __ovld vstorea_half3_rtp(float3 data, size_t offset, half *p); -void __ovld vstorea_half4_rtp(float4 data, size_t offset, half *p); -void __ovld vstorea_half8_rtp(float8 data, size_t offset, half *p); -void __ovld vstorea_half16_rtp(float16 data, size_t offset, half *p); - -void __ovld vstorea_half_rtn(float data, size_t offset, half *p); -void __ovld vstorea_half2_rtn(float2 data, size_t offset, half *p); -void __ovld vstorea_half3_rtn(float3 data, size_t offset, half *p); -void __ovld vstorea_half4_rtn(float4 data, size_t offset, half *p); -void __ovld vstorea_half8_rtn(float8 data, size_t offset, half *p); -void __ovld vstorea_half16_rtn(float16 data, size_t offset, half *p); +#if defined(__opencl_c_generic_address_space) +void __ovld vstorea_half(float data, size_t, half *); +void __ovld vstorea_half2(float2 data, size_t, half *); +void __ovld vstorea_half3(float3 data, size_t, half *); +void __ovld vstorea_half4(float4 data, size_t, half *); +void __ovld vstorea_half8(float8 data, size_t, half *); +void __ovld vstorea_half16(float16 data, size_t, half *); + +void __ovld vstorea_half_rte(float data, size_t, half *); +void __ovld vstorea_half2_rte(float2 data, size_t, half *); +void __ovld vstorea_half3_rte(float3 data, size_t, half *); +void __ovld vstorea_half4_rte(float4 data, size_t, half *); +void __ovld vstorea_half8_rte(float8 data, size_t, half *); +void __ovld vstorea_half16_rte(float16 data, size_t, half *); + +void __ovld vstorea_half_rtz(float data, size_t, half *); +void __ovld vstorea_half2_rtz(float2 data, size_t, half *); +void __ovld vstorea_half3_rtz(float3 data, size_t, half *); +void __ovld vstorea_half4_rtz(float4 data, size_t, half *); +void __ovld vstorea_half8_rtz(float8 data, size_t, half *); +void __ovld vstorea_half16_rtz(float16 data, size_t, half *); + +void __ovld vstorea_half_rtp(float data, size_t, half *); +void __ovld vstorea_half2_rtp(float2 data, size_t, half *); +void __ovld vstorea_half3_rtp(float3 data, size_t, half *); +void __ovld vstorea_half4_rtp(float4 data, size_t, half *); +void __ovld vstorea_half8_rtp(float8 data, size_t, half *); +void __ovld vstorea_half16_rtp(float16 data, size_t, half *); + +void __ovld vstorea_half_rtn(float data, size_t, half *); +void __ovld vstorea_half2_rtn(float2 data, size_t, half *); +void __ovld vstorea_half3_rtn(float3 data, size_t, half *); +void __ovld vstorea_half4_rtn(float4 data, size_t, half *); +void __ovld vstorea_half8_rtn(float8 data, size_t, half *); +void __ovld vstorea_half16_rtn(float16 data, size_t, half *); #ifdef cl_khr_fp64 -void __ovld vstorea_half(double data, size_t offset, half *p); -void __ovld vstorea_half2(double2 data, size_t offset, half *p); -void __ovld vstorea_half3(double3 data, size_t offset, half *p); -void __ovld vstorea_half4(double4 data, size_t offset, half *p); -void __ovld vstorea_half8(double8 data, size_t offset, half *p); -void __ovld vstorea_half16(double16 data, size_t offset, half *p); - -void __ovld vstorea_half_rte(double data, size_t offset, half *p); -void __ovld vstorea_half2_rte(double2 data, size_t offset, half *p); -void __ovld vstorea_half3_rte(double3 data, size_t offset, half *p); -void __ovld vstorea_half4_rte(double4 data, size_t offset, half *p); -void __ovld vstorea_half8_rte(double8 data, size_t offset, half *p); -void __ovld vstorea_half16_rte(double16 data, size_t offset, half *p); - -void __ovld vstorea_half_rtz(double data, size_t offset, half *p); -void __ovld vstorea_half2_rtz(double2 data, size_t offset, half *p); -void __ovld vstorea_half3_rtz(double3 data, size_t offset, half *p); -void __ovld vstorea_half4_rtz(double4 data, size_t offset, half *p); -void __ovld vstorea_half8_rtz(double8 data, size_t offset, half *p); -void __ovld vstorea_half16_rtz(double16 data, size_t offset, half *p); - -void __ovld vstorea_half_rtp(double data, size_t offset, half *p); -void __ovld vstorea_half2_rtp(double2 data, size_t offset, half *p); -void __ovld vstorea_half3_rtp(double3 data, size_t offset, half *p); -void __ovld vstorea_half4_rtp(double4 data, size_t offset, half *p); -void __ovld vstorea_half8_rtp(double8 data, size_t offset, half *p); -void __ovld vstorea_half16_rtp(double16 data, size_t offset, half *p); - -void __ovld vstorea_half_rtn(double data, size_t offset, half *p); -void __ovld vstorea_half2_rtn(double2 data, size_t offset, half *p); -void __ovld vstorea_half3_rtn(double3 data, size_t offset, half *p); -void __ovld vstorea_half4_rtn(double4 data, size_t offset, half *p); -void __ovld vstorea_half8_rtn(double8 data, size_t offset, half *p); -void __ovld vstorea_half16_rtn(double16 data, size_t offset, half *p); +void __ovld vstorea_half(double data, size_t, half *); +void __ovld vstorea_half2(double2 data, size_t, half *); +void __ovld vstorea_half3(double3 data, size_t, half *); +void __ovld vstorea_half4(double4 data, size_t, half *); +void __ovld vstorea_half8(double8 data, size_t, half *); +void __ovld vstorea_half16(double16 data, size_t, half *); + +void __ovld vstorea_half_rte(double data, size_t, half *); +void __ovld vstorea_half2_rte(double2 data, size_t, half *); +void __ovld vstorea_half3_rte(double3 data, size_t, half *); +void __ovld vstorea_half4_rte(double4 data, size_t, half *); +void __ovld vstorea_half8_rte(double8 data, size_t, half *); +void __ovld vstorea_half16_rte(double16 data, size_t, half *); + +void __ovld vstorea_half_rtz(double data, size_t, half *); +void __ovld vstorea_half2_rtz(double2 data, size_t, half *); +void __ovld vstorea_half3_rtz(double3 data, size_t, half *); +void __ovld vstorea_half4_rtz(double4 data, size_t, half *); +void __ovld vstorea_half8_rtz(double8 data, size_t, half *); +void __ovld vstorea_half16_rtz(double16 data, size_t, half *); + +void __ovld vstorea_half_rtp(double data, size_t, half *); +void __ovld vstorea_half2_rtp(double2 data, size_t, half *); +void __ovld vstorea_half3_rtp(double3 data, size_t, half *); +void __ovld vstorea_half4_rtp(double4 data, size_t, half *); +void __ovld vstorea_half8_rtp(double8 data, size_t, half *); +void __ovld vstorea_half16_rtp(double16 data, size_t, half *); + +void __ovld vstorea_half_rtn(double data, size_t, half *); +void __ovld vstorea_half2_rtn(double2 data, size_t, half *); +void __ovld vstorea_half3_rtn(double3 data, size_t, half *); +void __ovld vstorea_half4_rtn(double4 data, size_t, half *); +void __ovld vstorea_half8_rtn(double8 data, size_t, half *); +void __ovld vstorea_half16_rtn(double16 data, size_t, half *); #endif //cl_khr_fp64 #else -void __ovld vstorea_half(float data, size_t offset, __global half *p); -void __ovld vstorea_half2(float2 data, size_t offset, __global half *p); -void __ovld vstorea_half3(float3 data, size_t offset, __global half *p); -void __ovld vstorea_half4(float4 data, size_t offset, __global half *p); -void __ovld vstorea_half8(float8 data, size_t offset, __global half *p); -void __ovld vstorea_half16(float16 data, size_t offset, __global half *p); - -void __ovld vstorea_half_rte(float data, size_t offset, __global half *p); -void __ovld vstorea_half2_rte(float2 data, size_t offset, __global half *p); -void __ovld vstorea_half3_rte(float3 data, size_t offset, __global half *p); -void __ovld vstorea_half4_rte(float4 data, size_t offset, __global half *p); -void __ovld vstorea_half8_rte(float8 data, size_t offset, __global half *p); -void __ovld vstorea_half16_rte(float16 data, size_t offset, __global half *p); - -void __ovld vstorea_half_rtz(float data, size_t offset, __global half *p); -void __ovld vstorea_half2_rtz(float2 data, size_t offset, __global half *p); -void __ovld vstorea_half3_rtz(float3 data, size_t offset, __global half *p); -void __ovld vstorea_half4_rtz(float4 data, size_t offset, __global half *p); -void __ovld vstorea_half8_rtz(float8 data, size_t offset, __global half *p); -void __ovld vstorea_half16_rtz(float16 data, size_t offset, __global half *p); - -void __ovld vstorea_half_rtp(float data, size_t offset, __global half *p); -void __ovld vstorea_half2_rtp(float2 data, size_t offset, __global half *p); -void __ovld vstorea_half3_rtp(float3 data, size_t offset, __global half *p); -void __ovld vstorea_half4_rtp(float4 data, size_t offset, __global half *p); -void __ovld vstorea_half8_rtp(float8 data, size_t offset, __global half *p); -void __ovld vstorea_half16_rtp(float16 data, size_t offset, __global half *p); - -void __ovld vstorea_half_rtn(float data, size_t offset, __global half *p); -void __ovld vstorea_half2_rtn(float2 data, size_t offset, __global half *p); -void __ovld vstorea_half3_rtn(float3 data, size_t offset, __global half *p); -void __ovld vstorea_half4_rtn(float4 data, size_t offset, __global half *p); -void __ovld vstorea_half8_rtn(float8 data, size_t offset, __global half *p); -void __ovld vstorea_half16_rtn(float16 data, size_t offset, __global half *p); - -void __ovld vstorea_half(float data, size_t offset, __local half *p); -void __ovld vstorea_half2(float2 data, size_t offset, __local half *p); -void __ovld vstorea_half3(float3 data, size_t offset, __local half *p); -void __ovld vstorea_half4(float4 data, size_t offset, __local half *p); -void __ovld vstorea_half8(float8 data, size_t offset, __local half *p); -void __ovld vstorea_half16(float16 data, size_t offset, __local half *p); - -void __ovld vstorea_half_rte(float data, size_t offset, __local half *p); -void __ovld vstorea_half2_rte(float2 data, size_t offset, __local half *p); -void __ovld vstorea_half3_rte(float3 data, size_t offset, __local half *p); -void __ovld vstorea_half4_rte(float4 data, size_t offset, __local half *p); -void __ovld vstorea_half8_rte(float8 data, size_t offset, __local half *p); -void __ovld vstorea_half16_rte(float16 data, size_t offset, __local half *p); - -void __ovld vstorea_half_rtz(float data, size_t offset, __local half *p); -void __ovld vstorea_half2_rtz(float2 data, size_t offset, __local half *p); -void __ovld vstorea_half3_rtz(float3 data, size_t offset, __local half *p); -void __ovld vstorea_half4_rtz(float4 data, size_t offset, __local half *p); -void __ovld vstorea_half8_rtz(float8 data, size_t offset, __local half *p); -void __ovld vstorea_half16_rtz(float16 data, size_t offset, __local half *p); - -void __ovld vstorea_half_rtp(float data, size_t offset, __local half *p); -void __ovld vstorea_half2_rtp(float2 data, size_t offset, __local half *p); -void __ovld vstorea_half3_rtp(float3 data, size_t offset, __local half *p); -void __ovld vstorea_half4_rtp(float4 data, size_t offset, __local half *p); -void __ovld vstorea_half8_rtp(float8 data, size_t offset, __local half *p); -void __ovld vstorea_half16_rtp(float16 data, size_t offset, __local half *p); - -void __ovld vstorea_half_rtn(float data, size_t offset, __local half *p); -void __ovld vstorea_half2_rtn(float2 data, size_t offset, __local half *p); -void __ovld vstorea_half3_rtn(float3 data, size_t offset, __local half *p); -void __ovld vstorea_half4_rtn(float4 data, size_t offset, __local half *p); -void __ovld vstorea_half8_rtn(float8 data, size_t offset, __local half *p); -void __ovld vstorea_half16_rtn(float16 data, size_t offset, __local half *p); - -void __ovld vstorea_half(float data, size_t offset, __private half *p); -void __ovld vstorea_half2(float2 data, size_t offset, __private half *p); -void __ovld vstorea_half3(float3 data, size_t offset, __private half *p); -void __ovld vstorea_half4(float4 data, size_t offset, __private half *p); -void __ovld vstorea_half8(float8 data, size_t offset, __private half *p); -void __ovld vstorea_half16(float16 data, size_t offset, __private half *p); - -void __ovld vstorea_half_rte(float data, size_t offset, __private half *p); -void __ovld vstorea_half2_rte(float2 data, size_t offset, __private half *p); -void __ovld vstorea_half3_rte(float3 data, size_t offset, __private half *p); -void __ovld vstorea_half4_rte(float4 data, size_t offset, __private half *p); -void __ovld vstorea_half8_rte(float8 data, size_t offset, __private half *p); -void __ovld vstorea_half16_rte(float16 data, size_t offset, __private half *p); - -void __ovld vstorea_half_rtz(float data, size_t offset, __private half *p); -void __ovld vstorea_half2_rtz(float2 data, size_t offset, __private half *p); -void __ovld vstorea_half3_rtz(float3 data, size_t offset, __private half *p); -void __ovld vstorea_half4_rtz(float4 data, size_t offset, __private half *p); -void __ovld vstorea_half8_rtz(float8 data, size_t offset, __private half *p); -void __ovld vstorea_half16_rtz(float16 data, size_t offset, __private half *p); - -void __ovld vstorea_half_rtp(float data, size_t offset, __private half *p); -void __ovld vstorea_half2_rtp(float2 data, size_t offset, __private half *p); -void __ovld vstorea_half3_rtp(float3 data, size_t offset, __private half *p); -void __ovld vstorea_half4_rtp(float4 data, size_t offset, __private half *p); -void __ovld vstorea_half8_rtp(float8 data, size_t offset, __private half *p); -void __ovld vstorea_half16_rtp(float16 data, size_t offset, __private half *p); - -void __ovld vstorea_half_rtn(float data, size_t offset, __private half *p); -void __ovld vstorea_half2_rtn(float2 data, size_t offset, __private half *p); -void __ovld vstorea_half3_rtn(float3 data, size_t offset, __private half *p); -void __ovld vstorea_half4_rtn(float4 data, size_t offset, __private half *p); -void __ovld vstorea_half8_rtn(float8 data, size_t offset, __private half *p); -void __ovld vstorea_half16_rtn(float16 data, size_t offset, __private half *p); +void __ovld vstorea_half(float data, size_t, __global half *); +void __ovld vstorea_half2(float2 data, size_t, __global half *); +void __ovld vstorea_half3(float3 data, size_t, __global half *); +void __ovld vstorea_half4(float4 data, size_t, __global half *); +void __ovld vstorea_half8(float8 data, size_t, __global half *); +void __ovld vstorea_half16(float16 data, size_t, __global half *); + +void __ovld vstorea_half_rte(float data, size_t, __global half *); +void __ovld vstorea_half2_rte(float2 data, size_t, __global half *); +void __ovld vstorea_half3_rte(float3 data, size_t, __global half *); +void __ovld vstorea_half4_rte(float4 data, size_t, __global half *); +void __ovld vstorea_half8_rte(float8 data, size_t, __global half *); +void __ovld vstorea_half16_rte(float16 data, size_t, __global half *); + +void __ovld vstorea_half_rtz(float data, size_t, __global half *); +void __ovld vstorea_half2_rtz(float2 data, size_t, __global half *); +void __ovld vstorea_half3_rtz(float3 data, size_t, __global half *); +void __ovld vstorea_half4_rtz(float4 data, size_t, __global half *); +void __ovld vstorea_half8_rtz(float8 data, size_t, __global half *); +void __ovld vstorea_half16_rtz(float16 data, size_t, __global half *); + +void __ovld vstorea_half_rtp(float data, size_t, __global half *); +void __ovld vstorea_half2_rtp(float2 data, size_t, __global half *); +void __ovld vstorea_half3_rtp(float3 data, size_t, __global half *); +void __ovld vstorea_half4_rtp(float4 data, size_t, __global half *); +void __ovld vstorea_half8_rtp(float8 data, size_t, __global half *); +void __ovld vstorea_half16_rtp(float16 data, size_t, __global half *); + +void __ovld vstorea_half_rtn(float data, size_t, __global half *); +void __ovld vstorea_half2_rtn(float2 data, size_t, __global half *); +void __ovld vstorea_half3_rtn(float3 data, size_t, __global half *); +void __ovld vstorea_half4_rtn(float4 data, size_t, __global half *); +void __ovld vstorea_half8_rtn(float8 data, size_t, __global half *); +void __ovld vstorea_half16_rtn(float16 data, size_t, __global half *); + +void __ovld vstorea_half(float data, size_t, __local half *); +void __ovld vstorea_half2(float2 data, size_t, __local half *); +void __ovld vstorea_half3(float3 data, size_t, __local half *); +void __ovld vstorea_half4(float4 data, size_t, __local half *); +void __ovld vstorea_half8(float8 data, size_t, __local half *); +void __ovld vstorea_half16(float16 data, size_t, __local half *); + +void __ovld vstorea_half_rte(float data, size_t, __local half *); +void __ovld vstorea_half2_rte(float2 data, size_t, __local half *); +void __ovld vstorea_half3_rte(float3 data, size_t, __local half *); +void __ovld vstorea_half4_rte(float4 data, size_t, __local half *); +void __ovld vstorea_half8_rte(float8 data, size_t, __local half *); +void __ovld vstorea_half16_rte(float16 data, size_t, __local half *); + +void __ovld vstorea_half_rtz(float data, size_t, __local half *); +void __ovld vstorea_half2_rtz(float2 data, size_t, __local half *); +void __ovld vstorea_half3_rtz(float3 data, size_t, __local half *); +void __ovld vstorea_half4_rtz(float4 data, size_t, __local half *); +void __ovld vstorea_half8_rtz(float8 data, size_t, __local half *); +void __ovld vstorea_half16_rtz(float16 data, size_t, __local half *); + +void __ovld vstorea_half_rtp(float data, size_t, __local half *); +void __ovld vstorea_half2_rtp(float2 data, size_t, __local half *); +void __ovld vstorea_half3_rtp(float3 data, size_t, __local half *); +void __ovld vstorea_half4_rtp(float4 data, size_t, __local half *); +void __ovld vstorea_half8_rtp(float8 data, size_t, __local half *); +void __ovld vstorea_half16_rtp(float16 data, size_t, __local half *); + +void __ovld vstorea_half_rtn(float data, size_t, __local half *); +void __ovld vstorea_half2_rtn(float2 data, size_t, __local half *); +void __ovld vstorea_half3_rtn(float3 data, size_t, __local half *); +void __ovld vstorea_half4_rtn(float4 data, size_t, __local half *); +void __ovld vstorea_half8_rtn(float8 data, size_t, __local half *); +void __ovld vstorea_half16_rtn(float16 data, size_t, __local half *); + +void __ovld vstorea_half(float data, size_t, __private half *); +void __ovld vstorea_half2(float2 data, size_t, __private half *); +void __ovld vstorea_half3(float3 data, size_t, __private half *); +void __ovld vstorea_half4(float4 data, size_t, __private half *); +void __ovld vstorea_half8(float8 data, size_t, __private half *); +void __ovld vstorea_half16(float16 data, size_t, __private half *); + +void __ovld vstorea_half_rte(float data, size_t, __private half *); +void __ovld vstorea_half2_rte(float2 data, size_t, __private half *); +void __ovld vstorea_half3_rte(float3 data, size_t, __private half *); +void __ovld vstorea_half4_rte(float4 data, size_t, __private half *); +void __ovld vstorea_half8_rte(float8 data, size_t, __private half *); +void __ovld vstorea_half16_rte(float16 data, size_t, __private half *); + +void __ovld vstorea_half_rtz(float data, size_t, __private half *); +void __ovld vstorea_half2_rtz(float2 data, size_t, __private half *); +void __ovld vstorea_half3_rtz(float3 data, size_t, __private half *); +void __ovld vstorea_half4_rtz(float4 data, size_t, __private half *); +void __ovld vstorea_half8_rtz(float8 data, size_t, __private half *); +void __ovld vstorea_half16_rtz(float16 data, size_t, __private half *); + +void __ovld vstorea_half_rtp(float data, size_t, __private half *); +void __ovld vstorea_half2_rtp(float2 data, size_t, __private half *); +void __ovld vstorea_half3_rtp(float3 data, size_t, __private half *); +void __ovld vstorea_half4_rtp(float4 data, size_t, __private half *); +void __ovld vstorea_half8_rtp(float8 data, size_t, __private half *); +void __ovld vstorea_half16_rtp(float16 data, size_t, __private half *); + +void __ovld vstorea_half_rtn(float data, size_t, __private half *); +void __ovld vstorea_half2_rtn(float2 data, size_t, __private half *); +void __ovld vstorea_half3_rtn(float3 data, size_t, __private half *); +void __ovld vstorea_half4_rtn(float4 data, size_t, __private half *); +void __ovld vstorea_half8_rtn(float8 data, size_t, __private half *); +void __ovld vstorea_half16_rtn(float16 data, size_t, __private half *); #ifdef cl_khr_fp64 -void __ovld vstorea_half(double data, size_t offset, __global half *p); -void __ovld vstorea_half2(double2 data, size_t offset, __global half *p); -void __ovld vstorea_half3(double3 data, size_t offset, __global half *p); -void __ovld vstorea_half4(double4 data, size_t offset, __global half *p); -void __ovld vstorea_half8(double8 data, size_t offset, __global half *p); -void __ovld vstorea_half16(double16 data, size_t offset, __global half *p); - -void __ovld vstorea_half_rte(double data, size_t offset, __global half *p); -void __ovld vstorea_half2_rte(double2 data, size_t offset, __global half *p); -void __ovld vstorea_half3_rte(double3 data, size_t offset, __global half *p); -void __ovld vstorea_half4_rte(double4 data, size_t offset, __global half *p); -void __ovld vstorea_half8_rte(double8 data, size_t offset, __global half *p); -void __ovld vstorea_half16_rte(double16 data, size_t offset, __global half *p); - -void __ovld vstorea_half_rtz(double data, size_t offset, __global half *p); -void __ovld vstorea_half2_rtz(double2 data, size_t offset, __global half *p); -void __ovld vstorea_half3_rtz(double3 data, size_t offset, __global half *p); -void __ovld vstorea_half4_rtz(double4 data, size_t offset, __global half *p); -void __ovld vstorea_half8_rtz(double8 data, size_t offset, __global half *p); -void __ovld vstorea_half16_rtz(double16 data, size_t offset, __global half *p); - -void __ovld vstorea_half_rtp(double data, size_t offset, __global half *p); -void __ovld vstorea_half2_rtp(double2 data, size_t offset, __global half *p); -void __ovld vstorea_half3_rtp(double3 data, size_t offset, __global half *p); -void __ovld vstorea_half4_rtp(double4 data, size_t offset, __global half *p); -void __ovld vstorea_half8_rtp(double8 data, size_t offset, __global half *p); -void __ovld vstorea_half16_rtp(double16 data, size_t offset, __global half *p); - -void __ovld vstorea_half_rtn(double data, size_t offset, __global half *p); -void __ovld vstorea_half2_rtn(double2 data, size_t offset, __global half *p); -void __ovld vstorea_half3_rtn(double3 data, size_t offset, __global half *p); -void __ovld vstorea_half4_rtn(double4 data, size_t offset, __global half *p); -void __ovld vstorea_half8_rtn(double8 data, size_t offset, __global half *p); -void __ovld vstorea_half16_rtn(double16 data, size_t offset, __global half *p); - -void __ovld vstorea_half(double data, size_t offset, __local half *p); -void __ovld vstorea_half2(double2 data, size_t offset, __local half *p); -void __ovld vstorea_half3(double3 data, size_t offset, __local half *p); -void __ovld vstorea_half4(double4 data, size_t offset, __local half *p); -void __ovld vstorea_half8(double8 data, size_t offset, __local half *p); -void __ovld vstorea_half16(double16 data, size_t offset, __local half *p); - -void __ovld vstorea_half_rte(double data, size_t offset, __local half *p); -void __ovld vstorea_half2_rte(double2 data, size_t offset, __local half *p); -void __ovld vstorea_half3_rte(double3 data, size_t offset, __local half *p); -void __ovld vstorea_half4_rte(double4 data, size_t offset, __local half *p); -void __ovld vstorea_half8_rte(double8 data, size_t offset, __local half *p); -void __ovld vstorea_half16_rte(double16 data, size_t offset, __local half *p); - -void __ovld vstorea_half_rtz(double data, size_t offset, __local half *p); -void __ovld vstorea_half2_rtz(double2 data, size_t offset, __local half *p); -void __ovld vstorea_half3_rtz(double3 data, size_t offset, __local half *p); -void __ovld vstorea_half4_rtz(double4 data, size_t offset, __local half *p); -void __ovld vstorea_half8_rtz(double8 data, size_t offset, __local half *p); -void __ovld vstorea_half16_rtz(double16 data, size_t offset, __local half *p); - -void __ovld vstorea_half_rtp(double data, size_t offset, __local half *p); -void __ovld vstorea_half2_rtp(double2 data, size_t offset, __local half *p); -void __ovld vstorea_half3_rtp(double3 data, size_t offset, __local half *p); -void __ovld vstorea_half4_rtp(double4 data, size_t offset, __local half *p); -void __ovld vstorea_half8_rtp(double8 data, size_t offset, __local half *p); -void __ovld vstorea_half16_rtp(double16 data, size_t offset, __local half *p); - -void __ovld vstorea_half_rtn(double data, size_t offset, __local half *p); -void __ovld vstorea_half2_rtn(double2 data, size_t offset, __local half *p); -void __ovld vstorea_half3_rtn(double3 data, size_t offset, __local half *p); -void __ovld vstorea_half4_rtn(double4 data, size_t offset, __local half *p); -void __ovld vstorea_half8_rtn(double8 data, size_t offset, __local half *p); -void __ovld vstorea_half16_rtn(double16 data, size_t offset, __local half *p); - -void __ovld vstorea_half(double data, size_t offset, __private half *p); -void __ovld vstorea_half2(double2 data, size_t offset, __private half *p); -void __ovld vstorea_half3(double3 data, size_t offset, __private half *p); -void __ovld vstorea_half4(double4 data, size_t offset, __private half *p); -void __ovld vstorea_half8(double8 data, size_t offset, __private half *p); -void __ovld vstorea_half16(double16 data, size_t offset, __private half *p); - -void __ovld vstorea_half_rte(double data, size_t offset, __private half *p); -void __ovld vstorea_half2_rte(double2 data, size_t offset, __private half *p); -void __ovld vstorea_half3_rte(double3 data, size_t offset, __private half *p); -void __ovld vstorea_half4_rte(double4 data, size_t offset, __private half *p); -void __ovld vstorea_half8_rte(double8 data, size_t offset, __private half *p); -void __ovld vstorea_half16_rte(double16 data, size_t offset, __private half *p); - -void __ovld vstorea_half_rtz(double data, size_t offset, __private half *p); -void __ovld vstorea_half2_rtz(double2 data, size_t offset, __private half *p); -void __ovld vstorea_half3_rtz(double3 data, size_t offset, __private half *p); -void __ovld vstorea_half4_rtz(double4 data, size_t offset, __private half *p); -void __ovld vstorea_half8_rtz(double8 data, size_t offset, __private half *p); -void __ovld vstorea_half16_rtz(double16 data, size_t offset, __private half *p); - -void __ovld vstorea_half_rtp(double data, size_t offset, __private half *p); -void __ovld vstorea_half2_rtp(double2 data, size_t offset, __private half *p); -void __ovld vstorea_half3_rtp(double3 data, size_t offset, __private half *p); -void __ovld vstorea_half4_rtp(double4 data, size_t offset, __private half *p); -void __ovld vstorea_half8_rtp(double8 data, size_t offset, __private half *p); -void __ovld vstorea_half16_rtp(double16 data, size_t offset, __private half *p); - -void __ovld vstorea_half_rtn(double data, size_t offset, __private half *p); -void __ovld vstorea_half2_rtn(double2 data,size_t offset, __private half *p); -void __ovld vstorea_half3_rtn(double3 data,size_t offset, __private half *p); -void __ovld vstorea_half4_rtn(double4 data,size_t offset, __private half *p); -void __ovld vstorea_half8_rtn(double8 data,size_t offset, __private half *p); -void __ovld vstorea_half16_rtn(double16 data,size_t offset, __private half *p); +void __ovld vstorea_half(double data, size_t, __global half *); +void __ovld vstorea_half2(double2 data, size_t, __global half *); +void __ovld vstorea_half3(double3 data, size_t, __global half *); +void __ovld vstorea_half4(double4 data, size_t, __global half *); +void __ovld vstorea_half8(double8 data, size_t, __global half *); +void __ovld vstorea_half16(double16 data, size_t, __global half *); + +void __ovld vstorea_half_rte(double data, size_t, __global half *); +void __ovld vstorea_half2_rte(double2 data, size_t, __global half *); +void __ovld vstorea_half3_rte(double3 data, size_t, __global half *); +void __ovld vstorea_half4_rte(double4 data, size_t, __global half *); +void __ovld vstorea_half8_rte(double8 data, size_t, __global half *); +void __ovld vstorea_half16_rte(double16 data, size_t, __global half *); + +void __ovld vstorea_half_rtz(double data, size_t, __global half *); +void __ovld vstorea_half2_rtz(double2 data, size_t, __global half *); +void __ovld vstorea_half3_rtz(double3 data, size_t, __global half *); +void __ovld vstorea_half4_rtz(double4 data, size_t, __global half *); +void __ovld vstorea_half8_rtz(double8 data, size_t, __global half *); +void __ovld vstorea_half16_rtz(double16 data, size_t, __global half *); + +void __ovld vstorea_half_rtp(double data, size_t, __global half *); +void __ovld vstorea_half2_rtp(double2 data, size_t, __global half *); +void __ovld vstorea_half3_rtp(double3 data, size_t, __global half *); +void __ovld vstorea_half4_rtp(double4 data, size_t, __global half *); +void __ovld vstorea_half8_rtp(double8 data, size_t, __global half *); +void __ovld vstorea_half16_rtp(double16 data, size_t, __global half *); + +void __ovld vstorea_half_rtn(double data, size_t, __global half *); +void __ovld vstorea_half2_rtn(double2 data, size_t, __global half *); +void __ovld vstorea_half3_rtn(double3 data, size_t, __global half *); +void __ovld vstorea_half4_rtn(double4 data, size_t, __global half *); +void __ovld vstorea_half8_rtn(double8 data, size_t, __global half *); +void __ovld vstorea_half16_rtn(double16 data, size_t, __global half *); + +void __ovld vstorea_half(double data, size_t, __local half *); +void __ovld vstorea_half2(double2 data, size_t, __local half *); +void __ovld vstorea_half3(double3 data, size_t, __local half *); +void __ovld vstorea_half4(double4 data, size_t, __local half *); +void __ovld vstorea_half8(double8 data, size_t, __local half *); +void __ovld vstorea_half16(double16 data, size_t, __local half *); + +void __ovld vstorea_half_rte(double data, size_t, __local half *); +void __ovld vstorea_half2_rte(double2 data, size_t, __local half *); +void __ovld vstorea_half3_rte(double3 data, size_t, __local half *); +void __ovld vstorea_half4_rte(double4 data, size_t, __local half *); +void __ovld vstorea_half8_rte(double8 data, size_t, __local half *); +void __ovld vstorea_half16_rte(double16 data, size_t, __local half *); + +void __ovld vstorea_half_rtz(double data, size_t, __local half *); +void __ovld vstorea_half2_rtz(double2 data, size_t, __local half *); +void __ovld vstorea_half3_rtz(double3 data, size_t, __local half *); +void __ovld vstorea_half4_rtz(double4 data, size_t, __local half *); +void __ovld vstorea_half8_rtz(double8 data, size_t, __local half *); +void __ovld vstorea_half16_rtz(double16 data, size_t, __local half *); + +void __ovld vstorea_half_rtp(double data, size_t, __local half *); +void __ovld vstorea_half2_rtp(double2 data, size_t, __local half *); +void __ovld vstorea_half3_rtp(double3 data, size_t, __local half *); +void __ovld vstorea_half4_rtp(double4 data, size_t, __local half *); +void __ovld vstorea_half8_rtp(double8 data, size_t, __local half *); +void __ovld vstorea_half16_rtp(double16 data, size_t, __local half *); + +void __ovld vstorea_half_rtn(double data, size_t, __local half *); +void __ovld vstorea_half2_rtn(double2 data, size_t, __local half *); +void __ovld vstorea_half3_rtn(double3 data, size_t, __local half *); +void __ovld vstorea_half4_rtn(double4 data, size_t, __local half *); +void __ovld vstorea_half8_rtn(double8 data, size_t, __local half *); +void __ovld vstorea_half16_rtn(double16 data, size_t, __local half *); + +void __ovld vstorea_half(double data, size_t, __private half *); +void __ovld vstorea_half2(double2 data, size_t, __private half *); +void __ovld vstorea_half3(double3 data, size_t, __private half *); +void __ovld vstorea_half4(double4 data, size_t, __private half *); +void __ovld vstorea_half8(double8 data, size_t, __private half *); +void __ovld vstorea_half16(double16 data, size_t, __private half *); + +void __ovld vstorea_half_rte(double data, size_t, __private half *); +void __ovld vstorea_half2_rte(double2 data, size_t, __private half *); +void __ovld vstorea_half3_rte(double3 data, size_t, __private half *); +void __ovld vstorea_half4_rte(double4 data, size_t, __private half *); +void __ovld vstorea_half8_rte(double8 data, size_t, __private half *); +void __ovld vstorea_half16_rte(double16 data, size_t, __private half *); + +void __ovld vstorea_half_rtz(double data, size_t, __private half *); +void __ovld vstorea_half2_rtz(double2 data, size_t, __private half *); +void __ovld vstorea_half3_rtz(double3 data, size_t, __private half *); +void __ovld vstorea_half4_rtz(double4 data, size_t, __private half *); +void __ovld vstorea_half8_rtz(double8 data, size_t, __private half *); +void __ovld vstorea_half16_rtz(double16 data, size_t, __private half *); + +void __ovld vstorea_half_rtp(double data, size_t, __private half *); +void __ovld vstorea_half2_rtp(double2 data, size_t, __private half *); +void __ovld vstorea_half3_rtp(double3 data, size_t, __private half *); +void __ovld vstorea_half4_rtp(double4 data, size_t, __private half *); +void __ovld vstorea_half8_rtp(double8 data, size_t, __private half *); +void __ovld vstorea_half16_rtp(double16 data, size_t, __private half *); + +void __ovld vstorea_half_rtn(double data, size_t, __private half *); +void __ovld vstorea_half2_rtn(double2 data,size_t, __private half *); +void __ovld vstorea_half3_rtn(double3 data,size_t, __private half *); +void __ovld vstorea_half4_rtn(double4 data,size_t, __private half *); +void __ovld vstorea_half8_rtn(double8 data,size_t, __private half *); +void __ovld vstorea_half16_rtn(double16 data,size_t, __private half *); #endif //cl_khr_fp64 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_generic_address_space) // OpenCL v1.1 s6.11.8, v1.2 s6.12.8, v2.0 s6.13.8 - Synchronization Functions @@ -13143,11 +13130,11 @@ void __ovld vstorea_half16_rtn(double16 data,size_t offset, __private half *p); * image objects and then want to read the updated data. */ -void __ovld __conv barrier(cl_mem_fence_flags flags); +void __ovld __conv barrier(cl_mem_fence_flags); #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -void __ovld __conv work_group_barrier(cl_mem_fence_flags flags, memory_scope scope); -void __ovld __conv work_group_barrier(cl_mem_fence_flags flags); +void __ovld __conv work_group_barrier(cl_mem_fence_flags, memory_scope); +void __ovld __conv work_group_barrier(cl_mem_fence_flags); #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) // OpenCL v1.1 s6.11.9, v1.2 s6.12.9 - Explicit Memory Fence Functions @@ -13165,7 +13152,7 @@ void __ovld __conv work_group_barrier(cl_mem_fence_flags flags); * CLK_LOCAL_MEM_FENCE * CLK_GLOBAL_MEM_FENCE. */ -void __ovld mem_fence(cl_mem_fence_flags flags); +void __ovld mem_fence(cl_mem_fence_flags); /** * Read memory barrier that orders only @@ -13177,7 +13164,7 @@ void __ovld mem_fence(cl_mem_fence_flags flags); * CLK_LOCAL_MEM_FENCE * CLK_GLOBAL_MEM_FENCE. */ -void __ovld read_mem_fence(cl_mem_fence_flags flags); +void __ovld read_mem_fence(cl_mem_fence_flags); /** * Write memory barrier that orders only @@ -13189,11 +13176,11 @@ void __ovld read_mem_fence(cl_mem_fence_flags flags); * CLK_LOCAL_MEM_FENCE * CLK_GLOBAL_MEM_FENCE. */ -void __ovld write_mem_fence(cl_mem_fence_flags flags); +void __ovld write_mem_fence(cl_mem_fence_flags); // OpenCL v2.0 s6.13.9 - Address Space Qualifier Functions -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#if defined(__opencl_c_generic_address_space) cl_mem_fence_flags __ovld get_fence(const void *ptr); cl_mem_fence_flags __ovld get_fence(void *ptr); @@ -13204,7 +13191,7 @@ cl_mem_fence_flags __ovld get_fence(void *ptr); * where gentype is builtin type or user defined type. */ -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_generic_address_space) // OpenCL v1.1 s6.11.10, v1.2 s6.12.10, v2.0 s6.13.10 - Async Copies from Global to Local Memory, Local to Global Memory, and Prefetch @@ -13235,141 +13222,141 @@ cl_mem_fence_flags __ovld get_fence(void *ptr); * synchronization of source data such as using a * barrier before performing the copy. */ -event_t __ovld async_work_group_copy(__local char *dst, const __global char *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uchar *dst, const __global uchar *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local short *dst, const __global short *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ushort *dst, const __global ushort *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local int *dst, const __global int *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uint *dst, const __global uint *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local long *dst, const __global long *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ulong *dst, const __global ulong *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local float *dst, const __global float *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local char2 *dst, const __global char2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uchar2 *dst, const __global uchar2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local short2 *dst, const __global short2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ushort2 *dst, const __global ushort2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local int2 *dst, const __global int2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uint2 *dst, const __global uint2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local long2 *dst, const __global long2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ulong2 *dst, const __global ulong2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local float2 *dst, const __global float2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local char3 *dst, const __global char3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uchar3 *dst, const __global uchar3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local short3 *dst, const __global short3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ushort3 *dst, const __global ushort3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local int3 *dst, const __global int3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uint3 *dst, const __global uint3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local long3 *dst, const __global long3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ulong3 *dst, const __global ulong3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local float3 *dst, const __global float3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local char4 *dst, const __global char4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uchar4 *dst, const __global uchar4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local short4 *dst, const __global short4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ushort4 *dst, const __global ushort4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local int4 *dst, const __global int4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uint4 *dst, const __global uint4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local long4 *dst, const __global long4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ulong4 *dst, const __global ulong4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local float4 *dst, const __global float4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local char8 *dst, const __global char8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uchar8 *dst, const __global uchar8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local short8 *dst, const __global short8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ushort8 *dst, const __global ushort8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local int8 *dst, const __global int8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uint8 *dst, const __global uint8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local long8 *dst, const __global long8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ulong8 *dst, const __global ulong8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local float8 *dst, const __global float8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local char16 *dst, const __global char16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uchar16 *dst, const __global uchar16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local short16 *dst, const __global short16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ushort16 *dst, const __global ushort16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local int16 *dst, const __global int16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uint16 *dst, const __global uint16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local long16 *dst, const __global long16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ulong16 *dst, const __global ulong16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local float16 *dst, const __global float16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global char *dst, const __local char *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uchar *dst, const __local uchar *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global short *dst, const __local short *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ushort *dst, const __local ushort *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global int *dst, const __local int *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uint *dst, const __local uint *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global long *dst, const __local long *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ulong *dst, const __local ulong *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global float *dst, const __local float *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global char2 *dst, const __local char2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uchar2 *dst, const __local uchar2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global short2 *dst, const __local short2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ushort2 *dst, const __local ushort2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global int2 *dst, const __local int2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uint2 *dst, const __local uint2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global long2 *dst, const __local long2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ulong2 *dst, const __local ulong2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global float2 *dst, const __local float2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global char3 *dst, const __local char3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uchar3 *dst, const __local uchar3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global short3 *dst, const __local short3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ushort3 *dst, const __local ushort3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global int3 *dst, const __local int3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uint3 *dst, const __local uint3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global long3 *dst, const __local long3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ulong3 *dst, const __local ulong3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global float3 *dst, const __local float3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global char4 *dst, const __local char4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uchar4 *dst, const __local uchar4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global short4 *dst, const __local short4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ushort4 *dst, const __local ushort4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global int4 *dst, const __local int4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uint4 *dst, const __local uint4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global long4 *dst, const __local long4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ulong4 *dst, const __local ulong4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global float4 *dst, const __local float4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global char8 *dst, const __local char8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uchar8 *dst, const __local uchar8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global short8 *dst, const __local short8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ushort8 *dst, const __local ushort8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global int8 *dst, const __local int8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uint8 *dst, const __local uint8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global long8 *dst, const __local long8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ulong8 *dst, const __local ulong8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global float8 *dst, const __local float8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global char16 *dst, const __local char16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uchar16 *dst, const __local uchar16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global short16 *dst, const __local short16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ushort16 *dst, const __local ushort16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global int16 *dst, const __local int16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uint16 *dst, const __local uint16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global long16 *dst, const __local long16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ulong16 *dst, const __local ulong16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global float16 *dst, const __local float16 *src, size_t num_elements, event_t event); +event_t __ovld async_work_group_copy(__local char *, const __global char *, size_t, event_t); +event_t __ovld async_work_group_copy(__local uchar *, const __global uchar *, size_t, event_t); +event_t __ovld async_work_group_copy(__local short *, const __global short *, size_t, event_t); +event_t __ovld async_work_group_copy(__local ushort *, const __global ushort *, size_t, event_t); +event_t __ovld async_work_group_copy(__local int *, const __global int *, size_t, event_t); +event_t __ovld async_work_group_copy(__local uint *, const __global uint *, size_t, event_t); +event_t __ovld async_work_group_copy(__local long *, const __global long *, size_t, event_t); +event_t __ovld async_work_group_copy(__local ulong *, const __global ulong *, size_t, event_t); +event_t __ovld async_work_group_copy(__local float *, const __global float *, size_t, event_t); +event_t __ovld async_work_group_copy(__local char2 *, const __global char2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local uchar2 *, const __global uchar2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local short2 *, const __global short2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local ushort2 *, const __global ushort2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local int2 *, const __global int2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local uint2 *, const __global uint2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local long2 *, const __global long2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local ulong2 *, const __global ulong2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local float2 *, const __global float2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local char3 *, const __global char3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local uchar3 *, const __global uchar3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local short3 *, const __global short3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local ushort3 *, const __global ushort3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local int3 *, const __global int3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local uint3 *, const __global uint3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local long3 *, const __global long3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local ulong3 *, const __global ulong3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local float3 *, const __global float3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local char4 *, const __global char4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local uchar4 *, const __global uchar4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local short4 *, const __global short4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local ushort4 *, const __global ushort4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local int4 *, const __global int4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local uint4 *, const __global uint4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local long4 *, const __global long4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local ulong4 *, const __global ulong4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local float4 *, const __global float4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local char8 *, const __global char8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local uchar8 *, const __global uchar8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local short8 *, const __global short8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local ushort8 *, const __global ushort8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local int8 *, const __global int8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local uint8 *, const __global uint8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local long8 *, const __global long8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local ulong8 *, const __global ulong8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local float8 *, const __global float8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local char16 *, const __global char16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local uchar16 *, const __global uchar16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local short16 *, const __global short16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local ushort16 *, const __global ushort16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local int16 *, const __global int16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local uint16 *, const __global uint16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local long16 *, const __global long16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local ulong16 *, const __global ulong16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local float16 *, const __global float16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global char *, const __local char *, size_t, event_t); +event_t __ovld async_work_group_copy(__global uchar *, const __local uchar *, size_t, event_t); +event_t __ovld async_work_group_copy(__global short *, const __local short *, size_t, event_t); +event_t __ovld async_work_group_copy(__global ushort *, const __local ushort *, size_t, event_t); +event_t __ovld async_work_group_copy(__global int *, const __local int *, size_t, event_t); +event_t __ovld async_work_group_copy(__global uint *, const __local uint *, size_t, event_t); +event_t __ovld async_work_group_copy(__global long *, const __local long *, size_t, event_t); +event_t __ovld async_work_group_copy(__global ulong *, const __local ulong *, size_t, event_t); +event_t __ovld async_work_group_copy(__global float *, const __local float *, size_t, event_t); +event_t __ovld async_work_group_copy(__global char2 *, const __local char2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global uchar2 *, const __local uchar2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global short2 *, const __local short2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global ushort2 *, const __local ushort2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global int2 *, const __local int2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global uint2 *, const __local uint2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global long2 *, const __local long2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global ulong2 *, const __local ulong2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global float2 *, const __local float2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global char3 *, const __local char3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global uchar3 *, const __local uchar3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global short3 *, const __local short3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global ushort3 *, const __local ushort3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global int3 *, const __local int3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global uint3 *, const __local uint3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global long3 *, const __local long3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global ulong3 *, const __local ulong3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global float3 *, const __local float3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global char4 *, const __local char4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global uchar4 *, const __local uchar4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global short4 *, const __local short4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global ushort4 *, const __local ushort4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global int4 *, const __local int4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global uint4 *, const __local uint4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global long4 *, const __local long4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global ulong4 *, const __local ulong4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global float4 *, const __local float4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global char8 *, const __local char8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global uchar8 *, const __local uchar8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global short8 *, const __local short8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global ushort8 *, const __local ushort8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global int8 *, const __local int8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global uint8 *, const __local uint8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global long8 *, const __local long8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global ulong8 *, const __local ulong8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global float8 *, const __local float8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global char16 *, const __local char16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global uchar16 *, const __local uchar16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global short16 *, const __local short16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global ushort16 *, const __local ushort16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global int16 *, const __local int16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global uint16 *, const __local uint16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global long16 *, const __local long16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global ulong16 *, const __local ulong16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global float16 *, const __local float16 *, size_t, event_t); #ifdef cl_khr_fp64 -event_t __ovld async_work_group_copy(__local double *dst, const __global double *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local double2 *dst, const __global double2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local double3 *dst, const __global double3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local double4 *dst, const __global double4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local double8 *dst, const __global double8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local double16 *dst, const __global double16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global double *dst, const __local double *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global double2 *dst, const __local double2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global double3 *dst, const __local double3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global double4 *dst, const __local double4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global double8 *dst, const __local double8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global double16 *dst, const __local double16 *src, size_t num_elements, event_t event); +event_t __ovld async_work_group_copy(__local double *, const __global double *, size_t, event_t); +event_t __ovld async_work_group_copy(__local double2 *, const __global double2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local double3 *, const __global double3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local double4 *, const __global double4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local double8 *, const __global double8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local double16 *, const __global double16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global double *, const __local double *, size_t, event_t); +event_t __ovld async_work_group_copy(__global double2 *, const __local double2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global double3 *, const __local double3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global double4 *, const __local double4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global double8 *, const __local double8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global double16 *, const __local double16 *, size_t, event_t); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -event_t __ovld async_work_group_copy(__local half *dst, const __global half *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local half2 *dst, const __global half2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local half3 *dst, const __global half3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local half4 *dst, const __global half4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local half8 *dst, const __global half8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local half16 *dst, const __global half16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global half *dst, const __local half *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global half2 *dst, const __local half2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global half3 *dst, const __local half3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global half4 *dst, const __local half4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global half8 *dst, const __local half8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global half16 *dst, const __local half16 *src, size_t num_elements, event_t event); +event_t __ovld async_work_group_copy(__local half *, const __global half *, size_t, event_t); +event_t __ovld async_work_group_copy(__local half2 *, const __global half2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local half3 *, const __global half3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local half4 *, const __global half4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local half8 *, const __global half8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local half16 *, const __global half16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global half *, const __local half *, size_t, event_t); +event_t __ovld async_work_group_copy(__global half2 *, const __local half2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global half3 *, const __local half3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global half4 *, const __local half4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global half8 *, const __local half8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global half16 *, const __local half16 *, size_t, event_t); #endif //cl_khr_fp16 /** @@ -13398,141 +13385,141 @@ event_t __ovld async_work_group_copy(__global half16 *dst, const __local half16 * synchronization of source data such as using a * barrier before performing the copy. */ -event_t __ovld async_work_group_strided_copy(__local char *dst, const __global char *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uchar *dst, const __global uchar *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local short *dst, const __global short *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ushort *dst, const __global ushort *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local int *dst, const __global int *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uint *dst, const __global uint *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local long *dst, const __global long *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ulong *dst, const __global ulong *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local float *dst, const __global float *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local char2 *dst, const __global char2 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uchar2 *dst, const __global uchar2 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local short2 *dst, const __global short2 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ushort2 *dst, const __global ushort2 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local int2 *dst, const __global int2 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uint2 *dst, const __global uint2 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local long2 *dst, const __global long2 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ulong2 *dst, const __global ulong2 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local float2 *dst, const __global float2 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local char3 *dst, const __global char3 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uchar3 *dst, const __global uchar3 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local short3 *dst, const __global short3 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ushort3 *dst, const __global ushort3 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local int3 *dst, const __global int3 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uint3 *dst, const __global uint3 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local long3 *dst, const __global long3 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ulong3 *dst, const __global ulong3 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local float3 *dst, const __global float3 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local char4 *dst, const __global char4 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uchar4 *dst, const __global uchar4 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local short4 *dst, const __global short4 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ushort4 *dst, const __global ushort4 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local int4 *dst, const __global int4 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uint4 *dst, const __global uint4 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local long4 *dst, const __global long4 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ulong4 *dst, const __global ulong4 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local float4 *dst, const __global float4 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local char8 *dst, const __global char8 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uchar8 *dst, const __global uchar8 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local short8 *dst, const __global short8 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ushort8 *dst, const __global ushort8 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local int8 *dst, const __global int8 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uint8 *dst, const __global uint8 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local long8 *dst, const __global long8 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ulong8 *dst, const __global ulong8 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local float8 *dst, const __global float8 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local char16 *dst, const __global char16 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uchar16 *dst, const __global uchar16 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local short16 *dst, const __global short16 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ushort16 *dst, const __global ushort16 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local int16 *dst, const __global int16 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uint16 *dst, const __global uint16 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local long16 *dst, const __global long16 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ulong16 *dst, const __global ulong16 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local float16 *dst, const __global float16 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global char *dst, const __local char *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uchar *dst, const __local uchar *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global short *dst, const __local short *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ushort *dst, const __local ushort *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global int *dst, const __local int *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uint *dst, const __local uint *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global long *dst, const __local long *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ulong *dst, const __local ulong *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global float *dst, const __local float *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global char2 *dst, const __local char2 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uchar2 *dst, const __local uchar2 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global short2 *dst, const __local short2 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ushort2 *dst, const __local ushort2 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global int2 *dst, const __local int2 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uint2 *dst, const __local uint2 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global long2 *dst, const __local long2 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ulong2 *dst, const __local ulong2 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global float2 *dst, const __local float2 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global char3 *dst, const __local char3 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uchar3 *dst, const __local uchar3 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global short3 *dst, const __local short3 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ushort3 *dst, const __local ushort3 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global int3 *dst, const __local int3 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uint3 *dst, const __local uint3 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global long3 *dst, const __local long3 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ulong3 *dst, const __local ulong3 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global float3 *dst, const __local float3 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global char4 *dst, const __local char4 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uchar4 *dst, const __local uchar4 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global short4 *dst, const __local short4 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ushort4 *dst, const __local ushort4 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global int4 *dst, const __local int4 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uint4 *dst, const __local uint4 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global long4 *dst, const __local long4 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ulong4 *dst, const __local ulong4 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global float4 *dst, const __local float4 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global char8 *dst, const __local char8 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uchar8 *dst, const __local uchar8 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global short8 *dst, const __local short8 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ushort8 *dst, const __local ushort8 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global int8 *dst, const __local int8 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uint8 *dst, const __local uint8 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global long8 *dst, const __local long8 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ulong8 *dst, const __local ulong8 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global float8 *dst, const __local float8 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global char16 *dst, const __local char16 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uchar16 *dst, const __local uchar16 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global short16 *dst, const __local short16 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ushort16 *dst, const __local ushort16 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global int16 *dst, const __local int16 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uint16 *dst, const __local uint16 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global long16 *dst, const __local long16 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ulong16 *dst, const __local ulong16 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global float16 *dst, const __local float16 *src, size_t num_elements, size_t dst_stride, event_t event); +event_t __ovld async_work_group_strided_copy(__local char *, const __global char *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local uchar *, const __global uchar *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local short *, const __global short *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local ushort *, const __global ushort *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local int *, const __global int *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local uint *, const __global uint *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local long *, const __global long *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local ulong *, const __global ulong *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local float *, const __global float *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local char2 *, const __global char2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local uchar2 *, const __global uchar2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local short2 *, const __global short2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local ushort2 *, const __global ushort2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local int2 *, const __global int2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local uint2 *, const __global uint2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local long2 *, const __global long2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local ulong2 *, const __global ulong2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local float2 *, const __global float2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local char3 *, const __global char3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local uchar3 *, const __global uchar3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local short3 *, const __global short3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local ushort3 *, const __global ushort3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local int3 *, const __global int3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local uint3 *, const __global uint3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local long3 *, const __global long3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local ulong3 *, const __global ulong3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local float3 *, const __global float3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local char4 *, const __global char4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local uchar4 *, const __global uchar4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local short4 *, const __global short4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local ushort4 *, const __global ushort4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local int4 *, const __global int4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local uint4 *, const __global uint4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local long4 *, const __global long4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local ulong4 *, const __global ulong4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local float4 *, const __global float4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local char8 *, const __global char8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local uchar8 *, const __global uchar8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local short8 *, const __global short8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local ushort8 *, const __global ushort8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local int8 *, const __global int8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local uint8 *, const __global uint8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local long8 *, const __global long8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local ulong8 *, const __global ulong8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local float8 *, const __global float8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local char16 *, const __global char16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local uchar16 *, const __global uchar16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local short16 *, const __global short16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local ushort16 *, const __global ushort16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local int16 *, const __global int16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local uint16 *, const __global uint16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local long16 *, const __global long16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local ulong16 *, const __global ulong16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local float16 *, const __global float16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global char *, const __local char *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global uchar *, const __local uchar *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global short *, const __local short *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global ushort *, const __local ushort *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global int *, const __local int *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global uint *, const __local uint *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global long *, const __local long *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global ulong *, const __local ulong *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global float *, const __local float *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global char2 *, const __local char2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global uchar2 *, const __local uchar2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global short2 *, const __local short2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global ushort2 *, const __local ushort2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global int2 *, const __local int2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global uint2 *, const __local uint2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global long2 *, const __local long2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global ulong2 *, const __local ulong2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global float2 *, const __local float2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global char3 *, const __local char3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global uchar3 *, const __local uchar3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global short3 *, const __local short3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global ushort3 *, const __local ushort3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global int3 *, const __local int3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global uint3 *, const __local uint3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global long3 *, const __local long3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global ulong3 *, const __local ulong3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global float3 *, const __local float3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global char4 *, const __local char4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global uchar4 *, const __local uchar4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global short4 *, const __local short4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global ushort4 *, const __local ushort4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global int4 *, const __local int4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global uint4 *, const __local uint4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global long4 *, const __local long4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global ulong4 *, const __local ulong4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global float4 *, const __local float4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global char8 *, const __local char8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global uchar8 *, const __local uchar8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global short8 *, const __local short8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global ushort8 *, const __local ushort8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global int8 *, const __local int8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global uint8 *, const __local uint8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global long8 *, const __local long8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global ulong8 *, const __local ulong8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global float8 *, const __local float8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global char16 *, const __local char16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global uchar16 *, const __local uchar16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global short16 *, const __local short16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global ushort16 *, const __local ushort16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global int16 *, const __local int16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global uint16 *, const __local uint16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global long16 *, const __local long16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global ulong16 *, const __local ulong16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global float16 *, const __local float16 *, size_t, size_t, event_t); #ifdef cl_khr_fp64 -event_t __ovld async_work_group_strided_copy(__local double *dst, const __global double *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local double2 *dst, const __global double2 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local double3 *dst, const __global double3 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local double4 *dst, const __global double4 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local double8 *dst, const __global double8 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local double16 *dst, const __global double16 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global double *dst, const __local double *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global double2 *dst, const __local double2 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global double3 *dst, const __local double3 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global double4 *dst, const __local double4 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global double8 *dst, const __local double8 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global double16 *dst, const __local double16 *src, size_t num_elements, size_t dst_stride, event_t event); +event_t __ovld async_work_group_strided_copy(__local double *, const __global double *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local double2 *, const __global double2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local double3 *, const __global double3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local double4 *, const __global double4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local double8 *, const __global double8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local double16 *, const __global double16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global double *, const __local double *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global double2 *, const __local double2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global double3 *, const __local double3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global double4 *, const __local double4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global double8 *, const __local double8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global double16 *, const __local double16 *, size_t, size_t, event_t); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -event_t __ovld async_work_group_strided_copy(__local half *dst, const __global half *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local half2 *dst, const __global half2 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local half3 *dst, const __global half3 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local half4 *dst, const __global half4 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local half8 *dst, const __global half8 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local half16 *dst, const __global half16 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global half *dst, const __local half *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global half2 *dst, const __local half2 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global half3 *dst, const __local half3 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global half4 *dst, const __local half4 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global half8 *dst, const __local half8 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global half16 *dst, const __local half16 *src, size_t num_elements, size_t dst_stride, event_t event); +event_t __ovld async_work_group_strided_copy(__local half *, const __global half *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local half2 *, const __global half2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local half3 *, const __global half3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local half4 *, const __global half4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local half8 *, const __global half8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local half16 *, const __global half16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global half *, const __local half *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global half2 *, const __local half2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global half3 *, const __local half3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global half4 *, const __local half4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global half8 *, const __local half8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global half16 *, const __local half16 *, size_t, size_t, event_t); #endif //cl_khr_fp16 /** @@ -13546,7 +13533,7 @@ event_t __ovld async_work_group_strided_copy(__global half16 *dst, const __local * the same num_events and event objects specified * in event_list; otherwise the results are undefined. */ -void __ovld wait_group_events(int num_events, event_t *event_list); +void __ovld wait_group_events(int, event_t *); /** * Prefetch num_elements * sizeof(gentype) @@ -13555,75 +13542,75 @@ void __ovld wait_group_events(int num_events, event_t *event_list); * and does not affect the functional * behavior of the kernel. */ -void __ovld prefetch(const __global char *p, size_t num_elements); -void __ovld prefetch(const __global uchar *p, size_t num_elements); -void __ovld prefetch(const __global short *p, size_t num_elements); -void __ovld prefetch(const __global ushort *p, size_t num_elements); -void __ovld prefetch(const __global int *p, size_t num_elements); -void __ovld prefetch(const __global uint *p, size_t num_elements); -void __ovld prefetch(const __global long *p, size_t num_elements); -void __ovld prefetch(const __global ulong *p, size_t num_elements); -void __ovld prefetch(const __global float *p, size_t num_elements); -void __ovld prefetch(const __global char2 *p, size_t num_elements); -void __ovld prefetch(const __global uchar2 *p, size_t num_elements); -void __ovld prefetch(const __global short2 *p, size_t num_elements); -void __ovld prefetch(const __global ushort2 *p, size_t num_elements); -void __ovld prefetch(const __global int2 *p, size_t num_elements); -void __ovld prefetch(const __global uint2 *p, size_t num_elements); -void __ovld prefetch(const __global long2 *p, size_t num_elements); -void __ovld prefetch(const __global ulong2 *p, size_t num_elements); -void __ovld prefetch(const __global float2 *p, size_t num_elements); -void __ovld prefetch(const __global char3 *p, size_t num_elements); -void __ovld prefetch(const __global uchar3 *p, size_t num_elements); -void __ovld prefetch(const __global short3 *p, size_t num_elements); -void __ovld prefetch(const __global ushort3 *p, size_t num_elements); -void __ovld prefetch(const __global int3 *p, size_t num_elements); -void __ovld prefetch(const __global uint3 *p, size_t num_elements); -void __ovld prefetch(const __global long3 *p, size_t num_elements); -void __ovld prefetch(const __global ulong3 *p, size_t num_elements); -void __ovld prefetch(const __global float3 *p, size_t num_elements); -void __ovld prefetch(const __global char4 *p, size_t num_elements); -void __ovld prefetch(const __global uchar4 *p, size_t num_elements); -void __ovld prefetch(const __global short4 *p, size_t num_elements); -void __ovld prefetch(const __global ushort4 *p, size_t num_elements); -void __ovld prefetch(const __global int4 *p, size_t num_elements); -void __ovld prefetch(const __global uint4 *p, size_t num_elements); -void __ovld prefetch(const __global long4 *p, size_t num_elements); -void __ovld prefetch(const __global ulong4 *p, size_t num_elements); -void __ovld prefetch(const __global float4 *p, size_t num_elements); -void __ovld prefetch(const __global char8 *p, size_t num_elements); -void __ovld prefetch(const __global uchar8 *p, size_t num_elements); -void __ovld prefetch(const __global short8 *p, size_t num_elements); -void __ovld prefetch(const __global ushort8 *p, size_t num_elements); -void __ovld prefetch(const __global int8 *p, size_t num_elements); -void __ovld prefetch(const __global uint8 *p, size_t num_elements); -void __ovld prefetch(const __global long8 *p, size_t num_elements); -void __ovld prefetch(const __global ulong8 *p, size_t num_elements); -void __ovld prefetch(const __global float8 *p, size_t num_elements); -void __ovld prefetch(const __global char16 *p, size_t num_elements); -void __ovld prefetch(const __global uchar16 *p, size_t num_elements); -void __ovld prefetch(const __global short16 *p, size_t num_elements); -void __ovld prefetch(const __global ushort16 *p, size_t num_elements); -void __ovld prefetch(const __global int16 *p, size_t num_elements); -void __ovld prefetch(const __global uint16 *p, size_t num_elements); -void __ovld prefetch(const __global long16 *p, size_t num_elements); -void __ovld prefetch(const __global ulong16 *p, size_t num_elements); -void __ovld prefetch(const __global float16 *p, size_t num_elements); +void __ovld prefetch(const __global char *, size_t); +void __ovld prefetch(const __global uchar *, size_t); +void __ovld prefetch(const __global short *, size_t); +void __ovld prefetch(const __global ushort *, size_t); +void __ovld prefetch(const __global int *, size_t); +void __ovld prefetch(const __global uint *, size_t); +void __ovld prefetch(const __global long *, size_t); +void __ovld prefetch(const __global ulong *, size_t); +void __ovld prefetch(const __global float *, size_t); +void __ovld prefetch(const __global char2 *, size_t); +void __ovld prefetch(const __global uchar2 *, size_t); +void __ovld prefetch(const __global short2 *, size_t); +void __ovld prefetch(const __global ushort2 *, size_t); +void __ovld prefetch(const __global int2 *, size_t); +void __ovld prefetch(const __global uint2 *, size_t); +void __ovld prefetch(const __global long2 *, size_t); +void __ovld prefetch(const __global ulong2 *, size_t); +void __ovld prefetch(const __global float2 *, size_t); +void __ovld prefetch(const __global char3 *, size_t); +void __ovld prefetch(const __global uchar3 *, size_t); +void __ovld prefetch(const __global short3 *, size_t); +void __ovld prefetch(const __global ushort3 *, size_t); +void __ovld prefetch(const __global int3 *, size_t); +void __ovld prefetch(const __global uint3 *, size_t); +void __ovld prefetch(const __global long3 *, size_t); +void __ovld prefetch(const __global ulong3 *, size_t); +void __ovld prefetch(const __global float3 *, size_t); +void __ovld prefetch(const __global char4 *, size_t); +void __ovld prefetch(const __global uchar4 *, size_t); +void __ovld prefetch(const __global short4 *, size_t); +void __ovld prefetch(const __global ushort4 *, size_t); +void __ovld prefetch(const __global int4 *, size_t); +void __ovld prefetch(const __global uint4 *, size_t); +void __ovld prefetch(const __global long4 *, size_t); +void __ovld prefetch(const __global ulong4 *, size_t); +void __ovld prefetch(const __global float4 *, size_t); +void __ovld prefetch(const __global char8 *, size_t); +void __ovld prefetch(const __global uchar8 *, size_t); +void __ovld prefetch(const __global short8 *, size_t); +void __ovld prefetch(const __global ushort8 *, size_t); +void __ovld prefetch(const __global int8 *, size_t); +void __ovld prefetch(const __global uint8 *, size_t); +void __ovld prefetch(const __global long8 *, size_t); +void __ovld prefetch(const __global ulong8 *, size_t); +void __ovld prefetch(const __global float8 *, size_t); +void __ovld prefetch(const __global char16 *, size_t); +void __ovld prefetch(const __global uchar16 *, size_t); +void __ovld prefetch(const __global short16 *, size_t); +void __ovld prefetch(const __global ushort16 *, size_t); +void __ovld prefetch(const __global int16 *, size_t); +void __ovld prefetch(const __global uint16 *, size_t); +void __ovld prefetch(const __global long16 *, size_t); +void __ovld prefetch(const __global ulong16 *, size_t); +void __ovld prefetch(const __global float16 *, size_t); #ifdef cl_khr_fp64 -void __ovld prefetch(const __global double *p, size_t num_elements); -void __ovld prefetch(const __global double2 *p, size_t num_elements); -void __ovld prefetch(const __global double3 *p, size_t num_elements); -void __ovld prefetch(const __global double4 *p, size_t num_elements); -void __ovld prefetch(const __global double8 *p, size_t num_elements); -void __ovld prefetch(const __global double16 *p, size_t num_elements); +void __ovld prefetch(const __global double *, size_t); +void __ovld prefetch(const __global double2 *, size_t); +void __ovld prefetch(const __global double3 *, size_t); +void __ovld prefetch(const __global double4 *, size_t); +void __ovld prefetch(const __global double8 *, size_t); +void __ovld prefetch(const __global double16 *, size_t); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -void __ovld prefetch(const __global half *p, size_t num_elements); -void __ovld prefetch(const __global half2 *p, size_t num_elements); -void __ovld prefetch(const __global half3 *p, size_t num_elements); -void __ovld prefetch(const __global half4 *p, size_t num_elements); -void __ovld prefetch(const __global half8 *p, size_t num_elements); -void __ovld prefetch(const __global half16 *p, size_t num_elements); +void __ovld prefetch(const __global half *, size_t); +void __ovld prefetch(const __global half2 *, size_t); +void __ovld prefetch(const __global half3 *, size_t); +void __ovld prefetch(const __global half4 *, size_t); +void __ovld prefetch(const __global half8 *, size_t); +void __ovld prefetch(const __global half16 *, size_t); #endif // cl_khr_fp16 // OpenCL v1.1 s6.11.1, v1.2 s6.12.11 - Atomic Functions @@ -13638,29 +13625,29 @@ void __ovld prefetch(const __global half16 *p, size_t num_elements); * (old + val) and store result at location * pointed by p. The function returns old. */ -int __ovld atomic_add(volatile __global int *p, int val); -unsigned int __ovld atomic_add(volatile __global unsigned int *p, unsigned int val); -int __ovld atomic_add(volatile __local int *p, int val); -unsigned int __ovld atomic_add(volatile __local unsigned int *p, unsigned int val); +int __ovld atomic_add(volatile __global int *, int); +uint __ovld atomic_add(volatile __global uint *, uint); +int __ovld atomic_add(volatile __local int *, int); +uint __ovld atomic_add(volatile __local uint *, uint); #ifdef __OPENCL_CPP_VERSION__ -int __ovld atomic_add(volatile int *p, int val); -unsigned int __ovld atomic_add(volatile unsigned int *p, unsigned int val); +int __ovld atomic_add(volatile int *, int); +uint __ovld atomic_add(volatile uint *, uint); #endif #if defined(cl_khr_global_int32_base_atomics) -int __ovld atom_add(volatile __global int *p, int val); -unsigned int __ovld atom_add(volatile __global unsigned int *p, unsigned int val); +int __ovld atom_add(volatile __global int *, int); +uint __ovld atom_add(volatile __global uint *, uint); #endif #if defined(cl_khr_local_int32_base_atomics) -int __ovld atom_add(volatile __local int *p, int val); -unsigned int __ovld atom_add(volatile __local unsigned int *p, unsigned int val); +int __ovld atom_add(volatile __local int *, int); +uint __ovld atom_add(volatile __local uint *, uint); #endif #if defined(cl_khr_int64_base_atomics) -long __ovld atom_add(volatile __global long *p, long val); -unsigned long __ovld atom_add(volatile __global unsigned long *p, unsigned long val); -long __ovld atom_add(volatile __local long *p, long val); -unsigned long __ovld atom_add(volatile __local unsigned long *p, unsigned long val); +long __ovld atom_add(volatile __global long *, long); +ulong __ovld atom_add(volatile __global ulong *, ulong); +long __ovld atom_add(volatile __local long *, long); +ulong __ovld atom_add(volatile __local ulong *, ulong); #endif /** @@ -13668,29 +13655,29 @@ unsigned long __ovld atom_add(volatile __local unsigned long *p, unsigned long v * Compute (old - val) and store result at location pointed by p. The function * returns old. */ -int __ovld atomic_sub(volatile __global int *p, int val); -unsigned int __ovld atomic_sub(volatile __global unsigned int *p, unsigned int val); -int __ovld atomic_sub(volatile __local int *p, int val); -unsigned int __ovld atomic_sub(volatile __local unsigned int *p, unsigned int val); +int __ovld atomic_sub(volatile __global int *, int); +uint __ovld atomic_sub(volatile __global uint *, uint); +int __ovld atomic_sub(volatile __local int *, int); +uint __ovld atomic_sub(volatile __local uint *, uint); #ifdef __OPENCL_CPP_VERSION__ -int __ovld atomic_sub(volatile int *p, int val); -unsigned int __ovld atomic_sub(volatile unsigned int *p, unsigned int val); +int __ovld atomic_sub(volatile int *, int); +uint __ovld atomic_sub(volatile uint *, uint); #endif #if defined(cl_khr_global_int32_base_atomics) -int __ovld atom_sub(volatile __global int *p, int val); -unsigned int __ovld atom_sub(volatile __global unsigned int *p, unsigned int val); +int __ovld atom_sub(volatile __global int *, int); +uint __ovld atom_sub(volatile __global uint *, uint); #endif #if defined(cl_khr_local_int32_base_atomics) -int __ovld atom_sub(volatile __local int *p, int val); -unsigned int __ovld atom_sub(volatile __local unsigned int *p, unsigned int val); +int __ovld atom_sub(volatile __local int *, int); +uint __ovld atom_sub(volatile __local uint *, uint); #endif #if defined(cl_khr_int64_base_atomics) -long __ovld atom_sub(volatile __global long *p, long val); -unsigned long __ovld atom_sub(volatile __global unsigned long *p, unsigned long val); -long __ovld atom_sub(volatile __local long *p, long val); -unsigned long __ovld atom_sub(volatile __local unsigned long *p, unsigned long val); +long __ovld atom_sub(volatile __global long *, long); +ulong __ovld atom_sub(volatile __global ulong *, ulong); +long __ovld atom_sub(volatile __local long *, long); +ulong __ovld atom_sub(volatile __local ulong *, ulong); #endif /** @@ -13698,32 +13685,32 @@ unsigned long __ovld atom_sub(volatile __local unsigned long *p, unsigned long v * with new value given by val. Returns old * value. */ -int __ovld atomic_xchg(volatile __global int *p, int val); -unsigned int __ovld atomic_xchg(volatile __global unsigned int *p, unsigned int val); -int __ovld atomic_xchg(volatile __local int *p, int val); -unsigned int __ovld atomic_xchg(volatile __local unsigned int *p, unsigned int val); -float __ovld atomic_xchg(volatile __global float *p, float val); -float __ovld atomic_xchg(volatile __local float *p, float val); +int __ovld atomic_xchg(volatile __global int *, int); +uint __ovld atomic_xchg(volatile __global uint *, uint); +int __ovld atomic_xchg(volatile __local int *, int); +uint __ovld atomic_xchg(volatile __local uint *, uint); +float __ovld atomic_xchg(volatile __global float *, float); +float __ovld atomic_xchg(volatile __local float *, float); #ifdef __OPENCL_CPP_VERSION__ -int __ovld atomic_xchg(volatile int *p, int val); -unsigned int __ovld atomic_xchg(volatile unsigned int *p, unsigned int val); -float __ovld atomic_xchg(volatile float *p, float val); +int __ovld atomic_xchg(volatile int *, int); +uint __ovld atomic_xchg(volatile uint *, uint); +float __ovld atomic_xchg(volatile float *, float); #endif #if defined(cl_khr_global_int32_base_atomics) -int __ovld atom_xchg(volatile __global int *p, int val); -unsigned int __ovld atom_xchg(volatile __global unsigned int *p, unsigned int val); +int __ovld atom_xchg(volatile __global int *, int); +uint __ovld atom_xchg(volatile __global uint *, uint); #endif #if defined(cl_khr_local_int32_base_atomics) -int __ovld atom_xchg(volatile __local int *p, int val); -unsigned int __ovld atom_xchg(volatile __local unsigned int *p, unsigned int val); +int __ovld atom_xchg(volatile __local int *, int); +uint __ovld atom_xchg(volatile __local uint *, uint); #endif #if defined(cl_khr_int64_base_atomics) -long __ovld atom_xchg(volatile __global long *p, long val); -long __ovld atom_xchg(volatile __local long *p, long val); -unsigned long __ovld atom_xchg(volatile __global unsigned long *p, unsigned long val); -unsigned long __ovld atom_xchg(volatile __local unsigned long *p, unsigned long val); +long __ovld atom_xchg(volatile __global long *, long); +long __ovld atom_xchg(volatile __local long *, long); +ulong __ovld atom_xchg(volatile __global ulong *, ulong); +ulong __ovld atom_xchg(volatile __local ulong *, ulong); #endif /** @@ -13732,29 +13719,29 @@ unsigned long __ovld atom_xchg(volatile __local unsigned long *p, unsigned long * (old + 1) and store result at location * pointed by p. The function returns old. */ -int __ovld atomic_inc(volatile __global int *p); -unsigned int __ovld atomic_inc(volatile __global unsigned int *p); -int __ovld atomic_inc(volatile __local int *p); -unsigned int __ovld atomic_inc(volatile __local unsigned int *p); +int __ovld atomic_inc(volatile __global int *); +uint __ovld atomic_inc(volatile __global uint *); +int __ovld atomic_inc(volatile __local int *); +uint __ovld atomic_inc(volatile __local uint *); #ifdef __OPENCL_CPP_VERSION__ -int __ovld atomic_inc(volatile int *p); -unsigned int __ovld atomic_inc(volatile unsigned int *p); +int __ovld atomic_inc(volatile int *); +uint __ovld atomic_inc(volatile uint *); #endif #if defined(cl_khr_global_int32_base_atomics) -int __ovld atom_inc(volatile __global int *p); -unsigned int __ovld atom_inc(volatile __global unsigned int *p); +int __ovld atom_inc(volatile __global int *); +uint __ovld atom_inc(volatile __global uint *); #endif #if defined(cl_khr_local_int32_base_atomics) -int __ovld atom_inc(volatile __local int *p); -unsigned int __ovld atom_inc(volatile __local unsigned int *p); +int __ovld atom_inc(volatile __local int *); +uint __ovld atom_inc(volatile __local uint *); #endif #if defined(cl_khr_int64_base_atomics) -long __ovld atom_inc(volatile __global long *p); -unsigned long __ovld atom_inc(volatile __global unsigned long *p); -long __ovld atom_inc(volatile __local long *p); -unsigned long __ovld atom_inc(volatile __local unsigned long *p); +long __ovld atom_inc(volatile __global long *); +ulong __ovld atom_inc(volatile __global ulong *); +long __ovld atom_inc(volatile __local long *); +ulong __ovld atom_inc(volatile __local ulong *); #endif /** @@ -13763,29 +13750,29 @@ unsigned long __ovld atom_inc(volatile __local unsigned long *p); * (old - 1) and store result at location * pointed by p. The function returns old. */ -int __ovld atomic_dec(volatile __global int *p); -unsigned int __ovld atomic_dec(volatile __global unsigned int *p); -int __ovld atomic_dec(volatile __local int *p); -unsigned int __ovld atomic_dec(volatile __local unsigned int *p); +int __ovld atomic_dec(volatile __global int *); +uint __ovld atomic_dec(volatile __global uint *); +int __ovld atomic_dec(volatile __local int *); +uint __ovld atomic_dec(volatile __local uint *); #ifdef __OPENCL_CPP_VERSION__ -int __ovld atomic_dec(volatile int *p); -unsigned int __ovld atomic_dec(volatile unsigned int *p); +int __ovld atomic_dec(volatile int *); +uint __ovld atomic_dec(volatile uint *); #endif #if defined(cl_khr_global_int32_base_atomics) -int __ovld atom_dec(volatile __global int *p); -unsigned int __ovld atom_dec(volatile __global unsigned int *p); +int __ovld atom_dec(volatile __global int *); +uint __ovld atom_dec(volatile __global uint *); #endif #if defined(cl_khr_local_int32_base_atomics) -int __ovld atom_dec(volatile __local int *p); -unsigned int __ovld atom_dec(volatile __local unsigned int *p); +int __ovld atom_dec(volatile __local int *); +uint __ovld atom_dec(volatile __local uint *); #endif #if defined(cl_khr_int64_base_atomics) -long __ovld atom_dec(volatile __global long *p); -unsigned long __ovld atom_dec(volatile __global unsigned long *p); -long __ovld atom_dec(volatile __local long *p); -unsigned long __ovld atom_dec(volatile __local unsigned long *p); +long __ovld atom_dec(volatile __global long *); +ulong __ovld atom_dec(volatile __global ulong *); +long __ovld atom_dec(volatile __local long *); +ulong __ovld atom_dec(volatile __local ulong *); #endif /** @@ -13795,29 +13782,29 @@ unsigned long __ovld atom_dec(volatile __local unsigned long *p); * location pointed by p. The function * returns old. */ -int __ovld atomic_cmpxchg(volatile __global int *p, int cmp, int val); -unsigned int __ovld atomic_cmpxchg(volatile __global unsigned int *p, unsigned int cmp, unsigned int val); -int __ovld atomic_cmpxchg(volatile __local int *p, int cmp, int val); -unsigned int __ovld atomic_cmpxchg(volatile __local unsigned int *p, unsigned int cmp, unsigned int val); +int __ovld atomic_cmpxchg(volatile __global int *, int, int); +uint __ovld atomic_cmpxchg(volatile __global uint *, uint, uint); +int __ovld atomic_cmpxchg(volatile __local int *, int, int); +uint __ovld atomic_cmpxchg(volatile __local uint *, uint, uint); #ifdef __OPENCL_CPP_VERSION__ -int __ovld atomic_cmpxchg(volatile int *p, int cmp, int val); -unsigned int __ovld atomic_cmpxchg(volatile unsigned int *p, unsigned int cmp, unsigned int val); +int __ovld atomic_cmpxchg(volatile int *, int, int); +uint __ovld atomic_cmpxchg(volatile uint *, uint, uint); #endif #if defined(cl_khr_global_int32_base_atomics) -int __ovld atom_cmpxchg(volatile __global int *p, int cmp, int val); -unsigned int __ovld atom_cmpxchg(volatile __global unsigned int *p, unsigned int cmp, unsigned int val); +int __ovld atom_cmpxchg(volatile __global int *, int, int); +uint __ovld atom_cmpxchg(volatile __global uint *, uint, uint); #endif #if defined(cl_khr_local_int32_base_atomics) -int __ovld atom_cmpxchg(volatile __local int *p, int cmp, int val); -unsigned int __ovld atom_cmpxchg(volatile __local unsigned int *p, unsigned int cmp, unsigned int val); +int __ovld atom_cmpxchg(volatile __local int *, int, int); +uint __ovld atom_cmpxchg(volatile __local uint *, uint, uint); #endif #if defined(cl_khr_int64_base_atomics) -long __ovld atom_cmpxchg(volatile __global long *p, long cmp, long val); -unsigned long __ovld atom_cmpxchg(volatile __global unsigned long *p, unsigned long cmp, unsigned long val); -long __ovld atom_cmpxchg(volatile __local long *p, long cmp, long val); -unsigned long __ovld atom_cmpxchg(volatile __local unsigned long *p, unsigned long cmp, unsigned long val); +long __ovld atom_cmpxchg(volatile __global long *, long, long); +ulong __ovld atom_cmpxchg(volatile __global ulong *, ulong, ulong); +long __ovld atom_cmpxchg(volatile __local long *, long, long); +ulong __ovld atom_cmpxchg(volatile __local ulong *, ulong, ulong); #endif /** @@ -13827,29 +13814,29 @@ unsigned long __ovld atom_cmpxchg(volatile __local unsigned long *p, unsigned lo * location pointed by p. The function * returns old. */ -int __ovld atomic_min(volatile __global int *p, int val); -unsigned int __ovld atomic_min(volatile __global unsigned int *p, unsigned int val); -int __ovld atomic_min(volatile __local int *p, int val); -unsigned int __ovld atomic_min(volatile __local unsigned int *p, unsigned int val); +int __ovld atomic_min(volatile __global int *, int); +uint __ovld atomic_min(volatile __global uint *, uint); +int __ovld atomic_min(volatile __local int *, int); +uint __ovld atomic_min(volatile __local uint *, uint); #ifdef __OPENCL_CPP_VERSION__ -int __ovld atomic_min(volatile int *p, int val); -unsigned int __ovld atomic_min(volatile unsigned int *p, unsigned int val); +int __ovld atomic_min(volatile int *, int); +uint __ovld atomic_min(volatile uint *, uint); #endif #if defined(cl_khr_global_int32_extended_atomics) -int __ovld atom_min(volatile __global int *p, int val); -unsigned int __ovld atom_min(volatile __global unsigned int *p, unsigned int val); +int __ovld atom_min(volatile __global int *, int); +uint __ovld atom_min(volatile __global uint *, uint); #endif #if defined(cl_khr_local_int32_extended_atomics) -int __ovld atom_min(volatile __local int *p, int val); -unsigned int __ovld atom_min(volatile __local unsigned int *p, unsigned int val); +int __ovld atom_min(volatile __local int *, int); +uint __ovld atom_min(volatile __local uint *, uint); #endif #if defined(cl_khr_int64_extended_atomics) -long __ovld atom_min(volatile __global long *p, long val); -unsigned long __ovld atom_min(volatile __global unsigned long *p, unsigned long val); -long __ovld atom_min(volatile __local long *p, long val); -unsigned long __ovld atom_min(volatile __local unsigned long *p, unsigned long val); +long __ovld atom_min(volatile __global long *, long); +ulong __ovld atom_min(volatile __global ulong *, ulong); +long __ovld atom_min(volatile __local long *, long); +ulong __ovld atom_min(volatile __local ulong *, ulong); #endif /** @@ -13859,29 +13846,29 @@ unsigned long __ovld atom_min(volatile __local unsigned long *p, unsigned long v * location pointed by p. The function * returns old. */ -int __ovld atomic_max(volatile __global int *p, int val); -unsigned int __ovld atomic_max(volatile __global unsigned int *p, unsigned int val); -int __ovld atomic_max(volatile __local int *p, int val); -unsigned int __ovld atomic_max(volatile __local unsigned int *p, unsigned int val); +int __ovld atomic_max(volatile __global int *, int); +uint __ovld atomic_max(volatile __global uint *, uint); +int __ovld atomic_max(volatile __local int *, int); +uint __ovld atomic_max(volatile __local uint *, uint); #ifdef __OPENCL_CPP_VERSION__ -int __ovld atomic_max(volatile int *p, int val); -unsigned int __ovld atomic_max(volatile unsigned int *p, unsigned int val); +int __ovld atomic_max(volatile int *, int); +uint __ovld atomic_max(volatile uint *, uint); #endif #if defined(cl_khr_global_int32_extended_atomics) -int __ovld atom_max(volatile __global int *p, int val); -unsigned int __ovld atom_max(volatile __global unsigned int *p, unsigned int val); +int __ovld atom_max(volatile __global int *, int); +uint __ovld atom_max(volatile __global uint *, uint); #endif #if defined(cl_khr_local_int32_extended_atomics) -int __ovld atom_max(volatile __local int *p, int val); -unsigned int __ovld atom_max(volatile __local unsigned int *p, unsigned int val); +int __ovld atom_max(volatile __local int *, int); +uint __ovld atom_max(volatile __local uint *, uint); #endif #if defined(cl_khr_int64_extended_atomics) -long __ovld atom_max(volatile __global long *p, long val); -unsigned long __ovld atom_max(volatile __global unsigned long *p, unsigned long val); -long __ovld atom_max(volatile __local long *p, long val); -unsigned long __ovld atom_max(volatile __local unsigned long *p, unsigned long val); +long __ovld atom_max(volatile __global long *, long); +ulong __ovld atom_max(volatile __global ulong *, ulong); +long __ovld atom_max(volatile __local long *, long); +ulong __ovld atom_max(volatile __local ulong *, ulong); #endif /** @@ -13890,29 +13877,29 @@ unsigned long __ovld atom_max(volatile __local unsigned long *p, unsigned long v * (old & val) and store result at location * pointed by p. The function returns old. */ -int __ovld atomic_and(volatile __global int *p, int val); -unsigned int __ovld atomic_and(volatile __global unsigned int *p, unsigned int val); -int __ovld atomic_and(volatile __local int *p, int val); -unsigned int __ovld atomic_and(volatile __local unsigned int *p, unsigned int val); +int __ovld atomic_and(volatile __global int *, int); +uint __ovld atomic_and(volatile __global uint *, uint); +int __ovld atomic_and(volatile __local int *, int); +uint __ovld atomic_and(volatile __local uint *, uint); #ifdef __OPENCL_CPP_VERSION__ -int __ovld atomic_and(volatile int *p, int val); -unsigned int __ovld atomic_and(volatile unsigned int *p, unsigned int val); +int __ovld atomic_and(volatile int *, int); +uint __ovld atomic_and(volatile uint *, uint); #endif #if defined(cl_khr_global_int32_extended_atomics) -int __ovld atom_and(volatile __global int *p, int val); -unsigned int __ovld atom_and(volatile __global unsigned int *p, unsigned int val); +int __ovld atom_and(volatile __global int *, int); +uint __ovld atom_and(volatile __global uint *, uint); #endif #if defined(cl_khr_local_int32_extended_atomics) -int __ovld atom_and(volatile __local int *p, int val); -unsigned int __ovld atom_and(volatile __local unsigned int *p, unsigned int val); +int __ovld atom_and(volatile __local int *, int); +uint __ovld atom_and(volatile __local uint *, uint); #endif #if defined(cl_khr_int64_extended_atomics) -long __ovld atom_and(volatile __global long *p, long val); -unsigned long __ovld atom_and(volatile __global unsigned long *p, unsigned long val); -long __ovld atom_and(volatile __local long *p, long val); -unsigned long __ovld atom_and(volatile __local unsigned long *p, unsigned long val); +long __ovld atom_and(volatile __global long *, long); +ulong __ovld atom_and(volatile __global ulong *, ulong); +long __ovld atom_and(volatile __local long *, long); +ulong __ovld atom_and(volatile __local ulong *, ulong); #endif /** @@ -13921,29 +13908,29 @@ unsigned long __ovld atom_and(volatile __local unsigned long *p, unsigned long v * (old | val) and store result at location * pointed by p. The function returns old. */ -int __ovld atomic_or(volatile __global int *p, int val); -unsigned int __ovld atomic_or(volatile __global unsigned int *p, unsigned int val); -int __ovld atomic_or(volatile __local int *p, int val); -unsigned int __ovld atomic_or(volatile __local unsigned int *p, unsigned int val); +int __ovld atomic_or(volatile __global int *, int); +uint __ovld atomic_or(volatile __global uint *, uint); +int __ovld atomic_or(volatile __local int *, int); +uint __ovld atomic_or(volatile __local uint *, uint); #ifdef __OPENCL_CPP_VERSION__ -int __ovld atomic_or(volatile int *p, int val); -unsigned int __ovld atomic_or(volatile unsigned int *p, unsigned int val); +int __ovld atomic_or(volatile int *, int); +uint __ovld atomic_or(volatile uint *, uint); #endif #if defined(cl_khr_global_int32_extended_atomics) -int __ovld atom_or(volatile __global int *p, int val); -unsigned int __ovld atom_or(volatile __global unsigned int *p, unsigned int val); +int __ovld atom_or(volatile __global int *, int); +uint __ovld atom_or(volatile __global uint *, uint); #endif #if defined(cl_khr_local_int32_extended_atomics) -int __ovld atom_or(volatile __local int *p, int val); -unsigned int __ovld atom_or(volatile __local unsigned int *p, unsigned int val); +int __ovld atom_or(volatile __local int *, int); +uint __ovld atom_or(volatile __local uint *, uint); #endif #if defined(cl_khr_int64_extended_atomics) -long __ovld atom_or(volatile __global long *p, long val); -unsigned long __ovld atom_or(volatile __global unsigned long *p, unsigned long val); -long __ovld atom_or(volatile __local long *p, long val); -unsigned long __ovld atom_or(volatile __local unsigned long *p, unsigned long val); +long __ovld atom_or(volatile __global long *, long); +ulong __ovld atom_or(volatile __global ulong *, ulong); +long __ovld atom_or(volatile __local long *, long); +ulong __ovld atom_or(volatile __local ulong *, ulong); #endif /** @@ -13952,29 +13939,29 @@ unsigned long __ovld atom_or(volatile __local unsigned long *p, unsigned long va * (old ^ val) and store result at location * pointed by p. The function returns old. */ -int __ovld atomic_xor(volatile __global int *p, int val); -unsigned int __ovld atomic_xor(volatile __global unsigned int *p, unsigned int val); -int __ovld atomic_xor(volatile __local int *p, int val); -unsigned int __ovld atomic_xor(volatile __local unsigned int *p, unsigned int val); +int __ovld atomic_xor(volatile __global int *, int); +uint __ovld atomic_xor(volatile __global uint *, uint); +int __ovld atomic_xor(volatile __local int *, int); +uint __ovld atomic_xor(volatile __local uint *, uint); #ifdef __OPENCL_CPP_VERSION__ -int __ovld atomic_xor(volatile int *p, int val); -unsigned int __ovld atomic_xor(volatile unsigned int *p, unsigned int val); +int __ovld atomic_xor(volatile int *, int); +uint __ovld atomic_xor(volatile uint *, uint); #endif #if defined(cl_khr_global_int32_extended_atomics) -int __ovld atom_xor(volatile __global int *p, int val); -unsigned int __ovld atom_xor(volatile __global unsigned int *p, unsigned int val); +int __ovld atom_xor(volatile __global int *, int); +uint __ovld atom_xor(volatile __global uint *, uint); #endif #if defined(cl_khr_local_int32_extended_atomics) -int __ovld atom_xor(volatile __local int *p, int val); -unsigned int __ovld atom_xor(volatile __local unsigned int *p, unsigned int val); +int __ovld atom_xor(volatile __local int *, int); +uint __ovld atom_xor(volatile __local uint *, uint); #endif #if defined(cl_khr_int64_extended_atomics) -long __ovld atom_xor(volatile __global long *p, long val); -unsigned long __ovld atom_xor(volatile __global unsigned long *p, unsigned long val); -long __ovld atom_xor(volatile __local long *p, long val); -unsigned long __ovld atom_xor(volatile __local unsigned long *p, unsigned long val); +long __ovld atom_xor(volatile __global long *, long); +ulong __ovld atom_xor(volatile __global ulong *, ulong); +long __ovld atom_xor(volatile __local long *, long); +ulong __ovld atom_xor(volatile __local ulong *, ulong); #endif #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) @@ -13993,273 +13980,1342 @@ unsigned long __ovld atom_xor(volatile __local unsigned long *p, unsigned long v #endif // atomic_init() -void __ovld atomic_init(volatile atomic_int *object, int value); -void __ovld atomic_init(volatile atomic_uint *object, uint value); -void __ovld atomic_init(volatile atomic_float *object, float value); +#if defined(__opencl_c_generic_address_space) +void __ovld atomic_init(volatile atomic_int *, int); +void __ovld atomic_init(volatile atomic_uint *, uint); +void __ovld atomic_init(volatile atomic_float *, float); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +void __ovld atomic_init(volatile atomic_long *, long); +void __ovld atomic_init(volatile atomic_ulong *, ulong); +#ifdef cl_khr_fp64 +void __ovld atomic_init(volatile atomic_double *, double); +#endif //cl_khr_fp64 +#endif +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +void __ovld atomic_init(volatile __global atomic_int *, int); +void __ovld atomic_init(volatile __local atomic_int *, int); +void __ovld atomic_init(volatile __global atomic_uint *, uint); +void __ovld atomic_init(volatile __local atomic_uint *, uint); +void __ovld atomic_init(volatile __global atomic_float *, float); +void __ovld atomic_init(volatile __local atomic_float *, float); #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) -void __ovld atomic_init(volatile atomic_long *object, long value); -void __ovld atomic_init(volatile atomic_ulong *object, ulong value); +void __ovld atomic_init(volatile __global atomic_long *, long); +void __ovld atomic_init(volatile __local atomic_long *, long); +void __ovld atomic_init(volatile __global atomic_ulong *, ulong); +void __ovld atomic_init(volatile __local atomic_ulong *, ulong); #ifdef cl_khr_fp64 -void __ovld atomic_init(volatile atomic_double *object, double value); +void __ovld atomic_init(volatile __global atomic_double *, double); +void __ovld atomic_init(volatile __local atomic_double *, double); #endif //cl_khr_fp64 #endif +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) // atomic_work_item_fence() -void __ovld atomic_work_item_fence(cl_mem_fence_flags flags, memory_order order, memory_scope scope); +void __ovld atomic_work_item_fence(cl_mem_fence_flags, memory_order, memory_scope); // atomic_fetch() +// OpenCL v2.0 s6.13.11.7.5: +// add/sub: atomic type argument can be uintptr_t/intptr_t, value type argument can be ptrdiff_t. -int __ovld atomic_fetch_add(volatile atomic_int *object, int operand); -int __ovld atomic_fetch_add_explicit(volatile atomic_int *object, int operand, memory_order order); -int __ovld atomic_fetch_add_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope); -uint __ovld atomic_fetch_add(volatile atomic_uint *object, uint operand); -uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *object, uint operand, memory_order order); -uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope); -int __ovld atomic_fetch_sub(volatile atomic_int *object, int operand); -int __ovld atomic_fetch_sub_explicit(volatile atomic_int *object, int operand, memory_order order); -int __ovld atomic_fetch_sub_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope); -uint __ovld atomic_fetch_sub(volatile atomic_uint *object, uint operand); -uint __ovld atomic_fetch_sub_explicit(volatile atomic_uint *object, uint operand, memory_order order); -uint __ovld atomic_fetch_sub_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope); -int __ovld atomic_fetch_or(volatile atomic_int *object, int operand); -int __ovld atomic_fetch_or_explicit(volatile atomic_int *object, int operand, memory_order order); -int __ovld atomic_fetch_or_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope); -uint __ovld atomic_fetch_or(volatile atomic_uint *object, uint operand); -uint __ovld atomic_fetch_or_explicit(volatile atomic_uint *object, uint operand, memory_order order); -uint __ovld atomic_fetch_or_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope); -int __ovld atomic_fetch_xor(volatile atomic_int *object, int operand); -int __ovld atomic_fetch_xor_explicit(volatile atomic_int *object, int operand, memory_order order); -int __ovld atomic_fetch_xor_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope); -uint __ovld atomic_fetch_xor(volatile atomic_uint *object, uint operand); -uint __ovld atomic_fetch_xor_explicit(volatile atomic_uint *object, uint operand, memory_order order); -uint __ovld atomic_fetch_xor_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope); -int __ovld atomic_fetch_and(volatile atomic_int *object, int operand); -int __ovld atomic_fetch_and_explicit(volatile atomic_int *object, int operand, memory_order order); -int __ovld atomic_fetch_and_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope); -uint __ovld atomic_fetch_and(volatile atomic_uint *object, uint operand); -uint __ovld atomic_fetch_and_explicit(volatile atomic_uint *object, uint operand, memory_order order); -uint __ovld atomic_fetch_and_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope); -int __ovld atomic_fetch_min(volatile atomic_int *object, int operand); -int __ovld atomic_fetch_min_explicit(volatile atomic_int *object, int operand, memory_order order); -int __ovld atomic_fetch_min_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope); -uint __ovld atomic_fetch_min(volatile atomic_uint *object, uint operand); -uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, uint operand, memory_order order); -uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope); -int __ovld atomic_fetch_max(volatile atomic_int *object, int operand); -int __ovld atomic_fetch_max_explicit(volatile atomic_int *object, int operand, memory_order order); -int __ovld atomic_fetch_max_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope); -uint __ovld atomic_fetch_max(volatile atomic_uint *object, uint operand); -uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, uint operand, memory_order order); -uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope); - +#if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device) +#if defined(__opencl_c_generic_address_space) +int __ovld atomic_fetch_add(volatile atomic_int *, int); +uint __ovld atomic_fetch_add(volatile atomic_uint *, uint); +int __ovld atomic_fetch_sub(volatile atomic_int *, int); +uint __ovld atomic_fetch_sub(volatile atomic_uint *, uint); +int __ovld atomic_fetch_or(volatile atomic_int *, int); +uint __ovld atomic_fetch_or(volatile atomic_uint *, uint); +int __ovld atomic_fetch_xor(volatile atomic_int *, int); +uint __ovld atomic_fetch_xor(volatile atomic_uint *, uint); +int __ovld atomic_fetch_and(volatile atomic_int *, int); +uint __ovld atomic_fetch_and(volatile atomic_uint *, uint); +int __ovld atomic_fetch_min(volatile atomic_int *, int); +uint __ovld atomic_fetch_min(volatile atomic_uint *, uint); +int __ovld atomic_fetch_max(volatile atomic_int *, int); +uint __ovld atomic_fetch_max(volatile atomic_uint *, uint); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +long __ovld atomic_fetch_add(volatile atomic_long *, long); +ulong __ovld atomic_fetch_add(volatile atomic_ulong *, ulong); +long __ovld atomic_fetch_sub(volatile atomic_long *, long); +ulong __ovld atomic_fetch_sub(volatile atomic_ulong *, ulong); +long __ovld atomic_fetch_or(volatile atomic_long *, long); +ulong __ovld atomic_fetch_or(volatile atomic_ulong *, ulong); +long __ovld atomic_fetch_xor(volatile atomic_long *, long); +ulong __ovld atomic_fetch_xor(volatile atomic_ulong *, ulong); +long __ovld atomic_fetch_and(volatile atomic_long *, long); +ulong __ovld atomic_fetch_and(volatile atomic_ulong *, ulong); +long __ovld atomic_fetch_min(volatile atomic_long *, long); +ulong __ovld atomic_fetch_min(volatile atomic_ulong *, ulong); +long __ovld atomic_fetch_max(volatile atomic_long *, long); +ulong __ovld atomic_fetch_max(volatile atomic_ulong *, ulong); +uintptr_t __ovld atomic_fetch_add(volatile atomic_uintptr_t *, ptrdiff_t); +uintptr_t __ovld atomic_fetch_sub(volatile atomic_uintptr_t *, ptrdiff_t); +#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +int __ovld atomic_fetch_add(volatile __global atomic_int *, int); +int __ovld atomic_fetch_add(volatile __local atomic_int *, int); +uint __ovld atomic_fetch_add(volatile __global atomic_uint *, uint); +uint __ovld atomic_fetch_add(volatile __local atomic_uint *, uint); +int __ovld atomic_fetch_sub(volatile __global atomic_int *, int); +int __ovld atomic_fetch_sub(volatile __local atomic_int *, int); +uint __ovld atomic_fetch_sub(volatile __global atomic_uint *, uint); +uint __ovld atomic_fetch_sub(volatile __local atomic_uint *, uint); +int __ovld atomic_fetch_or(volatile __global atomic_int *, int); +int __ovld atomic_fetch_or(volatile __local atomic_int *, int); +uint __ovld atomic_fetch_or(volatile __global atomic_uint *, uint); +uint __ovld atomic_fetch_or(volatile __local atomic_uint *, uint); +int __ovld atomic_fetch_xor(volatile __global atomic_int *, int); +int __ovld atomic_fetch_xor(volatile __local atomic_int *, int); +uint __ovld atomic_fetch_xor(volatile __global atomic_uint *, uint); +uint __ovld atomic_fetch_xor(volatile __local atomic_uint *, uint); +int __ovld atomic_fetch_and(volatile __global atomic_int *, int); +int __ovld atomic_fetch_and(volatile __local atomic_int *, int); +uint __ovld atomic_fetch_and(volatile __global atomic_uint *, uint); +uint __ovld atomic_fetch_and(volatile __local atomic_uint *, uint); +int __ovld atomic_fetch_min(volatile __global atomic_int *, int); +int __ovld atomic_fetch_min(volatile __local atomic_int *, int); +uint __ovld atomic_fetch_min(volatile __global atomic_uint *, uint); +uint __ovld atomic_fetch_min(volatile __local atomic_uint *, uint); +int __ovld atomic_fetch_max(volatile __global atomic_int *, int); +int __ovld atomic_fetch_max(volatile __local atomic_int *, int); +uint __ovld atomic_fetch_max(volatile __global atomic_uint *, uint); +uint __ovld atomic_fetch_max(volatile __local atomic_uint *, uint); #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) -long __ovld atomic_fetch_add(volatile atomic_long *object, long operand); -long __ovld atomic_fetch_add_explicit(volatile atomic_long *object, long operand, memory_order order); -long __ovld atomic_fetch_add_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope); -ulong __ovld atomic_fetch_add(volatile atomic_ulong *object, ulong operand); -ulong __ovld atomic_fetch_add_explicit(volatile atomic_ulong *object, ulong operand, memory_order order); -ulong __ovld atomic_fetch_add_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope); -long __ovld atomic_fetch_sub(volatile atomic_long *object, long operand); -long __ovld atomic_fetch_sub_explicit(volatile atomic_long *object, long operand, memory_order order); -long __ovld atomic_fetch_sub_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope); -ulong __ovld atomic_fetch_sub(volatile atomic_ulong *object, ulong operand); -ulong __ovld atomic_fetch_sub_explicit(volatile atomic_ulong *object, ulong operand, memory_order order); -ulong __ovld atomic_fetch_sub_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope); -long __ovld atomic_fetch_or(volatile atomic_long *object, long operand); -long __ovld atomic_fetch_or_explicit(volatile atomic_long *object, long operand, memory_order order); -long __ovld atomic_fetch_or_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope); -ulong __ovld atomic_fetch_or(volatile atomic_ulong *object, ulong operand); -ulong __ovld atomic_fetch_or_explicit(volatile atomic_ulong *object, ulong operand, memory_order order); -ulong __ovld atomic_fetch_or_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope); -long __ovld atomic_fetch_xor(volatile atomic_long *object, long operand); -long __ovld atomic_fetch_xor_explicit(volatile atomic_long *object, long operand, memory_order order); -long __ovld atomic_fetch_xor_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope); -ulong __ovld atomic_fetch_xor(volatile atomic_ulong *object, ulong operand); -ulong __ovld atomic_fetch_xor_explicit(volatile atomic_ulong *object, ulong operand, memory_order order); -ulong __ovld atomic_fetch_xor_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope); -long __ovld atomic_fetch_and(volatile atomic_long *object, long operand); -long __ovld atomic_fetch_and_explicit(volatile atomic_long *object, long operand, memory_order order); -long __ovld atomic_fetch_and_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope); -ulong __ovld atomic_fetch_and(volatile atomic_ulong *object, ulong operand); -ulong __ovld atomic_fetch_and_explicit(volatile atomic_ulong *object, ulong operand, memory_order order); -ulong __ovld atomic_fetch_and_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope); -long __ovld atomic_fetch_min(volatile atomic_long *object, long operand); -long __ovld atomic_fetch_min_explicit(volatile atomic_long *object, long operand, memory_order order); -long __ovld atomic_fetch_min_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope); -ulong __ovld atomic_fetch_min(volatile atomic_ulong *object, ulong operand); -ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, ulong operand, memory_order order); -ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope); -long __ovld atomic_fetch_max(volatile atomic_long *object, long operand); -long __ovld atomic_fetch_max_explicit(volatile atomic_long *object, long operand, memory_order order); -long __ovld atomic_fetch_max_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope); -ulong __ovld atomic_fetch_max(volatile atomic_ulong *object, ulong operand); -ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, ulong operand, memory_order order); -ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope); +long __ovld atomic_fetch_add(volatile __global atomic_long *, long); +long __ovld atomic_fetch_add(volatile __local atomic_long *, long); +ulong __ovld atomic_fetch_add(volatile __global atomic_ulong *, ulong); +ulong __ovld atomic_fetch_add(volatile __local atomic_ulong *, ulong); +uintptr_t __ovld atomic_fetch_add(volatile __global atomic_uintptr_t *, ptrdiff_t); +uintptr_t __ovld atomic_fetch_add(volatile __local atomic_uintptr_t *, ptrdiff_t); +long __ovld atomic_fetch_sub(volatile __global atomic_long *, long); +long __ovld atomic_fetch_sub(volatile __local atomic_long *, long); +ulong __ovld atomic_fetch_sub(volatile __global atomic_ulong *, ulong); +ulong __ovld atomic_fetch_sub(volatile __local atomic_ulong *, ulong); +uintptr_t __ovld atomic_fetch_sub(volatile __global atomic_uintptr_t *, ptrdiff_t); +uintptr_t __ovld atomic_fetch_sub(volatile __local atomic_uintptr_t *, ptrdiff_t); +long __ovld atomic_fetch_or(volatile __global atomic_long *, long); +long __ovld atomic_fetch_or(volatile __local atomic_long *, long); +ulong __ovld atomic_fetch_or(volatile __global atomic_ulong *, ulong); +ulong __ovld atomic_fetch_or(volatile __local atomic_ulong *, ulong); +uintptr_t __ovld atomic_fetch_or(volatile __global atomic_uintptr_t *, intptr_t); +uintptr_t __ovld atomic_fetch_or(volatile __local atomic_uintptr_t *, intptr_t); +intptr_t __ovld atomic_fetch_or(volatile __global atomic_intptr_t *, uintptr_t); +intptr_t __ovld atomic_fetch_or(volatile __local atomic_intptr_t *, uintptr_t); +long __ovld atomic_fetch_xor(volatile __global atomic_long *, long); +long __ovld atomic_fetch_xor(volatile __local atomic_long *, long); +ulong __ovld atomic_fetch_xor(volatile __global atomic_ulong *, ulong); +ulong __ovld atomic_fetch_xor(volatile __local atomic_ulong *, ulong); +uintptr_t __ovld atomic_fetch_xor(volatile __global atomic_uintptr_t *, intptr_t); +uintptr_t __ovld atomic_fetch_xor(volatile __local atomic_uintptr_t *, intptr_t); +intptr_t __ovld atomic_fetch_xor(volatile __global atomic_intptr_t *, uintptr_t); +intptr_t __ovld atomic_fetch_xor(volatile __local atomic_intptr_t *, uintptr_t); +long __ovld atomic_fetch_and(volatile __global atomic_long *, long); +long __ovld atomic_fetch_and(volatile __local atomic_long *, long); +ulong __ovld atomic_fetch_and(volatile __global atomic_ulong *, ulong); +ulong __ovld atomic_fetch_and(volatile __local atomic_ulong *, ulong); +uintptr_t __ovld atomic_fetch_and(volatile __global atomic_uintptr_t *, intptr_t); +uintptr_t __ovld atomic_fetch_and(volatile __local atomic_uintptr_t *, intptr_t); +intptr_t __ovld atomic_fetch_and(volatile __global atomic_intptr_t *, uintptr_t); +intptr_t __ovld atomic_fetch_and(volatile __local atomic_intptr_t *, uintptr_t); +long __ovld atomic_fetch_min(volatile __global atomic_long *, long); +long __ovld atomic_fetch_min(volatile __local atomic_long *, long); +ulong __ovld atomic_fetch_min(volatile __global atomic_ulong *, ulong); +ulong __ovld atomic_fetch_min(volatile __local atomic_ulong *, ulong); +uintptr_t __ovld atomic_fetch_min(volatile __global atomic_uintptr_t *, intptr_t); +uintptr_t __ovld atomic_fetch_min(volatile __local atomic_uintptr_t *, intptr_t); +intptr_t __ovld atomic_fetch_min(volatile __global atomic_intptr_t *, uintptr_t); +intptr_t __ovld atomic_fetch_min(volatile __local atomic_intptr_t *, uintptr_t); +long __ovld atomic_fetch_max(volatile __global atomic_long *, long); +long __ovld atomic_fetch_max(volatile __local atomic_long *, long); +ulong __ovld atomic_fetch_max(volatile __global atomic_ulong *, ulong); +ulong __ovld atomic_fetch_max(volatile __local atomic_ulong *, ulong); +uintptr_t __ovld atomic_fetch_max(volatile __global atomic_uintptr_t *, uintptr_t); +uintptr_t __ovld atomic_fetch_max(volatile __local atomic_uintptr_t *, uintptr_t); #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +#endif -// OpenCL v2.0 s6.13.11.7.5: -// add/sub: atomic type argument can be uintptr_t/intptr_t, value type argument can be ptrdiff_t. +#if defined(__opencl_c_atomic_scope_device) +#if defined(__opencl_c_generic_address_space) +int __ovld atomic_fetch_add_explicit(volatile atomic_int *, int, memory_order); +uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *, uint, memory_order); +int __ovld atomic_fetch_sub_explicit(volatile atomic_int *, int, memory_order); +uint __ovld atomic_fetch_sub_explicit(volatile atomic_uint *, uint, memory_order); +int __ovld atomic_fetch_or_explicit(volatile atomic_int *, int, memory_order); +uint __ovld atomic_fetch_or_explicit(volatile atomic_uint *, uint, memory_order); +int __ovld atomic_fetch_xor_explicit(volatile atomic_int *, int, memory_order); +uint __ovld atomic_fetch_xor_explicit(volatile atomic_uint *, uint, memory_order); +int __ovld atomic_fetch_and_explicit(volatile atomic_int *, int, memory_order); +uint __ovld atomic_fetch_and_explicit(volatile atomic_uint *, uint, memory_order); +int __ovld atomic_fetch_min_explicit(volatile atomic_int *, int, memory_order); +uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *, uint, memory_order); +int __ovld atomic_fetch_max_explicit(volatile atomic_int *, int, memory_order); +uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *, uint, memory_order); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +long __ovld atomic_fetch_add_explicit(volatile atomic_long *, long, memory_order); +ulong __ovld atomic_fetch_add_explicit(volatile atomic_ulong *, ulong, memory_order); +long __ovld atomic_fetch_sub_explicit(volatile atomic_long *, long, memory_order); +ulong __ovld atomic_fetch_sub_explicit(volatile atomic_ulong *, ulong, memory_order); +long __ovld atomic_fetch_or_explicit(volatile atomic_long *, long, memory_order); +ulong __ovld atomic_fetch_or_explicit(volatile atomic_ulong *, ulong, memory_order); +long __ovld atomic_fetch_xor_explicit(volatile atomic_long *, long, memory_order); +ulong __ovld atomic_fetch_xor_explicit(volatile atomic_ulong *, ulong, memory_order); +long __ovld atomic_fetch_and_explicit(volatile atomic_long *, long, memory_order); +ulong __ovld atomic_fetch_and_explicit(volatile atomic_ulong *, ulong, memory_order); +long __ovld atomic_fetch_min_explicit(volatile atomic_long *, long, memory_order); +ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *, ulong, memory_order); +long __ovld atomic_fetch_max_explicit(volatile atomic_long *, long, memory_order); +ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *, ulong, memory_order); +uintptr_t __ovld atomic_fetch_add_explicit(volatile atomic_uintptr_t *, ptrdiff_t, memory_order); +uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *, ptrdiff_t, memory_order); +#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +int __ovld atomic_fetch_add_explicit(volatile __global atomic_int *, int, memory_order); +int __ovld atomic_fetch_add_explicit(volatile __local atomic_int *, int, memory_order); +uint __ovld atomic_fetch_add_explicit(volatile __global atomic_uint *, uint, memory_order); +uint __ovld atomic_fetch_add_explicit(volatile __local atomic_uint *, uint, memory_order); +int __ovld atomic_fetch_sub_explicit(volatile __global atomic_int *, int, memory_order); +int __ovld atomic_fetch_sub_explicit(volatile __local atomic_int *, int, memory_order); +uint __ovld atomic_fetch_sub_explicit(volatile __global atomic_uint *, uint, memory_order); +uint __ovld atomic_fetch_sub_explicit(volatile __local atomic_uint *, uint, memory_order); +int __ovld atomic_fetch_or_explicit(volatile __global atomic_int *, int, memory_order); +int __ovld atomic_fetch_or_explicit(volatile __local atomic_int *, int, memory_order); +uint __ovld atomic_fetch_or_explicit(volatile __global atomic_uint *, uint, memory_order); +uint __ovld atomic_fetch_or_explicit(volatile __local atomic_uint *, uint, memory_order); +int __ovld atomic_fetch_xor_explicit(volatile __global atomic_int *, int, memory_order); +int __ovld atomic_fetch_xor_explicit(volatile __local atomic_int *, int, memory_order); +uint __ovld atomic_fetch_xor_explicit(volatile __global atomic_uint *, uint, memory_order); +uint __ovld atomic_fetch_xor_explicit(volatile __local atomic_uint *, uint, memory_order); +int __ovld atomic_fetch_and_explicit(volatile __global atomic_int *, int, memory_order); +int __ovld atomic_fetch_and_explicit(volatile __local atomic_int *, int, memory_order); +uint __ovld atomic_fetch_and_explicit(volatile __global atomic_uint *, uint, memory_order); +uint __ovld atomic_fetch_and_explicit(volatile __local atomic_uint *, uint, memory_order); +int __ovld atomic_fetch_min_explicit(volatile __global atomic_int *, int, memory_order); +int __ovld atomic_fetch_min_explicit(volatile __local atomic_int *, int, memory_order); +uint __ovld atomic_fetch_min_explicit(volatile __global atomic_uint *, uint, memory_order); +uint __ovld atomic_fetch_min_explicit(volatile __local atomic_uint *, uint, memory_order); +int __ovld atomic_fetch_max_explicit(volatile __global atomic_int *, int, memory_order); +int __ovld atomic_fetch_max_explicit(volatile __local atomic_int *, int, memory_order); +uint __ovld atomic_fetch_max_explicit(volatile __global atomic_uint *, uint, memory_order); +uint __ovld atomic_fetch_max_explicit(volatile __local atomic_uint *, uint, memory_order); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +long __ovld atomic_fetch_add_explicit(volatile __global atomic_long *, long, memory_order); +long __ovld atomic_fetch_add_explicit(volatile __local atomic_long *, long, memory_order); +ulong __ovld atomic_fetch_add_explicit(volatile __global atomic_ulong *, ulong, memory_order); +ulong __ovld atomic_fetch_add_explicit(volatile __local atomic_ulong *, ulong, memory_order); +uintptr_t __ovld atomic_fetch_add_explicit(volatile __global atomic_uintptr_t *, ptrdiff_t, memory_order); +uintptr_t __ovld atomic_fetch_add_explicit(volatile __local atomic_uintptr_t *, ptrdiff_t, memory_order); +long __ovld atomic_fetch_sub_explicit(volatile __global atomic_long *, long, memory_order); +long __ovld atomic_fetch_sub_explicit(volatile __local atomic_long *, long, memory_order); +ulong __ovld atomic_fetch_sub_explicit(volatile __global atomic_ulong *, ulong, memory_order); +ulong __ovld atomic_fetch_sub_explicit(volatile __local atomic_ulong *, ulong, memory_order); +uintptr_t __ovld atomic_fetch_sub_explicit(volatile __global atomic_uintptr_t *, ptrdiff_t, memory_order); +uintptr_t __ovld atomic_fetch_sub_explicit(volatile __local atomic_uintptr_t *, ptrdiff_t, memory_order); +long __ovld atomic_fetch_or_explicit(volatile __global atomic_long *, long, memory_order); +long __ovld atomic_fetch_or_explicit(volatile __local atomic_long *, long, memory_order); +ulong __ovld atomic_fetch_or_explicit(volatile __global atomic_ulong *, ulong, memory_order); +ulong __ovld atomic_fetch_or_explicit(volatile __local atomic_ulong *, ulong, memory_order); +uintptr_t __ovld atomic_fetch_or_explicit(volatile __global atomic_uintptr_t *, intptr_t, memory_order); +uintptr_t __ovld atomic_fetch_or_explicit(volatile __local atomic_uintptr_t *, intptr_t, memory_order); +intptr_t __ovld atomic_fetch_or_explicit(volatile __global atomic_intptr_t *, uintptr_t, memory_order); +intptr_t __ovld atomic_fetch_or_explicit(volatile __local atomic_intptr_t *, uintptr_t, memory_order); +long __ovld atomic_fetch_xor_explicit(volatile __global atomic_long *, long, memory_order); +long __ovld atomic_fetch_xor_explicit(volatile __local atomic_long *, long, memory_order); +ulong __ovld atomic_fetch_xor_explicit(volatile __global atomic_ulong *, ulong, memory_order); +ulong __ovld atomic_fetch_xor_explicit(volatile __local atomic_ulong *, ulong, memory_order); +uintptr_t __ovld atomic_fetch_xor_explicit(volatile __global atomic_uintptr_t *, intptr_t, memory_order); +uintptr_t __ovld atomic_fetch_xor_explicit(volatile __local atomic_uintptr_t *, intptr_t, memory_order); +intptr_t __ovld atomic_fetch_xor_explicit(volatile __global atomic_intptr_t *, uintptr_t, memory_order); +intptr_t __ovld atomic_fetch_xor_explicit(volatile __local atomic_intptr_t *, uintptr_t, memory_order); +long __ovld atomic_fetch_and_explicit(volatile __global atomic_long *, long, memory_order); +long __ovld atomic_fetch_and_explicit(volatile __local atomic_long *, long, memory_order); +ulong __ovld atomic_fetch_and_explicit(volatile __global atomic_ulong *, ulong, memory_order); +ulong __ovld atomic_fetch_and_explicit(volatile __local atomic_ulong *, ulong, memory_order); +uintptr_t __ovld atomic_fetch_and_explicit(volatile __global atomic_uintptr_t *, intptr_t, memory_order); +uintptr_t __ovld atomic_fetch_and_explicit(volatile __local atomic_uintptr_t *, intptr_t, memory_order); +intptr_t __ovld atomic_fetch_and_explicit(volatile __global atomic_intptr_t *, uintptr_t, memory_order); +intptr_t __ovld atomic_fetch_and_explicit(volatile __local atomic_intptr_t *, uintptr_t, memory_order); +long __ovld atomic_fetch_min_explicit(volatile __global atomic_long *, long, memory_order); +long __ovld atomic_fetch_min_explicit(volatile __local atomic_long *, long, memory_order); +ulong __ovld atomic_fetch_min_explicit(volatile __global atomic_ulong *, ulong, memory_order); +ulong __ovld atomic_fetch_min_explicit(volatile __local atomic_ulong *, ulong, memory_order); +uintptr_t __ovld atomic_fetch_min_explicit(volatile __global atomic_uintptr_t *, intptr_t, memory_order); +uintptr_t __ovld atomic_fetch_min_explicit(volatile __local atomic_uintptr_t *, intptr_t, memory_order); +intptr_t __ovld atomic_fetch_min_explicit(volatile __global atomic_intptr_t *, uintptr_t, memory_order); +intptr_t __ovld atomic_fetch_min_explicit(volatile __local atomic_intptr_t *, uintptr_t, memory_order); +long __ovld atomic_fetch_max_explicit(volatile __global atomic_long *, long, memory_order); +long __ovld atomic_fetch_max_explicit(volatile __local atomic_long *, long, memory_order); +ulong __ovld atomic_fetch_max_explicit(volatile __global atomic_ulong *, ulong, memory_order); +ulong __ovld atomic_fetch_max_explicit(volatile __local atomic_ulong *, ulong, memory_order); +uintptr_t __ovld atomic_fetch_max_explicit(volatile __global atomic_uintptr_t *, uintptr_t, memory_order); +uintptr_t __ovld atomic_fetch_max_explicit(volatile __local atomic_uintptr_t *, uintptr_t, memory_order); +#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +#endif +#if defined(__opencl_c_generic_address_space) +int __ovld atomic_fetch_add_explicit(volatile atomic_int *, int, memory_order, memory_scope); +uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *, uint, memory_order, memory_scope); +int __ovld atomic_fetch_sub_explicit(volatile atomic_int *, int, memory_order, memory_scope); +uint __ovld atomic_fetch_sub_explicit(volatile atomic_uint *, uint, memory_order, memory_scope); +int __ovld atomic_fetch_or_explicit(volatile atomic_int *, int, memory_order, memory_scope); +uint __ovld atomic_fetch_or_explicit(volatile atomic_uint *, uint, memory_order, memory_scope); +int __ovld atomic_fetch_xor_explicit(volatile atomic_int *, int, memory_order, memory_scope); +uint __ovld atomic_fetch_xor_explicit(volatile atomic_uint *, uint, memory_order, memory_scope); +int __ovld atomic_fetch_and_explicit(volatile atomic_int *, int, memory_order, memory_scope); +uint __ovld atomic_fetch_and_explicit(volatile atomic_uint *, uint, memory_order, memory_scope); +int __ovld atomic_fetch_min_explicit(volatile atomic_int *, int, memory_order, memory_scope); +uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *, uint, memory_order, memory_scope); +int __ovld atomic_fetch_max_explicit(volatile atomic_int *, int, memory_order, memory_scope); +uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *, uint, memory_order, memory_scope); #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) -uintptr_t __ovld atomic_fetch_add(volatile atomic_uintptr_t *object, ptrdiff_t operand); -uintptr_t __ovld atomic_fetch_add_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order); -uintptr_t __ovld atomic_fetch_add_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope); -uintptr_t __ovld atomic_fetch_sub(volatile atomic_uintptr_t *object, ptrdiff_t operand); -uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order); -uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope); +long __ovld atomic_fetch_add_explicit(volatile atomic_long *, long, memory_order, memory_scope); +ulong __ovld atomic_fetch_add_explicit(volatile atomic_ulong *, ulong, memory_order, memory_scope); +long __ovld atomic_fetch_sub_explicit(volatile atomic_long *, long, memory_order, memory_scope); +ulong __ovld atomic_fetch_sub_explicit(volatile atomic_ulong *, ulong, memory_order, memory_scope); +long __ovld atomic_fetch_or_explicit(volatile atomic_long *, long, memory_order, memory_scope); +ulong __ovld atomic_fetch_or_explicit(volatile atomic_ulong *, ulong, memory_order, memory_scope); +long __ovld atomic_fetch_xor_explicit(volatile atomic_long *, long, memory_order, memory_scope); +ulong __ovld atomic_fetch_xor_explicit(volatile atomic_ulong *, ulong, memory_order, memory_scope); +long __ovld atomic_fetch_and_explicit(volatile atomic_long *, long, memory_order, memory_scope); +ulong __ovld atomic_fetch_and_explicit(volatile atomic_ulong *, ulong, memory_order, memory_scope); +long __ovld atomic_fetch_min_explicit(volatile atomic_long *, long, memory_order, memory_scope); +ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *, ulong, memory_order, memory_scope); +long __ovld atomic_fetch_max_explicit(volatile atomic_long *, long, memory_order, memory_scope); +ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *, ulong, memory_order, memory_scope); +uintptr_t __ovld atomic_fetch_add_explicit(volatile atomic_uintptr_t *, ptrdiff_t, memory_order, memory_scope); +uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *, ptrdiff_t, memory_order, memory_scope); #endif +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +int __ovld atomic_fetch_add_explicit(volatile __global atomic_int *, int, memory_order, memory_scope); +int __ovld atomic_fetch_add_explicit(volatile __local atomic_int *, int, memory_order, memory_scope); +uint __ovld atomic_fetch_add_explicit(volatile __global atomic_uint *, uint, memory_order, memory_scope); +uint __ovld atomic_fetch_add_explicit(volatile __local atomic_uint *, uint, memory_order, memory_scope); +int __ovld atomic_fetch_sub_explicit(volatile __global atomic_int *, int, memory_order, memory_scope); +int __ovld atomic_fetch_sub_explicit(volatile __local atomic_int *, int, memory_order, memory_scope); +uint __ovld atomic_fetch_sub_explicit(volatile __global atomic_uint *, uint, memory_order, memory_scope); +uint __ovld atomic_fetch_sub_explicit(volatile __local atomic_uint *, uint, memory_order, memory_scope); +int __ovld atomic_fetch_or_explicit(volatile __global atomic_int *, int, memory_order, memory_scope); +int __ovld atomic_fetch_or_explicit(volatile __local atomic_int *, int, memory_order, memory_scope); +uint __ovld atomic_fetch_or_explicit(volatile __global atomic_uint *, uint, memory_order, memory_scope); +uint __ovld atomic_fetch_or_explicit(volatile __local atomic_uint *, uint, memory_order, memory_scope); +int __ovld atomic_fetch_xor_explicit(volatile __global atomic_int *, int, memory_order, memory_scope); +int __ovld atomic_fetch_xor_explicit(volatile __local atomic_int *, int, memory_order, memory_scope); +uint __ovld atomic_fetch_xor_explicit(volatile __global atomic_uint *, uint, memory_order, memory_scope); +uint __ovld atomic_fetch_xor_explicit(volatile __local atomic_uint *, uint, memory_order, memory_scope); +int __ovld atomic_fetch_and_explicit(volatile __global atomic_int *, int, memory_order, memory_scope); +int __ovld atomic_fetch_and_explicit(volatile __local atomic_int *, int, memory_order, memory_scope); +uint __ovld atomic_fetch_and_explicit(volatile __global atomic_uint *, uint, memory_order, memory_scope); +uint __ovld atomic_fetch_and_explicit(volatile __local atomic_uint *, uint, memory_order, memory_scope); +int __ovld atomic_fetch_min_explicit(volatile __global atomic_int *, int, memory_order, memory_scope); +int __ovld atomic_fetch_min_explicit(volatile __local atomic_int *, int, memory_order, memory_scope); +uint __ovld atomic_fetch_min_explicit(volatile __global atomic_uint *, uint, memory_order, memory_scope); +uint __ovld atomic_fetch_min_explicit(volatile __local atomic_uint *, uint, memory_order, memory_scope); +int __ovld atomic_fetch_max_explicit(volatile __global atomic_int *, int, memory_order, memory_scope); +int __ovld atomic_fetch_max_explicit(volatile __local atomic_int *, int, memory_order, memory_scope); +uint __ovld atomic_fetch_max_explicit(volatile __global atomic_uint *, uint, memory_order, memory_scope); +uint __ovld atomic_fetch_max_explicit(volatile __local atomic_uint *, uint, memory_order, memory_scope); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +long __ovld atomic_fetch_add_explicit(volatile __global atomic_long *, long, memory_order, memory_scope); +long __ovld atomic_fetch_add_explicit(volatile __local atomic_long *, long, memory_order, memory_scope); +uintptr_t __ovld atomic_fetch_add_explicit(volatile __global atomic_uintptr_t *, ptrdiff_t, memory_order, memory_scope); +uintptr_t __ovld atomic_fetch_add_explicit(volatile __local atomic_uintptr_t *, ptrdiff_t, memory_order, memory_scope); +ulong __ovld atomic_fetch_add_explicit(volatile __global atomic_ulong *, ulong, memory_order, memory_scope); +ulong __ovld atomic_fetch_add_explicit(volatile __local atomic_ulong *, ulong, memory_order, memory_scope); +long __ovld atomic_fetch_sub_explicit(volatile __global atomic_long *, long, memory_order, memory_scope); +long __ovld atomic_fetch_sub_explicit(volatile __local atomic_long *, long, memory_order, memory_scope); +ulong __ovld atomic_fetch_sub_explicit(volatile __global atomic_ulong *, ulong, memory_order, memory_scope); +ulong __ovld atomic_fetch_sub_explicit(volatile __local atomic_ulong *, ulong, memory_order, memory_scope); +uintptr_t __ovld atomic_fetch_sub_explicit(volatile __global atomic_uintptr_t *, ptrdiff_t, memory_order, memory_scope); +uintptr_t __ovld atomic_fetch_sub_explicit(volatile __local atomic_uintptr_t *, ptrdiff_t, memory_order, memory_scope); +long __ovld atomic_fetch_or_explicit(volatile __global atomic_long *, long, memory_order, memory_scope); +long __ovld atomic_fetch_or_explicit(volatile __local atomic_long *, long, memory_order, memory_scope); +ulong __ovld atomic_fetch_or_explicit(volatile __global atomic_ulong *, ulong, memory_order, memory_scope); +ulong __ovld atomic_fetch_or_explicit(volatile __local atomic_ulong *, ulong, memory_order, memory_scope); +uintptr_t __ovld atomic_fetch_or_explicit(volatile __global atomic_uintptr_t *, intptr_t, memory_order, memory_scope); +uintptr_t __ovld atomic_fetch_or_explicit(volatile __local atomic_uintptr_t *, intptr_t, memory_order, memory_scope); +intptr_t __ovld atomic_fetch_or_explicit(volatile __global atomic_intptr_t *, uintptr_t, memory_order, memory_scope); +intptr_t __ovld atomic_fetch_or_explicit(volatile __local atomic_intptr_t *, uintptr_t, memory_order, memory_scope); +long __ovld atomic_fetch_xor_explicit(volatile __global atomic_long *, long, memory_order, memory_scope); +long __ovld atomic_fetch_xor_explicit(volatile __local atomic_long *, long, memory_order, memory_scope); +ulong __ovld atomic_fetch_xor_explicit(volatile __global atomic_ulong *, ulong, memory_order, memory_scope); +ulong __ovld atomic_fetch_xor_explicit(volatile __local atomic_ulong *, ulong, memory_order, memory_scope); +uintptr_t __ovld atomic_fetch_xor_explicit(volatile __global atomic_uintptr_t *, intptr_t, memory_order, memory_scope); +uintptr_t __ovld atomic_fetch_xor_explicit(volatile __local atomic_uintptr_t *, intptr_t, memory_order, memory_scope); +intptr_t __ovld atomic_fetch_xor_explicit(volatile __global atomic_intptr_t *, uintptr_t, memory_order, memory_scope); +intptr_t __ovld atomic_fetch_xor_explicit(volatile __local atomic_intptr_t *, uintptr_t, memory_order, memory_scope); +long __ovld atomic_fetch_and_explicit(volatile __global atomic_long *, long, memory_order, memory_scope); +long __ovld atomic_fetch_and_explicit(volatile __local atomic_long *, long, memory_order, memory_scope); +ulong __ovld atomic_fetch_and_explicit(volatile __global atomic_ulong *, ulong, memory_order, memory_scope); +ulong __ovld atomic_fetch_and_explicit(volatile __local atomic_ulong *, ulong, memory_order, memory_scope); +uintptr_t __ovld atomic_fetch_and_explicit(volatile __global atomic_uintptr_t *, intptr_t, memory_order, memory_scope); +uintptr_t __ovld atomic_fetch_and_explicit(volatile __local atomic_uintptr_t *, intptr_t, memory_order, memory_scope); +intptr_t __ovld atomic_fetch_and_explicit(volatile __global atomic_intptr_t *, uintptr_t, memory_order, memory_scope); +intptr_t __ovld atomic_fetch_and_explicit(volatile __local atomic_intptr_t *, uintptr_t, memory_order, memory_scope); +long __ovld atomic_fetch_min_explicit(volatile __global atomic_long *, long, memory_order, memory_scope); +long __ovld atomic_fetch_min_explicit(volatile __local atomic_long *, long, memory_order, memory_scope); +ulong __ovld atomic_fetch_min_explicit(volatile __global atomic_ulong *, ulong, memory_order, memory_scope); +ulong __ovld atomic_fetch_min_explicit(volatile __local atomic_ulong *, ulong, memory_order, memory_scope); +uintptr_t __ovld atomic_fetch_min_explicit(volatile __global atomic_uintptr_t *, intptr_t, memory_order, memory_scope); +uintptr_t __ovld atomic_fetch_min_explicit(volatile __local atomic_uintptr_t *, intptr_t, memory_order, memory_scope); +intptr_t __ovld atomic_fetch_min_explicit(volatile __global atomic_intptr_t *, uintptr_t, memory_order, memory_scope); +intptr_t __ovld atomic_fetch_min_explicit(volatile __local atomic_intptr_t *, uintptr_t, memory_order, memory_scope); +long __ovld atomic_fetch_max_explicit(volatile __global atomic_long *, long, memory_order, memory_scope); +long __ovld atomic_fetch_max_explicit(volatile __local atomic_long *, long, memory_order, memory_scope); +ulong __ovld atomic_fetch_max_explicit(volatile __global atomic_ulong *, ulong, memory_order, memory_scope); +ulong __ovld atomic_fetch_max_explicit(volatile __local atomic_ulong *, ulong, memory_order, memory_scope); +uintptr_t __ovld atomic_fetch_max_explicit(volatile __global atomic_uintptr_t *, uintptr_t, memory_order, memory_scope); +uintptr_t __ovld atomic_fetch_max_explicit(volatile __local atomic_uintptr_t *, uintptr_t, memory_order, memory_scope); +#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) + +// The functionality added by cl_ext_float_atomics extension +#if defined(cl_ext_float_atomics) + +#if defined(__opencl_c_ext_fp16_global_atomic_load_store) +void __ovld atomic_store(volatile __global atomic_half *, half); +void __ovld atomic_store_explicit(volatile __global atomic_half *, + half, memory_order); +void __ovld atomic_store_explicit(volatile __global atomic_half *, + half, memory_order, memory_scope); +half __ovld atomic_load(volatile __global atomic_half *); +half __ovld atomic_load_explicit(volatile __global atomic_half *, + memory_order); +half __ovld atomic_load_explicit(volatile __global atomic_half *, + memory_order, memory_scope); +half __ovld atomic_exchange(volatile __global atomic_half *, half); +half __ovld atomic_exchange_explicit(volatile __global atomic_half *, + half, memory_order); +half __ovld atomic_exchange_explicit(volatile __global atomic_half *, + half, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp16_global_atomic_load_store) + +#if defined(__opencl_c_ext_fp16_local_atomic_load_store) +void __ovld atomic_store(volatile __local atomic_half *, half); +void __ovld atomic_store_explicit(volatile __local atomic_half *, + half, memory_order); +void __ovld atomic_store_explicit(volatile __local atomic_half *, + half, memory_order, memory_scope); +half __ovld atomic_load(volatile __local atomic_half *); +half __ovld atomic_load_explicit(volatile __local atomic_half *, + memory_order); +half __ovld atomic_load_explicit(volatile __local atomic_half *, + memory_order, memory_scope); +half __ovld atomic_exchange(volatile __local atomic_half *, half); +half __ovld atomic_exchange_explicit(volatile __local atomic_half *, + half, memory_order); +half __ovld atomic_exchange_explicit(volatile __local atomic_half *, + half, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp16_local_atomic_load_store) + +#if defined(__opencl_c_ext_fp16_global_atomic_load_store) && \ + defined(__opencl_c_ext_fp16_local_atomic_load_store) +void __ovld atomic_store(volatile atomic_half *, half); +void __ovld atomic_store_explicit(volatile atomic_half *, half, + memory_order); +void __ovld atomic_store_explicit(volatile atomic_half *, half, + memory_order, memory_scope); +half __ovld atomic_load(volatile atomic_half *); +half __ovld atomic_load_explicit(volatile atomic_half *, + memory_order); +half __ovld atomic_load_explicit(volatile atomic_half *, + memory_order, memory_scope); +half __ovld atomic_exchange(volatile atomic_half *, half); +half __ovld atomic_exchange_explicit(volatile atomic_half *, half, + memory_order); +half __ovld atomic_exchange_explicit(volatile atomic_half *, half, + memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp16_global_atomic_load_store) && + // defined(__opencl_c_ext_fp16_local_atomic_load_store) + +#if defined(__opencl_c_ext_fp16_global_atomic_min_max) +half __ovld atomic_fetch_min(volatile __global atomic_half *, half); +half __ovld atomic_fetch_max(volatile __global atomic_half *, half); +half __ovld atomic_fetch_min_explicit(volatile __global atomic_half *, + half, memory_order); +half __ovld atomic_fetch_max_explicit(volatile __global atomic_half *, + half, memory_order); +half __ovld atomic_fetch_min_explicit(volatile __global atomic_half *, + half, memory_order, memory_scope); +half __ovld atomic_fetch_max_explicit(volatile __global atomic_half *, + half, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp16_global_atomic_min_max) + +#if defined(__opencl_c_ext_fp16_local_atomic_min_max) +half __ovld atomic_fetch_min(volatile __local atomic_half *, half); +half __ovld atomic_fetch_max(volatile __local atomic_half *, half); +half __ovld atomic_fetch_min_explicit(volatile __local atomic_half *, + half, memory_order); +half __ovld atomic_fetch_max_explicit(volatile __local atomic_half *, + half, memory_order); +half __ovld atomic_fetch_min_explicit(volatile __local atomic_half *, + half, memory_order, memory_scope); +half __ovld atomic_fetch_max_explicit(volatile __local atomic_half *, + half, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp16_local_atomic_min_max) + +#if defined(__opencl_c_ext_fp16_global_atomic_min_max) && \ + defined(__opencl_c_ext_fp16_local_atomic_min_max) +half __ovld atomic_fetch_min(volatile atomic_half *, half); +half __ovld atomic_fetch_max(volatile atomic_half *, half); +half __ovld atomic_fetch_min_explicit(volatile atomic_half *, + half, memory_order); +half __ovld atomic_fetch_max_explicit(volatile atomic_half *, + half, memory_order); +half __ovld atomic_fetch_min_explicit(volatile atomic_half *, + half, memory_order, memory_scope); +half __ovld atomic_fetch_max_explicit(volatile atomic_half *, + half, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp16_global_atomic_min_max) && \ + defined(__opencl_c_ext_fp16_local_atomic_min_max) + +#if defined(__opencl_c_ext_fp32_global_atomic_min_max) +float __ovld atomic_fetch_min(volatile __global atomic_float *, float); +float __ovld atomic_fetch_max(volatile __global atomic_float *, float); +float __ovld atomic_fetch_min_explicit(volatile __global atomic_float *, + float, memory_order); +float __ovld atomic_fetch_max_explicit(volatile __global atomic_float *, + float, memory_order); +float __ovld atomic_fetch_min_explicit(volatile __global atomic_float *, + float, memory_order, memory_scope); +float __ovld atomic_fetch_max_explicit(volatile __global atomic_float *, + float, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp32_global_atomic_min_max) + +#if defined(__opencl_c_ext_fp32_local_atomic_min_max) +float __ovld atomic_fetch_min(volatile __local atomic_float *, float); +float __ovld atomic_fetch_max(volatile __local atomic_float *, float); +float __ovld atomic_fetch_min_explicit(volatile __local atomic_float *, + float, memory_order); +float __ovld atomic_fetch_max_explicit(volatile __local atomic_float *, + float, memory_order); +float __ovld atomic_fetch_min_explicit(volatile __local atomic_float *, + float, memory_order, memory_scope); +float __ovld atomic_fetch_max_explicit(volatile __local atomic_float *, + float, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp32_local_atomic_min_max) + +#if defined(__opencl_c_ext_fp32_global_atomic_min_max) && \ + defined(__opencl_c_ext_fp32_local_atomic_min_max) +float __ovld atomic_fetch_min(volatile atomic_float *, float); +float __ovld atomic_fetch_max(volatile atomic_float *, float); +float __ovld atomic_fetch_min_explicit(volatile atomic_float *, + float, memory_order); +float __ovld atomic_fetch_max_explicit(volatile atomic_float *, + float, memory_order); +float __ovld atomic_fetch_min_explicit(volatile atomic_float *, + float, memory_order, memory_scope); +float __ovld atomic_fetch_max_explicit(volatile atomic_float *, + float, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp32_global_atomic_min_max) && \ + defined(__opencl_c_ext_fp32_local_atomic_min_max) + +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#if defined(__opencl_c_ext_fp64_global_atomic_min_max) +double __ovld atomic_fetch_min(volatile __global atomic_double *, double); +double __ovld atomic_fetch_max(volatile __global atomic_double *, double); +double __ovld atomic_fetch_min_explicit(volatile __global atomic_double *, + double, memory_order); +double __ovld atomic_fetch_max_explicit(volatile __global atomic_double *, + double, memory_order); +double __ovld atomic_fetch_min_explicit(volatile __global atomic_double *, + double, memory_order, memory_scope); +double __ovld atomic_fetch_max_explicit(volatile __global atomic_double *, + double, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp64_global_atomic_min_max) + +#if defined(__opencl_c_ext_fp64_local_atomic_min_max) +double __ovld atomic_fetch_min(volatile __local atomic_double *, double); +double __ovld atomic_fetch_max(volatile __local atomic_double *, double); +double __ovld atomic_fetch_min_explicit(volatile __local atomic_double *, + double, memory_order); +double __ovld atomic_fetch_max_explicit(volatile __local atomic_double *, + double, memory_order); +double __ovld atomic_fetch_min_explicit(volatile __local atomic_double *, + double, memory_order, memory_scope); +double __ovld atomic_fetch_max_explicit(volatile __local atomic_double *, + double, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp64_local_atomic_min_max) + +#if defined(__opencl_c_ext_fp64_global_atomic_min_max) && \ + defined(__opencl_c_ext_fp64_local_atomic_min_max) +double __ovld atomic_fetch_min(volatile atomic_double *, double); +double __ovld atomic_fetch_max(volatile atomic_double *, double); +double __ovld atomic_fetch_min_explicit(volatile atomic_double *, + double, memory_order); +double __ovld atomic_fetch_max_explicit(volatile atomic_double *, + double, memory_order); +double __ovld atomic_fetch_min_explicit(volatile atomic_double *, + double, memory_order, memory_scope); +double __ovld atomic_fetch_max_explicit(volatile atomic_double *, + double, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp64_global_atomic_min_max) && \ + defined(__opencl_c_ext_fp64_local_atomic_min_max) +#endif // defined(cl_khr_int64_base_atomics) && \ + defined(cl_khr_int64_extended_atomics) + +#if defined(__opencl_c_ext_fp16_global_atomic_add) +half __ovld atomic_fetch_add(volatile __global atomic_half *, half); +half __ovld atomic_fetch_sub(volatile __global atomic_half *, half); +half __ovld atomic_fetch_add_explicit(volatile __global atomic_half *, + half, memory_order); +half __ovld atomic_fetch_sub_explicit(volatile __global atomic_half *, + half, memory_order); +half __ovld atomic_fetch_add_explicit(volatile __global atomic_half *, + half, memory_order, memory_scope); +half __ovld atomic_fetch_sub_explicit(volatile __global atomic_half *, + half, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp16_global_atomic_add) + +#if defined(__opencl_c_ext_fp16_local_atomic_add) +half __ovld atomic_fetch_add(volatile __local atomic_half *, half); +half __ovld atomic_fetch_sub(volatile __local atomic_half *, half); +half __ovld atomic_fetch_add_explicit(volatile __local atomic_half *, + half, memory_order); +half __ovld atomic_fetch_sub_explicit(volatile __local atomic_half *, + half, memory_order); +half __ovld atomic_fetch_add_explicit(volatile __local atomic_half *, + half, memory_order, memory_scope); +half __ovld atomic_fetch_sub_explicit(volatile __local atomic_half *, + half, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp16_local_atomic_add) + +#if defined(__opencl_c_ext_fp16_global_atomic_add) && \ + defined(__opencl_c_ext_fp16_local_atomic_add) +half __ovld atomic_fetch_add(volatile atomic_half *, half); +half __ovld atomic_fetch_sub(volatile atomic_half *, half); +half __ovld atomic_fetch_add_explicit(volatile atomic_half *, + half, memory_order); +half __ovld atomic_fetch_sub_explicit(volatile atomic_half *, + half, memory_order); +half __ovld atomic_fetch_add_explicit(volatile atomic_half *, + half, memory_order, memory_scope); +half __ovld atomic_fetch_sub_explicit(volatile atomic_half *, + half, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp16_global_atomic_add) && \ + defined(__opencl_c_ext_fp16_local_atomic_add) + +#if defined(__opencl_c_ext_fp32_global_atomic_add) +float __ovld atomic_fetch_add(volatile __global atomic_float *, float); +float __ovld atomic_fetch_sub(volatile __global atomic_float *, float); +float __ovld atomic_fetch_add_explicit(volatile __global atomic_float *, + float, memory_order); +float __ovld atomic_fetch_sub_explicit(volatile __global atomic_float *, + float, memory_order); +float __ovld atomic_fetch_add_explicit(volatile __global atomic_float *, + float, memory_order, memory_scope); +float __ovld atomic_fetch_sub_explicit(volatile __global atomic_float *, + float, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp32_global_atomic_add) + +#if defined(__opencl_c_ext_fp32_local_atomic_add) +float __ovld atomic_fetch_add(volatile __local atomic_float *, float); +float __ovld atomic_fetch_sub(volatile __local atomic_float *, float); +float __ovld atomic_fetch_add_explicit(volatile __local atomic_float *, + float, memory_order); +float __ovld atomic_fetch_sub_explicit(volatile __local atomic_float *, + float, memory_order); +float __ovld atomic_fetch_add_explicit(volatile __local atomic_float *, + float, memory_order, memory_scope); +float __ovld atomic_fetch_sub_explicit(volatile __local atomic_float *, + float, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp32_local_atomic_add) + +#if defined(__opencl_c_ext_fp32_global_atomic_add) && \ + defined(__opencl_c_ext_fp32_local_atomic_add) +float __ovld atomic_fetch_add(volatile atomic_float *, float); +float __ovld atomic_fetch_sub(volatile atomic_float *, float); +float __ovld atomic_fetch_add_explicit(volatile atomic_float *, + float, memory_order); +float __ovld atomic_fetch_sub_explicit(volatile atomic_float *, + float, memory_order); +float __ovld atomic_fetch_add_explicit(volatile atomic_float *, + float, memory_order, memory_scope); +float __ovld atomic_fetch_sub_explicit(volatile atomic_float *, + float, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp32_global_atomic_add) && \ + defined(__opencl_c_ext_fp32_local_atomic_add) + +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#if defined(__opencl_c_ext_fp64_global_atomic_add) +double __ovld atomic_fetch_add(volatile __global atomic_double *, double); +double __ovld atomic_fetch_sub(volatile __global atomic_double *, double); +double __ovld atomic_fetch_add_explicit(volatile __global atomic_double *, + double, memory_order); +double __ovld atomic_fetch_sub_explicit(volatile __global atomic_double *, + double, memory_order); +double __ovld atomic_fetch_add_explicit(volatile __global atomic_double *, + double, memory_order, memory_scope); +double __ovld atomic_fetch_sub_explicit(volatile __global atomic_double *, + double, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp64_global_atomic_add) + +#if defined(__opencl_c_ext_fp64_local_atomic_add) +double __ovld atomic_fetch_add(volatile __local atomic_double *, double); +double __ovld atomic_fetch_sub(volatile __local atomic_double *, double); +double __ovld atomic_fetch_add_explicit(volatile __local atomic_double *, + double, memory_order); +double __ovld atomic_fetch_sub_explicit(volatile __local atomic_double *, + double, memory_order); +double __ovld atomic_fetch_add_explicit(volatile __local atomic_double *, + double, memory_order, memory_scope); +double __ovld atomic_fetch_sub_explicit(volatile __local atomic_double *, + double, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp64_local_atomic_add) + +#if defined(__opencl_c_ext_fp64_global_atomic_add) && \ + defined(__opencl_c_ext_fp64_local_atomic_add) +double __ovld atomic_fetch_add(volatile atomic_double *, double); +double __ovld atomic_fetch_sub(volatile atomic_double *, double); +double __ovld atomic_fetch_add_explicit(volatile atomic_double *, + double, memory_order); +double __ovld atomic_fetch_sub_explicit(volatile atomic_double *, + double, memory_order); +double __ovld atomic_fetch_add_explicit(volatile atomic_double *, + double, memory_order, memory_scope); +double __ovld atomic_fetch_sub_explicit(volatile atomic_double *, + double, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp64_global_atomic_add) && \ + defined(__opencl_c_ext_fp64_local_atomic_add) +#endif // defined(cl_khr_int64_base_atomics) && \ + defined(cl_khr_int64_extended_atomics) + +#endif // cl_ext_float_atomics // atomic_store() -void __ovld atomic_store(volatile atomic_int *object, int desired); -void __ovld atomic_store_explicit(volatile atomic_int *object, int desired, memory_order order); -void __ovld atomic_store_explicit(volatile atomic_int *object, int desired, memory_order order, memory_scope scope); -void __ovld atomic_store(volatile atomic_uint *object, uint desired); -void __ovld atomic_store_explicit(volatile atomic_uint *object, uint desired, memory_order order); -void __ovld atomic_store_explicit(volatile atomic_uint *object, uint desired, memory_order order, memory_scope scope); -void __ovld atomic_store(volatile atomic_float *object, float desired); -void __ovld atomic_store_explicit(volatile atomic_float *object, float desired, memory_order order); -void __ovld atomic_store_explicit(volatile atomic_float *object, float desired, memory_order order, memory_scope scope); +#if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device) +#if defined(__opencl_c_generic_address_space) +void __ovld atomic_store(volatile atomic_int *, int); +void __ovld atomic_store(volatile atomic_uint *, uint); +void __ovld atomic_store(volatile atomic_float *, float); + #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) #ifdef cl_khr_fp64 -void __ovld atomic_store(volatile atomic_double *object, double desired); -void __ovld atomic_store_explicit(volatile atomic_double *object, double desired, memory_order order); -void __ovld atomic_store_explicit(volatile atomic_double *object, double desired, memory_order order, memory_scope scope); +void __ovld atomic_store(volatile atomic_double *, double); #endif //cl_khr_fp64 -void __ovld atomic_store(volatile atomic_long *object, long desired); -void __ovld atomic_store_explicit(volatile atomic_long *object, long desired, memory_order order); -void __ovld atomic_store_explicit(volatile atomic_long *object, long desired, memory_order order, memory_scope scope); -void __ovld atomic_store(volatile atomic_ulong *object, ulong desired); -void __ovld atomic_store_explicit(volatile atomic_ulong *object, ulong desired, memory_order order); -void __ovld atomic_store_explicit(volatile atomic_ulong *object, ulong desired, memory_order order, memory_scope scope); +void __ovld atomic_store(volatile atomic_long *, long); +void __ovld atomic_store(volatile atomic_ulong *, ulong); +#endif +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +void __ovld atomic_store(volatile __global atomic_int *, int); +void __ovld atomic_store(volatile __local atomic_int *, int); +void __ovld atomic_store(volatile __global atomic_uint *, uint); +void __ovld atomic_store(volatile __local atomic_uint *, uint); +void __ovld atomic_store(volatile __global atomic_float *, float); +void __ovld atomic_store(volatile __local atomic_float *, float); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +void __ovld atomic_store(volatile __global atomic_double *, double); +void __ovld atomic_store(volatile __local atomic_double *, double); +#endif //cl_khr_fp64 +void __ovld atomic_store(volatile __global atomic_long *, long); +void __ovld atomic_store(volatile __local atomic_long *, long); +void __ovld atomic_store(volatile __global atomic_ulong *, ulong); +void __ovld atomic_store(volatile __local atomic_ulong *, ulong); +#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +#endif + +#if defined(__opencl_c_atomic_scope_device) +#if defined(__opencl_c_generic_address_space) +void __ovld atomic_store_explicit(volatile atomic_int *, int, memory_order); +void __ovld atomic_store_explicit(volatile atomic_uint *, uint, memory_order); +void __ovld atomic_store_explicit(volatile atomic_float *, float, memory_order); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +void __ovld atomic_store_explicit(volatile atomic_double *, double, memory_order); +#endif //cl_khr_fp64 +void __ovld atomic_store_explicit(volatile atomic_long *, long, memory_order); +void __ovld atomic_store_explicit(volatile atomic_ulong *, ulong, memory_order); +#endif +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +void __ovld atomic_store_explicit(volatile __global atomic_int *, int, memory_order); +void __ovld atomic_store_explicit(volatile __local atomic_int *, int, memory_order); +void __ovld atomic_store_explicit(volatile __global atomic_uint *, uint, memory_order); +void __ovld atomic_store_explicit(volatile __local atomic_uint *, uint, memory_order); +void __ovld atomic_store_explicit(volatile __global atomic_float *, float, memory_order); +void __ovld atomic_store_explicit(volatile __local atomic_float *, float, memory_order); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +void __ovld atomic_store_explicit(volatile __global atomic_double *, double, memory_order); +void __ovld atomic_store_explicit(volatile __local atomic_double *, double, memory_order); +#endif +void __ovld atomic_store_explicit(volatile __global atomic_long *, long, memory_order); +void __ovld atomic_store_explicit(volatile __local atomic_long *, long, memory_order); +void __ovld atomic_store_explicit(volatile __global atomic_ulong *, ulong, memory_order); +void __ovld atomic_store_explicit(volatile __local atomic_ulong *, ulong, memory_order); +#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) #endif +#if defined(__opencl_c_generic_address_space) +void __ovld atomic_store_explicit(volatile atomic_int *, int, memory_order, memory_scope); +void __ovld atomic_store_explicit(volatile atomic_uint *, uint, memory_order, memory_scope); +void __ovld atomic_store_explicit(volatile atomic_float *, float, memory_order, memory_scope); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +void __ovld atomic_store_explicit(volatile atomic_double *, double, memory_order, memory_scope); +#endif //cl_khr_fp64 +void __ovld atomic_store_explicit(volatile atomic_long *, long, memory_order, memory_scope); +void __ovld atomic_store_explicit(volatile atomic_ulong *, ulong, memory_order, memory_scope); +#endif +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +void __ovld atomic_store_explicit(volatile __global atomic_int *, int, memory_order, memory_scope); +void __ovld atomic_store_explicit(volatile __local atomic_int *, int, memory_order, memory_scope); +void __ovld atomic_store_explicit(volatile __global atomic_uint *, uint, memory_order, memory_scope); +void __ovld atomic_store_explicit(volatile __local atomic_uint *, uint, memory_order, memory_scope); +void __ovld atomic_store_explicit(volatile __global atomic_float *, float, memory_order, memory_scope); +void __ovld atomic_store_explicit(volatile __local atomic_float *, float, memory_order, memory_scope); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +void __ovld atomic_store_explicit(volatile __global atomic_double *, double, memory_order, memory_scope); +void __ovld atomic_store_explicit(volatile __local atomic_double *, double, memory_order, memory_scope); +#endif //cl_khr_fp64 +void __ovld atomic_store_explicit(volatile __global atomic_long *, long, memory_order, memory_scope); +void __ovld atomic_store_explicit(volatile __local atomic_long *, long, memory_order, memory_scope); +void __ovld atomic_store_explicit(volatile __global atomic_ulong *, ulong, memory_order, memory_scope); +void __ovld atomic_store_explicit(volatile __local atomic_ulong *, ulong, memory_order, memory_scope); +#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) + // atomic_load() +#if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device) +#if defined(__opencl_c_generic_address_space) +int __ovld atomic_load(volatile atomic_int *); +uint __ovld atomic_load(volatile atomic_uint *); +float __ovld atomic_load(volatile atomic_float *); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +double __ovld atomic_load(volatile atomic_double *); +#endif //cl_khr_fp64 +long __ovld atomic_load(volatile atomic_long *); +ulong __ovld atomic_load(volatile atomic_ulong *); +#endif +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +int __ovld atomic_load(volatile __global atomic_int *); +int __ovld atomic_load(volatile __local atomic_int *); +uint __ovld atomic_load(volatile __global atomic_uint *); +uint __ovld atomic_load(volatile __local atomic_uint *); +float __ovld atomic_load(volatile __global atomic_float *); +float __ovld atomic_load(volatile __local atomic_float *); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +double __ovld atomic_load(volatile __global atomic_double *); +double __ovld atomic_load(volatile __local atomic_double *); +#endif //cl_khr_fp64 +long __ovld atomic_load(volatile __global atomic_long *); +long __ovld atomic_load(volatile __local atomic_long *); +ulong __ovld atomic_load(volatile __global atomic_ulong *); +ulong __ovld atomic_load(volatile __local atomic_ulong *); +#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +#endif -int __ovld atomic_load(volatile atomic_int *object); -int __ovld atomic_load_explicit(volatile atomic_int *object, memory_order order); -int __ovld atomic_load_explicit(volatile atomic_int *object, memory_order order, memory_scope scope); -uint __ovld atomic_load(volatile atomic_uint *object); -uint __ovld atomic_load_explicit(volatile atomic_uint *object, memory_order order); -uint __ovld atomic_load_explicit(volatile atomic_uint *object, memory_order order, memory_scope scope); -float __ovld atomic_load(volatile atomic_float *object); -float __ovld atomic_load_explicit(volatile atomic_float *object, memory_order order); -float __ovld atomic_load_explicit(volatile atomic_float *object, memory_order order, memory_scope scope); +#if defined(__opencl_c_atomic_scope_device) +#if defined(__opencl_c_generic_address_space) +int __ovld atomic_load_explicit(volatile atomic_int *, memory_order); +uint __ovld atomic_load_explicit(volatile atomic_uint *, memory_order); +float __ovld atomic_load_explicit(volatile atomic_float *, memory_order); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +double __ovld atomic_load_explicit(volatile atomic_double *, memory_order); +#endif //cl_khr_fp64 +long __ovld atomic_load_explicit(volatile atomic_long *, memory_order); +ulong __ovld atomic_load_explicit(volatile atomic_ulong *, memory_order); +#endif +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +int __ovld atomic_load_explicit(volatile __global atomic_int *, memory_order); +int __ovld atomic_load_explicit(volatile __local atomic_int *, memory_order); +uint __ovld atomic_load_explicit(volatile __global atomic_uint *, memory_order); +uint __ovld atomic_load_explicit(volatile __local atomic_uint *, memory_order); +float __ovld atomic_load_explicit(volatile __global atomic_float *, memory_order); +float __ovld atomic_load_explicit(volatile __local atomic_float *, memory_order); #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) #ifdef cl_khr_fp64 -double __ovld atomic_load(volatile atomic_double *object); -double __ovld atomic_load_explicit(volatile atomic_double *object, memory_order order); -double __ovld atomic_load_explicit(volatile atomic_double *object, memory_order order, memory_scope scope); +double __ovld atomic_load_explicit(volatile __global atomic_double *, memory_order); +double __ovld atomic_load_explicit(volatile __local atomic_double *, memory_order); #endif //cl_khr_fp64 -long __ovld atomic_load(volatile atomic_long *object); -long __ovld atomic_load_explicit(volatile atomic_long *object, memory_order order); -long __ovld atomic_load_explicit(volatile atomic_long *object, memory_order order, memory_scope scope); -ulong __ovld atomic_load(volatile atomic_ulong *object); -ulong __ovld atomic_load_explicit(volatile atomic_ulong *object, memory_order order); -ulong __ovld atomic_load_explicit(volatile atomic_ulong *object, memory_order order, memory_scope scope); +long __ovld atomic_load_explicit(volatile __global atomic_long *, memory_order); +long __ovld atomic_load_explicit(volatile __local atomic_long *, memory_order); +ulong __ovld atomic_load_explicit(volatile __global atomic_ulong *, memory_order); +ulong __ovld atomic_load_explicit(volatile __local atomic_ulong *, memory_order); +#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) #endif +#if defined(__opencl_c_generic_address_space) +int __ovld atomic_load_explicit(volatile atomic_int *, memory_order, memory_scope); +uint __ovld atomic_load_explicit(volatile atomic_uint *, memory_order, memory_scope); +float __ovld atomic_load_explicit(volatile atomic_float *, memory_order, memory_scope); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +double __ovld atomic_load_explicit(volatile atomic_double *, memory_order, memory_scope); +#endif //cl_khr_fp64 +long __ovld atomic_load_explicit(volatile atomic_long *, memory_order, memory_scope); +ulong __ovld atomic_load_explicit(volatile atomic_ulong *, memory_order, memory_scope); +#endif +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +int __ovld atomic_load_explicit(volatile __global atomic_int *, memory_order, memory_scope); +int __ovld atomic_load_explicit(volatile __local atomic_int *, memory_order, memory_scope); +uint __ovld atomic_load_explicit(volatile __global atomic_uint *, memory_order, memory_scope); +uint __ovld atomic_load_explicit(volatile __local atomic_uint *, memory_order, memory_scope); +float __ovld atomic_load_explicit(volatile __global atomic_float *, memory_order, memory_scope); +float __ovld atomic_load_explicit(volatile __local atomic_float *, memory_order, memory_scope); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +double __ovld atomic_load_explicit(volatile __global atomic_double *, memory_order, memory_scope); +double __ovld atomic_load_explicit(volatile __local atomic_double *, memory_order, memory_scope); +#endif +long __ovld atomic_load_explicit(volatile __global atomic_long *, memory_order, memory_scope); +long __ovld atomic_load_explicit(volatile __local atomic_long *, memory_order, memory_scope); +ulong __ovld atomic_load_explicit(volatile __global atomic_ulong *, memory_order, memory_scope); +ulong __ovld atomic_load_explicit(volatile __local atomic_ulong *, memory_order, memory_scope); +#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) + // atomic_exchange() -int __ovld atomic_exchange(volatile atomic_int *object, int desired); -int __ovld atomic_exchange_explicit(volatile atomic_int *object, int desired, memory_order order); -int __ovld atomic_exchange_explicit(volatile atomic_int *object, int desired, memory_order order, memory_scope scope); -uint __ovld atomic_exchange(volatile atomic_uint *object, uint desired); -uint __ovld atomic_exchange_explicit(volatile atomic_uint *object, uint desired, memory_order order); -uint __ovld atomic_exchange_explicit(volatile atomic_uint *object, uint desired, memory_order order, memory_scope scope); -float __ovld atomic_exchange(volatile atomic_float *object, float desired); -float __ovld atomic_exchange_explicit(volatile atomic_float *object, float desired, memory_order order); -float __ovld atomic_exchange_explicit(volatile atomic_float *object, float desired, memory_order order, memory_scope scope); +#if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device) +#if defined(__opencl_c_generic_address_space) +int __ovld atomic_exchange(volatile atomic_int *, int); +uint __ovld atomic_exchange(volatile atomic_uint *, uint); +float __ovld atomic_exchange(volatile atomic_float *, float); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +double __ovld atomic_exchange(volatile atomic_double *, double); +#endif //cl_khr_fp64 +long __ovld atomic_exchange(volatile atomic_long *, long); +ulong __ovld atomic_exchange(volatile atomic_ulong *, ulong); +#endif +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +int __ovld atomic_exchange(volatile __global atomic_int *, int); +int __ovld atomic_exchange(volatile __local atomic_int *, int); +uint __ovld atomic_exchange(volatile __global atomic_uint *, uint); +uint __ovld atomic_exchange(volatile __local atomic_uint *, uint); +float __ovld atomic_exchange(volatile __global atomic_float *, float); +float __ovld atomic_exchange(volatile __local atomic_float *, float); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +double __ovld atomic_exchange(volatile __global atomic_double *, double); +double __ovld atomic_exchange(volatile __local atomic_double *, double); +#endif //cl_khr_fp64 +long __ovld atomic_exchange(volatile __global atomic_long *, long); +long __ovld atomic_exchange(volatile __local atomic_long *, long); +ulong __ovld atomic_exchange(volatile __global atomic_ulong *, ulong); +ulong __ovld atomic_exchange(volatile __local atomic_ulong *, ulong); +#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +#endif + +#if defined(__opencl_c_atomic_scope_device) +#if defined(__opencl_c_generic_address_space) +int __ovld atomic_exchange_explicit(volatile atomic_int *, int, memory_order); +uint __ovld atomic_exchange_explicit(volatile atomic_uint *, uint, memory_order); +float __ovld atomic_exchange_explicit(volatile atomic_float *, float, memory_order); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +double __ovld atomic_exchange_explicit(volatile atomic_double *, double, memory_order); +#endif //cl_khr_fp64 +long __ovld atomic_exchange_explicit(volatile atomic_long *, long, memory_order); +ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *, ulong, memory_order); +#endif +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +int __ovld atomic_exchange_explicit(volatile __global atomic_int *, int, memory_order); +int __ovld atomic_exchange_explicit(volatile __local atomic_int *, int, memory_order); +uint __ovld atomic_exchange_explicit(volatile __global atomic_uint *, uint, memory_order); +uint __ovld atomic_exchange_explicit(volatile __local atomic_uint *, uint, memory_order); +float __ovld atomic_exchange_explicit(volatile __global atomic_float *, float, memory_order); +float __ovld atomic_exchange_explicit(volatile __local atomic_float *, float, memory_order); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +double __ovld atomic_exchange_explicit(volatile __global atomic_double *, double, memory_order); +double __ovld atomic_exchange_explicit(volatile __local atomic_double *, double, memory_order); +#endif //cl_khr_fp64 +long __ovld atomic_exchange_explicit(volatile __global atomic_long *, long, memory_order); +long __ovld atomic_exchange_explicit(volatile __local atomic_long *, long, memory_order); +ulong __ovld atomic_exchange_explicit(volatile __global atomic_ulong *, ulong, memory_order); +ulong __ovld atomic_exchange_explicit(volatile __local atomic_ulong *, ulong, memory_order); +#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)wi +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +#endif + +#if defined(__opencl_c_generic_address_space) +int __ovld atomic_exchange_explicit(volatile atomic_int *, int, memory_order, memory_scope); +uint __ovld atomic_exchange_explicit(volatile atomic_uint *, uint, memory_order, memory_scope); +float __ovld atomic_exchange_explicit(volatile atomic_float *, float, memory_order, memory_scope); #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) #ifdef cl_khr_fp64 -double __ovld atomic_exchange(volatile atomic_double *object, double desired); -double __ovld atomic_exchange_explicit(volatile atomic_double *object, double desired, memory_order order); -double __ovld atomic_exchange_explicit(volatile atomic_double *object, double desired, memory_order order, memory_scope scope); +double __ovld atomic_exchange_explicit(volatile atomic_double *, double, memory_order, memory_scope); #endif //cl_khr_fp64 -long __ovld atomic_exchange(volatile atomic_long *object, long desired); -long __ovld atomic_exchange_explicit(volatile atomic_long *object, long desired, memory_order order); -long __ovld atomic_exchange_explicit(volatile atomic_long *object, long desired, memory_order order, memory_scope scope); -ulong __ovld atomic_exchange(volatile atomic_ulong *object, ulong desired); -ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *object, ulong desired, memory_order order); -ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *object, ulong desired, memory_order order, memory_scope scope); +long __ovld atomic_exchange_explicit(volatile atomic_long *, long, memory_order, memory_scope); +ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *, ulong, memory_order, memory_scope); #endif +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +int __ovld atomic_exchange_explicit(volatile __global atomic_int *, int, memory_order, memory_scope); +int __ovld atomic_exchange_explicit(volatile __local atomic_int *, int, memory_order, memory_scope); +uint __ovld atomic_exchange_explicit(volatile __global atomic_uint *, uint, memory_order, memory_scope); +uint __ovld atomic_exchange_explicit(volatile __local atomic_uint *, uint, memory_order, memory_scope); +float __ovld atomic_exchange_explicit(volatile __global atomic_float *, float, memory_order, memory_scope); +float __ovld atomic_exchange_explicit(volatile __local atomic_float *, float, memory_order, memory_scope); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +double __ovld atomic_exchange_explicit(volatile __global atomic_double *, double, memory_order, memory_scope); +double __ovld atomic_exchange_explicit(volatile __local atomic_double *, double, memory_order, memory_scope); +#endif //cl_khr_fp64 +long __ovld atomic_exchange_explicit(volatile __global atomic_long *, long, memory_order, memory_scope); +long __ovld atomic_exchange_explicit(volatile __local atomic_long *, long, memory_order, memory_scope); +ulong __ovld atomic_exchange_explicit(volatile __global atomic_ulong *, ulong, memory_order, memory_scope); +ulong __ovld atomic_exchange_explicit(volatile __local atomic_ulong *, ulong, memory_order, memory_scope); +#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) // atomic_compare_exchange_strong() and atomic_compare_exchange_weak() +#if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device) +#if defined(__opencl_c_generic_address_space) +bool __ovld atomic_compare_exchange_strong(volatile atomic_int *, int *, int); +bool __ovld atomic_compare_exchange_strong(volatile atomic_uint *, uint *, uint); +bool __ovld atomic_compare_exchange_weak(volatile atomic_int *, int *, int); +bool __ovld atomic_compare_exchange_weak(volatile atomic_uint *, uint *, uint); +bool __ovld atomic_compare_exchange_strong(volatile atomic_float *, float *, float); +bool __ovld atomic_compare_exchange_weak(volatile atomic_float *, float *, float); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +bool __ovld atomic_compare_exchange_strong(volatile atomic_double *, double *, double); +bool __ovld atomic_compare_exchange_weak(volatile atomic_double *, double *, double); +#endif //cl_khr_fp64 +bool __ovld atomic_compare_exchange_strong(volatile atomic_long *, long *, long); +bool __ovld atomic_compare_exchange_weak(volatile atomic_long *, long *, long); +bool __ovld atomic_compare_exchange_strong(volatile atomic_ulong *, ulong *, ulong); +bool __ovld atomic_compare_exchange_weak(volatile atomic_ulong *, ulong *, ulong); +#endif +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_int *, __global int *, int); +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_int *, __local int *, int); +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_int *, __private int *, int); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_int *, __global int *, int); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_int *, __local int *, int); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_int *, __private int *, int); +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_uint *, __global uint *, uint); +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_uint *, __local uint *, uint); +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_uint *, __private uint *, uint); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_uint *, __global uint *, uint); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_uint *, __local uint *, uint); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_uint *, __private uint *, uint); +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_float *, __global float *, float); +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_float *, __local float *, float); +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_float *, __private float *, float); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_float *, __global float *, float); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_float *, __local float *, float); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_float *, __private float *, float); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_int *, __global int *, int); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_int *, __local int *, int); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_int *, __private int *, int); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_int *, __global int *, int); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_int *, __local int *, int); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_int *, __private int *, int); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_uint *, __global uint *, uint); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_uint *, __local uint *, uint); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_uint *, __private uint *, uint); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_uint *, __global uint *, uint); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_uint *, __local uint *, uint); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_uint *, __private uint *, uint); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_float *, __global float *, float); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_float *, __local float *, float); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_float *, __private float *, float); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_float *, __global float *, float); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_float *, __local float *, float); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_float *, __private float *, float); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_double *, __global double *, double); +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_double *, __local double *, double); +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_double *, __private double *, double); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_double *, __global double *, double); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_double *, __local double *, double); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_double *, __private double *, double); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_double *, __global double *, double); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_double *, __local double *, double); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_double *, __private double *, double); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_double *, __global double *, double); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_double *, __local double *, double); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_double *, __private double *, double); +#endif //cl_khr_fp64 +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_long *, __global long *, long); +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_long *, __local long *, long); +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_long *, __private long *, long); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_long *, __global long *, long); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_long *, __local long *, long); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_long *, __private long *, long); +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_ulong *, __global ulong *, ulong); +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_ulong *, __local ulong *, ulong); +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_ulong *, __private ulong *, ulong); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_ulong *, __global ulong *, ulong); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_ulong *, __local ulong *, ulong); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_ulong *, __private ulong *, ulong); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_long *, __global long *, long); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_long *, __local long *, long); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_long *, __private long *, long); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_long *, __global long *, long); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_long *, __local long *, long); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_long *, __private long *, long); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_ulong *, __global ulong *, ulong); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_ulong *, __local ulong *, ulong); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_ulong *, __private ulong *, ulong); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_ulong *, __global ulong *, ulong); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_ulong *, __local ulong *, ulong); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_ulong *, __private ulong *, ulong); +#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +#endif -bool __ovld atomic_compare_exchange_strong(volatile atomic_int *object, int *expected, int desired); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *object, int *expected, - int desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *object, int *expected, - int desired, memory_order success, memory_order failure, memory_scope scope); -bool __ovld atomic_compare_exchange_strong(volatile atomic_uint *object, uint *expected, uint desired); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_uint *object, uint *expected, - uint desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_uint *object, uint *expected, - uint desired, memory_order success, memory_order failure, memory_scope scope); -bool __ovld atomic_compare_exchange_weak(volatile atomic_int *object, int *expected, int desired); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_int *object, int *expected, - int desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_int *object, int *expected, - int desired, memory_order success, memory_order failure, memory_scope scope); -bool __ovld atomic_compare_exchange_weak(volatile atomic_uint *object, uint *expected, uint desired); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_uint *object, uint *expected, - uint desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_uint *object, uint *expected, - uint desired, memory_order success, memory_order failure, memory_scope scope); -bool __ovld atomic_compare_exchange_strong(volatile atomic_float *object, float *expected, float desired); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_float *object, float *expected, - float desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_float *object, float *expected, - float desired, memory_order success, memory_order failure, memory_scope scope); -bool __ovld atomic_compare_exchange_weak(volatile atomic_float *object, float *expected, float desired); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_float *object, float *expected, - float desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_float *object, float *expected, - float desired, memory_order success, memory_order failure, memory_scope scope); +#if defined(__opencl_c_atomic_scope_device) +#if defined(__opencl_c_generic_address_space) +bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *, int *, int, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_uint *, uint *, uint, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_int *, int *, int, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_uint *, uint *, uint, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_float *, float *, float, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_float *, float *, float, memory_order, memory_order); #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) #ifdef cl_khr_fp64 -bool __ovld atomic_compare_exchange_strong(volatile atomic_double *object, double *expected, double desired); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_double *object, double *expected, - double desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_double *object, double *expected, - double desired, memory_order success, memory_order failure, memory_scope scope); -bool __ovld atomic_compare_exchange_weak(volatile atomic_double *object, double *expected, double desired); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_double *object, double *expected, - double desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_double *object, double *expected, - double desired, memory_order success, memory_order failure, memory_scope scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_double *, double *, double, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_double *, double *, double, memory_order, memory_order); #endif //cl_khr_fp64 -bool __ovld atomic_compare_exchange_strong(volatile atomic_long *object, long *expected, long desired); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_long *object, long *expected, - long desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_long *object, long *expected, - long desired, memory_order success, memory_order failure, memory_scope scope); -bool __ovld atomic_compare_exchange_weak(volatile atomic_long *object, long *expected, long desired); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_long *object, long *expected, - long desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_long *object, long *expected, - long desired, memory_order success, memory_order failure, memory_scope scope); -bool __ovld atomic_compare_exchange_strong(volatile atomic_ulong *object, ulong *expected, ulong desired); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_ulong *object, ulong *expected, - ulong desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_ulong *object, ulong *expected, - ulong desired, memory_order success, memory_order failure, memory_scope scope); -bool __ovld atomic_compare_exchange_weak(volatile atomic_ulong *object, ulong *expected, ulong desired); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_ulong *object, ulong *expected, - ulong desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_ulong *object, ulong *expected, - ulong desired, memory_order success, memory_order failure, memory_scope scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_long *, long *, long, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_long *, long *, long, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_ulong *, ulong *, ulong, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_ulong *, ulong *, ulong, memory_order, memory_order); #endif +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *, __global int *, int, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *, __local int *, int, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *, __private int *, int, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *, __global int *, int, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *, __local int *, int, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *, __private int *, int, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *, __global uint *, uint, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *, __local uint *, uint, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *, __private uint *, uint, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *, __global uint *, uint, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *, __local uint *, uint, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *, __private uint *, uint, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *, __global float *, float, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *, __local float *, float, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *, __private float *, float, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *, __global float *, float, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *, __local float *, float, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *, __private float *, float, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *, __global int *, int, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *, __local int *, int, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *, __private int *, int, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *, __global int *, int, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *, __local int *, int, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *, __private int *, int, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *, __global uint *, uint, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *, __local uint *, uint, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *, __private uint *, uint, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *, __global uint *, uint, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *, __local uint *, uint, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *, __private uint *, uint, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *, __global float *, float, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *, __local float *, float, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *, __private float *, float, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *, __global float *, float, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *, __local float *, float, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *, __private float *, float, memory_order, memory_order); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *, __global double *, double, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *, __local double *, double, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *, __private double *, double, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *, __global double *, double, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *, __local double *, double, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *, __private double *, double, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *, __global double *, double, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *, __local double *, double, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *, __private double *, double, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *, __global double *, double, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *, __local double *, double, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *, __private double *, double, memory_order, memory_order); +#endif //cl_khr_fp64 +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *, __global long *, long, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *, __local long *, long, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *, __private long *, long, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *, __global long *, long, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *, __local long *, long, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *, __private long *, long, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *, __global ulong *, ulong, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *, __local ulong *, ulong, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *, __private ulong *, ulong, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *, __global ulong *, ulong, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *, __local ulong *, ulong, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *, __private ulong *, ulong, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *, __global long *, long, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *, __local long *, long, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *, __private long *, long, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *, __global long *, long, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *, __local long *, long, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *, __private long *, long, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *, __global ulong *, ulong, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *, __local ulong *, ulong, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *, __private ulong *, ulong, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *, __global ulong *, ulong, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *, __local ulong *, ulong, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *, __private ulong *, ulong, memory_order, memory_order); +#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +#endif //defined(__opencl_c_atomic_scope_device) + +#if defined(__opencl_c_generic_address_space) +bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *, int *, int, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_uint *, uint *, uint, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_int *, int *, int, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_uint *, uint *, uint, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_float *, float *, float, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_float *, float *, float, memory_order, memory_order, memory_scope); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_double *, double *, double, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_double *, double *, double, memory_order, memory_order, memory_scope); +#endif //cl_khr_fp64 +bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_long *, long *, long, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_long *, long *, long, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_ulong *, ulong *, ulong, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_ulong *, ulong *, ulong, memory_order, memory_order, memory_scope); +#endif +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *, __global int *, int, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *, __local int *, int, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *, __private int *, int, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *, __global int *, int, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *, __local int *, int, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *, __private int *, int, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *, __global uint *, uint, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *, __local uint *, uint, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *, __private uint *, uint, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *, __global uint *, uint, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *, __local uint *, uint, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *, __private uint *, uint, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *, __global float *, float, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *, __local float *, float, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *, __private float *, float, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *, __global float *, float, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *, __local float *, float, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *, __private float *, float, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *, __global int *, int, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *, __local int *, int, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *, __private int *, int, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *, __global int *, int, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *, __local int *, int, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *, __private int *, int, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *, __global uint *, uint, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *, __local uint *, uint, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *, __private uint *, uint, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *, __global uint *, uint, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *, __local uint *, uint, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *, __private uint *, uint, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *, __global float *, float, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *, __local float *, float, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *, __private float *, float, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *, __global float *, float, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *, __local float *, float, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *, __private float *, float, memory_order, memory_order, memory_scope); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *, __global double *, double, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *, __local double *, double, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *, __private double *, double, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *, __global double *, double, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *, __local double *, double, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *, __private double *, double, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *, __global double *, double, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *, __local double *, double, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *, __private double *, double, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *, __global double *, double, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *, __local double *, double, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *, __private double *, double, memory_order, memory_order, memory_scope); +#endif //cl_khr_fp64 +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *, __global long *, long, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *, __local long *, long, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *, __private long *, long, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *, __global long *, long, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *, __local long *, long, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *, __private long *, long, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *, __global ulong *, ulong, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *, __local ulong *, ulong, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *, __private ulong *, ulong, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *, __global ulong *, ulong, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *, __local ulong *, ulong, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *, __private ulong *, ulong, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *, __global long *, long, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *, __local long *, long, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *, __private long *, long, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *, __global long *, long, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *, __local long *, long, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *, __private long *, long, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *, __global ulong *, ulong, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *, __local ulong *, ulong, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *, __private ulong *, ulong, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *, __global ulong *, ulong, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *, __local ulong *, ulong, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *, __private ulong *, ulong, memory_order, memory_order, memory_scope); +#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) // atomic_flag_test_and_set() and atomic_flag_clear() +#if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device) +#if defined(__opencl_c_generic_address_space) +bool __ovld atomic_flag_test_and_set(volatile atomic_flag *); +void __ovld atomic_flag_clear(volatile atomic_flag *); +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +bool __ovld atomic_flag_test_and_set(volatile __global atomic_flag *); +bool __ovld atomic_flag_test_and_set(volatile __local atomic_flag *); +void __ovld atomic_flag_clear(volatile __global atomic_flag *); +void __ovld atomic_flag_clear(volatile __local atomic_flag *); +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +#endif -bool __ovld atomic_flag_test_and_set(volatile atomic_flag *object); -bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order); -bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order, memory_scope scope); -void __ovld atomic_flag_clear(volatile atomic_flag *object); -void __ovld atomic_flag_clear_explicit(volatile atomic_flag *object, memory_order order); -void __ovld atomic_flag_clear_explicit(volatile atomic_flag *object, memory_order order, memory_scope scope); +#if defined(__opencl_c_atomic_scope_device) +#if defined(__opencl_c_generic_address_space) +bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *, memory_order); +void __ovld atomic_flag_clear_explicit(volatile atomic_flag *, memory_order); +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +bool __ovld atomic_flag_test_and_set_explicit(volatile __global atomic_flag *, memory_order); +bool __ovld atomic_flag_test_and_set_explicit(volatile __local atomic_flag *, memory_order); +void __ovld atomic_flag_clear_explicit(volatile __global atomic_flag *, memory_order); +void __ovld atomic_flag_clear_explicit(volatile __local atomic_flag *, memory_order); +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +#endif +#if defined(__opencl_c_generic_address_space) +bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *, memory_order, memory_scope); +void __ovld atomic_flag_clear_explicit(volatile atomic_flag *, memory_order, memory_scope); +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +bool __ovld atomic_flag_test_and_set_explicit(volatile __global atomic_flag *, memory_order, memory_scope); +bool __ovld atomic_flag_test_and_set_explicit(volatile __local atomic_flag *, memory_order, memory_scope); +void __ovld atomic_flag_clear_explicit(volatile __global atomic_flag *, memory_order, memory_scope); +void __ovld atomic_flag_clear_explicit(volatile __local atomic_flag *, memory_order, memory_scope); +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) // OpenCL v1.1 s6.11.12, v1.2 s6.12.12, v2.0 s6.13.12 - Miscellaneous Vector Functions @@ -14306,452 +15362,452 @@ void __ovld atomic_flag_clear_explicit(volatile atomic_flag *object, memory_orde * short8 b; * b = shuffle(a, mask); <- not valid */ -char2 __ovld __cnfn shuffle(char2 x, uchar2 mask); -char2 __ovld __cnfn shuffle(char4 x, uchar2 mask); -char2 __ovld __cnfn shuffle(char8 x, uchar2 mask); -char2 __ovld __cnfn shuffle(char16 x, uchar2 mask); - -uchar2 __ovld __cnfn shuffle(uchar2 x, uchar2 mask); -uchar2 __ovld __cnfn shuffle(uchar4 x, uchar2 mask); -uchar2 __ovld __cnfn shuffle(uchar8 x, uchar2 mask); -uchar2 __ovld __cnfn shuffle(uchar16 x, uchar2 mask); - -short2 __ovld __cnfn shuffle(short2 x, ushort2 mask); -short2 __ovld __cnfn shuffle(short4 x, ushort2 mask); -short2 __ovld __cnfn shuffle(short8 x, ushort2 mask); -short2 __ovld __cnfn shuffle(short16 x, ushort2 mask); - -ushort2 __ovld __cnfn shuffle(ushort2 x, ushort2 mask); -ushort2 __ovld __cnfn shuffle(ushort4 x, ushort2 mask); -ushort2 __ovld __cnfn shuffle(ushort8 x, ushort2 mask); -ushort2 __ovld __cnfn shuffle(ushort16 x, ushort2 mask); - -int2 __ovld __cnfn shuffle(int2 x, uint2 mask); -int2 __ovld __cnfn shuffle(int4 x, uint2 mask); -int2 __ovld __cnfn shuffle(int8 x, uint2 mask); -int2 __ovld __cnfn shuffle(int16 x, uint2 mask); - -uint2 __ovld __cnfn shuffle(uint2 x, uint2 mask); -uint2 __ovld __cnfn shuffle(uint4 x, uint2 mask); -uint2 __ovld __cnfn shuffle(uint8 x, uint2 mask); -uint2 __ovld __cnfn shuffle(uint16 x, uint2 mask); - -long2 __ovld __cnfn shuffle(long2 x, ulong2 mask); -long2 __ovld __cnfn shuffle(long4 x, ulong2 mask); -long2 __ovld __cnfn shuffle(long8 x, ulong2 mask); -long2 __ovld __cnfn shuffle(long16 x, ulong2 mask); - -ulong2 __ovld __cnfn shuffle(ulong2 x, ulong2 mask); -ulong2 __ovld __cnfn shuffle(ulong4 x, ulong2 mask); -ulong2 __ovld __cnfn shuffle(ulong8 x, ulong2 mask); -ulong2 __ovld __cnfn shuffle(ulong16 x, ulong2 mask); - -float2 __ovld __cnfn shuffle(float2 x, uint2 mask); -float2 __ovld __cnfn shuffle(float4 x, uint2 mask); -float2 __ovld __cnfn shuffle(float8 x, uint2 mask); -float2 __ovld __cnfn shuffle(float16 x, uint2 mask); - -char4 __ovld __cnfn shuffle(char2 x, uchar4 mask); -char4 __ovld __cnfn shuffle(char4 x, uchar4 mask); -char4 __ovld __cnfn shuffle(char8 x, uchar4 mask); -char4 __ovld __cnfn shuffle(char16 x, uchar4 mask); - -uchar4 __ovld __cnfn shuffle(uchar2 x, uchar4 mask); -uchar4 __ovld __cnfn shuffle(uchar4 x, uchar4 mask); -uchar4 __ovld __cnfn shuffle(uchar8 x, uchar4 mask); -uchar4 __ovld __cnfn shuffle(uchar16 x, uchar4 mask); - -short4 __ovld __cnfn shuffle(short2 x, ushort4 mask); -short4 __ovld __cnfn shuffle(short4 x, ushort4 mask); -short4 __ovld __cnfn shuffle(short8 x, ushort4 mask); -short4 __ovld __cnfn shuffle(short16 x, ushort4 mask); - -ushort4 __ovld __cnfn shuffle(ushort2 x, ushort4 mask); -ushort4 __ovld __cnfn shuffle(ushort4 x, ushort4 mask); -ushort4 __ovld __cnfn shuffle(ushort8 x, ushort4 mask); -ushort4 __ovld __cnfn shuffle(ushort16 x, ushort4 mask); - -int4 __ovld __cnfn shuffle(int2 x, uint4 mask); -int4 __ovld __cnfn shuffle(int4 x, uint4 mask); -int4 __ovld __cnfn shuffle(int8 x, uint4 mask); -int4 __ovld __cnfn shuffle(int16 x, uint4 mask); - -uint4 __ovld __cnfn shuffle(uint2 x, uint4 mask); -uint4 __ovld __cnfn shuffle(uint4 x, uint4 mask); -uint4 __ovld __cnfn shuffle(uint8 x, uint4 mask); -uint4 __ovld __cnfn shuffle(uint16 x, uint4 mask); - -long4 __ovld __cnfn shuffle(long2 x, ulong4 mask); -long4 __ovld __cnfn shuffle(long4 x, ulong4 mask); -long4 __ovld __cnfn shuffle(long8 x, ulong4 mask); -long4 __ovld __cnfn shuffle(long16 x, ulong4 mask); - -ulong4 __ovld __cnfn shuffle(ulong2 x, ulong4 mask); -ulong4 __ovld __cnfn shuffle(ulong4 x, ulong4 mask); -ulong4 __ovld __cnfn shuffle(ulong8 x, ulong4 mask); -ulong4 __ovld __cnfn shuffle(ulong16 x, ulong4 mask); - -float4 __ovld __cnfn shuffle(float2 x, uint4 mask); -float4 __ovld __cnfn shuffle(float4 x, uint4 mask); -float4 __ovld __cnfn shuffle(float8 x, uint4 mask); -float4 __ovld __cnfn shuffle(float16 x, uint4 mask); - -char8 __ovld __cnfn shuffle(char2 x, uchar8 mask); -char8 __ovld __cnfn shuffle(char4 x, uchar8 mask); -char8 __ovld __cnfn shuffle(char8 x, uchar8 mask); -char8 __ovld __cnfn shuffle(char16 x, uchar8 mask); - -uchar8 __ovld __cnfn shuffle(uchar2 x, uchar8 mask); -uchar8 __ovld __cnfn shuffle(uchar4 x, uchar8 mask); -uchar8 __ovld __cnfn shuffle(uchar8 x, uchar8 mask); -uchar8 __ovld __cnfn shuffle(uchar16 x, uchar8 mask); - -short8 __ovld __cnfn shuffle(short2 x, ushort8 mask); -short8 __ovld __cnfn shuffle(short4 x, ushort8 mask); -short8 __ovld __cnfn shuffle(short8 x, ushort8 mask); -short8 __ovld __cnfn shuffle(short16 x, ushort8 mask); - -ushort8 __ovld __cnfn shuffle(ushort2 x, ushort8 mask); -ushort8 __ovld __cnfn shuffle(ushort4 x, ushort8 mask); -ushort8 __ovld __cnfn shuffle(ushort8 x, ushort8 mask); -ushort8 __ovld __cnfn shuffle(ushort16 x, ushort8 mask); - -int8 __ovld __cnfn shuffle(int2 x, uint8 mask); -int8 __ovld __cnfn shuffle(int4 x, uint8 mask); -int8 __ovld __cnfn shuffle(int8 x, uint8 mask); -int8 __ovld __cnfn shuffle(int16 x, uint8 mask); - -uint8 __ovld __cnfn shuffle(uint2 x, uint8 mask); -uint8 __ovld __cnfn shuffle(uint4 x, uint8 mask); -uint8 __ovld __cnfn shuffle(uint8 x, uint8 mask); -uint8 __ovld __cnfn shuffle(uint16 x, uint8 mask); - -long8 __ovld __cnfn shuffle(long2 x, ulong8 mask); -long8 __ovld __cnfn shuffle(long4 x, ulong8 mask); -long8 __ovld __cnfn shuffle(long8 x, ulong8 mask); -long8 __ovld __cnfn shuffle(long16 x, ulong8 mask); - -ulong8 __ovld __cnfn shuffle(ulong2 x, ulong8 mask); -ulong8 __ovld __cnfn shuffle(ulong4 x, ulong8 mask); -ulong8 __ovld __cnfn shuffle(ulong8 x, ulong8 mask); -ulong8 __ovld __cnfn shuffle(ulong16 x, ulong8 mask); - -float8 __ovld __cnfn shuffle(float2 x, uint8 mask); -float8 __ovld __cnfn shuffle(float4 x, uint8 mask); -float8 __ovld __cnfn shuffle(float8 x, uint8 mask); -float8 __ovld __cnfn shuffle(float16 x, uint8 mask); - -char16 __ovld __cnfn shuffle(char2 x, uchar16 mask); -char16 __ovld __cnfn shuffle(char4 x, uchar16 mask); -char16 __ovld __cnfn shuffle(char8 x, uchar16 mask); -char16 __ovld __cnfn shuffle(char16 x, uchar16 mask); - -uchar16 __ovld __cnfn shuffle(uchar2 x, uchar16 mask); -uchar16 __ovld __cnfn shuffle(uchar4 x, uchar16 mask); -uchar16 __ovld __cnfn shuffle(uchar8 x, uchar16 mask); -uchar16 __ovld __cnfn shuffle(uchar16 x, uchar16 mask); - -short16 __ovld __cnfn shuffle(short2 x, ushort16 mask); -short16 __ovld __cnfn shuffle(short4 x, ushort16 mask); -short16 __ovld __cnfn shuffle(short8 x, ushort16 mask); -short16 __ovld __cnfn shuffle(short16 x, ushort16 mask); - -ushort16 __ovld __cnfn shuffle(ushort2 x, ushort16 mask); -ushort16 __ovld __cnfn shuffle(ushort4 x, ushort16 mask); -ushort16 __ovld __cnfn shuffle(ushort8 x, ushort16 mask); -ushort16 __ovld __cnfn shuffle(ushort16 x, ushort16 mask); - -int16 __ovld __cnfn shuffle(int2 x, uint16 mask); -int16 __ovld __cnfn shuffle(int4 x, uint16 mask); -int16 __ovld __cnfn shuffle(int8 x, uint16 mask); -int16 __ovld __cnfn shuffle(int16 x, uint16 mask); - -uint16 __ovld __cnfn shuffle(uint2 x, uint16 mask); -uint16 __ovld __cnfn shuffle(uint4 x, uint16 mask); -uint16 __ovld __cnfn shuffle(uint8 x, uint16 mask); -uint16 __ovld __cnfn shuffle(uint16 x, uint16 mask); - -long16 __ovld __cnfn shuffle(long2 x, ulong16 mask); -long16 __ovld __cnfn shuffle(long4 x, ulong16 mask); -long16 __ovld __cnfn shuffle(long8 x, ulong16 mask); -long16 __ovld __cnfn shuffle(long16 x, ulong16 mask); - -ulong16 __ovld __cnfn shuffle(ulong2 x, ulong16 mask); -ulong16 __ovld __cnfn shuffle(ulong4 x, ulong16 mask); -ulong16 __ovld __cnfn shuffle(ulong8 x, ulong16 mask); -ulong16 __ovld __cnfn shuffle(ulong16 x, ulong16 mask); - -float16 __ovld __cnfn shuffle(float2 x, uint16 mask); -float16 __ovld __cnfn shuffle(float4 x, uint16 mask); -float16 __ovld __cnfn shuffle(float8 x, uint16 mask); -float16 __ovld __cnfn shuffle(float16 x, uint16 mask); +char2 __ovld __cnfn shuffle(char2, uchar2); +char2 __ovld __cnfn shuffle(char4, uchar2); +char2 __ovld __cnfn shuffle(char8, uchar2); +char2 __ovld __cnfn shuffle(char16, uchar2); + +uchar2 __ovld __cnfn shuffle(uchar2, uchar2); +uchar2 __ovld __cnfn shuffle(uchar4, uchar2); +uchar2 __ovld __cnfn shuffle(uchar8, uchar2); +uchar2 __ovld __cnfn shuffle(uchar16, uchar2); + +short2 __ovld __cnfn shuffle(short2, ushort2); +short2 __ovld __cnfn shuffle(short4, ushort2); +short2 __ovld __cnfn shuffle(short8, ushort2); +short2 __ovld __cnfn shuffle(short16, ushort2); + +ushort2 __ovld __cnfn shuffle(ushort2, ushort2); +ushort2 __ovld __cnfn shuffle(ushort4, ushort2); +ushort2 __ovld __cnfn shuffle(ushort8, ushort2); +ushort2 __ovld __cnfn shuffle(ushort16, ushort2); + +int2 __ovld __cnfn shuffle(int2, uint2); +int2 __ovld __cnfn shuffle(int4, uint2); +int2 __ovld __cnfn shuffle(int8, uint2); +int2 __ovld __cnfn shuffle(int16, uint2); + +uint2 __ovld __cnfn shuffle(uint2, uint2); +uint2 __ovld __cnfn shuffle(uint4, uint2); +uint2 __ovld __cnfn shuffle(uint8, uint2); +uint2 __ovld __cnfn shuffle(uint16, uint2); + +long2 __ovld __cnfn shuffle(long2, ulong2); +long2 __ovld __cnfn shuffle(long4, ulong2); +long2 __ovld __cnfn shuffle(long8, ulong2); +long2 __ovld __cnfn shuffle(long16, ulong2); + +ulong2 __ovld __cnfn shuffle(ulong2, ulong2); +ulong2 __ovld __cnfn shuffle(ulong4, ulong2); +ulong2 __ovld __cnfn shuffle(ulong8, ulong2); +ulong2 __ovld __cnfn shuffle(ulong16, ulong2); + +float2 __ovld __cnfn shuffle(float2, uint2); +float2 __ovld __cnfn shuffle(float4, uint2); +float2 __ovld __cnfn shuffle(float8, uint2); +float2 __ovld __cnfn shuffle(float16, uint2); + +char4 __ovld __cnfn shuffle(char2, uchar4); +char4 __ovld __cnfn shuffle(char4, uchar4); +char4 __ovld __cnfn shuffle(char8, uchar4); +char4 __ovld __cnfn shuffle(char16, uchar4); + +uchar4 __ovld __cnfn shuffle(uchar2, uchar4); +uchar4 __ovld __cnfn shuffle(uchar4, uchar4); +uchar4 __ovld __cnfn shuffle(uchar8, uchar4); +uchar4 __ovld __cnfn shuffle(uchar16, uchar4); + +short4 __ovld __cnfn shuffle(short2, ushort4); +short4 __ovld __cnfn shuffle(short4, ushort4); +short4 __ovld __cnfn shuffle(short8, ushort4); +short4 __ovld __cnfn shuffle(short16, ushort4); + +ushort4 __ovld __cnfn shuffle(ushort2, ushort4); +ushort4 __ovld __cnfn shuffle(ushort4, ushort4); +ushort4 __ovld __cnfn shuffle(ushort8, ushort4); +ushort4 __ovld __cnfn shuffle(ushort16, ushort4); + +int4 __ovld __cnfn shuffle(int2, uint4); +int4 __ovld __cnfn shuffle(int4, uint4); +int4 __ovld __cnfn shuffle(int8, uint4); +int4 __ovld __cnfn shuffle(int16, uint4); + +uint4 __ovld __cnfn shuffle(uint2, uint4); +uint4 __ovld __cnfn shuffle(uint4, uint4); +uint4 __ovld __cnfn shuffle(uint8, uint4); +uint4 __ovld __cnfn shuffle(uint16, uint4); + +long4 __ovld __cnfn shuffle(long2, ulong4); +long4 __ovld __cnfn shuffle(long4, ulong4); +long4 __ovld __cnfn shuffle(long8, ulong4); +long4 __ovld __cnfn shuffle(long16, ulong4); + +ulong4 __ovld __cnfn shuffle(ulong2, ulong4); +ulong4 __ovld __cnfn shuffle(ulong4, ulong4); +ulong4 __ovld __cnfn shuffle(ulong8, ulong4); +ulong4 __ovld __cnfn shuffle(ulong16, ulong4); + +float4 __ovld __cnfn shuffle(float2, uint4); +float4 __ovld __cnfn shuffle(float4, uint4); +float4 __ovld __cnfn shuffle(float8, uint4); +float4 __ovld __cnfn shuffle(float16, uint4); + +char8 __ovld __cnfn shuffle(char2, uchar8); +char8 __ovld __cnfn shuffle(char4, uchar8); +char8 __ovld __cnfn shuffle(char8, uchar8); +char8 __ovld __cnfn shuffle(char16, uchar8); + +uchar8 __ovld __cnfn shuffle(uchar2, uchar8); +uchar8 __ovld __cnfn shuffle(uchar4, uchar8); +uchar8 __ovld __cnfn shuffle(uchar8, uchar8); +uchar8 __ovld __cnfn shuffle(uchar16, uchar8); + +short8 __ovld __cnfn shuffle(short2, ushort8); +short8 __ovld __cnfn shuffle(short4, ushort8); +short8 __ovld __cnfn shuffle(short8, ushort8); +short8 __ovld __cnfn shuffle(short16, ushort8); + +ushort8 __ovld __cnfn shuffle(ushort2, ushort8); +ushort8 __ovld __cnfn shuffle(ushort4, ushort8); +ushort8 __ovld __cnfn shuffle(ushort8, ushort8); +ushort8 __ovld __cnfn shuffle(ushort16, ushort8); + +int8 __ovld __cnfn shuffle(int2, uint8); +int8 __ovld __cnfn shuffle(int4, uint8); +int8 __ovld __cnfn shuffle(int8, uint8); +int8 __ovld __cnfn shuffle(int16, uint8); + +uint8 __ovld __cnfn shuffle(uint2, uint8); +uint8 __ovld __cnfn shuffle(uint4, uint8); +uint8 __ovld __cnfn shuffle(uint8, uint8); +uint8 __ovld __cnfn shuffle(uint16, uint8); + +long8 __ovld __cnfn shuffle(long2, ulong8); +long8 __ovld __cnfn shuffle(long4, ulong8); +long8 __ovld __cnfn shuffle(long8, ulong8); +long8 __ovld __cnfn shuffle(long16, ulong8); + +ulong8 __ovld __cnfn shuffle(ulong2, ulong8); +ulong8 __ovld __cnfn shuffle(ulong4, ulong8); +ulong8 __ovld __cnfn shuffle(ulong8, ulong8); +ulong8 __ovld __cnfn shuffle(ulong16, ulong8); + +float8 __ovld __cnfn shuffle(float2, uint8); +float8 __ovld __cnfn shuffle(float4, uint8); +float8 __ovld __cnfn shuffle(float8, uint8); +float8 __ovld __cnfn shuffle(float16, uint8); + +char16 __ovld __cnfn shuffle(char2, uchar16); +char16 __ovld __cnfn shuffle(char4, uchar16); +char16 __ovld __cnfn shuffle(char8, uchar16); +char16 __ovld __cnfn shuffle(char16, uchar16); + +uchar16 __ovld __cnfn shuffle(uchar2, uchar16); +uchar16 __ovld __cnfn shuffle(uchar4, uchar16); +uchar16 __ovld __cnfn shuffle(uchar8, uchar16); +uchar16 __ovld __cnfn shuffle(uchar16, uchar16); + +short16 __ovld __cnfn shuffle(short2, ushort16); +short16 __ovld __cnfn shuffle(short4, ushort16); +short16 __ovld __cnfn shuffle(short8, ushort16); +short16 __ovld __cnfn shuffle(short16, ushort16); + +ushort16 __ovld __cnfn shuffle(ushort2, ushort16); +ushort16 __ovld __cnfn shuffle(ushort4, ushort16); +ushort16 __ovld __cnfn shuffle(ushort8, ushort16); +ushort16 __ovld __cnfn shuffle(ushort16, ushort16); + +int16 __ovld __cnfn shuffle(int2, uint16); +int16 __ovld __cnfn shuffle(int4, uint16); +int16 __ovld __cnfn shuffle(int8, uint16); +int16 __ovld __cnfn shuffle(int16, uint16); + +uint16 __ovld __cnfn shuffle(uint2, uint16); +uint16 __ovld __cnfn shuffle(uint4, uint16); +uint16 __ovld __cnfn shuffle(uint8, uint16); +uint16 __ovld __cnfn shuffle(uint16, uint16); + +long16 __ovld __cnfn shuffle(long2, ulong16); +long16 __ovld __cnfn shuffle(long4, ulong16); +long16 __ovld __cnfn shuffle(long8, ulong16); +long16 __ovld __cnfn shuffle(long16, ulong16); + +ulong16 __ovld __cnfn shuffle(ulong2, ulong16); +ulong16 __ovld __cnfn shuffle(ulong4, ulong16); +ulong16 __ovld __cnfn shuffle(ulong8, ulong16); +ulong16 __ovld __cnfn shuffle(ulong16, ulong16); + +float16 __ovld __cnfn shuffle(float2, uint16); +float16 __ovld __cnfn shuffle(float4, uint16); +float16 __ovld __cnfn shuffle(float8, uint16); +float16 __ovld __cnfn shuffle(float16, uint16); #ifdef cl_khr_fp64 -double2 __ovld __cnfn shuffle(double2 x, ulong2 mask); -double2 __ovld __cnfn shuffle(double4 x, ulong2 mask); -double2 __ovld __cnfn shuffle(double8 x, ulong2 mask); -double2 __ovld __cnfn shuffle(double16 x, ulong2 mask); - -double4 __ovld __cnfn shuffle(double2 x, ulong4 mask); -double4 __ovld __cnfn shuffle(double4 x, ulong4 mask); -double4 __ovld __cnfn shuffle(double8 x, ulong4 mask); -double4 __ovld __cnfn shuffle(double16 x, ulong4 mask); - -double8 __ovld __cnfn shuffle(double2 x, ulong8 mask); -double8 __ovld __cnfn shuffle(double4 x, ulong8 mask); -double8 __ovld __cnfn shuffle(double8 x, ulong8 mask); -double8 __ovld __cnfn shuffle(double16 x, ulong8 mask); - -double16 __ovld __cnfn shuffle(double2 x, ulong16 mask); -double16 __ovld __cnfn shuffle(double4 x, ulong16 mask); -double16 __ovld __cnfn shuffle(double8 x, ulong16 mask); -double16 __ovld __cnfn shuffle(double16 x, ulong16 mask); +double2 __ovld __cnfn shuffle(double2, ulong2); +double2 __ovld __cnfn shuffle(double4, ulong2); +double2 __ovld __cnfn shuffle(double8, ulong2); +double2 __ovld __cnfn shuffle(double16, ulong2); + +double4 __ovld __cnfn shuffle(double2, ulong4); +double4 __ovld __cnfn shuffle(double4, ulong4); +double4 __ovld __cnfn shuffle(double8, ulong4); +double4 __ovld __cnfn shuffle(double16, ulong4); + +double8 __ovld __cnfn shuffle(double2, ulong8); +double8 __ovld __cnfn shuffle(double4, ulong8); +double8 __ovld __cnfn shuffle(double8, ulong8); +double8 __ovld __cnfn shuffle(double16, ulong8); + +double16 __ovld __cnfn shuffle(double2, ulong16); +double16 __ovld __cnfn shuffle(double4, ulong16); +double16 __ovld __cnfn shuffle(double8, ulong16); +double16 __ovld __cnfn shuffle(double16, ulong16); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half2 __ovld __cnfn shuffle(half2 x, ushort2 mask); -half2 __ovld __cnfn shuffle(half4 x, ushort2 mask); -half2 __ovld __cnfn shuffle(half8 x, ushort2 mask); -half2 __ovld __cnfn shuffle(half16 x, ushort2 mask); - -half4 __ovld __cnfn shuffle(half2 x, ushort4 mask); -half4 __ovld __cnfn shuffle(half4 x, ushort4 mask); -half4 __ovld __cnfn shuffle(half8 x, ushort4 mask); -half4 __ovld __cnfn shuffle(half16 x, ushort4 mask); - -half8 __ovld __cnfn shuffle(half2 x, ushort8 mask); -half8 __ovld __cnfn shuffle(half4 x, ushort8 mask); -half8 __ovld __cnfn shuffle(half8 x, ushort8 mask); -half8 __ovld __cnfn shuffle(half16 x, ushort8 mask); - -half16 __ovld __cnfn shuffle(half2 x, ushort16 mask); -half16 __ovld __cnfn shuffle(half4 x, ushort16 mask); -half16 __ovld __cnfn shuffle(half8 x, ushort16 mask); -half16 __ovld __cnfn shuffle(half16 x, ushort16 mask); +half2 __ovld __cnfn shuffle(half2, ushort2); +half2 __ovld __cnfn shuffle(half4, ushort2); +half2 __ovld __cnfn shuffle(half8, ushort2); +half2 __ovld __cnfn shuffle(half16, ushort2); + +half4 __ovld __cnfn shuffle(half2, ushort4); +half4 __ovld __cnfn shuffle(half4, ushort4); +half4 __ovld __cnfn shuffle(half8, ushort4); +half4 __ovld __cnfn shuffle(half16, ushort4); + +half8 __ovld __cnfn shuffle(half2, ushort8); +half8 __ovld __cnfn shuffle(half4, ushort8); +half8 __ovld __cnfn shuffle(half8, ushort8); +half8 __ovld __cnfn shuffle(half16, ushort8); + +half16 __ovld __cnfn shuffle(half2, ushort16); +half16 __ovld __cnfn shuffle(half4, ushort16); +half16 __ovld __cnfn shuffle(half8, ushort16); +half16 __ovld __cnfn shuffle(half16, ushort16); #endif //cl_khr_fp16 -char2 __ovld __cnfn shuffle2(char2 x, char2 y, uchar2 mask); -char2 __ovld __cnfn shuffle2(char4 x, char4 y, uchar2 mask); -char2 __ovld __cnfn shuffle2(char8 x, char8 y, uchar2 mask); -char2 __ovld __cnfn shuffle2(char16 x, char16 y, uchar2 mask); - -uchar2 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar2 mask); -uchar2 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar2 mask); -uchar2 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar2 mask); -uchar2 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar2 mask); - -short2 __ovld __cnfn shuffle2(short2 x, short2 y, ushort2 mask); -short2 __ovld __cnfn shuffle2(short4 x, short4 y, ushort2 mask); -short2 __ovld __cnfn shuffle2(short8 x, short8 y, ushort2 mask); -short2 __ovld __cnfn shuffle2(short16 x, short16 y, ushort2 mask); - -ushort2 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort2 mask); -ushort2 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort2 mask); -ushort2 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort2 mask); -ushort2 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort2 mask); - -int2 __ovld __cnfn shuffle2(int2 x, int2 y, uint2 mask); -int2 __ovld __cnfn shuffle2(int4 x, int4 y, uint2 mask); -int2 __ovld __cnfn shuffle2(int8 x, int8 y, uint2 mask); -int2 __ovld __cnfn shuffle2(int16 x, int16 y, uint2 mask); - -uint2 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint2 mask); -uint2 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint2 mask); -uint2 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint2 mask); -uint2 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint2 mask); - -long2 __ovld __cnfn shuffle2(long2 x, long2 y, ulong2 mask); -long2 __ovld __cnfn shuffle2(long4 x, long4 y, ulong2 mask); -long2 __ovld __cnfn shuffle2(long8 x, long8 y, ulong2 mask); -long2 __ovld __cnfn shuffle2(long16 x, long16 y, ulong2 mask); - -ulong2 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong2 mask); -ulong2 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong2 mask); -ulong2 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong2 mask); -ulong2 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong2 mask); - -float2 __ovld __cnfn shuffle2(float2 x, float2 y, uint2 mask); -float2 __ovld __cnfn shuffle2(float4 x, float4 y, uint2 mask); -float2 __ovld __cnfn shuffle2(float8 x, float8 y, uint2 mask); -float2 __ovld __cnfn shuffle2(float16 x, float16 y, uint2 mask); - -char4 __ovld __cnfn shuffle2(char2 x, char2 y, uchar4 mask); -char4 __ovld __cnfn shuffle2(char4 x, char4 y, uchar4 mask); -char4 __ovld __cnfn shuffle2(char8 x, char8 y, uchar4 mask); -char4 __ovld __cnfn shuffle2(char16 x, char16 y, uchar4 mask); - -uchar4 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar4 mask); -uchar4 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar4 mask); -uchar4 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar4 mask); -uchar4 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar4 mask); - -short4 __ovld __cnfn shuffle2(short2 x, short2 y, ushort4 mask); -short4 __ovld __cnfn shuffle2(short4 x, short4 y, ushort4 mask); -short4 __ovld __cnfn shuffle2(short8 x, short8 y, ushort4 mask); -short4 __ovld __cnfn shuffle2(short16 x, short16 y, ushort4 mask); - -ushort4 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort4 mask); -ushort4 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort4 mask); -ushort4 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort4 mask); -ushort4 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort4 mask); - -int4 __ovld __cnfn shuffle2(int2 x, int2 y, uint4 mask); -int4 __ovld __cnfn shuffle2(int4 x, int4 y, uint4 mask); -int4 __ovld __cnfn shuffle2(int8 x, int8 y, uint4 mask); -int4 __ovld __cnfn shuffle2(int16 x, int16 y, uint4 mask); - -uint4 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint4 mask); -uint4 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint4 mask); -uint4 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint4 mask); -uint4 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint4 mask); - -long4 __ovld __cnfn shuffle2(long2 x, long2 y, ulong4 mask); -long4 __ovld __cnfn shuffle2(long4 x, long4 y, ulong4 mask); -long4 __ovld __cnfn shuffle2(long8 x, long8 y, ulong4 mask); -long4 __ovld __cnfn shuffle2(long16 x, long16 y, ulong4 mask); - -ulong4 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong4 mask); -ulong4 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong4 mask); -ulong4 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong4 mask); -ulong4 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong4 mask); - -float4 __ovld __cnfn shuffle2(float2 x, float2 y, uint4 mask); -float4 __ovld __cnfn shuffle2(float4 x, float4 y, uint4 mask); -float4 __ovld __cnfn shuffle2(float8 x, float8 y, uint4 mask); -float4 __ovld __cnfn shuffle2(float16 x, float16 y, uint4 mask); - -char8 __ovld __cnfn shuffle2(char2 x, char2 y, uchar8 mask); -char8 __ovld __cnfn shuffle2(char4 x, char4 y, uchar8 mask); -char8 __ovld __cnfn shuffle2(char8 x, char8 y, uchar8 mask); -char8 __ovld __cnfn shuffle2(char16 x, char16 y, uchar8 mask); - -uchar8 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar8 mask); -uchar8 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar8 mask); -uchar8 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar8 mask); -uchar8 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar8 mask); - -short8 __ovld __cnfn shuffle2(short2 x, short2 y, ushort8 mask); -short8 __ovld __cnfn shuffle2(short4 x, short4 y, ushort8 mask); -short8 __ovld __cnfn shuffle2(short8 x, short8 y, ushort8 mask); -short8 __ovld __cnfn shuffle2(short16 x, short16 y, ushort8 mask); - -ushort8 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort8 mask); -ushort8 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort8 mask); -ushort8 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort8 mask); -ushort8 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort8 mask); - -int8 __ovld __cnfn shuffle2(int2 x, int2 y, uint8 mask); -int8 __ovld __cnfn shuffle2(int4 x, int4 y, uint8 mask); -int8 __ovld __cnfn shuffle2(int8 x, int8 y, uint8 mask); -int8 __ovld __cnfn shuffle2(int16 x, int16 y, uint8 mask); - -uint8 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint8 mask); -uint8 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint8 mask); -uint8 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint8 mask); -uint8 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint8 mask); - -long8 __ovld __cnfn shuffle2(long2 x, long2 y, ulong8 mask); -long8 __ovld __cnfn shuffle2(long4 x, long4 y, ulong8 mask); -long8 __ovld __cnfn shuffle2(long8 x, long8 y, ulong8 mask); -long8 __ovld __cnfn shuffle2(long16 x, long16 y, ulong8 mask); - -ulong8 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong8 mask); -ulong8 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong8 mask); -ulong8 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong8 mask); -ulong8 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong8 mask); - -float8 __ovld __cnfn shuffle2(float2 x, float2 y, uint8 mask); -float8 __ovld __cnfn shuffle2(float4 x, float4 y, uint8 mask); -float8 __ovld __cnfn shuffle2(float8 x, float8 y, uint8 mask); -float8 __ovld __cnfn shuffle2(float16 x, float16 y, uint8 mask); - -char16 __ovld __cnfn shuffle2(char2 x, char2 y, uchar16 mask); -char16 __ovld __cnfn shuffle2(char4 x, char4 y, uchar16 mask); -char16 __ovld __cnfn shuffle2(char8 x, char8 y, uchar16 mask); -char16 __ovld __cnfn shuffle2(char16 x, char16 y, uchar16 mask); - -uchar16 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar16 mask); -uchar16 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar16 mask); -uchar16 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar16 mask); -uchar16 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar16 mask); - -short16 __ovld __cnfn shuffle2(short2 x, short2 y, ushort16 mask); -short16 __ovld __cnfn shuffle2(short4 x, short4 y, ushort16 mask); -short16 __ovld __cnfn shuffle2(short8 x, short8 y, ushort16 mask); -short16 __ovld __cnfn shuffle2(short16 x, short16 y, ushort16 mask); - -ushort16 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort16 mask); -ushort16 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort16 mask); -ushort16 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort16 mask); -ushort16 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort16 mask); - -int16 __ovld __cnfn shuffle2(int2 x, int2 y, uint16 mask); -int16 __ovld __cnfn shuffle2(int4 x, int4 y, uint16 mask); -int16 __ovld __cnfn shuffle2(int8 x, int8 y, uint16 mask); -int16 __ovld __cnfn shuffle2(int16 x, int16 y, uint16 mask); - -uint16 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint16 mask); -uint16 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint16 mask); -uint16 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint16 mask); -uint16 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint16 mask); - -long16 __ovld __cnfn shuffle2(long2 x, long2 y, ulong16 mask); -long16 __ovld __cnfn shuffle2(long4 x, long4 y, ulong16 mask); -long16 __ovld __cnfn shuffle2(long8 x, long8 y, ulong16 mask); -long16 __ovld __cnfn shuffle2(long16 x, long16 y, ulong16 mask); - -ulong16 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong16 mask); -ulong16 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong16 mask); -ulong16 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong16 mask); -ulong16 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong16 mask); - -float16 __ovld __cnfn shuffle2(float2 x, float2 y, uint16 mask); -float16 __ovld __cnfn shuffle2(float4 x, float4 y, uint16 mask); -float16 __ovld __cnfn shuffle2(float8 x, float8 y, uint16 mask); -float16 __ovld __cnfn shuffle2(float16 x, float16 y, uint16 mask); +char2 __ovld __cnfn shuffle2(char2, char2, uchar2); +char2 __ovld __cnfn shuffle2(char4, char4, uchar2); +char2 __ovld __cnfn shuffle2(char8, char8, uchar2); +char2 __ovld __cnfn shuffle2(char16, char16, uchar2); + +uchar2 __ovld __cnfn shuffle2(uchar2, uchar2, uchar2); +uchar2 __ovld __cnfn shuffle2(uchar4, uchar4, uchar2); +uchar2 __ovld __cnfn shuffle2(uchar8, uchar8, uchar2); +uchar2 __ovld __cnfn shuffle2(uchar16, uchar16, uchar2); + +short2 __ovld __cnfn shuffle2(short2, short2, ushort2); +short2 __ovld __cnfn shuffle2(short4, short4, ushort2); +short2 __ovld __cnfn shuffle2(short8, short8, ushort2); +short2 __ovld __cnfn shuffle2(short16, short16, ushort2); + +ushort2 __ovld __cnfn shuffle2(ushort2, ushort2, ushort2); +ushort2 __ovld __cnfn shuffle2(ushort4, ushort4, ushort2); +ushort2 __ovld __cnfn shuffle2(ushort8, ushort8, ushort2); +ushort2 __ovld __cnfn shuffle2(ushort16, ushort16, ushort2); + +int2 __ovld __cnfn shuffle2(int2, int2, uint2); +int2 __ovld __cnfn shuffle2(int4, int4, uint2); +int2 __ovld __cnfn shuffle2(int8, int8, uint2); +int2 __ovld __cnfn shuffle2(int16, int16, uint2); + +uint2 __ovld __cnfn shuffle2(uint2, uint2, uint2); +uint2 __ovld __cnfn shuffle2(uint4, uint4, uint2); +uint2 __ovld __cnfn shuffle2(uint8, uint8, uint2); +uint2 __ovld __cnfn shuffle2(uint16, uint16, uint2); + +long2 __ovld __cnfn shuffle2(long2, long2, ulong2); +long2 __ovld __cnfn shuffle2(long4, long4, ulong2); +long2 __ovld __cnfn shuffle2(long8, long8, ulong2); +long2 __ovld __cnfn shuffle2(long16, long16, ulong2); + +ulong2 __ovld __cnfn shuffle2(ulong2, ulong2, ulong2); +ulong2 __ovld __cnfn shuffle2(ulong4, ulong4, ulong2); +ulong2 __ovld __cnfn shuffle2(ulong8, ulong8, ulong2); +ulong2 __ovld __cnfn shuffle2(ulong16, ulong16, ulong2); + +float2 __ovld __cnfn shuffle2(float2, float2, uint2); +float2 __ovld __cnfn shuffle2(float4, float4, uint2); +float2 __ovld __cnfn shuffle2(float8, float8, uint2); +float2 __ovld __cnfn shuffle2(float16, float16, uint2); + +char4 __ovld __cnfn shuffle2(char2, char2, uchar4); +char4 __ovld __cnfn shuffle2(char4, char4, uchar4); +char4 __ovld __cnfn shuffle2(char8, char8, uchar4); +char4 __ovld __cnfn shuffle2(char16, char16, uchar4); + +uchar4 __ovld __cnfn shuffle2(uchar2, uchar2, uchar4); +uchar4 __ovld __cnfn shuffle2(uchar4, uchar4, uchar4); +uchar4 __ovld __cnfn shuffle2(uchar8, uchar8, uchar4); +uchar4 __ovld __cnfn shuffle2(uchar16, uchar16, uchar4); + +short4 __ovld __cnfn shuffle2(short2, short2, ushort4); +short4 __ovld __cnfn shuffle2(short4, short4, ushort4); +short4 __ovld __cnfn shuffle2(short8, short8, ushort4); +short4 __ovld __cnfn shuffle2(short16, short16, ushort4); + +ushort4 __ovld __cnfn shuffle2(ushort2, ushort2, ushort4); +ushort4 __ovld __cnfn shuffle2(ushort4, ushort4, ushort4); +ushort4 __ovld __cnfn shuffle2(ushort8, ushort8, ushort4); +ushort4 __ovld __cnfn shuffle2(ushort16, ushort16, ushort4); + +int4 __ovld __cnfn shuffle2(int2, int2, uint4); +int4 __ovld __cnfn shuffle2(int4, int4, uint4); +int4 __ovld __cnfn shuffle2(int8, int8, uint4); +int4 __ovld __cnfn shuffle2(int16, int16, uint4); + +uint4 __ovld __cnfn shuffle2(uint2, uint2, uint4); +uint4 __ovld __cnfn shuffle2(uint4, uint4, uint4); +uint4 __ovld __cnfn shuffle2(uint8, uint8, uint4); +uint4 __ovld __cnfn shuffle2(uint16, uint16, uint4); + +long4 __ovld __cnfn shuffle2(long2, long2, ulong4); +long4 __ovld __cnfn shuffle2(long4, long4, ulong4); +long4 __ovld __cnfn shuffle2(long8, long8, ulong4); +long4 __ovld __cnfn shuffle2(long16, long16, ulong4); + +ulong4 __ovld __cnfn shuffle2(ulong2, ulong2, ulong4); +ulong4 __ovld __cnfn shuffle2(ulong4, ulong4, ulong4); +ulong4 __ovld __cnfn shuffle2(ulong8, ulong8, ulong4); +ulong4 __ovld __cnfn shuffle2(ulong16, ulong16, ulong4); + +float4 __ovld __cnfn shuffle2(float2, float2, uint4); +float4 __ovld __cnfn shuffle2(float4, float4, uint4); +float4 __ovld __cnfn shuffle2(float8, float8, uint4); +float4 __ovld __cnfn shuffle2(float16, float16, uint4); + +char8 __ovld __cnfn shuffle2(char2, char2, uchar8); +char8 __ovld __cnfn shuffle2(char4, char4, uchar8); +char8 __ovld __cnfn shuffle2(char8, char8, uchar8); +char8 __ovld __cnfn shuffle2(char16, char16, uchar8); + +uchar8 __ovld __cnfn shuffle2(uchar2, uchar2, uchar8); +uchar8 __ovld __cnfn shuffle2(uchar4, uchar4, uchar8); +uchar8 __ovld __cnfn shuffle2(uchar8, uchar8, uchar8); +uchar8 __ovld __cnfn shuffle2(uchar16, uchar16, uchar8); + +short8 __ovld __cnfn shuffle2(short2, short2, ushort8); +short8 __ovld __cnfn shuffle2(short4, short4, ushort8); +short8 __ovld __cnfn shuffle2(short8, short8, ushort8); +short8 __ovld __cnfn shuffle2(short16, short16, ushort8); + +ushort8 __ovld __cnfn shuffle2(ushort2, ushort2, ushort8); +ushort8 __ovld __cnfn shuffle2(ushort4, ushort4, ushort8); +ushort8 __ovld __cnfn shuffle2(ushort8, ushort8, ushort8); +ushort8 __ovld __cnfn shuffle2(ushort16, ushort16, ushort8); + +int8 __ovld __cnfn shuffle2(int2, int2, uint8); +int8 __ovld __cnfn shuffle2(int4, int4, uint8); +int8 __ovld __cnfn shuffle2(int8, int8, uint8); +int8 __ovld __cnfn shuffle2(int16, int16, uint8); + +uint8 __ovld __cnfn shuffle2(uint2, uint2, uint8); +uint8 __ovld __cnfn shuffle2(uint4, uint4, uint8); +uint8 __ovld __cnfn shuffle2(uint8, uint8, uint8); +uint8 __ovld __cnfn shuffle2(uint16, uint16, uint8); + +long8 __ovld __cnfn shuffle2(long2, long2, ulong8); +long8 __ovld __cnfn shuffle2(long4, long4, ulong8); +long8 __ovld __cnfn shuffle2(long8, long8, ulong8); +long8 __ovld __cnfn shuffle2(long16, long16, ulong8); + +ulong8 __ovld __cnfn shuffle2(ulong2, ulong2, ulong8); +ulong8 __ovld __cnfn shuffle2(ulong4, ulong4, ulong8); +ulong8 __ovld __cnfn shuffle2(ulong8, ulong8, ulong8); +ulong8 __ovld __cnfn shuffle2(ulong16, ulong16, ulong8); + +float8 __ovld __cnfn shuffle2(float2, float2, uint8); +float8 __ovld __cnfn shuffle2(float4, float4, uint8); +float8 __ovld __cnfn shuffle2(float8, float8, uint8); +float8 __ovld __cnfn shuffle2(float16, float16, uint8); + +char16 __ovld __cnfn shuffle2(char2, char2, uchar16); +char16 __ovld __cnfn shuffle2(char4, char4, uchar16); +char16 __ovld __cnfn shuffle2(char8, char8, uchar16); +char16 __ovld __cnfn shuffle2(char16, char16, uchar16); + +uchar16 __ovld __cnfn shuffle2(uchar2, uchar2, uchar16); +uchar16 __ovld __cnfn shuffle2(uchar4, uchar4, uchar16); +uchar16 __ovld __cnfn shuffle2(uchar8, uchar8, uchar16); +uchar16 __ovld __cnfn shuffle2(uchar16, uchar16, uchar16); + +short16 __ovld __cnfn shuffle2(short2, short2, ushort16); +short16 __ovld __cnfn shuffle2(short4, short4, ushort16); +short16 __ovld __cnfn shuffle2(short8, short8, ushort16); +short16 __ovld __cnfn shuffle2(short16, short16, ushort16); + +ushort16 __ovld __cnfn shuffle2(ushort2, ushort2, ushort16); +ushort16 __ovld __cnfn shuffle2(ushort4, ushort4, ushort16); +ushort16 __ovld __cnfn shuffle2(ushort8, ushort8, ushort16); +ushort16 __ovld __cnfn shuffle2(ushort16, ushort16, ushort16); + +int16 __ovld __cnfn shuffle2(int2, int2, uint16); +int16 __ovld __cnfn shuffle2(int4, int4, uint16); +int16 __ovld __cnfn shuffle2(int8, int8, uint16); +int16 __ovld __cnfn shuffle2(int16, int16, uint16); + +uint16 __ovld __cnfn shuffle2(uint2, uint2, uint16); +uint16 __ovld __cnfn shuffle2(uint4, uint4, uint16); +uint16 __ovld __cnfn shuffle2(uint8, uint8, uint16); +uint16 __ovld __cnfn shuffle2(uint16, uint16, uint16); + +long16 __ovld __cnfn shuffle2(long2, long2, ulong16); +long16 __ovld __cnfn shuffle2(long4, long4, ulong16); +long16 __ovld __cnfn shuffle2(long8, long8, ulong16); +long16 __ovld __cnfn shuffle2(long16, long16, ulong16); + +ulong16 __ovld __cnfn shuffle2(ulong2, ulong2, ulong16); +ulong16 __ovld __cnfn shuffle2(ulong4, ulong4, ulong16); +ulong16 __ovld __cnfn shuffle2(ulong8, ulong8, ulong16); +ulong16 __ovld __cnfn shuffle2(ulong16, ulong16, ulong16); + +float16 __ovld __cnfn shuffle2(float2, float2, uint16); +float16 __ovld __cnfn shuffle2(float4, float4, uint16); +float16 __ovld __cnfn shuffle2(float8, float8, uint16); +float16 __ovld __cnfn shuffle2(float16, float16, uint16); #ifdef cl_khr_fp64 -double2 __ovld __cnfn shuffle2(double2 x, double2 y, ulong2 mask); -double2 __ovld __cnfn shuffle2(double4 x, double4 y, ulong2 mask); -double2 __ovld __cnfn shuffle2(double8 x, double8 y, ulong2 mask); -double2 __ovld __cnfn shuffle2(double16 x, double16 y, ulong2 mask); - -double4 __ovld __cnfn shuffle2(double2 x, double2 y, ulong4 mask); -double4 __ovld __cnfn shuffle2(double4 x, double4 y, ulong4 mask); -double4 __ovld __cnfn shuffle2(double8 x, double8 y, ulong4 mask); -double4 __ovld __cnfn shuffle2(double16 x, double16 y, ulong4 mask); - -double8 __ovld __cnfn shuffle2(double2 x, double2 y, ulong8 mask); -double8 __ovld __cnfn shuffle2(double4 x, double4 y, ulong8 mask); -double8 __ovld __cnfn shuffle2(double8 x, double8 y, ulong8 mask); -double8 __ovld __cnfn shuffle2(double16 x, double16 y, ulong8 mask); - -double16 __ovld __cnfn shuffle2(double2 x, double2 y, ulong16 mask); -double16 __ovld __cnfn shuffle2(double4 x, double4 y, ulong16 mask); -double16 __ovld __cnfn shuffle2(double8 x, double8 y, ulong16 mask); -double16 __ovld __cnfn shuffle2(double16 x, double16 y, ulong16 mask); +double2 __ovld __cnfn shuffle2(double2, double2, ulong2); +double2 __ovld __cnfn shuffle2(double4, double4, ulong2); +double2 __ovld __cnfn shuffle2(double8, double8, ulong2); +double2 __ovld __cnfn shuffle2(double16, double16, ulong2); + +double4 __ovld __cnfn shuffle2(double2, double2, ulong4); +double4 __ovld __cnfn shuffle2(double4, double4, ulong4); +double4 __ovld __cnfn shuffle2(double8, double8, ulong4); +double4 __ovld __cnfn shuffle2(double16, double16, ulong4); + +double8 __ovld __cnfn shuffle2(double2, double2, ulong8); +double8 __ovld __cnfn shuffle2(double4, double4, ulong8); +double8 __ovld __cnfn shuffle2(double8, double8, ulong8); +double8 __ovld __cnfn shuffle2(double16, double16, ulong8); + +double16 __ovld __cnfn shuffle2(double2, double2, ulong16); +double16 __ovld __cnfn shuffle2(double4, double4, ulong16); +double16 __ovld __cnfn shuffle2(double8, double8, ulong16); +double16 __ovld __cnfn shuffle2(double16, double16, ulong16); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half2 __ovld __cnfn shuffle2(half2 x, half2 y, ushort2 mask); -half2 __ovld __cnfn shuffle2(half4 x, half4 y, ushort2 mask); -half2 __ovld __cnfn shuffle2(half8 x, half8 y, ushort2 mask); -half2 __ovld __cnfn shuffle2(half16 x, half16 y, ushort2 mask); - -half4 __ovld __cnfn shuffle2(half2 x, half2 y, ushort4 mask); -half4 __ovld __cnfn shuffle2(half4 x, half4 y, ushort4 mask); -half4 __ovld __cnfn shuffle2(half8 x, half8 y, ushort4 mask); -half4 __ovld __cnfn shuffle2(half16 x, half16 y, ushort4 mask); - -half8 __ovld __cnfn shuffle2(half2 x, half2 y, ushort8 mask); -half8 __ovld __cnfn shuffle2(half4 x, half4 y, ushort8 mask); -half8 __ovld __cnfn shuffle2(half8 x, half8 y, ushort8 mask); -half8 __ovld __cnfn shuffle2(half16 x, half16 y, ushort8 mask); - -half16 __ovld __cnfn shuffle2(half2 x, half2 y, ushort16 mask); -half16 __ovld __cnfn shuffle2(half4 x, half4 y, ushort16 mask); -half16 __ovld __cnfn shuffle2(half8 x, half8 y, ushort16 mask); -half16 __ovld __cnfn shuffle2(half16 x, half16 y, ushort16 mask); +half2 __ovld __cnfn shuffle2(half2, half2, ushort2); +half2 __ovld __cnfn shuffle2(half4, half4, ushort2); +half2 __ovld __cnfn shuffle2(half8, half8, ushort2); +half2 __ovld __cnfn shuffle2(half16, half16, ushort2); + +half4 __ovld __cnfn shuffle2(half2, half2, ushort4); +half4 __ovld __cnfn shuffle2(half4, half4, ushort4); +half4 __ovld __cnfn shuffle2(half8, half8, ushort4); +half4 __ovld __cnfn shuffle2(half16, half16, ushort4); + +half8 __ovld __cnfn shuffle2(half2, half2, ushort8); +half8 __ovld __cnfn shuffle2(half4, half4, ushort8); +half8 __ovld __cnfn shuffle2(half8, half8, ushort8); +half8 __ovld __cnfn shuffle2(half16, half16, ushort8); + +half16 __ovld __cnfn shuffle2(half2, half2, ushort16); +half16 __ovld __cnfn shuffle2(half4, half4, ushort16); +half16 __ovld __cnfn shuffle2(half8, half8, ushort16); +half16 __ovld __cnfn shuffle2(half16, half16, ushort16); #endif //cl_khr_fp16 // OpenCL v1.1 s6.11.3, v1.2 s6.12.14, v2.0 s6.13.14 - Image Read and Write Functions @@ -14853,123 +15909,131 @@ half16 __ovld __cnfn shuffle2(half16 x, half16 y, ushort16 mask); * in the description above are undefined. */ -float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, int2 coord); -float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord); +float4 __ovld __purefn read_imagef(read_only image2d_t, sampler_t, int2); +float4 __ovld __purefn read_imagef(read_only image2d_t, sampler_t, float2); -int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, int2 coord); -int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord); -uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, int2 coord); -uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord); +int4 __ovld __purefn read_imagei(read_only image2d_t, sampler_t, int2); +int4 __ovld __purefn read_imagei(read_only image2d_t, sampler_t, float2); +uint4 __ovld __purefn read_imageui(read_only image2d_t, sampler_t, int2); +uint4 __ovld __purefn read_imageui(read_only image2d_t, sampler_t, float2); -float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, int4 coord); -float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord); +float4 __ovld __purefn read_imagef(read_only image3d_t, sampler_t, int4); +float4 __ovld __purefn read_imagef(read_only image3d_t, sampler_t, float4); -int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, int4 coord); -int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord); -uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, int4 coord); -uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord); +int4 __ovld __purefn read_imagei(read_only image3d_t, sampler_t, int4); +int4 __ovld __purefn read_imagei(read_only image3d_t, sampler_t, float4); +uint4 __ovld __purefn read_imageui(read_only image3d_t, sampler_t, int4); +uint4 __ovld __purefn read_imageui(read_only image3d_t, sampler_t, float4); #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) -float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, int4 coord); -float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord); +float4 __ovld __purefn read_imagef(read_only image2d_array_t, sampler_t, int4); +float4 __ovld __purefn read_imagef(read_only image2d_array_t, sampler_t, float4); -int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, int4 coord); -int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord); -uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, int4 coord); -uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord); +int4 __ovld __purefn read_imagei(read_only image2d_array_t, sampler_t, int4); +int4 __ovld __purefn read_imagei(read_only image2d_array_t, sampler_t, float4); +uint4 __ovld __purefn read_imageui(read_only image2d_array_t, sampler_t, int4); +uint4 __ovld __purefn read_imageui(read_only image2d_array_t, sampler_t, float4); #endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) -float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, int coord); -float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord); +float4 __ovld __purefn read_imagef(read_only image1d_t, sampler_t, int); +float4 __ovld __purefn read_imagef(read_only image1d_t, sampler_t, float); -int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, int coord); -int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord); -uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, int coord); -uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord); +int4 __ovld __purefn read_imagei(read_only image1d_t, sampler_t, int); +int4 __ovld __purefn read_imagei(read_only image1d_t, sampler_t, float); +uint4 __ovld __purefn read_imageui(read_only image1d_t, sampler_t, int); +uint4 __ovld __purefn read_imageui(read_only image1d_t, sampler_t, float); #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) -float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, int2 coord); -float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord); +float4 __ovld __purefn read_imagef(read_only image1d_array_t, sampler_t, int2); +float4 __ovld __purefn read_imagef(read_only image1d_array_t, sampler_t, float2); -int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, int2 coord); -int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord); -uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, int2 coord); -uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord); +int4 __ovld __purefn read_imagei(read_only image1d_array_t, sampler_t, int2); +int4 __ovld __purefn read_imagei(read_only image1d_array_t, sampler_t, float2); +uint4 __ovld __purefn read_imageui(read_only image1d_array_t, sampler_t, int2); +uint4 __ovld __purefn read_imageui(read_only image1d_array_t, sampler_t, float2); #endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) #ifdef cl_khr_depth_images -float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord); -float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, int2 coord); +float __ovld __purefn read_imagef(read_only image2d_depth_t, sampler_t, float2); +float __ovld __purefn read_imagef(read_only image2d_depth_t, sampler_t, int2); -float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord); -float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, int4 coord); +float __ovld __purefn read_imagef(read_only image2d_array_depth_t, sampler_t, float4); +float __ovld __purefn read_imagef(read_only image2d_array_depth_t, sampler_t, int4); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -float4 __purefn __ovld read_imagef(read_only image2d_msaa_t image, int2 coord, int sample); -int4 __purefn __ovld read_imagei(read_only image2d_msaa_t image, int2 coord, int sample); -uint4 __purefn __ovld read_imageui(read_only image2d_msaa_t image, int2 coord, int sample); +float4 __ovld __purefn read_imagef(read_only image2d_msaa_t, int2, int); +int4 __ovld __purefn read_imagei(read_only image2d_msaa_t, int2, int); +uint4 __ovld __purefn read_imageui(read_only image2d_msaa_t, int2, int); -float __purefn __ovld read_imagef(read_only image2d_msaa_depth_t image, int2 coord, int sample); +float __ovld __purefn read_imagef(read_only image2d_msaa_depth_t, int2, int); -float4 __purefn __ovld read_imagef(read_only image2d_array_msaa_t image, int4 coord, int sample); -int4 __purefn __ovld read_imagei(read_only image2d_array_msaa_t image, int4 coord, int sample); -uint4 __purefn __ovld read_imageui(read_only image2d_array_msaa_t image, int4 coord, int sample); +float4 __ovld __purefn read_imagef(read_only image2d_array_msaa_t, int4, int); +int4 __ovld __purefn read_imagei(read_only image2d_array_msaa_t, int4, int); +uint4 __ovld __purefn read_imageui(read_only image2d_array_msaa_t, int4, int); -float __purefn __ovld read_imagef(read_only image2d_array_msaa_depth_t image, int4 coord, int sample); +float __ovld __purefn read_imagef(read_only image2d_array_msaa_depth_t, int4, int); #endif //cl_khr_gl_msaa_sharing // OpenCL Extension v2.0 s9.18 - Mipmaps #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) #ifdef cl_khr_mipmap_image -float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord, float lod); -int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord, float lod); -uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord, float lod); +float4 __ovld __purefn read_imagef(read_only image1d_t, sampler_t, float, float); +int4 __ovld __purefn read_imagei(read_only image1d_t, sampler_t, float, float); +uint4 __ovld __purefn read_imageui(read_only image1d_t, sampler_t, float, float); -float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); -int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); -uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); +float4 __ovld __purefn read_imagef(read_only image1d_array_t, sampler_t, float2, float); +int4 __ovld __purefn read_imagei(read_only image1d_array_t, sampler_t, float2, float); +uint4 __ovld __purefn read_imageui(read_only image1d_array_t, sampler_t, float2, float); -float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord, float lod); -int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord, float lod); -uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord, float lod); +float4 __ovld __purefn read_imagef(read_only image2d_t, sampler_t, float2, float); +int4 __ovld __purefn read_imagei(read_only image2d_t, sampler_t, float2, float); +uint4 __ovld __purefn read_imageui(read_only image2d_t, sampler_t, float2, float); -float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord, float lod); +#ifdef cl_khr_depth_images +float __ovld __purefn read_imagef(read_only image2d_depth_t, sampler_t, float2, float); +#endif // cl_khr_depth_images -float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); -int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); -uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); +float4 __ovld __purefn read_imagef(read_only image2d_array_t, sampler_t, float4, float); +int4 __ovld __purefn read_imagei(read_only image2d_array_t, sampler_t, float4, float); +uint4 __ovld __purefn read_imageui(read_only image2d_array_t, sampler_t, float4, float); -float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod); +#ifdef cl_khr_depth_images +float __ovld __purefn read_imagef(read_only image2d_array_depth_t, sampler_t, float4, float); +#endif // cl_khr_depth_images -float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord, float lod); -int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord, float lod); -uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord, float lod); +float4 __ovld __purefn read_imagef(read_only image3d_t, sampler_t, float4, float); +int4 __ovld __purefn read_imagei(read_only image3d_t, sampler_t, float4, float); +uint4 __ovld __purefn read_imageui(read_only image3d_t, sampler_t, float4, float); -float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY); -int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY); -uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY); +float4 __ovld __purefn read_imagef(read_only image1d_t, sampler_t, float, float, float); +int4 __ovld __purefn read_imagei(read_only image1d_t, sampler_t, float, float, float); +uint4 __ovld __purefn read_imageui(read_only image1d_t, sampler_t, float, float, float); -float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY); -int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY); -uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY); +float4 __ovld __purefn read_imagef(read_only image1d_array_t, sampler_t, float2, float, float); +int4 __ovld __purefn read_imagei(read_only image1d_array_t, sampler_t, float2, float, float); +uint4 __ovld __purefn read_imageui(read_only image1d_array_t, sampler_t, float2, float, float); -float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); -int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); -uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); +float4 __ovld __purefn read_imagef(read_only image2d_t, sampler_t, float2, float2, float2); +int4 __ovld __purefn read_imagei(read_only image2d_t, sampler_t, float2, float2, float2); +uint4 __ovld __purefn read_imageui(read_only image2d_t, sampler_t, float2, float2, float2); -float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); +#ifdef cl_khr_depth_images +float __ovld __purefn read_imagef(read_only image2d_depth_t, sampler_t, float2, float2, float2); +#endif // cl_khr_depth_images -float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); -int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); -uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); +float4 __ovld __purefn read_imagef(read_only image2d_array_t, sampler_t, float4, float2, float2); +int4 __ovld __purefn read_imagei(read_only image2d_array_t, sampler_t, float4, float2, float2); +uint4 __ovld __purefn read_imageui(read_only image2d_array_t, sampler_t, float4, float2, float2); -float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); +#ifdef cl_khr_depth_images +float __ovld __purefn read_imagef(read_only image2d_array_depth_t, sampler_t, float4, float2, float2); +#endif // cl_khr_depth_images -float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY); -int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY); -uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY); +float4 __ovld __purefn read_imagef(read_only image3d_t, sampler_t, float4, float4, float4); +int4 __ovld __purefn read_imagei(read_only image3d_t, sampler_t, float4, float4, float4); +uint4 __ovld __purefn read_imageui(read_only image3d_t, sampler_t, float4, float4, float4); #endif //cl_khr_mipmap_image #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) @@ -14980,169 +16044,167 @@ uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, * Sampler-less Image Access */ -float4 __purefn __ovld read_imagef(read_only image1d_t image, int coord); -int4 __purefn __ovld read_imagei(read_only image1d_t image, int coord); -uint4 __purefn __ovld read_imageui(read_only image1d_t image, int coord); +float4 __ovld __purefn read_imagef(read_only image1d_t, int); +int4 __ovld __purefn read_imagei(read_only image1d_t, int); +uint4 __ovld __purefn read_imageui(read_only image1d_t, int); -float4 __purefn __ovld read_imagef(read_only image1d_buffer_t image, int coord); -int4 __purefn __ovld read_imagei(read_only image1d_buffer_t image, int coord); -uint4 __purefn __ovld read_imageui(read_only image1d_buffer_t image, int coord); +float4 __ovld __purefn read_imagef(read_only image1d_buffer_t, int); +int4 __ovld __purefn read_imagei(read_only image1d_buffer_t, int); +uint4 __ovld __purefn read_imageui(read_only image1d_buffer_t, int); -float4 __purefn __ovld read_imagef(read_only image1d_array_t image, int2 coord); -int4 __purefn __ovld read_imagei(read_only image1d_array_t image, int2 coord); -uint4 __purefn __ovld read_imageui(read_only image1d_array_t image, int2 coord); +float4 __ovld __purefn read_imagef(read_only image1d_array_t, int2); +int4 __ovld __purefn read_imagei(read_only image1d_array_t, int2); +uint4 __ovld __purefn read_imageui(read_only image1d_array_t, int2); -float4 __purefn __ovld read_imagef(read_only image2d_t image, int2 coord); -int4 __purefn __ovld read_imagei(read_only image2d_t image, int2 coord); -uint4 __purefn __ovld read_imageui(read_only image2d_t image, int2 coord); +float4 __ovld __purefn read_imagef(read_only image2d_t, int2); +int4 __ovld __purefn read_imagei(read_only image2d_t, int2); +uint4 __ovld __purefn read_imageui(read_only image2d_t, int2); -float4 __purefn __ovld read_imagef(read_only image2d_array_t image, int4 coord); -int4 __purefn __ovld read_imagei(read_only image2d_array_t image, int4 coord); -uint4 __purefn __ovld read_imageui(read_only image2d_array_t image, int4 coord); +float4 __ovld __purefn read_imagef(read_only image2d_array_t, int4); +int4 __ovld __purefn read_imagei(read_only image2d_array_t, int4); +uint4 __ovld __purefn read_imageui(read_only image2d_array_t, int4); #ifdef cl_khr_depth_images -float __purefn __ovld read_imagef(read_only image2d_depth_t image, int2 coord); -float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, int4 coord); +float __ovld __purefn read_imagef(read_only image2d_depth_t, int2); +float __ovld __purefn read_imagef(read_only image2d_array_depth_t, int4); #endif //cl_khr_depth_images -float4 __purefn __ovld read_imagef(read_only image3d_t image, int4 coord); -int4 __purefn __ovld read_imagei(read_only image3d_t image, int4 coord); -uint4 __purefn __ovld read_imageui(read_only image3d_t image, int4 coord); +float4 __ovld __purefn read_imagef(read_only image3d_t, int4); +int4 __ovld __purefn read_imagei(read_only image3d_t, int4); +uint4 __ovld __purefn read_imageui(read_only image3d_t, int4); #endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) // Image read functions returning half4 type #ifdef cl_khr_fp16 -half4 __purefn __ovld read_imageh(read_only image1d_t image, sampler_t sampler, int coord); -half4 __purefn __ovld read_imageh(read_only image1d_t image, sampler_t sampler, float coord); -half4 __purefn __ovld read_imageh(read_only image2d_t image, sampler_t sampler, int2 coord); -half4 __purefn __ovld read_imageh(read_only image2d_t image, sampler_t sampler, float2 coord); -half4 __purefn __ovld read_imageh(read_only image3d_t image, sampler_t sampler, int4 coord); -half4 __purefn __ovld read_imageh(read_only image3d_t image, sampler_t sampler, float4 coord); +half4 __ovld __purefn read_imageh(read_only image1d_t, sampler_t, int); +half4 __ovld __purefn read_imageh(read_only image1d_t, sampler_t, float); +half4 __ovld __purefn read_imageh(read_only image2d_t, sampler_t, int2); +half4 __ovld __purefn read_imageh(read_only image2d_t, sampler_t, float2); +half4 __ovld __purefn read_imageh(read_only image3d_t, sampler_t, int4); +half4 __ovld __purefn read_imageh(read_only image3d_t, sampler_t, float4); #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) -half4 __purefn __ovld read_imageh(read_only image1d_array_t image, sampler_t sampler, int2 coord); -half4 __purefn __ovld read_imageh(read_only image1d_array_t image, sampler_t sampler, float2 coord); -half4 __purefn __ovld read_imageh(read_only image2d_array_t image, sampler_t sampler, int4 coord); -half4 __purefn __ovld read_imageh(read_only image2d_array_t image, sampler_t sampler, float4 coord); +half4 __ovld __purefn read_imageh(read_only image1d_array_t, sampler_t, int2); +half4 __ovld __purefn read_imageh(read_only image1d_array_t, sampler_t, float2); +half4 __ovld __purefn read_imageh(read_only image2d_array_t, sampler_t, int4); +half4 __ovld __purefn read_imageh(read_only image2d_array_t, sampler_t, float4); /** * Sampler-less Image Access */ -half4 __purefn __ovld read_imageh(read_only image1d_t image, int coord); -half4 __purefn __ovld read_imageh(read_only image2d_t image, int2 coord); -half4 __purefn __ovld read_imageh(read_only image3d_t image, int4 coord); -half4 __purefn __ovld read_imageh(read_only image1d_array_t image, int2 coord); -half4 __purefn __ovld read_imageh(read_only image2d_array_t image, int4 coord); -half4 __purefn __ovld read_imageh(read_only image1d_buffer_t image, int coord); +half4 __ovld __purefn read_imageh(read_only image1d_t, int); +half4 __ovld __purefn read_imageh(read_only image2d_t, int2); +half4 __ovld __purefn read_imageh(read_only image3d_t, int4); +half4 __ovld __purefn read_imageh(read_only image1d_array_t, int2); +half4 __ovld __purefn read_imageh(read_only image2d_array_t, int4); +half4 __ovld __purefn read_imageh(read_only image1d_buffer_t, int); #endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) #endif //cl_khr_fp16 // Image read functions for read_write images -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -float4 __purefn __ovld read_imagef(read_write image1d_t image, int coord); -int4 __purefn __ovld read_imagei(read_write image1d_t image, int coord); -uint4 __purefn __ovld read_imageui(read_write image1d_t image, int coord); +#if defined(__opencl_c_read_write_images) +float4 __ovld __purefn read_imagef(read_write image1d_t, int); +int4 __ovld __purefn read_imagei(read_write image1d_t, int); +uint4 __ovld __purefn read_imageui(read_write image1d_t, int); -float4 __purefn __ovld read_imagef(read_write image1d_buffer_t image, int coord); -int4 __purefn __ovld read_imagei(read_write image1d_buffer_t image, int coord); -uint4 __purefn __ovld read_imageui(read_write image1d_buffer_t image, int coord); +float4 __ovld __purefn read_imagef(read_write image1d_buffer_t, int); +int4 __ovld __purefn read_imagei(read_write image1d_buffer_t, int); +uint4 __ovld __purefn read_imageui(read_write image1d_buffer_t, int); -float4 __purefn __ovld read_imagef(read_write image1d_array_t image, int2 coord); -int4 __purefn __ovld read_imagei(read_write image1d_array_t image, int2 coord); -uint4 __purefn __ovld read_imageui(read_write image1d_array_t image, int2 coord); +float4 __ovld __purefn read_imagef(read_write image1d_array_t, int2); +int4 __ovld __purefn read_imagei(read_write image1d_array_t, int2); +uint4 __ovld __purefn read_imageui(read_write image1d_array_t, int2); -float4 __purefn __ovld read_imagef(read_write image2d_t image, int2 coord); -int4 __purefn __ovld read_imagei(read_write image2d_t image, int2 coord); -uint4 __purefn __ovld read_imageui(read_write image2d_t image, int2 coord); +float4 __ovld __purefn read_imagef(read_write image2d_t, int2); +int4 __ovld __purefn read_imagei(read_write image2d_t, int2); +uint4 __ovld __purefn read_imageui(read_write image2d_t, int2); -float4 __purefn __ovld read_imagef(read_write image2d_array_t image, int4 coord); -int4 __purefn __ovld read_imagei(read_write image2d_array_t image, int4 coord); -uint4 __purefn __ovld read_imageui(read_write image2d_array_t image, int4 coord); +float4 __ovld __purefn read_imagef(read_write image2d_array_t, int4); +int4 __ovld __purefn read_imagei(read_write image2d_array_t, int4); +uint4 __ovld __purefn read_imageui(read_write image2d_array_t, int4); -float4 __purefn __ovld read_imagef(read_write image3d_t image, int4 coord); -int4 __purefn __ovld read_imagei(read_write image3d_t image, int4 coord); -uint4 __purefn __ovld read_imageui(read_write image3d_t image, int4 coord); +float4 __ovld __purefn read_imagef(read_write image3d_t, int4); +int4 __ovld __purefn read_imagei(read_write image3d_t, int4); +uint4 __ovld __purefn read_imageui(read_write image3d_t, int4); #ifdef cl_khr_depth_images -float __purefn __ovld read_imagef(read_write image2d_depth_t image, int2 coord); -float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, int4 coord); +float __ovld __purefn read_imagef(read_write image2d_depth_t, int2); +float __ovld __purefn read_imagef(read_write image2d_array_depth_t, int4); #endif //cl_khr_depth_images #if cl_khr_gl_msaa_sharing -float4 __purefn __ovld read_imagef(read_write image2d_msaa_t image, int2 coord, int sample); -int4 __purefn __ovld read_imagei(read_write image2d_msaa_t image, int2 coord, int sample); -uint4 __purefn __ovld read_imageui(read_write image2d_msaa_t image, int2 coord, int sample); +float4 __ovld __purefn read_imagef(read_write image2d_msaa_t, int2, int); +int4 __ovld __purefn read_imagei(read_write image2d_msaa_t, int2, int); +uint4 __ovld __purefn read_imageui(read_write image2d_msaa_t, int2, int); -float4 __purefn __ovld read_imagef(read_write image2d_array_msaa_t image, int4 coord, int sample); -int4 __purefn __ovld read_imagei(read_write image2d_array_msaa_t image, int4 coord, int sample); -uint4 __purefn __ovld read_imageui(read_write image2d_array_msaa_t image, int4 coord, int sample); +float4 __ovld __purefn read_imagef(read_write image2d_array_msaa_t, int4, int); +int4 __ovld __purefn read_imagei(read_write image2d_array_msaa_t, int4, int); +uint4 __ovld __purefn read_imageui(read_write image2d_array_msaa_t, int4, int); -float __purefn __ovld read_imagef(read_write image2d_msaa_depth_t image, int2 coord, int sample); -float __purefn __ovld read_imagef(read_write image2d_array_msaa_depth_t image, int4 coord, int sample); +float __ovld __purefn read_imagef(read_write image2d_msaa_depth_t, int2, int); +float __ovld __purefn read_imagef(read_write image2d_array_msaa_depth_t, int4, int); #endif //cl_khr_gl_msaa_sharing -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) #ifdef cl_khr_mipmap_image -float4 __purefn __ovld read_imagef(read_write image1d_t image, sampler_t sampler, float coord, float lod); -int4 __purefn __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float lod); -uint4 __purefn __ovld read_imageui(read_write image1d_t image, sampler_t sampler, float coord, float lod); +float4 __ovld __purefn read_imagef(read_write image1d_t, sampler_t, float, float); +int4 __ovld __purefn read_imagei(read_write image1d_t, sampler_t, float, float); +uint4 __ovld __purefn read_imageui(read_write image1d_t, sampler_t, float, float); -float4 __purefn __ovld read_imagef(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); -int4 __purefn __ovld read_imagei(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); -uint4 __purefn __ovld read_imageui(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); +float4 __ovld __purefn read_imagef(read_write image1d_array_t, sampler_t, float2, float); +int4 __ovld __purefn read_imagei(read_write image1d_array_t, sampler_t, float2, float); +uint4 __ovld __purefn read_imageui(read_write image1d_array_t, sampler_t, float2, float); -float4 __purefn __ovld read_imagef(read_write image2d_t image, sampler_t sampler, float2 coord, float lod); -int4 __purefn __ovld read_imagei(read_write image2d_t image, sampler_t sampler, float2 coord, float lod); -uint4 __purefn __ovld read_imageui(read_write image2d_t image, sampler_t sampler, float2 coord, float lod); +float4 __ovld __purefn read_imagef(read_write image2d_t, sampler_t, float2, float); +int4 __ovld __purefn read_imagei(read_write image2d_t, sampler_t, float2, float); +uint4 __ovld __purefn read_imageui(read_write image2d_t, sampler_t, float2, float); -float __purefn __ovld read_imagef(read_write image2d_depth_t image, sampler_t sampler, float2 coord, float lod); +float __ovld __purefn read_imagef(read_write image2d_depth_t, sampler_t, float2, float); -float4 __purefn __ovld read_imagef(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); -int4 __purefn __ovld read_imagei(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); -uint4 __purefn __ovld read_imageui(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); +float4 __ovld __purefn read_imagef(read_write image2d_array_t, sampler_t, float4, float); +int4 __ovld __purefn read_imagei(read_write image2d_array_t, sampler_t, float4, float); +uint4 __ovld __purefn read_imageui(read_write image2d_array_t, sampler_t, float4, float); -float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod); +float __ovld __purefn read_imagef(read_write image2d_array_depth_t, sampler_t, float4, float); -float4 __purefn __ovld read_imagef(read_write image3d_t image, sampler_t sampler, float4 coord, float lod); -int4 __purefn __ovld read_imagei(read_write image3d_t image, sampler_t sampler, float4 coord, float lod); -uint4 __purefn __ovld read_imageui(read_write image3d_t image, sampler_t sampler, float4 coord, float lod); +float4 __ovld __purefn read_imagef(read_write image3d_t, sampler_t, float4, float); +int4 __ovld __purefn read_imagei(read_write image3d_t, sampler_t, float4, float); +uint4 __ovld __purefn read_imageui(read_write image3d_t, sampler_t, float4, float); -float4 __purefn __ovld read_imagef(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY); -int4 __purefn __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY); -uint4 __purefn __ovld read_imageui(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY); +float4 __ovld __purefn read_imagef(read_write image1d_t, sampler_t, float, float, float); +int4 __ovld __purefn read_imagei(read_write image1d_t, sampler_t, float, float, float); +uint4 __ovld __purefn read_imageui(read_write image1d_t, sampler_t, float, float, float); -float4 __purefn __ovld read_imagef(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY); -int4 __purefn __ovld read_imagei(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY); -uint4 __purefn __ovld read_imageui(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY); +float4 __ovld __purefn read_imagef(read_write image1d_array_t, sampler_t, float2, float, float); +int4 __ovld __purefn read_imagei(read_write image1d_array_t, sampler_t, float2, float, float); +uint4 __ovld __purefn read_imageui(read_write image1d_array_t, sampler_t, float2, float, float); -float4 __purefn __ovld read_imagef(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); -int4 __purefn __ovld read_imagei(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); -uint4 __purefn __ovld read_imageui(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); +float4 __ovld __purefn read_imagef(read_write image2d_t, sampler_t, float2, float2, float2); +int4 __ovld __purefn read_imagei(read_write image2d_t, sampler_t, float2, float2, float2); +uint4 __ovld __purefn read_imageui(read_write image2d_t, sampler_t, float2, float2, float2); -float __purefn __ovld read_imagef(read_write image2d_depth_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); +float __ovld __purefn read_imagef(read_write image2d_depth_t, sampler_t, float2, float2, float2); -float4 __purefn __ovld read_imagef(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); -int4 __purefn __ovld read_imagei(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); -uint4 __purefn __ovld read_imageui(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); +float4 __ovld __purefn read_imagef(read_write image2d_array_t, sampler_t, float4, float2, float2); +int4 __ovld __purefn read_imagei(read_write image2d_array_t, sampler_t, float4, float2, float2); +uint4 __ovld __purefn read_imageui(read_write image2d_array_t, sampler_t, float4, float2, float2); -float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); +float __ovld __purefn read_imagef(read_write image2d_array_depth_t, sampler_t, float4, float2, float2); -float4 __purefn __ovld read_imagef(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY); -int4 __purefn __ovld read_imagei(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY); -uint4 __purefn __ovld read_imageui(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY); +float4 __ovld __purefn read_imagef(read_write image3d_t, sampler_t, float4, float4, float4); +int4 __ovld __purefn read_imagei(read_write image3d_t, sampler_t, float4, float4, float4); +uint4 __ovld __purefn read_imageui(read_write image3d_t, sampler_t, float4, float4, float4); #endif //cl_khr_mipmap_image -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) // Image read functions returning half4 type #ifdef cl_khr_fp16 -half4 __purefn __ovld read_imageh(read_write image1d_t image, int coord); -half4 __purefn __ovld read_imageh(read_write image2d_t image, int2 coord); -half4 __purefn __ovld read_imageh(read_write image3d_t image, int4 coord); -half4 __purefn __ovld read_imageh(read_write image1d_array_t image, int2 coord); -half4 __purefn __ovld read_imageh(read_write image2d_array_t image, int4 coord); -half4 __purefn __ovld read_imageh(read_write image1d_buffer_t image, int coord); +half4 __ovld __purefn read_imageh(read_write image1d_t, int); +half4 __ovld __purefn read_imageh(read_write image2d_t, int2); +half4 __ovld __purefn read_imageh(read_write image3d_t, int4); +half4 __ovld __purefn read_imageh(read_write image1d_array_t, int2); +half4 __ovld __purefn read_imageh(read_write image2d_array_t, int4); +half4 __ovld __purefn read_imageh(read_write image1d_buffer_t, int); #endif //cl_khr_fp16 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_read_write_images) /** * Write color value to location specified by coordinate @@ -15207,67 +16269,67 @@ half4 __purefn __ovld read_imageh(read_write image1d_buffer_t image, int coord); * The behavior of write_imagef, write_imagei and * write_imageui for image objects created with * image_channel_data_type values not specified in - * the description above or with (x, y) coordinate + * the description above or with (x, ) coordinate * values that are not in the range (0 ... image width -1, * 0 ... image height - 1), respectively, is undefined. */ -void __ovld write_imagef(write_only image2d_t image, int2 coord, float4 color); -void __ovld write_imagei(write_only image2d_t image, int2 coord, int4 color); -void __ovld write_imageui(write_only image2d_t image, int2 coord, uint4 color); +void __ovld write_imagef(write_only image2d_t, int2, float4); +void __ovld write_imagei(write_only image2d_t, int2, int4); +void __ovld write_imageui(write_only image2d_t, int2, uint4); -void __ovld write_imagef(write_only image2d_array_t image_array, int4 coord, float4 color); -void __ovld write_imagei(write_only image2d_array_t image_array, int4 coord, int4 color); -void __ovld write_imageui(write_only image2d_array_t image_array, int4 coord, uint4 color); +void __ovld write_imagef(write_only image2d_array_t, int4, float4); +void __ovld write_imagei(write_only image2d_array_t, int4, int4); +void __ovld write_imageui(write_only image2d_array_t, int4, uint4); -void __ovld write_imagef(write_only image1d_t image, int coord, float4 color); -void __ovld write_imagei(write_only image1d_t image, int coord, int4 color); -void __ovld write_imageui(write_only image1d_t image, int coord, uint4 color); +void __ovld write_imagef(write_only image1d_t, int, float4); +void __ovld write_imagei(write_only image1d_t, int, int4); +void __ovld write_imageui(write_only image1d_t, int, uint4); -void __ovld write_imagef(write_only image1d_buffer_t image, int coord, float4 color); -void __ovld write_imagei(write_only image1d_buffer_t image, int coord, int4 color); -void __ovld write_imageui(write_only image1d_buffer_t image, int coord, uint4 color); +void __ovld write_imagef(write_only image1d_buffer_t, int, float4); +void __ovld write_imagei(write_only image1d_buffer_t, int, int4); +void __ovld write_imageui(write_only image1d_buffer_t, int, uint4); -void __ovld write_imagef(write_only image1d_array_t image_array, int2 coord, float4 color); -void __ovld write_imagei(write_only image1d_array_t image_array, int2 coord, int4 color); -void __ovld write_imageui(write_only image1d_array_t image_array, int2 coord, uint4 color); +void __ovld write_imagef(write_only image1d_array_t, int2, float4); +void __ovld write_imagei(write_only image1d_array_t, int2, int4); +void __ovld write_imageui(write_only image1d_array_t, int2, uint4); #ifdef cl_khr_3d_image_writes -void __ovld write_imagef(write_only image3d_t image, int4 coord, float4 color); -void __ovld write_imagei(write_only image3d_t image, int4 coord, int4 color); -void __ovld write_imageui(write_only image3d_t image, int4 coord, uint4 color); +void __ovld write_imagef(write_only image3d_t, int4, float4); +void __ovld write_imagei(write_only image3d_t, int4, int4); +void __ovld write_imageui(write_only image3d_t, int4, uint4); #endif #ifdef cl_khr_depth_images -void __ovld write_imagef(write_only image2d_depth_t image, int2 coord, float color); -void __ovld write_imagef(write_only image2d_array_depth_t image, int4 coord, float color); +void __ovld write_imagef(write_only image2d_depth_t, int2, float); +void __ovld write_imagef(write_only image2d_array_depth_t, int4, float); #endif //cl_khr_depth_images // OpenCL Extension v2.0 s9.18 - Mipmaps #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) #if defined(cl_khr_mipmap_image_writes) -void __ovld write_imagef(write_only image1d_t image, int coord, int lod, float4 color); -void __ovld write_imagei(write_only image1d_t image, int coord, int lod, int4 color); -void __ovld write_imageui(write_only image1d_t image, int coord, int lod, uint4 color); +void __ovld write_imagef(write_only image1d_t, int, int, float4); +void __ovld write_imagei(write_only image1d_t, int, int, int4); +void __ovld write_imageui(write_only image1d_t, int, int, uint4); -void __ovld write_imagef(write_only image1d_array_t image_array, int2 coord, int lod, float4 color); -void __ovld write_imagei(write_only image1d_array_t image_array, int2 coord, int lod, int4 color); -void __ovld write_imageui(write_only image1d_array_t image_array, int2 coord, int lod, uint4 color); +void __ovld write_imagef(write_only image1d_array_t, int2, int, float4); +void __ovld write_imagei(write_only image1d_array_t, int2, int, int4); +void __ovld write_imageui(write_only image1d_array_t, int2, int, uint4); -void __ovld write_imagef(write_only image2d_t image, int2 coord, int lod, float4 color); -void __ovld write_imagei(write_only image2d_t image, int2 coord, int lod, int4 color); -void __ovld write_imageui(write_only image2d_t image, int2 coord, int lod, uint4 color); +void __ovld write_imagef(write_only image2d_t, int2, int, float4); +void __ovld write_imagei(write_only image2d_t, int2, int, int4); +void __ovld write_imageui(write_only image2d_t, int2, int, uint4); -void __ovld write_imagef(write_only image2d_array_t image_array, int4 coord, int lod, float4 color); -void __ovld write_imagei(write_only image2d_array_t image_array, int4 coord, int lod, int4 color); -void __ovld write_imageui(write_only image2d_array_t image_array, int4 coord, int lod, uint4 color); +void __ovld write_imagef(write_only image2d_array_t, int4, int, float4); +void __ovld write_imagei(write_only image2d_array_t, int4, int, int4); +void __ovld write_imageui(write_only image2d_array_t, int4, int, uint4); -void __ovld write_imagef(write_only image2d_depth_t image, int2 coord, int lod, float depth); -void __ovld write_imagef(write_only image2d_array_depth_t image, int4 coord, int lod, float depth); +void __ovld write_imagef(write_only image2d_depth_t, int2, int, float); +void __ovld write_imagef(write_only image2d_array_depth_t, int4, int, float); #ifdef cl_khr_3d_image_writes -void __ovld write_imagef(write_only image3d_t image, int4 coord, int lod, float4 color); -void __ovld write_imagei(write_only image3d_t image, int4 coord, int lod, int4 color); -void __ovld write_imageui(write_only image3d_t image, int4 coord, int lod, uint4 color); +void __ovld write_imagef(write_only image3d_t, int4, int, float4); +void __ovld write_imagei(write_only image3d_t, int4, int, int4); +void __ovld write_imageui(write_only image3d_t, int4, int, uint4); #endif //cl_khr_3d_image_writes #endif //defined(cl_khr_mipmap_image_writes) @@ -15275,91 +16337,89 @@ void __ovld write_imageui(write_only image3d_t image, int4 coord, int lod, uint4 // Image write functions for half4 type #ifdef cl_khr_fp16 -void __ovld write_imageh(write_only image1d_t image, int coord, half4 color); -void __ovld write_imageh(write_only image2d_t image, int2 coord, half4 color); +void __ovld write_imageh(write_only image1d_t, int, half4); +void __ovld write_imageh(write_only image2d_t, int2, half4); #ifdef cl_khr_3d_image_writes -void __ovld write_imageh(write_only image3d_t image, int4 coord, half4 color); +void __ovld write_imageh(write_only image3d_t, int4, half4); #endif -void __ovld write_imageh(write_only image1d_array_t image, int2 coord, half4 color); -void __ovld write_imageh(write_only image2d_array_t image, int4 coord, half4 color); -void __ovld write_imageh(write_only image1d_buffer_t image, int coord, half4 color); +void __ovld write_imageh(write_only image1d_array_t, int2, half4); +void __ovld write_imageh(write_only image2d_array_t, int4, half4); +void __ovld write_imageh(write_only image1d_buffer_t, int, half4); #endif //cl_khr_fp16 // Image write functions for read_write images -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -void __ovld write_imagef(read_write image2d_t image, int2 coord, float4 color); -void __ovld write_imagei(read_write image2d_t image, int2 coord, int4 color); -void __ovld write_imageui(read_write image2d_t image, int2 coord, uint4 color); +#if defined(__opencl_c_read_write_images) +void __ovld write_imagef(read_write image2d_t, int2, float4); +void __ovld write_imagei(read_write image2d_t, int2, int4); +void __ovld write_imageui(read_write image2d_t, int2, uint4); -void __ovld write_imagef(read_write image2d_array_t image_array, int4 coord, float4 color); -void __ovld write_imagei(read_write image2d_array_t image_array, int4 coord, int4 color); -void __ovld write_imageui(read_write image2d_array_t image_array, int4 coord, uint4 color); +void __ovld write_imagef(read_write image2d_array_t, int4, float4); +void __ovld write_imagei(read_write image2d_array_t, int4, int4); +void __ovld write_imageui(read_write image2d_array_t, int4, uint4); -void __ovld write_imagef(read_write image1d_t image, int coord, float4 color); -void __ovld write_imagei(read_write image1d_t image, int coord, int4 color); -void __ovld write_imageui(read_write image1d_t image, int coord, uint4 color); +void __ovld write_imagef(read_write image1d_t, int, float4); +void __ovld write_imagei(read_write image1d_t, int, int4); +void __ovld write_imageui(read_write image1d_t, int, uint4); -void __ovld write_imagef(read_write image1d_buffer_t image, int coord, float4 color); -void __ovld write_imagei(read_write image1d_buffer_t image, int coord, int4 color); -void __ovld write_imageui(read_write image1d_buffer_t image, int coord, uint4 color); +void __ovld write_imagef(read_write image1d_buffer_t, int, float4); +void __ovld write_imagei(read_write image1d_buffer_t, int, int4); +void __ovld write_imageui(read_write image1d_buffer_t, int, uint4); -void __ovld write_imagef(read_write image1d_array_t image_array, int2 coord, float4 color); -void __ovld write_imagei(read_write image1d_array_t image_array, int2 coord, int4 color); -void __ovld write_imageui(read_write image1d_array_t image_array, int2 coord, uint4 color); +void __ovld write_imagef(read_write image1d_array_t, int2, float4); +void __ovld write_imagei(read_write image1d_array_t, int2, int4); +void __ovld write_imageui(read_write image1d_array_t, int2, uint4); #ifdef cl_khr_3d_image_writes -void __ovld write_imagef(read_write image3d_t image, int4 coord, float4 color); -void __ovld write_imagei(read_write image3d_t image, int4 coord, int4 color); -void __ovld write_imageui(read_write image3d_t image, int4 coord, uint4 color); +void __ovld write_imagef(read_write image3d_t, int4, float4); +void __ovld write_imagei(read_write image3d_t, int4, int4); +void __ovld write_imageui(read_write image3d_t, int4, uint4); #endif #ifdef cl_khr_depth_images -void __ovld write_imagef(read_write image2d_depth_t image, int2 coord, float color); -void __ovld write_imagef(read_write image2d_array_depth_t image, int4 coord, float color); +void __ovld write_imagef(read_write image2d_depth_t, int2, float); +void __ovld write_imagef(read_write image2d_array_depth_t, int4, float); #endif //cl_khr_depth_images -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) #if defined(cl_khr_mipmap_image_writes) -void __ovld write_imagef(read_write image1d_t image, int coord, int lod, float4 color); -void __ovld write_imagei(read_write image1d_t image, int coord, int lod, int4 color); -void __ovld write_imageui(read_write image1d_t image, int coord, int lod, uint4 color); +void __ovld write_imagef(read_write image1d_t, int, int, float4); +void __ovld write_imagei(read_write image1d_t, int, int, int4); +void __ovld write_imageui(read_write image1d_t, int, int, uint4); -void __ovld write_imagef(read_write image1d_array_t image_array, int2 coord, int lod, float4 color); -void __ovld write_imagei(read_write image1d_array_t image_array, int2 coord, int lod, int4 color); -void __ovld write_imageui(read_write image1d_array_t image_array, int2 coord, int lod, uint4 color); +void __ovld write_imagef(read_write image1d_array_t, int2, int, float4); +void __ovld write_imagei(read_write image1d_array_t, int2, int, int4); +void __ovld write_imageui(read_write image1d_array_t, int2, int, uint4); -void __ovld write_imagef(read_write image2d_t image, int2 coord, int lod, float4 color); -void __ovld write_imagei(read_write image2d_t image, int2 coord, int lod, int4 color); -void __ovld write_imageui(read_write image2d_t image, int2 coord, int lod, uint4 color); +void __ovld write_imagef(read_write image2d_t, int2, int, float4); +void __ovld write_imagei(read_write image2d_t, int2, int, int4); +void __ovld write_imageui(read_write image2d_t, int2, int, uint4); -void __ovld write_imagef(read_write image2d_array_t image_array, int4 coord, int lod, float4 color); -void __ovld write_imagei(read_write image2d_array_t image_array, int4 coord, int lod, int4 color); -void __ovld write_imageui(read_write image2d_array_t image_array, int4 coord, int lod, uint4 color); +void __ovld write_imagef(read_write image2d_array_t, int4, int, float4); +void __ovld write_imagei(read_write image2d_array_t, int4, int, int4); +void __ovld write_imageui(read_write image2d_array_t, int4, int, uint4); -void __ovld write_imagef(read_write image2d_depth_t image, int2 coord, int lod, float color); -void __ovld write_imagef(read_write image2d_array_depth_t image, int4 coord, int lod, float color); +void __ovld write_imagef(read_write image2d_depth_t, int2, int, float); +void __ovld write_imagef(read_write image2d_array_depth_t, int4, int, float); #ifdef cl_khr_3d_image_writes -void __ovld write_imagef(read_write image3d_t image, int4 coord, int lod, float4 color); -void __ovld write_imagei(read_write image3d_t image, int4 coord, int lod, int4 color); -void __ovld write_imageui(read_write image3d_t image, int4 coord, int lod, uint4 color); +void __ovld write_imagef(read_write image3d_t, int4, int, float4); +void __ovld write_imagei(read_write image3d_t, int4, int, int4); +void __ovld write_imageui(read_write image3d_t, int4, int, uint4); #endif //cl_khr_3d_image_writes #endif //cl_khr_mipmap_image_writes -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) // Image write functions for half4 type #ifdef cl_khr_fp16 -void __ovld write_imageh(read_write image1d_t image, int coord, half4 color); -void __ovld write_imageh(read_write image2d_t image, int2 coord, half4 color); +void __ovld write_imageh(read_write image1d_t, int, half4); +void __ovld write_imageh(read_write image2d_t, int2, half4); #ifdef cl_khr_3d_image_writes -void __ovld write_imageh(read_write image3d_t image, int4 coord, half4 color); +void __ovld write_imageh(read_write image3d_t, int4, half4); #endif -void __ovld write_imageh(read_write image1d_array_t image, int2 coord, half4 color); -void __ovld write_imageh(read_write image2d_array_t image, int4 coord, half4 color); -void __ovld write_imageh(read_write image1d_buffer_t image, int coord, half4 color); +void __ovld write_imageh(read_write image1d_array_t, int2, half4); +void __ovld write_imageh(read_write image2d_array_t, int4, half4); +void __ovld write_imageh(read_write image1d_buffer_t, int, half4); #endif //cl_khr_fp16 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_read_write_images) // Note: In OpenCL v1.0/1.1/1.2, image argument of image query builtin functions does not have // access qualifier, which by default assume read_only access qualifier. Image query builtin @@ -15369,124 +16429,122 @@ void __ovld write_imageh(read_write image1d_buffer_t image, int coord, half4 col * Return the image width in pixels. * */ -int __ovld __cnfn get_image_width(read_only image1d_t image); -int __ovld __cnfn get_image_width(read_only image1d_buffer_t image); -int __ovld __cnfn get_image_width(read_only image2d_t image); -#ifdef cl_khr_3d_image_writes -int __ovld __cnfn get_image_width(read_only image3d_t image); -#endif -int __ovld __cnfn get_image_width(read_only image1d_array_t image); -int __ovld __cnfn get_image_width(read_only image2d_array_t image); +int __ovld __cnfn get_image_width(read_only image1d_t); +int __ovld __cnfn get_image_width(read_only image1d_buffer_t); +int __ovld __cnfn get_image_width(read_only image2d_t); +int __ovld __cnfn get_image_width(read_only image3d_t); +int __ovld __cnfn get_image_width(read_only image1d_array_t); +int __ovld __cnfn get_image_width(read_only image2d_array_t); #ifdef cl_khr_depth_images -int __ovld __cnfn get_image_width(read_only image2d_depth_t image); -int __ovld __cnfn get_image_width(read_only image2d_array_depth_t image); +int __ovld __cnfn get_image_width(read_only image2d_depth_t); +int __ovld __cnfn get_image_width(read_only image2d_array_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_width(read_only image2d_msaa_t image); -int __ovld __cnfn get_image_width(read_only image2d_msaa_depth_t image); -int __ovld __cnfn get_image_width(read_only image2d_array_msaa_t image); -int __ovld __cnfn get_image_width(read_only image2d_array_msaa_depth_t image); +int __ovld __cnfn get_image_width(read_only image2d_msaa_t); +int __ovld __cnfn get_image_width(read_only image2d_msaa_depth_t); +int __ovld __cnfn get_image_width(read_only image2d_array_msaa_t); +int __ovld __cnfn get_image_width(read_only image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -int __ovld __cnfn get_image_width(write_only image1d_t image); -int __ovld __cnfn get_image_width(write_only image1d_buffer_t image); -int __ovld __cnfn get_image_width(write_only image2d_t image); +int __ovld __cnfn get_image_width(write_only image1d_t); +int __ovld __cnfn get_image_width(write_only image1d_buffer_t); +int __ovld __cnfn get_image_width(write_only image2d_t); #ifdef cl_khr_3d_image_writes -int __ovld __cnfn get_image_width(write_only image3d_t image); +int __ovld __cnfn get_image_width(write_only image3d_t); #endif -int __ovld __cnfn get_image_width(write_only image1d_array_t image); -int __ovld __cnfn get_image_width(write_only image2d_array_t image); +int __ovld __cnfn get_image_width(write_only image1d_array_t); +int __ovld __cnfn get_image_width(write_only image2d_array_t); #ifdef cl_khr_depth_images -int __ovld __cnfn get_image_width(write_only image2d_depth_t image); -int __ovld __cnfn get_image_width(write_only image2d_array_depth_t image); +int __ovld __cnfn get_image_width(write_only image2d_depth_t); +int __ovld __cnfn get_image_width(write_only image2d_array_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_width(write_only image2d_msaa_t image); -int __ovld __cnfn get_image_width(write_only image2d_msaa_depth_t image); -int __ovld __cnfn get_image_width(write_only image2d_array_msaa_t image); -int __ovld __cnfn get_image_width(write_only image2d_array_msaa_depth_t image); +int __ovld __cnfn get_image_width(write_only image2d_msaa_t); +int __ovld __cnfn get_image_width(write_only image2d_msaa_depth_t); +int __ovld __cnfn get_image_width(write_only image2d_array_msaa_t); +int __ovld __cnfn get_image_width(write_only image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -int __ovld __cnfn get_image_width(read_write image1d_t image); -int __ovld __cnfn get_image_width(read_write image1d_buffer_t image); -int __ovld __cnfn get_image_width(read_write image2d_t image); -int __ovld __cnfn get_image_width(read_write image3d_t image); -int __ovld __cnfn get_image_width(read_write image1d_array_t image); -int __ovld __cnfn get_image_width(read_write image2d_array_t image); +#if defined(__opencl_c_read_write_images) +int __ovld __cnfn get_image_width(read_write image1d_t); +int __ovld __cnfn get_image_width(read_write image1d_buffer_t); +int __ovld __cnfn get_image_width(read_write image2d_t); +int __ovld __cnfn get_image_width(read_write image3d_t); +int __ovld __cnfn get_image_width(read_write image1d_array_t); +int __ovld __cnfn get_image_width(read_write image2d_array_t); #ifdef cl_khr_depth_images -int __ovld __cnfn get_image_width(read_write image2d_depth_t image); -int __ovld __cnfn get_image_width(read_write image2d_array_depth_t image); +int __ovld __cnfn get_image_width(read_write image2d_depth_t); +int __ovld __cnfn get_image_width(read_write image2d_array_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_width(read_write image2d_msaa_t image); -int __ovld __cnfn get_image_width(read_write image2d_msaa_depth_t image); -int __ovld __cnfn get_image_width(read_write image2d_array_msaa_t image); -int __ovld __cnfn get_image_width(read_write image2d_array_msaa_depth_t image); +int __ovld __cnfn get_image_width(read_write image2d_msaa_t); +int __ovld __cnfn get_image_width(read_write image2d_msaa_depth_t); +int __ovld __cnfn get_image_width(read_write image2d_array_msaa_t); +int __ovld __cnfn get_image_width(read_write image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_read_write_images) /** * Return the image height in pixels. */ -int __ovld __cnfn get_image_height(read_only image2d_t image); -int __ovld __cnfn get_image_height(read_only image3d_t image); -int __ovld __cnfn get_image_height(read_only image2d_array_t image); +int __ovld __cnfn get_image_height(read_only image2d_t); +int __ovld __cnfn get_image_height(read_only image3d_t); +int __ovld __cnfn get_image_height(read_only image2d_array_t); #ifdef cl_khr_depth_images -int __ovld __cnfn get_image_height(read_only image2d_depth_t image); -int __ovld __cnfn get_image_height(read_only image2d_array_depth_t image); +int __ovld __cnfn get_image_height(read_only image2d_depth_t); +int __ovld __cnfn get_image_height(read_only image2d_array_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_height(read_only image2d_msaa_t image); -int __ovld __cnfn get_image_height(read_only image2d_msaa_depth_t image); -int __ovld __cnfn get_image_height(read_only image2d_array_msaa_t image); -int __ovld __cnfn get_image_height(read_only image2d_array_msaa_depth_t image); +int __ovld __cnfn get_image_height(read_only image2d_msaa_t); +int __ovld __cnfn get_image_height(read_only image2d_msaa_depth_t); +int __ovld __cnfn get_image_height(read_only image2d_array_msaa_t); +int __ovld __cnfn get_image_height(read_only image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -int __ovld __cnfn get_image_height(write_only image2d_t image); +int __ovld __cnfn get_image_height(write_only image2d_t); #ifdef cl_khr_3d_image_writes -int __ovld __cnfn get_image_height(write_only image3d_t image); +int __ovld __cnfn get_image_height(write_only image3d_t); #endif -int __ovld __cnfn get_image_height(write_only image2d_array_t image); +int __ovld __cnfn get_image_height(write_only image2d_array_t); #ifdef cl_khr_depth_images -int __ovld __cnfn get_image_height(write_only image2d_depth_t image); -int __ovld __cnfn get_image_height(write_only image2d_array_depth_t image); +int __ovld __cnfn get_image_height(write_only image2d_depth_t); +int __ovld __cnfn get_image_height(write_only image2d_array_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_height(write_only image2d_msaa_t image); -int __ovld __cnfn get_image_height(write_only image2d_msaa_depth_t image); -int __ovld __cnfn get_image_height(write_only image2d_array_msaa_t image); -int __ovld __cnfn get_image_height(write_only image2d_array_msaa_depth_t image); +int __ovld __cnfn get_image_height(write_only image2d_msaa_t); +int __ovld __cnfn get_image_height(write_only image2d_msaa_depth_t); +int __ovld __cnfn get_image_height(write_only image2d_array_msaa_t); +int __ovld __cnfn get_image_height(write_only image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -int __ovld __cnfn get_image_height(read_write image2d_t image); -int __ovld __cnfn get_image_height(read_write image3d_t image); -int __ovld __cnfn get_image_height(read_write image2d_array_t image); +#if defined(__opencl_c_read_write_images) +int __ovld __cnfn get_image_height(read_write image2d_t); +int __ovld __cnfn get_image_height(read_write image3d_t); +int __ovld __cnfn get_image_height(read_write image2d_array_t); #ifdef cl_khr_depth_images -int __ovld __cnfn get_image_height(read_write image2d_depth_t image); -int __ovld __cnfn get_image_height(read_write image2d_array_depth_t image); +int __ovld __cnfn get_image_height(read_write image2d_depth_t); +int __ovld __cnfn get_image_height(read_write image2d_array_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_height(read_write image2d_msaa_t image); -int __ovld __cnfn get_image_height(read_write image2d_msaa_depth_t image); -int __ovld __cnfn get_image_height(read_write image2d_array_msaa_t image); -int __ovld __cnfn get_image_height(read_write image2d_array_msaa_depth_t image); +int __ovld __cnfn get_image_height(read_write image2d_msaa_t); +int __ovld __cnfn get_image_height(read_write image2d_msaa_depth_t); +int __ovld __cnfn get_image_height(read_write image2d_array_msaa_t); +int __ovld __cnfn get_image_height(read_write image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_read_write_images) /** * Return the image depth in pixels. */ -int __ovld __cnfn get_image_depth(read_only image3d_t image); +int __ovld __cnfn get_image_depth(read_only image3d_t); #ifdef cl_khr_3d_image_writes -int __ovld __cnfn get_image_depth(write_only image3d_t image); +int __ovld __cnfn get_image_depth(write_only image3d_t); #endif -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -int __ovld __cnfn get_image_depth(read_write image3d_t image); -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#if defined(__opencl_c_read_write_images) +int __ovld __cnfn get_image_depth(read_write image3d_t); +#endif //defined(__opencl_c_read_write_images) // OpenCL Extension v2.0 s9.18 - Mipmaps #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) @@ -15495,34 +16553,44 @@ int __ovld __cnfn get_image_depth(read_write image3d_t image); * Return the image miplevels. */ -int __ovld get_image_num_mip_levels(read_only image1d_t image); -int __ovld get_image_num_mip_levels(read_only image2d_t image); -int __ovld get_image_num_mip_levels(read_only image3d_t image); +int __ovld get_image_num_mip_levels(read_only image1d_t); +int __ovld get_image_num_mip_levels(read_only image2d_t); +int __ovld get_image_num_mip_levels(read_only image3d_t); -int __ovld get_image_num_mip_levels(write_only image1d_t image); -int __ovld get_image_num_mip_levels(write_only image2d_t image); +int __ovld get_image_num_mip_levels(write_only image1d_t); +int __ovld get_image_num_mip_levels(write_only image2d_t); #ifdef cl_khr_3d_image_writes -int __ovld get_image_num_mip_levels(write_only image3d_t image); +int __ovld get_image_num_mip_levels(write_only image3d_t); #endif -int __ovld get_image_num_mip_levels(read_write image1d_t image); -int __ovld get_image_num_mip_levels(read_write image2d_t image); -int __ovld get_image_num_mip_levels(read_write image3d_t image); +#if defined(__opencl_c_read_write_images) +int __ovld get_image_num_mip_levels(read_write image1d_t); +int __ovld get_image_num_mip_levels(read_write image2d_t); +int __ovld get_image_num_mip_levels(read_write image3d_t); +#endif //defined(__opencl_c_read_write_images) -int __ovld get_image_num_mip_levels(read_only image1d_array_t image); -int __ovld get_image_num_mip_levels(read_only image2d_array_t image); -int __ovld get_image_num_mip_levels(read_only image2d_array_depth_t image); -int __ovld get_image_num_mip_levels(read_only image2d_depth_t image); +int __ovld get_image_num_mip_levels(read_only image1d_array_t); +int __ovld get_image_num_mip_levels(read_only image2d_array_t); +#ifdef cl_khr_depth_images +int __ovld get_image_num_mip_levels(read_only image2d_array_depth_t); +int __ovld get_image_num_mip_levels(read_only image2d_depth_t); +#endif // cl_khr_depth_images -int __ovld get_image_num_mip_levels(write_only image1d_array_t image); -int __ovld get_image_num_mip_levels(write_only image2d_array_t image); -int __ovld get_image_num_mip_levels(write_only image2d_array_depth_t image); -int __ovld get_image_num_mip_levels(write_only image2d_depth_t image); +int __ovld get_image_num_mip_levels(write_only image1d_array_t); +int __ovld get_image_num_mip_levels(write_only image2d_array_t); +#ifdef cl_khr_depth_images +int __ovld get_image_num_mip_levels(write_only image2d_array_depth_t); +int __ovld get_image_num_mip_levels(write_only image2d_depth_t); +#endif // cl_khr_depth_images -int __ovld get_image_num_mip_levels(read_write image1d_array_t image); -int __ovld get_image_num_mip_levels(read_write image2d_array_t image); -int __ovld get_image_num_mip_levels(read_write image2d_array_depth_t image); -int __ovld get_image_num_mip_levels(read_write image2d_depth_t image); +#if defined(__opencl_c_read_write_images) +int __ovld get_image_num_mip_levels(read_write image1d_array_t); +int __ovld get_image_num_mip_levels(read_write image2d_array_t); +#ifdef cl_khr_depth_images +int __ovld get_image_num_mip_levels(read_write image2d_array_depth_t); +int __ovld get_image_num_mip_levels(read_write image2d_depth_t); +#endif // cl_khr_depth_images +#endif //defined(__opencl_c_read_write_images) #endif //cl_khr_mipmap_image #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) @@ -15546,60 +16614,60 @@ int __ovld get_image_num_mip_levels(read_write image2d_depth_t image); * CLK_FLOAT */ -int __ovld __cnfn get_image_channel_data_type(read_only image1d_t image); -int __ovld __cnfn get_image_channel_data_type(read_only image1d_buffer_t image); -int __ovld __cnfn get_image_channel_data_type(read_only image2d_t image); -int __ovld __cnfn get_image_channel_data_type(read_only image3d_t image); -int __ovld __cnfn get_image_channel_data_type(read_only image1d_array_t image); -int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_t image); +int __ovld __cnfn get_image_channel_data_type(read_only image1d_t); +int __ovld __cnfn get_image_channel_data_type(read_only image1d_buffer_t); +int __ovld __cnfn get_image_channel_data_type(read_only image2d_t); +int __ovld __cnfn get_image_channel_data_type(read_only image3d_t); +int __ovld __cnfn get_image_channel_data_type(read_only image1d_array_t); +int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_t); #ifdef cl_khr_depth_images -int __ovld __cnfn get_image_channel_data_type(read_only image2d_depth_t image); -int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_depth_t image); +int __ovld __cnfn get_image_channel_data_type(read_only image2d_depth_t); +int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_channel_data_type(read_only image2d_msaa_t image); -int __ovld __cnfn get_image_channel_data_type(read_only image2d_msaa_depth_t image); -int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_msaa_t image); -int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_msaa_depth_t image); +int __ovld __cnfn get_image_channel_data_type(read_only image2d_msaa_t); +int __ovld __cnfn get_image_channel_data_type(read_only image2d_msaa_depth_t); +int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_msaa_t); +int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -int __ovld __cnfn get_image_channel_data_type(write_only image1d_t image); -int __ovld __cnfn get_image_channel_data_type(write_only image1d_buffer_t image); -int __ovld __cnfn get_image_channel_data_type(write_only image2d_t image); +int __ovld __cnfn get_image_channel_data_type(write_only image1d_t); +int __ovld __cnfn get_image_channel_data_type(write_only image1d_buffer_t); +int __ovld __cnfn get_image_channel_data_type(write_only image2d_t); #ifdef cl_khr_3d_image_writes -int __ovld __cnfn get_image_channel_data_type(write_only image3d_t image); +int __ovld __cnfn get_image_channel_data_type(write_only image3d_t); #endif -int __ovld __cnfn get_image_channel_data_type(write_only image1d_array_t image); -int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_t image); +int __ovld __cnfn get_image_channel_data_type(write_only image1d_array_t); +int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_t); #ifdef cl_khr_depth_images -int __ovld __cnfn get_image_channel_data_type(write_only image2d_depth_t image); -int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_depth_t image); +int __ovld __cnfn get_image_channel_data_type(write_only image2d_depth_t); +int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_channel_data_type(write_only image2d_msaa_t image); -int __ovld __cnfn get_image_channel_data_type(write_only image2d_msaa_depth_t image); -int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_msaa_t image); -int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_msaa_depth_t image); +int __ovld __cnfn get_image_channel_data_type(write_only image2d_msaa_t); +int __ovld __cnfn get_image_channel_data_type(write_only image2d_msaa_depth_t); +int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_msaa_t); +int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -int __ovld __cnfn get_image_channel_data_type(read_write image1d_t image); -int __ovld __cnfn get_image_channel_data_type(read_write image1d_buffer_t image); -int __ovld __cnfn get_image_channel_data_type(read_write image2d_t image); -int __ovld __cnfn get_image_channel_data_type(read_write image3d_t image); -int __ovld __cnfn get_image_channel_data_type(read_write image1d_array_t image); -int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_t image); +#if defined(__opencl_c_read_write_images) +int __ovld __cnfn get_image_channel_data_type(read_write image1d_t); +int __ovld __cnfn get_image_channel_data_type(read_write image1d_buffer_t); +int __ovld __cnfn get_image_channel_data_type(read_write image2d_t); +int __ovld __cnfn get_image_channel_data_type(read_write image3d_t); +int __ovld __cnfn get_image_channel_data_type(read_write image1d_array_t); +int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_t); #ifdef cl_khr_depth_images -int __ovld __cnfn get_image_channel_data_type(read_write image2d_depth_t image); -int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_depth_t image); +int __ovld __cnfn get_image_channel_data_type(read_write image2d_depth_t); +int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_channel_data_type(read_write image2d_msaa_t image); -int __ovld __cnfn get_image_channel_data_type(read_write image2d_msaa_depth_t image); -int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_msaa_t image); -int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_msaa_depth_t image); +int __ovld __cnfn get_image_channel_data_type(read_write image2d_msaa_t); +int __ovld __cnfn get_image_channel_data_type(read_write image2d_msaa_depth_t); +int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_msaa_t); +int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_read_write_images) /** * Return the image channel order. Valid values are: @@ -15618,106 +16686,106 @@ int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_msaa_dept * CLK_LUMINANCE */ -int __ovld __cnfn get_image_channel_order(read_only image1d_t image); -int __ovld __cnfn get_image_channel_order(read_only image1d_buffer_t image); -int __ovld __cnfn get_image_channel_order(read_only image2d_t image); -int __ovld __cnfn get_image_channel_order(read_only image3d_t image); -int __ovld __cnfn get_image_channel_order(read_only image1d_array_t image); -int __ovld __cnfn get_image_channel_order(read_only image2d_array_t image); +int __ovld __cnfn get_image_channel_order(read_only image1d_t); +int __ovld __cnfn get_image_channel_order(read_only image1d_buffer_t); +int __ovld __cnfn get_image_channel_order(read_only image2d_t); +int __ovld __cnfn get_image_channel_order(read_only image3d_t); +int __ovld __cnfn get_image_channel_order(read_only image1d_array_t); +int __ovld __cnfn get_image_channel_order(read_only image2d_array_t); #ifdef cl_khr_depth_images -int __ovld __cnfn get_image_channel_order(read_only image2d_depth_t image); -int __ovld __cnfn get_image_channel_order(read_only image2d_array_depth_t image); +int __ovld __cnfn get_image_channel_order(read_only image2d_depth_t); +int __ovld __cnfn get_image_channel_order(read_only image2d_array_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_channel_order(read_only image2d_msaa_t image); -int __ovld __cnfn get_image_channel_order(read_only image2d_msaa_depth_t image); -int __ovld __cnfn get_image_channel_order(read_only image2d_array_msaa_t image); -int __ovld __cnfn get_image_channel_order(read_only image2d_array_msaa_depth_t image); +int __ovld __cnfn get_image_channel_order(read_only image2d_msaa_t); +int __ovld __cnfn get_image_channel_order(read_only image2d_msaa_depth_t); +int __ovld __cnfn get_image_channel_order(read_only image2d_array_msaa_t); +int __ovld __cnfn get_image_channel_order(read_only image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -int __ovld __cnfn get_image_channel_order(write_only image1d_t image); -int __ovld __cnfn get_image_channel_order(write_only image1d_buffer_t image); -int __ovld __cnfn get_image_channel_order(write_only image2d_t image); +int __ovld __cnfn get_image_channel_order(write_only image1d_t); +int __ovld __cnfn get_image_channel_order(write_only image1d_buffer_t); +int __ovld __cnfn get_image_channel_order(write_only image2d_t); #ifdef cl_khr_3d_image_writes -int __ovld __cnfn get_image_channel_order(write_only image3d_t image); +int __ovld __cnfn get_image_channel_order(write_only image3d_t); #endif -int __ovld __cnfn get_image_channel_order(write_only image1d_array_t image); -int __ovld __cnfn get_image_channel_order(write_only image2d_array_t image); +int __ovld __cnfn get_image_channel_order(write_only image1d_array_t); +int __ovld __cnfn get_image_channel_order(write_only image2d_array_t); #ifdef cl_khr_depth_images -int __ovld __cnfn get_image_channel_order(write_only image2d_depth_t image); -int __ovld __cnfn get_image_channel_order(write_only image2d_array_depth_t image); +int __ovld __cnfn get_image_channel_order(write_only image2d_depth_t); +int __ovld __cnfn get_image_channel_order(write_only image2d_array_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_channel_order(write_only image2d_msaa_t image); -int __ovld __cnfn get_image_channel_order(write_only image2d_msaa_depth_t image); -int __ovld __cnfn get_image_channel_order(write_only image2d_array_msaa_t image); -int __ovld __cnfn get_image_channel_order(write_only image2d_array_msaa_depth_t image); +int __ovld __cnfn get_image_channel_order(write_only image2d_msaa_t); +int __ovld __cnfn get_image_channel_order(write_only image2d_msaa_depth_t); +int __ovld __cnfn get_image_channel_order(write_only image2d_array_msaa_t); +int __ovld __cnfn get_image_channel_order(write_only image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -int __ovld __cnfn get_image_channel_order(read_write image1d_t image); -int __ovld __cnfn get_image_channel_order(read_write image1d_buffer_t image); -int __ovld __cnfn get_image_channel_order(read_write image2d_t image); -int __ovld __cnfn get_image_channel_order(read_write image3d_t image); -int __ovld __cnfn get_image_channel_order(read_write image1d_array_t image); -int __ovld __cnfn get_image_channel_order(read_write image2d_array_t image); +#if defined(__opencl_c_read_write_images) +int __ovld __cnfn get_image_channel_order(read_write image1d_t); +int __ovld __cnfn get_image_channel_order(read_write image1d_buffer_t); +int __ovld __cnfn get_image_channel_order(read_write image2d_t); +int __ovld __cnfn get_image_channel_order(read_write image3d_t); +int __ovld __cnfn get_image_channel_order(read_write image1d_array_t); +int __ovld __cnfn get_image_channel_order(read_write image2d_array_t); #ifdef cl_khr_depth_images -int __ovld __cnfn get_image_channel_order(read_write image2d_depth_t image); -int __ovld __cnfn get_image_channel_order(read_write image2d_array_depth_t image); +int __ovld __cnfn get_image_channel_order(read_write image2d_depth_t); +int __ovld __cnfn get_image_channel_order(read_write image2d_array_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_channel_order(read_write image2d_msaa_t image); -int __ovld __cnfn get_image_channel_order(read_write image2d_msaa_depth_t image); -int __ovld __cnfn get_image_channel_order(read_write image2d_array_msaa_t image); -int __ovld __cnfn get_image_channel_order(read_write image2d_array_msaa_depth_t image); +int __ovld __cnfn get_image_channel_order(read_write image2d_msaa_t); +int __ovld __cnfn get_image_channel_order(read_write image2d_msaa_depth_t); +int __ovld __cnfn get_image_channel_order(read_write image2d_array_msaa_t); +int __ovld __cnfn get_image_channel_order(read_write image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_read_write_images) /** * Return the 2D image width and height as an int2 * type. The width is returned in the x component, and * the height in the y component. */ -int2 __ovld __cnfn get_image_dim(read_only image2d_t image); -int2 __ovld __cnfn get_image_dim(read_only image2d_array_t image); +int2 __ovld __cnfn get_image_dim(read_only image2d_t); +int2 __ovld __cnfn get_image_dim(read_only image2d_array_t); #ifdef cl_khr_depth_images -int2 __ovld __cnfn get_image_dim(read_only image2d_array_depth_t image); -int2 __ovld __cnfn get_image_dim(read_only image2d_depth_t image); +int2 __ovld __cnfn get_image_dim(read_only image2d_array_depth_t); +int2 __ovld __cnfn get_image_dim(read_only image2d_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -int2 __ovld __cnfn get_image_dim(read_only image2d_msaa_t image); -int2 __ovld __cnfn get_image_dim(read_only image2d_msaa_depth_t image); -int2 __ovld __cnfn get_image_dim(read_only image2d_array_msaa_t image); -int2 __ovld __cnfn get_image_dim(read_only image2d_array_msaa_depth_t image); +int2 __ovld __cnfn get_image_dim(read_only image2d_msaa_t); +int2 __ovld __cnfn get_image_dim(read_only image2d_msaa_depth_t); +int2 __ovld __cnfn get_image_dim(read_only image2d_array_msaa_t); +int2 __ovld __cnfn get_image_dim(read_only image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -int2 __ovld __cnfn get_image_dim(write_only image2d_t image); -int2 __ovld __cnfn get_image_dim(write_only image2d_array_t image); +int2 __ovld __cnfn get_image_dim(write_only image2d_t); +int2 __ovld __cnfn get_image_dim(write_only image2d_array_t); #ifdef cl_khr_depth_images -int2 __ovld __cnfn get_image_dim(write_only image2d_array_depth_t image); -int2 __ovld __cnfn get_image_dim(write_only image2d_depth_t image); +int2 __ovld __cnfn get_image_dim(write_only image2d_array_depth_t); +int2 __ovld __cnfn get_image_dim(write_only image2d_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -int2 __ovld __cnfn get_image_dim(write_only image2d_msaa_t image); -int2 __ovld __cnfn get_image_dim(write_only image2d_msaa_depth_t image); -int2 __ovld __cnfn get_image_dim(write_only image2d_array_msaa_t image); -int2 __ovld __cnfn get_image_dim(write_only image2d_array_msaa_depth_t image); +int2 __ovld __cnfn get_image_dim(write_only image2d_msaa_t); +int2 __ovld __cnfn get_image_dim(write_only image2d_msaa_depth_t); +int2 __ovld __cnfn get_image_dim(write_only image2d_array_msaa_t); +int2 __ovld __cnfn get_image_dim(write_only image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -int2 __ovld __cnfn get_image_dim(read_write image2d_t image); -int2 __ovld __cnfn get_image_dim(read_write image2d_array_t image); +#if defined(__opencl_c_read_write_images) +int2 __ovld __cnfn get_image_dim(read_write image2d_t); +int2 __ovld __cnfn get_image_dim(read_write image2d_array_t); #ifdef cl_khr_depth_images -int2 __ovld __cnfn get_image_dim(read_write image2d_array_depth_t image); -int2 __ovld __cnfn get_image_dim(read_write image2d_depth_t image); +int2 __ovld __cnfn get_image_dim(read_write image2d_array_depth_t); +int2 __ovld __cnfn get_image_dim(read_write image2d_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -int2 __ovld __cnfn get_image_dim(read_write image2d_msaa_t image); -int2 __ovld __cnfn get_image_dim(read_write image2d_msaa_depth_t image); -int2 __ovld __cnfn get_image_dim(read_write image2d_array_msaa_t image); -int2 __ovld __cnfn get_image_dim(read_write image2d_array_msaa_depth_t image); +int2 __ovld __cnfn get_image_dim(read_write image2d_msaa_t); +int2 __ovld __cnfn get_image_dim(read_write image2d_msaa_depth_t); +int2 __ovld __cnfn get_image_dim(read_write image2d_array_msaa_t); +int2 __ovld __cnfn get_image_dim(read_write image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_read_write_images) /** * Return the 3D image width, height, and depth as an @@ -15725,102 +16793,102 @@ int2 __ovld __cnfn get_image_dim(read_write image2d_array_msaa_depth_t image); * component, height in the y component, depth in the z * component and the w component is 0. */ -int4 __ovld __cnfn get_image_dim(read_only image3d_t image); +int4 __ovld __cnfn get_image_dim(read_only image3d_t); #ifdef cl_khr_3d_image_writes -int4 __ovld __cnfn get_image_dim(write_only image3d_t image); +int4 __ovld __cnfn get_image_dim(write_only image3d_t); #endif -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -int4 __ovld __cnfn get_image_dim(read_write image3d_t image); -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#if defined(__opencl_c_read_write_images) +int4 __ovld __cnfn get_image_dim(read_write image3d_t); +#endif //defined(__opencl_c_read_write_images) /** * Return the image array size. */ -size_t __ovld __cnfn get_image_array_size(read_only image1d_array_t image_array); -size_t __ovld __cnfn get_image_array_size(read_only image2d_array_t image_array); +size_t __ovld __cnfn get_image_array_size(read_only image1d_array_t); +size_t __ovld __cnfn get_image_array_size(read_only image2d_array_t); #ifdef cl_khr_depth_images -size_t __ovld __cnfn get_image_array_size(read_only image2d_array_depth_t image_array); +size_t __ovld __cnfn get_image_array_size(read_only image2d_array_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -size_t __ovld __cnfn get_image_array_size(read_only image2d_array_msaa_t image_array); -size_t __ovld __cnfn get_image_array_size(read_only image2d_array_msaa_depth_t image_array); +size_t __ovld __cnfn get_image_array_size(read_only image2d_array_msaa_t); +size_t __ovld __cnfn get_image_array_size(read_only image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -size_t __ovld __cnfn get_image_array_size(write_only image1d_array_t image_array); -size_t __ovld __cnfn get_image_array_size(write_only image2d_array_t image_array); +size_t __ovld __cnfn get_image_array_size(write_only image1d_array_t); +size_t __ovld __cnfn get_image_array_size(write_only image2d_array_t); #ifdef cl_khr_depth_images -size_t __ovld __cnfn get_image_array_size(write_only image2d_array_depth_t image_array); +size_t __ovld __cnfn get_image_array_size(write_only image2d_array_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -size_t __ovld __cnfn get_image_array_size(write_only image2d_array_msaa_t image_array); -size_t __ovld __cnfn get_image_array_size(write_only image2d_array_msaa_depth_t image_array); +size_t __ovld __cnfn get_image_array_size(write_only image2d_array_msaa_t); +size_t __ovld __cnfn get_image_array_size(write_only image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -size_t __ovld __cnfn get_image_array_size(read_write image1d_array_t image_array); -size_t __ovld __cnfn get_image_array_size(read_write image2d_array_t image_array); +#if defined(__opencl_c_read_write_images) +size_t __ovld __cnfn get_image_array_size(read_write image1d_array_t); +size_t __ovld __cnfn get_image_array_size(read_write image2d_array_t); #ifdef cl_khr_depth_images -size_t __ovld __cnfn get_image_array_size(read_write image2d_array_depth_t image_array); +size_t __ovld __cnfn get_image_array_size(read_write image2d_array_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -size_t __ovld __cnfn get_image_array_size(read_write image2d_array_msaa_t image_array); -size_t __ovld __cnfn get_image_array_size(read_write image2d_array_msaa_depth_t image_array); +size_t __ovld __cnfn get_image_array_size(read_write image2d_array_msaa_t); +size_t __ovld __cnfn get_image_array_size(read_write image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_read_write_images) /** * Return the number of samples associated with image */ #if defined(cl_khr_gl_msaa_sharing) -int __ovld get_image_num_samples(read_only image2d_msaa_t image); -int __ovld get_image_num_samples(read_only image2d_msaa_depth_t image); -int __ovld get_image_num_samples(read_only image2d_array_msaa_t image); -int __ovld get_image_num_samples(read_only image2d_array_msaa_depth_t image); - -int __ovld get_image_num_samples(write_only image2d_msaa_t image); -int __ovld get_image_num_samples(write_only image2d_msaa_depth_t image); -int __ovld get_image_num_samples(write_only image2d_array_msaa_t image); -int __ovld get_image_num_samples(write_only image2d_array_msaa_depth_t image); - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -int __ovld get_image_num_samples(read_write image2d_msaa_t image); -int __ovld get_image_num_samples(read_write image2d_msaa_depth_t image); -int __ovld get_image_num_samples(read_write image2d_array_msaa_t image); -int __ovld get_image_num_samples(read_write image2d_array_msaa_depth_t image); -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +int __ovld __cnfn get_image_num_samples(read_only image2d_msaa_t); +int __ovld __cnfn get_image_num_samples(read_only image2d_msaa_depth_t); +int __ovld __cnfn get_image_num_samples(read_only image2d_array_msaa_t); +int __ovld __cnfn get_image_num_samples(read_only image2d_array_msaa_depth_t); + +int __ovld __cnfn get_image_num_samples(write_only image2d_msaa_t); +int __ovld __cnfn get_image_num_samples(write_only image2d_msaa_depth_t); +int __ovld __cnfn get_image_num_samples(write_only image2d_array_msaa_t); +int __ovld __cnfn get_image_num_samples(write_only image2d_array_msaa_depth_t); + +#if defined(__opencl_c_read_write_images) +int __ovld __cnfn get_image_num_samples(read_write image2d_msaa_t); +int __ovld __cnfn get_image_num_samples(read_write image2d_msaa_depth_t); +int __ovld __cnfn get_image_num_samples(read_write image2d_array_msaa_t); +int __ovld __cnfn get_image_num_samples(read_write image2d_array_msaa_depth_t); +#endif //defined(__opencl_c_read_write_images) #endif // OpenCL v2.0 s6.13.15 - Work-group Functions -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#if defined(__opencl_c_work_group_collective_functions) int __ovld __conv work_group_all(int predicate); int __ovld __conv work_group_any(int predicate); #ifdef cl_khr_fp16 -half __ovld __conv work_group_broadcast(half a, size_t local_id); -half __ovld __conv work_group_broadcast(half a, size_t x, size_t y); -half __ovld __conv work_group_broadcast(half a, size_t x, size_t y, size_t z); +half __ovld __conv work_group_broadcast(half , size_t); +half __ovld __conv work_group_broadcast(half , size_t, size_t ); +half __ovld __conv work_group_broadcast(half , size_t, size_t, size_t ); #endif -int __ovld __conv work_group_broadcast(int a, size_t local_id); -int __ovld __conv work_group_broadcast(int a, size_t x, size_t y); -int __ovld __conv work_group_broadcast(int a, size_t x, size_t y, size_t z); -uint __ovld __conv work_group_broadcast(uint a, size_t local_id); -uint __ovld __conv work_group_broadcast(uint a, size_t x, size_t y); -uint __ovld __conv work_group_broadcast(uint a, size_t x, size_t y, size_t z); -long __ovld __conv work_group_broadcast(long a, size_t local_id); -long __ovld __conv work_group_broadcast(long a, size_t x, size_t y); -long __ovld __conv work_group_broadcast(long a, size_t x, size_t y, size_t z); -ulong __ovld __conv work_group_broadcast(ulong a, size_t local_id); -ulong __ovld __conv work_group_broadcast(ulong a, size_t x, size_t y); -ulong __ovld __conv work_group_broadcast(ulong a, size_t x, size_t y, size_t z); -float __ovld __conv work_group_broadcast(float a, size_t local_id); -float __ovld __conv work_group_broadcast(float a, size_t x, size_t y); -float __ovld __conv work_group_broadcast(float a, size_t x, size_t y, size_t z); +int __ovld __conv work_group_broadcast(int , size_t); +int __ovld __conv work_group_broadcast(int , size_t, size_t ); +int __ovld __conv work_group_broadcast(int , size_t, size_t, size_t ); +uint __ovld __conv work_group_broadcast(uint , size_t); +uint __ovld __conv work_group_broadcast(uint , size_t, size_t ); +uint __ovld __conv work_group_broadcast(uint , size_t, size_t, size_t ); +long __ovld __conv work_group_broadcast(long , size_t); +long __ovld __conv work_group_broadcast(long , size_t, size_t ); +long __ovld __conv work_group_broadcast(long , size_t, size_t, size_t ); +ulong __ovld __conv work_group_broadcast(ulong , size_t); +ulong __ovld __conv work_group_broadcast(ulong , size_t, size_t ); +ulong __ovld __conv work_group_broadcast(ulong , size_t, size_t, size_t ); +float __ovld __conv work_group_broadcast(float , size_t); +float __ovld __conv work_group_broadcast(float , size_t, size_t ); +float __ovld __conv work_group_broadcast(float , size_t, size_t, size_t ); #ifdef cl_khr_fp64 -double __ovld __conv work_group_broadcast(double a, size_t local_id); -double __ovld __conv work_group_broadcast(double a, size_t x, size_t y); -double __ovld __conv work_group_broadcast(double a, size_t x, size_t y, size_t z); +double __ovld __conv work_group_broadcast(double , size_t); +double __ovld __conv work_group_broadcast(double , size_t, size_t ); +double __ovld __conv work_group_broadcast(double , size_t, size_t, size_t ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 @@ -15891,17 +16959,18 @@ double __ovld __conv work_group_scan_inclusive_min(double x); double __ovld __conv work_group_scan_inclusive_max(double x); #endif //cl_khr_fp64 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_work_group_collective_functions) // OpenCL v2.0 s6.13.16 - Pipe Functions -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#if defined(__opencl_c_pipes) bool __ovld is_valid_reserve_id(reserve_id_t reserve_id); -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_pipes) // OpenCL v2.0 s6.13.17 - Enqueue Kernels #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#ifdef __opencl_c_device_enqueue ndrange_t __ovld ndrange_1D(size_t); ndrange_t __ovld ndrange_1D(size_t, size_t); ndrange_t __ovld ndrange_1D(size_t, size_t, size_t); @@ -15926,14 +16995,15 @@ void __ovld set_user_event_status(clk_event_t e, int state); bool __ovld is_valid_event (clk_event_t event); -void __ovld capture_event_profiling_info(clk_event_t, clk_profiling_info, __global void* value); +void __ovld capture_event_profiling_info(clk_event_t, clk_profiling_info, __global void*); queue_t __ovld get_default_queue(void); +#endif //__opencl_c_device_enqueue #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) // OpenCL Extension v2.0 s9.17 - Sub-groups -#if defined(cl_intel_subgroups) || defined(cl_khr_subgroups) +#if defined(__opencl_subgroup_builtins) // Shared Sub Group Functions uint __ovld get_sub_group_size(void); uint __ovld get_max_sub_group_size(void); @@ -15944,19 +17014,19 @@ uint __ovld get_enqueued_num_sub_groups(void); uint __ovld get_sub_group_id(void); uint __ovld get_sub_group_local_id(void); -void __ovld __conv sub_group_barrier(cl_mem_fence_flags flags); +void __ovld __conv sub_group_barrier(cl_mem_fence_flags); #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -void __ovld __conv sub_group_barrier(cl_mem_fence_flags flags, memory_scope scope); +void __ovld __conv sub_group_barrier(cl_mem_fence_flags, memory_scope); #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) int __ovld __conv sub_group_all(int predicate); int __ovld __conv sub_group_any(int predicate); -int __ovld __conv sub_group_broadcast(int x, uint sub_group_local_id); -uint __ovld __conv sub_group_broadcast(uint x, uint sub_group_local_id); -long __ovld __conv sub_group_broadcast(long x, uint sub_group_local_id); -ulong __ovld __conv sub_group_broadcast(ulong x, uint sub_group_local_id); -float __ovld __conv sub_group_broadcast(float x, uint sub_group_local_id); +int __ovld __conv sub_group_broadcast(int , uint sub_group_local_id); +uint __ovld __conv sub_group_broadcast(uint , uint sub_group_local_id); +long __ovld __conv sub_group_broadcast(long , uint sub_group_local_id); +ulong __ovld __conv sub_group_broadcast(ulong, uint sub_group_local_id); +float __ovld __conv sub_group_broadcast(float, uint sub_group_local_id); int __ovld __conv sub_group_reduce_add(int x); uint __ovld __conv sub_group_reduce_add(uint x); @@ -16007,7 +17077,7 @@ ulong __ovld __conv sub_group_scan_inclusive_max(ulong x); float __ovld __conv sub_group_scan_inclusive_max(float x); #ifdef cl_khr_fp16 -half __ovld __conv sub_group_broadcast(half x, uint sub_group_local_id); +half __ovld __conv sub_group_broadcast(half, uint sub_group_local_id); half __ovld __conv sub_group_reduce_add(half x); half __ovld __conv sub_group_reduce_min(half x); half __ovld __conv sub_group_reduce_max(half x); @@ -16020,7 +17090,7 @@ half __ovld __conv sub_group_scan_inclusive_max(half x); #endif //cl_khr_fp16 #ifdef cl_khr_fp64 -double __ovld __conv sub_group_broadcast(double x, uint sub_group_local_id); +double __ovld __conv sub_group_broadcast(double, uint sub_group_local_id); double __ovld __conv sub_group_reduce_add(double x); double __ovld __conv sub_group_reduce_min(double x); double __ovld __conv sub_group_reduce_max(double x); @@ -16032,7 +17102,7 @@ double __ovld __conv sub_group_scan_inclusive_min(double x); double __ovld __conv sub_group_scan_inclusive_max(double x); #endif //cl_khr_fp64 -#endif //cl_khr_subgroups cl_intel_subgroups +#endif // __opencl_subgroup_builtins #if defined(cl_khr_subgroup_extended_types) char __ovld __conv sub_group_broadcast( char value, uint index ); @@ -16702,132 +17772,394 @@ double __ovld sub_group_clustered_reduce_max( double value, uint clustersize ); #endif // cl_khr_subgroup_clustered_reduce +#if defined(cl_khr_extended_bit_ops) +char __ovld __cnfn bitfield_insert(char, char, uint, uint); +uchar __ovld __cnfn bitfield_insert(uchar, uchar, uint, uint); +short __ovld __cnfn bitfield_insert(short, short, uint, uint); +ushort __ovld __cnfn bitfield_insert(ushort, ushort, uint, uint); +int __ovld __cnfn bitfield_insert(int, int, uint, uint); +uint __ovld __cnfn bitfield_insert(uint, uint, uint, uint); +long __ovld __cnfn bitfield_insert(long, long, uint, uint); +ulong __ovld __cnfn bitfield_insert(ulong, ulong, uint, uint); +char2 __ovld __cnfn bitfield_insert(char2, char2, uint, uint); +uchar2 __ovld __cnfn bitfield_insert(uchar2, uchar2, uint, uint); +short2 __ovld __cnfn bitfield_insert(short2, short2, uint, uint); +ushort2 __ovld __cnfn bitfield_insert(ushort2, ushort2, uint, uint); +int2 __ovld __cnfn bitfield_insert(int2, int2, uint, uint); +uint2 __ovld __cnfn bitfield_insert(uint2, uint2, uint, uint); +long2 __ovld __cnfn bitfield_insert(long2, long2, uint, uint); +ulong2 __ovld __cnfn bitfield_insert(ulong2, ulong2, uint, uint); +char3 __ovld __cnfn bitfield_insert(char3, char3, uint, uint); +uchar3 __ovld __cnfn bitfield_insert(uchar3, uchar3, uint, uint); +short3 __ovld __cnfn bitfield_insert(short3, short3, uint, uint); +ushort3 __ovld __cnfn bitfield_insert(ushort3, ushort3, uint, uint); +int3 __ovld __cnfn bitfield_insert(int3, int3, uint, uint); +uint3 __ovld __cnfn bitfield_insert(uint3, uint3, uint, uint); +long3 __ovld __cnfn bitfield_insert(long3, long3, uint, uint); +ulong3 __ovld __cnfn bitfield_insert(ulong3, ulong3, uint, uint); +char4 __ovld __cnfn bitfield_insert(char4, char4, uint, uint); +uchar4 __ovld __cnfn bitfield_insert(uchar4, uchar4, uint, uint); +short4 __ovld __cnfn bitfield_insert(short4, short4, uint, uint); +ushort4 __ovld __cnfn bitfield_insert(ushort4, ushort4, uint, uint); +int4 __ovld __cnfn bitfield_insert(int4, int4, uint, uint); +uint4 __ovld __cnfn bitfield_insert(uint4, uint4, uint, uint); +long4 __ovld __cnfn bitfield_insert(long4, long4, uint, uint); +ulong4 __ovld __cnfn bitfield_insert(ulong4, ulong4, uint, uint); +char8 __ovld __cnfn bitfield_insert(char8, char8, uint, uint); +uchar8 __ovld __cnfn bitfield_insert(uchar8, uchar8, uint, uint); +short8 __ovld __cnfn bitfield_insert(short8, short8, uint, uint); +ushort8 __ovld __cnfn bitfield_insert(ushort8, ushort8, uint, uint); +int8 __ovld __cnfn bitfield_insert(int8, int8, uint, uint); +uint8 __ovld __cnfn bitfield_insert(uint8, uint8, uint, uint); +long8 __ovld __cnfn bitfield_insert(long8, long8, uint, uint); +ulong8 __ovld __cnfn bitfield_insert(ulong8, ulong8, uint, uint); +char16 __ovld __cnfn bitfield_insert(char16, char16, uint, uint); +uchar16 __ovld __cnfn bitfield_insert(uchar16, uchar16, uint, uint); +short16 __ovld __cnfn bitfield_insert(short16, short16, uint, uint); +ushort16 __ovld __cnfn bitfield_insert(ushort16, ushort16, uint, uint); +int16 __ovld __cnfn bitfield_insert(int16, int16, uint, uint); +uint16 __ovld __cnfn bitfield_insert(uint16, uint16, uint, uint); +long16 __ovld __cnfn bitfield_insert(long16, long16, uint, uint); +ulong16 __ovld __cnfn bitfield_insert(ulong16, ulong16, uint, uint); + +char __ovld __cnfn bitfield_extract_signed(char, uint, uint); +short __ovld __cnfn bitfield_extract_signed(short, uint, uint); +int __ovld __cnfn bitfield_extract_signed(int, uint, uint); +long __ovld __cnfn bitfield_extract_signed(long, uint, uint); +char2 __ovld __cnfn bitfield_extract_signed(char2, uint, uint); +short2 __ovld __cnfn bitfield_extract_signed(short2, uint, uint); +int2 __ovld __cnfn bitfield_extract_signed(int2, uint, uint); +long2 __ovld __cnfn bitfield_extract_signed(long2, uint, uint); +char3 __ovld __cnfn bitfield_extract_signed(char3, uint, uint); +short3 __ovld __cnfn bitfield_extract_signed(short3, uint, uint); +int3 __ovld __cnfn bitfield_extract_signed(int3, uint, uint); +long3 __ovld __cnfn bitfield_extract_signed(long3, uint, uint); +char4 __ovld __cnfn bitfield_extract_signed(char4, uint, uint); +short4 __ovld __cnfn bitfield_extract_signed(short4, uint, uint); +int4 __ovld __cnfn bitfield_extract_signed(int4, uint, uint); +long4 __ovld __cnfn bitfield_extract_signed(long4, uint, uint); +char8 __ovld __cnfn bitfield_extract_signed(char8, uint, uint); +short8 __ovld __cnfn bitfield_extract_signed(short8, uint, uint); +int8 __ovld __cnfn bitfield_extract_signed(int8, uint, uint); +long8 __ovld __cnfn bitfield_extract_signed(long8, uint, uint); +char16 __ovld __cnfn bitfield_extract_signed(char16, uint, uint); +short16 __ovld __cnfn bitfield_extract_signed(short16, uint, uint); +int16 __ovld __cnfn bitfield_extract_signed(int16, uint, uint); +long16 __ovld __cnfn bitfield_extract_signed(long16, uint, uint); + +char __ovld __cnfn bitfield_extract_signed(uchar, uint, uint); +short __ovld __cnfn bitfield_extract_signed(ushort, uint, uint); +int __ovld __cnfn bitfield_extract_signed(uint, uint, uint); +long __ovld __cnfn bitfield_extract_signed(ulong, uint, uint); +char2 __ovld __cnfn bitfield_extract_signed(uchar2, uint, uint); +short2 __ovld __cnfn bitfield_extract_signed(ushort2, uint, uint); +int2 __ovld __cnfn bitfield_extract_signed(uint2, uint, uint); +long2 __ovld __cnfn bitfield_extract_signed(ulong2, uint, uint); +char3 __ovld __cnfn bitfield_extract_signed(uchar3, uint, uint); +short3 __ovld __cnfn bitfield_extract_signed(ushort3, uint, uint); +int3 __ovld __cnfn bitfield_extract_signed(uint3, uint, uint); +long3 __ovld __cnfn bitfield_extract_signed(ulong3, uint, uint); +char4 __ovld __cnfn bitfield_extract_signed(uchar4, uint, uint); +short4 __ovld __cnfn bitfield_extract_signed(ushort4, uint, uint); +int4 __ovld __cnfn bitfield_extract_signed(uint4, uint, uint); +long4 __ovld __cnfn bitfield_extract_signed(ulong4, uint, uint); +char8 __ovld __cnfn bitfield_extract_signed(uchar8, uint, uint); +short8 __ovld __cnfn bitfield_extract_signed(ushort8, uint, uint); +int8 __ovld __cnfn bitfield_extract_signed(uint8, uint, uint); +long8 __ovld __cnfn bitfield_extract_signed(ulong8, uint, uint); +char16 __ovld __cnfn bitfield_extract_signed(uchar16, uint, uint); +short16 __ovld __cnfn bitfield_extract_signed(ushort16, uint, uint); +int16 __ovld __cnfn bitfield_extract_signed(uint16, uint, uint); +long16 __ovld __cnfn bitfield_extract_signed(ulong16, uint, uint); + +uchar __ovld __cnfn bitfield_extract_unsigned(char, uint, uint); +ushort __ovld __cnfn bitfield_extract_unsigned(short, uint, uint); +uint __ovld __cnfn bitfield_extract_unsigned(int, uint, uint); +ulong __ovld __cnfn bitfield_extract_unsigned(long, uint, uint); +uchar2 __ovld __cnfn bitfield_extract_unsigned(char2, uint, uint); +ushort2 __ovld __cnfn bitfield_extract_unsigned(short2, uint, uint); +uint2 __ovld __cnfn bitfield_extract_unsigned(int2, uint, uint); +ulong2 __ovld __cnfn bitfield_extract_unsigned(long2, uint, uint); +uchar3 __ovld __cnfn bitfield_extract_unsigned(char3, uint, uint); +ushort3 __ovld __cnfn bitfield_extract_unsigned(short3, uint, uint); +uint3 __ovld __cnfn bitfield_extract_unsigned(int3, uint, uint); +ulong3 __ovld __cnfn bitfield_extract_unsigned(long3, uint, uint); +uchar4 __ovld __cnfn bitfield_extract_unsigned(char4, uint, uint); +ushort4 __ovld __cnfn bitfield_extract_unsigned(short4, uint, uint); +uint4 __ovld __cnfn bitfield_extract_unsigned(int4, uint, uint); +ulong4 __ovld __cnfn bitfield_extract_unsigned(long4, uint, uint); +uchar8 __ovld __cnfn bitfield_extract_unsigned(char8, uint, uint); +ushort8 __ovld __cnfn bitfield_extract_unsigned(short8, uint, uint); +uint8 __ovld __cnfn bitfield_extract_unsigned(int8, uint, uint); +ulong8 __ovld __cnfn bitfield_extract_unsigned(long8, uint, uint); +uchar16 __ovld __cnfn bitfield_extract_unsigned(char16, uint, uint); +ushort16 __ovld __cnfn bitfield_extract_unsigned(short16, uint, uint); +uint16 __ovld __cnfn bitfield_extract_unsigned(int16, uint, uint); +ulong16 __ovld __cnfn bitfield_extract_unsigned(long16, uint, uint); + +uchar __ovld __cnfn bitfield_extract_unsigned(uchar, uint, uint); +ushort __ovld __cnfn bitfield_extract_unsigned(ushort, uint, uint); +uint __ovld __cnfn bitfield_extract_unsigned(uint, uint, uint); +ulong __ovld __cnfn bitfield_extract_unsigned(ulong, uint, uint); +uchar2 __ovld __cnfn bitfield_extract_unsigned(uchar2, uint, uint); +ushort2 __ovld __cnfn bitfield_extract_unsigned(ushort2, uint, uint); +uint2 __ovld __cnfn bitfield_extract_unsigned(uint2, uint, uint); +ulong2 __ovld __cnfn bitfield_extract_unsigned(ulong2, uint, uint); +uchar3 __ovld __cnfn bitfield_extract_unsigned(uchar3, uint, uint); +ushort3 __ovld __cnfn bitfield_extract_unsigned(ushort3, uint, uint); +uint3 __ovld __cnfn bitfield_extract_unsigned(uint3, uint, uint); +ulong3 __ovld __cnfn bitfield_extract_unsigned(ulong3, uint, uint); +uchar4 __ovld __cnfn bitfield_extract_unsigned(uchar4, uint, uint); +ushort4 __ovld __cnfn bitfield_extract_unsigned(ushort4, uint, uint); +uint4 __ovld __cnfn bitfield_extract_unsigned(uint4, uint, uint); +ulong4 __ovld __cnfn bitfield_extract_unsigned(ulong4, uint, uint); +uchar8 __ovld __cnfn bitfield_extract_unsigned(uchar8, uint, uint); +ushort8 __ovld __cnfn bitfield_extract_unsigned(ushort8, uint, uint); +uint8 __ovld __cnfn bitfield_extract_unsigned(uint8, uint, uint); +ulong8 __ovld __cnfn bitfield_extract_unsigned(ulong8, uint, uint); +uchar16 __ovld __cnfn bitfield_extract_unsigned(uchar16, uint, uint); +ushort16 __ovld __cnfn bitfield_extract_unsigned(ushort16, uint, uint); +uint16 __ovld __cnfn bitfield_extract_unsigned(uint16, uint, uint); +ulong16 __ovld __cnfn bitfield_extract_unsigned(ulong16, uint, uint); + +char __ovld __cnfn bit_reverse(char); +uchar __ovld __cnfn bit_reverse(uchar); +short __ovld __cnfn bit_reverse(short); +ushort __ovld __cnfn bit_reverse(ushort); +int __ovld __cnfn bit_reverse(int); +uint __ovld __cnfn bit_reverse(uint); +long __ovld __cnfn bit_reverse(long); +ulong __ovld __cnfn bit_reverse(ulong); +char2 __ovld __cnfn bit_reverse(char2); +uchar2 __ovld __cnfn bit_reverse(uchar2); +short2 __ovld __cnfn bit_reverse(short2); +ushort2 __ovld __cnfn bit_reverse(ushort2); +int2 __ovld __cnfn bit_reverse(int2); +uint2 __ovld __cnfn bit_reverse(uint2); +long2 __ovld __cnfn bit_reverse(long2); +ulong2 __ovld __cnfn bit_reverse(ulong2); +char3 __ovld __cnfn bit_reverse(char3); +uchar3 __ovld __cnfn bit_reverse(uchar3); +short3 __ovld __cnfn bit_reverse(short3); +ushort3 __ovld __cnfn bit_reverse(ushort3); +int3 __ovld __cnfn bit_reverse(int3); +uint3 __ovld __cnfn bit_reverse(uint3); +long3 __ovld __cnfn bit_reverse(long3); +ulong3 __ovld __cnfn bit_reverse(ulong3); +char4 __ovld __cnfn bit_reverse(char4); +uchar4 __ovld __cnfn bit_reverse(uchar4); +short4 __ovld __cnfn bit_reverse(short4); +ushort4 __ovld __cnfn bit_reverse(ushort4); +int4 __ovld __cnfn bit_reverse(int4); +uint4 __ovld __cnfn bit_reverse(uint4); +long4 __ovld __cnfn bit_reverse(long4); +ulong4 __ovld __cnfn bit_reverse(ulong4); +char8 __ovld __cnfn bit_reverse(char8); +uchar8 __ovld __cnfn bit_reverse(uchar8); +short8 __ovld __cnfn bit_reverse(short8); +ushort8 __ovld __cnfn bit_reverse(ushort8); +int8 __ovld __cnfn bit_reverse(int8); +uint8 __ovld __cnfn bit_reverse(uint8); +long8 __ovld __cnfn bit_reverse(long8); +ulong8 __ovld __cnfn bit_reverse(ulong8); +char16 __ovld __cnfn bit_reverse(char16); +uchar16 __ovld __cnfn bit_reverse(uchar16); +short16 __ovld __cnfn bit_reverse(short16); +ushort16 __ovld __cnfn bit_reverse(ushort16); +int16 __ovld __cnfn bit_reverse(int16); +uint16 __ovld __cnfn bit_reverse(uint16); +long16 __ovld __cnfn bit_reverse(long16); +ulong16 __ovld __cnfn bit_reverse(ulong16); +#endif // cl_khr_extended_bit_ops + +#if defined(__opencl_c_integer_dot_product_input_4x8bit) +uint __ovld __cnfn dot(uchar4, uchar4); +int __ovld __cnfn dot(char4, char4); +int __ovld __cnfn dot(uchar4, char4); +int __ovld __cnfn dot(char4, uchar4); + +uint __ovld __cnfn dot_acc_sat(uchar4, uchar4, uint); +int __ovld __cnfn dot_acc_sat(char4, char4, int); +int __ovld __cnfn dot_acc_sat(uchar4, char4, int); +int __ovld __cnfn dot_acc_sat(char4, uchar4, int); +#endif // __opencl_c_integer_dot_product_input_4x8bit + +#if defined(__opencl_c_integer_dot_product_input_4x8bit_packed) +uint __ovld __cnfn dot_4x8packed_uu_uint(uint, uint); +int __ovld __cnfn dot_4x8packed_ss_int(uint, uint); +int __ovld __cnfn dot_4x8packed_us_int(uint, uint); +int __ovld __cnfn dot_4x8packed_su_int(uint, uint); + +uint __ovld __cnfn dot_acc_sat_4x8packed_uu_uint(uint, uint, uint); +int __ovld __cnfn dot_acc_sat_4x8packed_ss_int(uint, uint, int); +int __ovld __cnfn dot_acc_sat_4x8packed_us_int(uint, uint, int); +int __ovld __cnfn dot_acc_sat_4x8packed_su_int(uint, uint, int); +#endif // __opencl_c_integer_dot_product_input_4x8bit_packed + +#if defined(cl_khr_subgroup_rotate) +char __ovld __conv sub_group_rotate(char, int); +uchar __ovld __conv sub_group_rotate(uchar, int); +short __ovld __conv sub_group_rotate(short, int); +ushort __ovld __conv sub_group_rotate(ushort, int); +int __ovld __conv sub_group_rotate(int, int); +uint __ovld __conv sub_group_rotate(uint, int); +long __ovld __conv sub_group_rotate(long, int); +ulong __ovld __conv sub_group_rotate(ulong, int); +float __ovld __conv sub_group_rotate(float, int); +#if defined(cl_khr_fp64) +double __ovld __conv sub_group_rotate(double, int); +#endif // cl_khr_fp64 +#if defined(cl_khr_fp16) +half __ovld __conv sub_group_rotate(half, int); +#endif // cl_khr_fp16 + +char __ovld __conv sub_group_clustered_rotate(char, int, uint); +uchar __ovld __conv sub_group_clustered_rotate(uchar, int, uint); +short __ovld __conv sub_group_clustered_rotate(short, int, uint); +ushort __ovld __conv sub_group_clustered_rotate(ushort, int, uint); +int __ovld __conv sub_group_clustered_rotate(int, int, uint); +uint __ovld __conv sub_group_clustered_rotate(uint, int, uint); +long __ovld __conv sub_group_clustered_rotate(long, int, uint); +ulong __ovld __conv sub_group_clustered_rotate(ulong, int, uint); +float __ovld __conv sub_group_clustered_rotate(float, int, uint); +#if defined(cl_khr_fp64) +double __ovld __conv sub_group_clustered_rotate(double, int, uint); +#endif // cl_khr_fp64 +#if defined(cl_khr_fp16) +half __ovld __conv sub_group_clustered_rotate(half, int, uint); +#endif // cl_khr_fp16 +#endif // cl_khr_subgroup_rotate + #if defined(cl_intel_subgroups) // Intel-Specific Sub Group Functions -float __ovld __conv intel_sub_group_shuffle( float x, uint c ); -float2 __ovld __conv intel_sub_group_shuffle( float2 x, uint c ); -float3 __ovld __conv intel_sub_group_shuffle( float3 x, uint c ); -float4 __ovld __conv intel_sub_group_shuffle( float4 x, uint c ); -float8 __ovld __conv intel_sub_group_shuffle( float8 x, uint c ); -float16 __ovld __conv intel_sub_group_shuffle( float16 x, uint c ); - -int __ovld __conv intel_sub_group_shuffle( int x, uint c ); -int2 __ovld __conv intel_sub_group_shuffle( int2 x, uint c ); -int3 __ovld __conv intel_sub_group_shuffle( int3 x, uint c ); -int4 __ovld __conv intel_sub_group_shuffle( int4 x, uint c ); -int8 __ovld __conv intel_sub_group_shuffle( int8 x, uint c ); -int16 __ovld __conv intel_sub_group_shuffle( int16 x, uint c ); - -uint __ovld __conv intel_sub_group_shuffle( uint x, uint c ); -uint2 __ovld __conv intel_sub_group_shuffle( uint2 x, uint c ); -uint3 __ovld __conv intel_sub_group_shuffle( uint3 x, uint c ); -uint4 __ovld __conv intel_sub_group_shuffle( uint4 x, uint c ); -uint8 __ovld __conv intel_sub_group_shuffle( uint8 x, uint c ); -uint16 __ovld __conv intel_sub_group_shuffle( uint16 x, uint c ); - -long __ovld __conv intel_sub_group_shuffle( long x, uint c ); -ulong __ovld __conv intel_sub_group_shuffle( ulong x, uint c ); - -float __ovld __conv intel_sub_group_shuffle_down( float cur, float next, uint c ); -float2 __ovld __conv intel_sub_group_shuffle_down( float2 cur, float2 next, uint c ); -float3 __ovld __conv intel_sub_group_shuffle_down( float3 cur, float3 next, uint c ); -float4 __ovld __conv intel_sub_group_shuffle_down( float4 cur, float4 next, uint c ); -float8 __ovld __conv intel_sub_group_shuffle_down( float8 cur, float8 next, uint c ); -float16 __ovld __conv intel_sub_group_shuffle_down( float16 cur, float16 next, uint c ); - -int __ovld __conv intel_sub_group_shuffle_down( int cur, int next, uint c ); -int2 __ovld __conv intel_sub_group_shuffle_down( int2 cur, int2 next, uint c ); -int3 __ovld __conv intel_sub_group_shuffle_down( int3 cur, int3 next, uint c ); -int4 __ovld __conv intel_sub_group_shuffle_down( int4 cur, int4 next, uint c ); -int8 __ovld __conv intel_sub_group_shuffle_down( int8 cur, int8 next, uint c ); -int16 __ovld __conv intel_sub_group_shuffle_down( int16 cur, int16 next, uint c ); - -uint __ovld __conv intel_sub_group_shuffle_down( uint cur, uint next, uint c ); -uint2 __ovld __conv intel_sub_group_shuffle_down( uint2 cur, uint2 next, uint c ); -uint3 __ovld __conv intel_sub_group_shuffle_down( uint3 cur, uint3 next, uint c ); -uint4 __ovld __conv intel_sub_group_shuffle_down( uint4 cur, uint4 next, uint c ); -uint8 __ovld __conv intel_sub_group_shuffle_down( uint8 cur, uint8 next, uint c ); -uint16 __ovld __conv intel_sub_group_shuffle_down( uint16 cur, uint16 next, uint c ); - -long __ovld __conv intel_sub_group_shuffle_down( long prev, long cur, uint c ); -ulong __ovld __conv intel_sub_group_shuffle_down( ulong prev, ulong cur, uint c ); - -float __ovld __conv intel_sub_group_shuffle_up( float prev, float cur, uint c ); -float2 __ovld __conv intel_sub_group_shuffle_up( float2 prev, float2 cur, uint c ); -float3 __ovld __conv intel_sub_group_shuffle_up( float3 prev, float3 cur, uint c ); -float4 __ovld __conv intel_sub_group_shuffle_up( float4 prev, float4 cur, uint c ); -float8 __ovld __conv intel_sub_group_shuffle_up( float8 prev, float8 cur, uint c ); -float16 __ovld __conv intel_sub_group_shuffle_up( float16 prev, float16 cur, uint c ); - -int __ovld __conv intel_sub_group_shuffle_up( int prev, int cur, uint c ); -int2 __ovld __conv intel_sub_group_shuffle_up( int2 prev, int2 cur, uint c ); -int3 __ovld __conv intel_sub_group_shuffle_up( int3 prev, int3 cur, uint c ); -int4 __ovld __conv intel_sub_group_shuffle_up( int4 prev, int4 cur, uint c ); -int8 __ovld __conv intel_sub_group_shuffle_up( int8 prev, int8 cur, uint c ); -int16 __ovld __conv intel_sub_group_shuffle_up( int16 prev, int16 cur, uint c ); - -uint __ovld __conv intel_sub_group_shuffle_up( uint prev, uint cur, uint c ); -uint2 __ovld __conv intel_sub_group_shuffle_up( uint2 prev, uint2 cur, uint c ); -uint3 __ovld __conv intel_sub_group_shuffle_up( uint3 prev, uint3 cur, uint c ); -uint4 __ovld __conv intel_sub_group_shuffle_up( uint4 prev, uint4 cur, uint c ); -uint8 __ovld __conv intel_sub_group_shuffle_up( uint8 prev, uint8 cur, uint c ); -uint16 __ovld __conv intel_sub_group_shuffle_up( uint16 prev, uint16 cur, uint c ); - -long __ovld __conv intel_sub_group_shuffle_up( long prev, long cur, uint c ); -ulong __ovld __conv intel_sub_group_shuffle_up( ulong prev, ulong cur, uint c ); - -float __ovld __conv intel_sub_group_shuffle_xor( float x, uint c ); -float2 __ovld __conv intel_sub_group_shuffle_xor( float2 x, uint c ); -float3 __ovld __conv intel_sub_group_shuffle_xor( float3 x, uint c ); -float4 __ovld __conv intel_sub_group_shuffle_xor( float4 x, uint c ); -float8 __ovld __conv intel_sub_group_shuffle_xor( float8 x, uint c ); -float16 __ovld __conv intel_sub_group_shuffle_xor( float16 x, uint c ); - -int __ovld __conv intel_sub_group_shuffle_xor( int x, uint c ); -int2 __ovld __conv intel_sub_group_shuffle_xor( int2 x, uint c ); -int3 __ovld __conv intel_sub_group_shuffle_xor( int3 x, uint c ); -int4 __ovld __conv intel_sub_group_shuffle_xor( int4 x, uint c ); -int8 __ovld __conv intel_sub_group_shuffle_xor( int8 x, uint c ); -int16 __ovld __conv intel_sub_group_shuffle_xor( int16 x, uint c ); - -uint __ovld __conv intel_sub_group_shuffle_xor( uint x, uint c ); -uint2 __ovld __conv intel_sub_group_shuffle_xor( uint2 x, uint c ); -uint3 __ovld __conv intel_sub_group_shuffle_xor( uint3 x, uint c ); -uint4 __ovld __conv intel_sub_group_shuffle_xor( uint4 x, uint c ); -uint8 __ovld __conv intel_sub_group_shuffle_xor( uint8 x, uint c ); -uint16 __ovld __conv intel_sub_group_shuffle_xor( uint16 x, uint c ); - -long __ovld __conv intel_sub_group_shuffle_xor( long x, uint c ); -ulong __ovld __conv intel_sub_group_shuffle_xor( ulong x, uint c ); - -uint __ovld __conv intel_sub_group_block_read( read_only image2d_t image, int2 coord ); -uint2 __ovld __conv intel_sub_group_block_read2( read_only image2d_t image, int2 coord ); -uint4 __ovld __conv intel_sub_group_block_read4( read_only image2d_t image, int2 coord ); -uint8 __ovld __conv intel_sub_group_block_read8( read_only image2d_t image, int2 coord ); +float __ovld __conv intel_sub_group_shuffle( float , uint ); +float2 __ovld __conv intel_sub_group_shuffle( float2, uint ); +float3 __ovld __conv intel_sub_group_shuffle( float3, uint ); +float4 __ovld __conv intel_sub_group_shuffle( float4, uint ); +float8 __ovld __conv intel_sub_group_shuffle( float8, uint ); +float16 __ovld __conv intel_sub_group_shuffle( float16, uint ); + +int __ovld __conv intel_sub_group_shuffle( int , uint ); +int2 __ovld __conv intel_sub_group_shuffle( int2, uint ); +int3 __ovld __conv intel_sub_group_shuffle( int3, uint ); +int4 __ovld __conv intel_sub_group_shuffle( int4, uint ); +int8 __ovld __conv intel_sub_group_shuffle( int8, uint ); +int16 __ovld __conv intel_sub_group_shuffle( int16, uint ); + +uint __ovld __conv intel_sub_group_shuffle( uint , uint ); +uint2 __ovld __conv intel_sub_group_shuffle( uint2, uint ); +uint3 __ovld __conv intel_sub_group_shuffle( uint3, uint ); +uint4 __ovld __conv intel_sub_group_shuffle( uint4, uint ); +uint8 __ovld __conv intel_sub_group_shuffle( uint8, uint ); +uint16 __ovld __conv intel_sub_group_shuffle( uint16, uint ); + +long __ovld __conv intel_sub_group_shuffle( long, uint ); +ulong __ovld __conv intel_sub_group_shuffle( ulong, uint ); + +float __ovld __conv intel_sub_group_shuffle_down( float cur, float next, uint ); +float2 __ovld __conv intel_sub_group_shuffle_down( float2 cur, float2 next, uint ); +float3 __ovld __conv intel_sub_group_shuffle_down( float3 cur, float3 next, uint ); +float4 __ovld __conv intel_sub_group_shuffle_down( float4 cur, float4 next, uint ); +float8 __ovld __conv intel_sub_group_shuffle_down( float8 cur, float8 next, uint ); +float16 __ovld __conv intel_sub_group_shuffle_down( float16 cur, float16 next, uint ); + +int __ovld __conv intel_sub_group_shuffle_down( int cur, int next, uint ); +int2 __ovld __conv intel_sub_group_shuffle_down( int2 cur, int2 next, uint ); +int3 __ovld __conv intel_sub_group_shuffle_down( int3 cur, int3 next, uint ); +int4 __ovld __conv intel_sub_group_shuffle_down( int4 cur, int4 next, uint ); +int8 __ovld __conv intel_sub_group_shuffle_down( int8 cur, int8 next, uint ); +int16 __ovld __conv intel_sub_group_shuffle_down( int16 cur, int16 next, uint ); + +uint __ovld __conv intel_sub_group_shuffle_down( uint cur, uint next, uint ); +uint2 __ovld __conv intel_sub_group_shuffle_down( uint2 cur, uint2 next, uint ); +uint3 __ovld __conv intel_sub_group_shuffle_down( uint3 cur, uint3 next, uint ); +uint4 __ovld __conv intel_sub_group_shuffle_down( uint4 cur, uint4 next, uint ); +uint8 __ovld __conv intel_sub_group_shuffle_down( uint8 cur, uint8 next, uint ); +uint16 __ovld __conv intel_sub_group_shuffle_down( uint16 cur, uint16 next, uint ); + +long __ovld __conv intel_sub_group_shuffle_down( long prev, long cur, uint ); +ulong __ovld __conv intel_sub_group_shuffle_down( ulong prev, ulong cur, uint ); + +float __ovld __conv intel_sub_group_shuffle_up( float prev, float cur, uint ); +float2 __ovld __conv intel_sub_group_shuffle_up( float2 prev, float2 cur, uint ); +float3 __ovld __conv intel_sub_group_shuffle_up( float3 prev, float3 cur, uint ); +float4 __ovld __conv intel_sub_group_shuffle_up( float4 prev, float4 cur, uint ); +float8 __ovld __conv intel_sub_group_shuffle_up( float8 prev, float8 cur, uint ); +float16 __ovld __conv intel_sub_group_shuffle_up( float16 prev, float16 cur, uint ); + +int __ovld __conv intel_sub_group_shuffle_up( int prev, int cur, uint ); +int2 __ovld __conv intel_sub_group_shuffle_up( int2 prev, int2 cur, uint ); +int3 __ovld __conv intel_sub_group_shuffle_up( int3 prev, int3 cur, uint ); +int4 __ovld __conv intel_sub_group_shuffle_up( int4 prev, int4 cur, uint ); +int8 __ovld __conv intel_sub_group_shuffle_up( int8 prev, int8 cur, uint ); +int16 __ovld __conv intel_sub_group_shuffle_up( int16 prev, int16 cur, uint ); + +uint __ovld __conv intel_sub_group_shuffle_up( uint prev, uint cur, uint ); +uint2 __ovld __conv intel_sub_group_shuffle_up( uint2 prev, uint2 cur, uint ); +uint3 __ovld __conv intel_sub_group_shuffle_up( uint3 prev, uint3 cur, uint ); +uint4 __ovld __conv intel_sub_group_shuffle_up( uint4 prev, uint4 cur, uint ); +uint8 __ovld __conv intel_sub_group_shuffle_up( uint8 prev, uint8 cur, uint ); +uint16 __ovld __conv intel_sub_group_shuffle_up( uint16 prev, uint16 cur, uint ); + +long __ovld __conv intel_sub_group_shuffle_up( long prev, long cur, uint ); +ulong __ovld __conv intel_sub_group_shuffle_up( ulong prev, ulong cur, uint ); + +float __ovld __conv intel_sub_group_shuffle_xor( float , uint ); +float2 __ovld __conv intel_sub_group_shuffle_xor( float2, uint ); +float3 __ovld __conv intel_sub_group_shuffle_xor( float3, uint ); +float4 __ovld __conv intel_sub_group_shuffle_xor( float4, uint ); +float8 __ovld __conv intel_sub_group_shuffle_xor( float8, uint ); +float16 __ovld __conv intel_sub_group_shuffle_xor( float16, uint ); + +int __ovld __conv intel_sub_group_shuffle_xor( int , uint ); +int2 __ovld __conv intel_sub_group_shuffle_xor( int2, uint ); +int3 __ovld __conv intel_sub_group_shuffle_xor( int3, uint ); +int4 __ovld __conv intel_sub_group_shuffle_xor( int4, uint ); +int8 __ovld __conv intel_sub_group_shuffle_xor( int8, uint ); +int16 __ovld __conv intel_sub_group_shuffle_xor( int16, uint ); + +uint __ovld __conv intel_sub_group_shuffle_xor( uint , uint ); +uint2 __ovld __conv intel_sub_group_shuffle_xor( uint2, uint ); +uint3 __ovld __conv intel_sub_group_shuffle_xor( uint3, uint ); +uint4 __ovld __conv intel_sub_group_shuffle_xor( uint4, uint ); +uint8 __ovld __conv intel_sub_group_shuffle_xor( uint8, uint ); +uint16 __ovld __conv intel_sub_group_shuffle_xor( uint16, uint ); + +long __ovld __conv intel_sub_group_shuffle_xor( long, uint ); +ulong __ovld __conv intel_sub_group_shuffle_xor( ulong, uint ); + +#if defined(__opencl_c_images) +uint __ovld __conv intel_sub_group_block_read(read_only image2d_t, int2); +uint2 __ovld __conv intel_sub_group_block_read2(read_only image2d_t, int2); +uint4 __ovld __conv intel_sub_group_block_read4(read_only image2d_t, int2); +uint8 __ovld __conv intel_sub_group_block_read8(read_only image2d_t, int2); +#endif -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -uint __ovld __conv intel_sub_group_block_read(read_write image2d_t image, int2 coord); -uint2 __ovld __conv intel_sub_group_block_read2(read_write image2d_t image, int2 coord); -uint4 __ovld __conv intel_sub_group_block_read4(read_write image2d_t image, int2 coord); -uint8 __ovld __conv intel_sub_group_block_read8(read_write image2d_t image, int2 coord); -#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#if defined(__opencl_c_read_write_images) +uint __ovld __conv intel_sub_group_block_read(read_write image2d_t, int2); +uint2 __ovld __conv intel_sub_group_block_read2(read_write image2d_t, int2); +uint4 __ovld __conv intel_sub_group_block_read4(read_write image2d_t, int2); +uint8 __ovld __conv intel_sub_group_block_read8(read_write image2d_t, int2); +#endif // defined(__opencl_c_read_write_images) uint __ovld __conv intel_sub_group_block_read( const __global uint* p ); uint2 __ovld __conv intel_sub_group_block_read2( const __global uint* p ); uint4 __ovld __conv intel_sub_group_block_read4( const __global uint* p ); uint8 __ovld __conv intel_sub_group_block_read8( const __global uint* p ); -void __ovld __conv intel_sub_group_block_write(write_only image2d_t image, int2 coord, uint data); -void __ovld __conv intel_sub_group_block_write2(write_only image2d_t image, int2 coord, uint2 data); -void __ovld __conv intel_sub_group_block_write4(write_only image2d_t image, int2 coord, uint4 data); -void __ovld __conv intel_sub_group_block_write8(write_only image2d_t image, int2 coord, uint8 data); +#if defined(__opencl_c_images) +void __ovld __conv intel_sub_group_block_write(write_only image2d_t, int2, uint); +void __ovld __conv intel_sub_group_block_write2(write_only image2d_t, int2, uint2); +void __ovld __conv intel_sub_group_block_write4(write_only image2d_t, int2, uint4); +void __ovld __conv intel_sub_group_block_write8(write_only image2d_t, int2, uint8); +#endif // defined(__opencl_c_images) -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -void __ovld __conv intel_sub_group_block_write(read_write image2d_t image, int2 coord, uint data); -void __ovld __conv intel_sub_group_block_write2(read_write image2d_t image, int2 coord, uint2 data); -void __ovld __conv intel_sub_group_block_write4(read_write image2d_t image, int2 coord, uint4 data); -void __ovld __conv intel_sub_group_block_write8(read_write image2d_t image, int2 coord, uint8 data); -#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#if defined(__opencl_c_read_write_images) +void __ovld __conv intel_sub_group_block_write(read_write image2d_t, int2, uint); +void __ovld __conv intel_sub_group_block_write2(read_write image2d_t, int2, uint2); +void __ovld __conv intel_sub_group_block_write4(read_write image2d_t, int2, uint4); +void __ovld __conv intel_sub_group_block_write8(read_write image2d_t, int2, uint8); +#endif // defined(__opencl_c_read_write_images) void __ovld __conv intel_sub_group_block_write( __global uint* p, uint data ); void __ovld __conv intel_sub_group_block_write2( __global uint* p, uint2 data ); @@ -16835,89 +18167,89 @@ void __ovld __conv intel_sub_group_block_write4( __global uint* p, uint4 data void __ovld __conv intel_sub_group_block_write8( __global uint* p, uint8 data ); #ifdef cl_khr_fp16 -half __ovld __conv intel_sub_group_shuffle( half x, uint c ); -half __ovld __conv intel_sub_group_shuffle_down( half prev, half cur, uint c ); -half __ovld __conv intel_sub_group_shuffle_up( half prev, half cur, uint c ); -half __ovld __conv intel_sub_group_shuffle_xor( half x, uint c ); +half __ovld __conv intel_sub_group_shuffle( half, uint ); +half __ovld __conv intel_sub_group_shuffle_down( half prev, half cur, uint ); +half __ovld __conv intel_sub_group_shuffle_up( half prev, half cur, uint ); +half __ovld __conv intel_sub_group_shuffle_xor( half, uint ); #endif #if defined(cl_khr_fp64) -double __ovld __conv intel_sub_group_shuffle( double x, uint c ); -double __ovld __conv intel_sub_group_shuffle_down( double prev, double cur, uint c ); -double __ovld __conv intel_sub_group_shuffle_up( double prev, double cur, uint c ); -double __ovld __conv intel_sub_group_shuffle_xor( double x, uint c ); +double __ovld __conv intel_sub_group_shuffle( double, uint ); +double __ovld __conv intel_sub_group_shuffle_down( double prev, double cur, uint ); +double __ovld __conv intel_sub_group_shuffle_up( double prev, double cur, uint ); +double __ovld __conv intel_sub_group_shuffle_xor( double, uint ); #endif #endif //cl_intel_subgroups #if defined(cl_intel_subgroups_short) -short __ovld __conv intel_sub_group_broadcast( short x, uint sub_group_local_id ); -short2 __ovld __conv intel_sub_group_broadcast( short2 x, uint sub_group_local_id ); -short3 __ovld __conv intel_sub_group_broadcast( short3 x, uint sub_group_local_id ); -short4 __ovld __conv intel_sub_group_broadcast( short4 x, uint sub_group_local_id ); -short8 __ovld __conv intel_sub_group_broadcast( short8 x, uint sub_group_local_id ); - -ushort __ovld __conv intel_sub_group_broadcast( ushort x, uint sub_group_local_id ); -ushort2 __ovld __conv intel_sub_group_broadcast( ushort2 x, uint sub_group_local_id ); -ushort3 __ovld __conv intel_sub_group_broadcast( ushort3 x, uint sub_group_local_id ); -ushort4 __ovld __conv intel_sub_group_broadcast( ushort4 x, uint sub_group_local_id ); -ushort8 __ovld __conv intel_sub_group_broadcast( ushort8 x, uint sub_group_local_id ); - -short __ovld __conv intel_sub_group_shuffle( short x, uint c ); -short2 __ovld __conv intel_sub_group_shuffle( short2 x, uint c ); -short3 __ovld __conv intel_sub_group_shuffle( short3 x, uint c ); -short4 __ovld __conv intel_sub_group_shuffle( short4 x, uint c ); -short8 __ovld __conv intel_sub_group_shuffle( short8 x, uint c ); -short16 __ovld __conv intel_sub_group_shuffle( short16 x, uint c); - -ushort __ovld __conv intel_sub_group_shuffle( ushort x, uint c ); -ushort2 __ovld __conv intel_sub_group_shuffle( ushort2 x, uint c ); -ushort3 __ovld __conv intel_sub_group_shuffle( ushort3 x, uint c ); -ushort4 __ovld __conv intel_sub_group_shuffle( ushort4 x, uint c ); -ushort8 __ovld __conv intel_sub_group_shuffle( ushort8 x, uint c ); -ushort16 __ovld __conv intel_sub_group_shuffle( ushort16 x, uint c ); - -short __ovld __conv intel_sub_group_shuffle_down( short cur, short next, uint c ); -short2 __ovld __conv intel_sub_group_shuffle_down( short2 cur, short2 next, uint c ); -short3 __ovld __conv intel_sub_group_shuffle_down( short3 cur, short3 next, uint c ); -short4 __ovld __conv intel_sub_group_shuffle_down( short4 cur, short4 next, uint c ); -short8 __ovld __conv intel_sub_group_shuffle_down( short8 cur, short8 next, uint c ); -short16 __ovld __conv intel_sub_group_shuffle_down( short16 cur, short16 next, uint c ); - -ushort __ovld __conv intel_sub_group_shuffle_down( ushort cur, ushort next, uint c ); -ushort2 __ovld __conv intel_sub_group_shuffle_down( ushort2 cur, ushort2 next, uint c ); -ushort3 __ovld __conv intel_sub_group_shuffle_down( ushort3 cur, ushort3 next, uint c ); -ushort4 __ovld __conv intel_sub_group_shuffle_down( ushort4 cur, ushort4 next, uint c ); -ushort8 __ovld __conv intel_sub_group_shuffle_down( ushort8 cur, ushort8 next, uint c ); -ushort16 __ovld __conv intel_sub_group_shuffle_down( ushort16 cur, ushort16 next, uint c ); - -short __ovld __conv intel_sub_group_shuffle_up( short cur, short next, uint c ); -short2 __ovld __conv intel_sub_group_shuffle_up( short2 cur, short2 next, uint c ); -short3 __ovld __conv intel_sub_group_shuffle_up( short3 cur, short3 next, uint c ); -short4 __ovld __conv intel_sub_group_shuffle_up( short4 cur, short4 next, uint c ); -short8 __ovld __conv intel_sub_group_shuffle_up( short8 cur, short8 next, uint c ); -short16 __ovld __conv intel_sub_group_shuffle_up( short16 cur, short16 next, uint c ); - -ushort __ovld __conv intel_sub_group_shuffle_up( ushort cur, ushort next, uint c ); -ushort2 __ovld __conv intel_sub_group_shuffle_up( ushort2 cur, ushort2 next, uint c ); -ushort3 __ovld __conv intel_sub_group_shuffle_up( ushort3 cur, ushort3 next, uint c ); -ushort4 __ovld __conv intel_sub_group_shuffle_up( ushort4 cur, ushort4 next, uint c ); -ushort8 __ovld __conv intel_sub_group_shuffle_up( ushort8 cur, ushort8 next, uint c ); -ushort16 __ovld __conv intel_sub_group_shuffle_up( ushort16 cur, ushort16 next, uint c ); - -short __ovld __conv intel_sub_group_shuffle_xor( short x, uint c ); -short2 __ovld __conv intel_sub_group_shuffle_xor( short2 x, uint c ); -short3 __ovld __conv intel_sub_group_shuffle_xor( short3 x, uint c ); -short4 __ovld __conv intel_sub_group_shuffle_xor( short4 x, uint c ); -short8 __ovld __conv intel_sub_group_shuffle_xor( short8 x, uint c ); -short16 __ovld __conv intel_sub_group_shuffle_xor( short16 x, uint c ); - -ushort __ovld __conv intel_sub_group_shuffle_xor( ushort x, uint c ); -ushort2 __ovld __conv intel_sub_group_shuffle_xor( ushort2 x, uint c ); -ushort3 __ovld __conv intel_sub_group_shuffle_xor( ushort3 x, uint c ); -ushort4 __ovld __conv intel_sub_group_shuffle_xor( ushort4 x, uint c ); -ushort8 __ovld __conv intel_sub_group_shuffle_xor( ushort8 x, uint c ); -ushort16 __ovld __conv intel_sub_group_shuffle_xor( ushort16 x, uint c ); +short __ovld __conv intel_sub_group_broadcast( short , uint sub_group_local_id ); +short2 __ovld __conv intel_sub_group_broadcast( short2, uint sub_group_local_id ); +short3 __ovld __conv intel_sub_group_broadcast( short3, uint sub_group_local_id ); +short4 __ovld __conv intel_sub_group_broadcast( short4, uint sub_group_local_id ); +short8 __ovld __conv intel_sub_group_broadcast( short8, uint sub_group_local_id ); + +ushort __ovld __conv intel_sub_group_broadcast( ushort , uint sub_group_local_id ); +ushort2 __ovld __conv intel_sub_group_broadcast( ushort2, uint sub_group_local_id ); +ushort3 __ovld __conv intel_sub_group_broadcast( ushort3, uint sub_group_local_id ); +ushort4 __ovld __conv intel_sub_group_broadcast( ushort4, uint sub_group_local_id ); +ushort8 __ovld __conv intel_sub_group_broadcast( ushort8, uint sub_group_local_id ); + +short __ovld __conv intel_sub_group_shuffle( short , uint ); +short2 __ovld __conv intel_sub_group_shuffle( short2 , uint ); +short3 __ovld __conv intel_sub_group_shuffle( short3 , uint ); +short4 __ovld __conv intel_sub_group_shuffle( short4 , uint ); +short8 __ovld __conv intel_sub_group_shuffle( short8 , uint ); +short16 __ovld __conv intel_sub_group_shuffle( short16, uint); + +ushort __ovld __conv intel_sub_group_shuffle( ushort , uint ); +ushort2 __ovld __conv intel_sub_group_shuffle( ushort2 , uint ); +ushort3 __ovld __conv intel_sub_group_shuffle( ushort3 , uint ); +ushort4 __ovld __conv intel_sub_group_shuffle( ushort4 , uint ); +ushort8 __ovld __conv intel_sub_group_shuffle( ushort8 , uint ); +ushort16 __ovld __conv intel_sub_group_shuffle( ushort16, uint ); + +short __ovld __conv intel_sub_group_shuffle_down( short cur, short next, uint ); +short2 __ovld __conv intel_sub_group_shuffle_down( short2 cur, short2 next, uint ); +short3 __ovld __conv intel_sub_group_shuffle_down( short3 cur, short3 next, uint ); +short4 __ovld __conv intel_sub_group_shuffle_down( short4 cur, short4 next, uint ); +short8 __ovld __conv intel_sub_group_shuffle_down( short8 cur, short8 next, uint ); +short16 __ovld __conv intel_sub_group_shuffle_down( short16 cur, short16 next, uint ); + +ushort __ovld __conv intel_sub_group_shuffle_down( ushort cur, ushort next, uint ); +ushort2 __ovld __conv intel_sub_group_shuffle_down( ushort2 cur, ushort2 next, uint ); +ushort3 __ovld __conv intel_sub_group_shuffle_down( ushort3 cur, ushort3 next, uint ); +ushort4 __ovld __conv intel_sub_group_shuffle_down( ushort4 cur, ushort4 next, uint ); +ushort8 __ovld __conv intel_sub_group_shuffle_down( ushort8 cur, ushort8 next, uint ); +ushort16 __ovld __conv intel_sub_group_shuffle_down( ushort16 cur, ushort16 next, uint ); + +short __ovld __conv intel_sub_group_shuffle_up( short cur, short next, uint ); +short2 __ovld __conv intel_sub_group_shuffle_up( short2 cur, short2 next, uint ); +short3 __ovld __conv intel_sub_group_shuffle_up( short3 cur, short3 next, uint ); +short4 __ovld __conv intel_sub_group_shuffle_up( short4 cur, short4 next, uint ); +short8 __ovld __conv intel_sub_group_shuffle_up( short8 cur, short8 next, uint ); +short16 __ovld __conv intel_sub_group_shuffle_up( short16 cur, short16 next, uint ); + +ushort __ovld __conv intel_sub_group_shuffle_up( ushort cur, ushort next, uint ); +ushort2 __ovld __conv intel_sub_group_shuffle_up( ushort2 cur, ushort2 next, uint ); +ushort3 __ovld __conv intel_sub_group_shuffle_up( ushort3 cur, ushort3 next, uint ); +ushort4 __ovld __conv intel_sub_group_shuffle_up( ushort4 cur, ushort4 next, uint ); +ushort8 __ovld __conv intel_sub_group_shuffle_up( ushort8 cur, ushort8 next, uint ); +ushort16 __ovld __conv intel_sub_group_shuffle_up( ushort16 cur, ushort16 next, uint ); + +short __ovld __conv intel_sub_group_shuffle_xor( short , uint ); +short2 __ovld __conv intel_sub_group_shuffle_xor( short2 , uint ); +short3 __ovld __conv intel_sub_group_shuffle_xor( short3 , uint ); +short4 __ovld __conv intel_sub_group_shuffle_xor( short4 , uint ); +short8 __ovld __conv intel_sub_group_shuffle_xor( short8 , uint ); +short16 __ovld __conv intel_sub_group_shuffle_xor( short16, uint ); + +ushort __ovld __conv intel_sub_group_shuffle_xor( ushort , uint ); +ushort2 __ovld __conv intel_sub_group_shuffle_xor( ushort2 , uint ); +ushort3 __ovld __conv intel_sub_group_shuffle_xor( ushort3 , uint ); +ushort4 __ovld __conv intel_sub_group_shuffle_xor( ushort4 , uint ); +ushort8 __ovld __conv intel_sub_group_shuffle_xor( ushort8 , uint ); +ushort16 __ovld __conv intel_sub_group_shuffle_xor( ushort16, uint ); short __ovld __conv intel_sub_group_reduce_add( short x ); ushort __ovld __conv intel_sub_group_reduce_add( ushort x ); @@ -16940,68 +18272,76 @@ ushort __ovld __conv intel_sub_group_scan_inclusive_min( ushort x ); short __ovld __conv intel_sub_group_scan_inclusive_max( short x ); ushort __ovld __conv intel_sub_group_scan_inclusive_max( ushort x ); -uint __ovld __conv intel_sub_group_block_read_ui( read_only image2d_t image, int2 byte_coord ); -uint2 __ovld __conv intel_sub_group_block_read_ui2( read_only image2d_t image, int2 byte_coord ); -uint4 __ovld __conv intel_sub_group_block_read_ui4( read_only image2d_t image, int2 byte_coord ); -uint8 __ovld __conv intel_sub_group_block_read_ui8( read_only image2d_t image, int2 byte_coord ); +#if defined(__opencl_c_images) +uint __ovld __conv intel_sub_group_block_read_ui(read_only image2d_t, int2); +uint2 __ovld __conv intel_sub_group_block_read_ui2(read_only image2d_t, int2); +uint4 __ovld __conv intel_sub_group_block_read_ui4(read_only image2d_t, int2); +uint8 __ovld __conv intel_sub_group_block_read_ui8(read_only image2d_t, int2); +#endif // defined(__opencl_c_images) -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -uint __ovld __conv intel_sub_group_block_read_ui( read_write image2d_t image, int2 byte_coord ); -uint2 __ovld __conv intel_sub_group_block_read_ui2( read_write image2d_t image, int2 byte_coord ); -uint4 __ovld __conv intel_sub_group_block_read_ui4( read_write image2d_t image, int2 byte_coord ); -uint8 __ovld __conv intel_sub_group_block_read_ui8( read_write image2d_t image, int2 byte_coord ); -#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#if defined(__opencl_c_read_write_images) +uint __ovld __conv intel_sub_group_block_read_ui(read_write image2d_t, int2); +uint2 __ovld __conv intel_sub_group_block_read_ui2(read_write image2d_t, int2); +uint4 __ovld __conv intel_sub_group_block_read_ui4(read_write image2d_t, int2); +uint8 __ovld __conv intel_sub_group_block_read_ui8(read_write image2d_t, int2); +#endif // defined(__opencl_c_read_write_images) uint __ovld __conv intel_sub_group_block_read_ui( const __global uint* p ); uint2 __ovld __conv intel_sub_group_block_read_ui2( const __global uint* p ); uint4 __ovld __conv intel_sub_group_block_read_ui4( const __global uint* p ); uint8 __ovld __conv intel_sub_group_block_read_ui8( const __global uint* p ); -void __ovld __conv intel_sub_group_block_write_ui( read_only image2d_t image, int2 byte_coord, uint data ); -void __ovld __conv intel_sub_group_block_write_ui2( read_only image2d_t image, int2 byte_coord, uint2 data ); -void __ovld __conv intel_sub_group_block_write_ui4( read_only image2d_t image, int2 byte_coord, uint4 data ); -void __ovld __conv intel_sub_group_block_write_ui8( read_only image2d_t image, int2 byte_coord, uint8 data ); +#if defined(__opencl_c_images) +void __ovld __conv intel_sub_group_block_write_ui(read_only image2d_t, int2, uint); +void __ovld __conv intel_sub_group_block_write_ui2(read_only image2d_t, int2, uint2); +void __ovld __conv intel_sub_group_block_write_ui4(read_only image2d_t, int2, uint4); +void __ovld __conv intel_sub_group_block_write_ui8(read_only image2d_t, int2, uint8); +#endif //defined(__opencl_c_images) -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -void __ovld __conv intel_sub_group_block_write_ui( read_write image2d_t image, int2 byte_coord, uint data ); -void __ovld __conv intel_sub_group_block_write_ui2( read_write image2d_t image, int2 byte_coord, uint2 data ); -void __ovld __conv intel_sub_group_block_write_ui4( read_write image2d_t image, int2 byte_coord, uint4 data ); -void __ovld __conv intel_sub_group_block_write_ui8( read_write image2d_t image, int2 byte_coord, uint8 data ); -#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#if defined(__opencl_c_read_write_images) +void __ovld __conv intel_sub_group_block_write_ui(read_write image2d_t, int2, uint); +void __ovld __conv intel_sub_group_block_write_ui2(read_write image2d_t, int2, uint2); +void __ovld __conv intel_sub_group_block_write_ui4(read_write image2d_t, int2, uint4); +void __ovld __conv intel_sub_group_block_write_ui8(read_write image2d_t, int2, uint8); +#endif // defined(__opencl_c_read_write_images) void __ovld __conv intel_sub_group_block_write_ui( __global uint* p, uint data ); void __ovld __conv intel_sub_group_block_write_ui2( __global uint* p, uint2 data ); void __ovld __conv intel_sub_group_block_write_ui4( __global uint* p, uint4 data ); void __ovld __conv intel_sub_group_block_write_ui8( __global uint* p, uint8 data ); -ushort __ovld __conv intel_sub_group_block_read_us( read_only image2d_t image, int2 coord ); -ushort2 __ovld __conv intel_sub_group_block_read_us2( read_only image2d_t image, int2 coord ); -ushort4 __ovld __conv intel_sub_group_block_read_us4( read_only image2d_t image, int2 coord ); -ushort8 __ovld __conv intel_sub_group_block_read_us8( read_only image2d_t image, int2 coord ); +#if defined(__opencl_c_images) +ushort __ovld __conv intel_sub_group_block_read_us(read_only image2d_t, int2); +ushort2 __ovld __conv intel_sub_group_block_read_us2(read_only image2d_t, int2); +ushort4 __ovld __conv intel_sub_group_block_read_us4(read_only image2d_t, int2); +ushort8 __ovld __conv intel_sub_group_block_read_us8(read_only image2d_t, int2); +#endif // defined(__opencl_c_images) -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -ushort __ovld __conv intel_sub_group_block_read_us(read_write image2d_t image, int2 coord); -ushort2 __ovld __conv intel_sub_group_block_read_us2(read_write image2d_t image, int2 coord); -ushort4 __ovld __conv intel_sub_group_block_read_us4(read_write image2d_t image, int2 coord); -ushort8 __ovld __conv intel_sub_group_block_read_us8(read_write image2d_t image, int2 coord); -#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#if defined(__opencl_c_read_write_images) +ushort __ovld __conv intel_sub_group_block_read_us(read_write image2d_t, int2); +ushort2 __ovld __conv intel_sub_group_block_read_us2(read_write image2d_t, int2); +ushort4 __ovld __conv intel_sub_group_block_read_us4(read_write image2d_t, int2); +ushort8 __ovld __conv intel_sub_group_block_read_us8(read_write image2d_t, int2); +#endif // defined(__opencl_c_read_write_images) ushort __ovld __conv intel_sub_group_block_read_us( const __global ushort* p ); ushort2 __ovld __conv intel_sub_group_block_read_us2( const __global ushort* p ); ushort4 __ovld __conv intel_sub_group_block_read_us4( const __global ushort* p ); ushort8 __ovld __conv intel_sub_group_block_read_us8( const __global ushort* p ); -void __ovld __conv intel_sub_group_block_write_us(write_only image2d_t image, int2 coord, ushort data); -void __ovld __conv intel_sub_group_block_write_us2(write_only image2d_t image, int2 coord, ushort2 data); -void __ovld __conv intel_sub_group_block_write_us4(write_only image2d_t image, int2 coord, ushort4 data); -void __ovld __conv intel_sub_group_block_write_us8(write_only image2d_t image, int2 coord, ushort8 data); +#if defined(__opencl_c_images) +void __ovld __conv intel_sub_group_block_write_us(write_only image2d_t, int2, ushort); +void __ovld __conv intel_sub_group_block_write_us2(write_only image2d_t, int2, ushort2); +void __ovld __conv intel_sub_group_block_write_us4(write_only image2d_t, int2, ushort4); +void __ovld __conv intel_sub_group_block_write_us8(write_only image2d_t, int2, ushort8); +#endif // defined(__opencl_c_images) -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -void __ovld __conv intel_sub_group_block_write_us(read_write image2d_t image, int2 coord, ushort data); -void __ovld __conv intel_sub_group_block_write_us2(read_write image2d_t image, int2 coord, ushort2 data); -void __ovld __conv intel_sub_group_block_write_us4(read_write image2d_t image, int2 coord, ushort4 data); -void __ovld __conv intel_sub_group_block_write_us8(read_write image2d_t image, int2 coord, ushort8 data); -#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#if defined(__opencl_c_read_write_images) +void __ovld __conv intel_sub_group_block_write_us(read_write image2d_t, int2, ushort); +void __ovld __conv intel_sub_group_block_write_us2(read_write image2d_t, int2, ushort2); +void __ovld __conv intel_sub_group_block_write_us4(read_write image2d_t, int2, ushort4); +void __ovld __conv intel_sub_group_block_write_us8(read_write image2d_t, int2, ushort8); +#endif // defined(__opencl_c_read_write_images) void __ovld __conv intel_sub_group_block_write_us( __global ushort* p, ushort data ); void __ovld __conv intel_sub_group_block_write_us2( __global ushort* p, ushort2 data ); @@ -17119,6 +18459,7 @@ short2 __ovld intel_sub_group_avc_ime_adjust_ref_offset( short2 ref_offset, ushort2 src_coord, ushort2 ref_window_size, ushort2 image_size); +#if defined(__opencl_c_images) intel_sub_group_avc_ime_result_t __ovld intel_sub_group_avc_ime_evaluate_with_single_reference( read_only image2d_t src_image, read_only image2d_t ref_image, @@ -17159,6 +18500,7 @@ intel_sub_group_avc_ime_evaluate_with_dual_reference_streaminout( read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler, intel_sub_group_avc_ime_payload_t payload, intel_sub_group_avc_ime_dual_reference_streamin_t streamin_components); +#endif intel_sub_group_avc_ime_single_reference_streamin_t __ovld intel_sub_group_avc_ime_get_single_reference_streamin( @@ -17223,6 +18565,7 @@ intel_sub_group_avc_ref_payload_t __ovld intel_sub_group_avc_ref_set_bilinear_filter_enable( intel_sub_group_avc_ref_payload_t payload); +#if defined(__opencl_c_images) intel_sub_group_avc_ref_result_t __ovld intel_sub_group_avc_ref_evaluate_with_single_reference( read_only image2d_t src_image, read_only image2d_t ref_image, @@ -17241,6 +18584,7 @@ intel_sub_group_avc_ref_evaluate_with_multi_reference( read_only image2d_t src_image, uint packed_reference_ids, uchar packed_reference_field_polarities, sampler_t vme_media_sampler, intel_sub_group_avc_ref_payload_t payload); +#endif //defined(__opencl_c_images) // SIC built-in functions intel_sub_group_avc_sic_payload_t __ovld @@ -17251,15 +18595,13 @@ intel_sub_group_avc_sic_configure_skc( uint skip_block_partition_type, uint skip_motion_vector_mask, ulong motion_vectors, uchar bidirectional_weight, uchar skip_sad_adjustment, intel_sub_group_avc_sic_payload_t payload); -intel_sub_group_avc_sic_payload_t __ovld -intel_sub_group_avc_sic_configure_ipe( - uchar luma_intra_partition_mask, uchar intra_neighbour_availabilty, +intel_sub_group_avc_sic_payload_t __ovld intel_sub_group_avc_sic_configure_ipe( + uchar luma_intra_partition_mask, uchar intra_neighbour_availability, uchar left_edge_luma_pixels, uchar upper_left_corner_luma_pixel, uchar upper_edge_luma_pixels, uchar upper_right_edge_luma_pixels, uchar intra_sad_adjustment, intel_sub_group_avc_sic_payload_t payload); -intel_sub_group_avc_sic_payload_t __ovld -intel_sub_group_avc_sic_configure_ipe( - uchar luma_intra_partition_mask, uchar intra_neighbour_availabilty, +intel_sub_group_avc_sic_payload_t __ovld intel_sub_group_avc_sic_configure_ipe( + uchar luma_intra_partition_mask, uchar intra_neighbour_availability, uchar left_edge_luma_pixels, uchar upper_left_corner_luma_pixel, uchar upper_edge_luma_pixels, uchar upper_right_edge_luma_pixels, ushort left_edge_chroma_pixels, ushort upper_left_corner_chroma_pixel, @@ -17291,6 +18633,7 @@ intel_sub_group_avc_sic_set_block_based_raw_skip_sad( uchar block_based_skip_type, intel_sub_group_avc_sic_payload_t payload); +#if defined(__opencl_c_images) intel_sub_group_avc_sic_result_t __ovld intel_sub_group_avc_sic_evaluate_ipe( read_only image2d_t src_image, sampler_t vme_media_sampler, @@ -17313,6 +18656,7 @@ intel_sub_group_avc_sic_evaluate_with_multi_reference( read_only image2d_t src_image, uint packed_reference_ids, uchar packed_reference_field_polarities, sampler_t vme_media_sampler, intel_sub_group_avc_sic_payload_t payload); +#endif //defined(__opencl_c_images) uchar __ovld intel_sub_group_avc_sic_get_ipe_luma_shape( intel_sub_group_avc_sic_result_t result); @@ -17509,72 +18853,72 @@ intel_sub_group_avc_mce_convert_to_sic_result( #endif // cl_intel_device_side_avc_motion_estimation #ifdef cl_amd_media_ops -uint __ovld amd_bitalign(uint a, uint b, uint c); -uint2 __ovld amd_bitalign(uint2 a, uint2 b, uint2 c); -uint3 __ovld amd_bitalign(uint3 a, uint3 b, uint3 c); -uint4 __ovld amd_bitalign(uint4 a, uint4 b, uint4 c); -uint8 __ovld amd_bitalign(uint8 a, uint8 b, uint8 c); -uint16 __ovld amd_bitalign(uint16 a, uint16 b, uint16 c); - -uint __ovld amd_bytealign(uint a, uint b, uint c); -uint2 __ovld amd_bytealign(uint2 a, uint2 b, uint2 c); -uint3 __ovld amd_bytealign(uint3 a, uint3 b, uint3 c); -uint4 __ovld amd_bytealign(uint4 a, uint4 b, uint4 c); -uint8 __ovld amd_bytealign(uint8 a, uint8 b, uint8 c); -uint16 __ovld amd_bytealign(uint16 a, uint16 b, uint16 c); - -uint __ovld amd_lerp(uint a, uint b, uint c); -uint2 __ovld amd_lerp(uint2 a, uint2 b, uint2 c); -uint3 __ovld amd_lerp(uint3 a, uint3 b, uint3 c); -uint4 __ovld amd_lerp(uint4 a, uint4 b, uint4 c); -uint8 __ovld amd_lerp(uint8 a, uint8 b, uint8 c); -uint16 __ovld amd_lerp(uint16 a, uint16 b, uint16 c); +uint __ovld amd_bitalign(uint, uint, uint); +uint2 __ovld amd_bitalign(uint2, uint2, uint2); +uint3 __ovld amd_bitalign(uint3, uint3, uint3); +uint4 __ovld amd_bitalign(uint4, uint4, uint4); +uint8 __ovld amd_bitalign(uint8, uint8, uint8); +uint16 __ovld amd_bitalign(uint16, uint16, uint16); + +uint __ovld amd_bytealign(uint, uint, uint); +uint2 __ovld amd_bytealign(uint2, uint2, uint2); +uint3 __ovld amd_bytealign(uint3, uint3, uint3); +uint4 __ovld amd_bytealign(uint4, uint4, uint4); +uint8 __ovld amd_bytealign(uint8, uint8, uint8); +uint16 __ovld amd_bytealign(uint16, uint16, uint16); + +uint __ovld amd_lerp(uint, uint, uint); +uint2 __ovld amd_lerp(uint2, uint2, uint2); +uint3 __ovld amd_lerp(uint3, uint3, uint3); +uint4 __ovld amd_lerp(uint4, uint4, uint4); +uint8 __ovld amd_lerp(uint8, uint8, uint8); +uint16 __ovld amd_lerp(uint16, uint16, uint16); uint __ovld amd_pack(float4 v); -uint __ovld amd_sad4(uint4 x, uint4 y, uint z); - -uint __ovld amd_sadhi(uint a, uint b, uint c); -uint2 __ovld amd_sadhi(uint2 a, uint2 b, uint2 c); -uint3 __ovld amd_sadhi(uint3 a, uint3 b, uint3 c); -uint4 __ovld amd_sadhi(uint4 a, uint4 b, uint4 c); -uint8 __ovld amd_sadhi(uint8 a, uint8 b, uint8 c); -uint16 __ovld amd_sadhi(uint16 a, uint16 b, uint16 c); - -uint __ovld amd_sad(uint a, uint b, uint c); -uint2 __ovld amd_sad(uint2 a, uint2 b, uint2 c); -uint3 __ovld amd_sad(uint3 a, uint3 b, uint3 c); -uint4 __ovld amd_sad(uint4 a, uint4 b, uint4 c); -uint8 __ovld amd_sad(uint8 a, uint8 b, uint8 c); -uint16 __ovld amd_sad(uint16 a, uint16 b, uint16 c); - -float __ovld amd_unpack0(uint a); -float2 __ovld amd_unpack0(uint2 a); -float3 __ovld amd_unpack0(uint3 a); -float4 __ovld amd_unpack0(uint4 a); -float8 __ovld amd_unpack0(uint8 a); -float16 __ovld amd_unpack0(uint16 a); - -float __ovld amd_unpack1(uint a); -float2 __ovld amd_unpack1(uint2 a); -float3 __ovld amd_unpack1(uint3 a); -float4 __ovld amd_unpack1(uint4 a); -float8 __ovld amd_unpack1(uint8 a); -float16 __ovld amd_unpack1(uint16 a); - -float __ovld amd_unpack2(uint a); -float2 __ovld amd_unpack2(uint2 a); -float3 __ovld amd_unpack2(uint3 a); -float4 __ovld amd_unpack2(uint4 a); -float8 __ovld amd_unpack2(uint8 a); -float16 __ovld amd_unpack2(uint16 a); - -float __ovld amd_unpack3(uint a); -float2 __ovld amd_unpack3(uint2 a); -float3 __ovld amd_unpack3(uint3 a); -float4 __ovld amd_unpack3(uint4 a); -float8 __ovld amd_unpack3(uint8 a); -float16 __ovld amd_unpack3(uint16 a); +uint __ovld amd_sad4(uint4, uint4, uint ); + +uint __ovld amd_sadhi(uint, uint, uint); +uint2 __ovld amd_sadhi(uint2, uint2, uint2); +uint3 __ovld amd_sadhi(uint3, uint3, uint3); +uint4 __ovld amd_sadhi(uint4, uint4, uint4); +uint8 __ovld amd_sadhi(uint8, uint8, uint8); +uint16 __ovld amd_sadhi(uint16, uint16, uint16); + +uint __ovld amd_sad(uint, uint, uint); +uint2 __ovld amd_sad(uint2, uint2, uint2); +uint3 __ovld amd_sad(uint3, uint3, uint3); +uint4 __ovld amd_sad(uint4, uint4, uint4); +uint8 __ovld amd_sad(uint8, uint8, uint8); +uint16 __ovld amd_sad(uint16, uint16, uint16); + +float __ovld amd_unpack0(uint); +float2 __ovld amd_unpack0(uint2); +float3 __ovld amd_unpack0(uint3); +float4 __ovld amd_unpack0(uint4); +float8 __ovld amd_unpack0(uint8); +float16 __ovld amd_unpack0(uint16); + +float __ovld amd_unpack1(uint); +float2 __ovld amd_unpack1(uint2); +float3 __ovld amd_unpack1(uint3); +float4 __ovld amd_unpack1(uint4); +float8 __ovld amd_unpack1(uint8); +float16 __ovld amd_unpack1(uint16); + +float __ovld amd_unpack2(uint); +float2 __ovld amd_unpack2(uint2); +float3 __ovld amd_unpack2(uint3); +float4 __ovld amd_unpack2(uint4); +float8 __ovld amd_unpack2(uint8); +float16 __ovld amd_unpack2(uint16); + +float __ovld amd_unpack3(uint); +float2 __ovld amd_unpack3(uint2); +float3 __ovld amd_unpack3(uint3); +float4 __ovld amd_unpack3(uint4); +float8 __ovld amd_unpack3(uint8); +float16 __ovld amd_unpack3(uint16); #endif // cl_amd_media_ops #ifdef cl_amd_media_ops2 @@ -17699,31 +19043,23 @@ uint16 __ovld amd_sadw(uint16 src0, uint16 src1, uint16 src2); #endif // cl_amd_media_ops2 #if defined(cl_arm_integer_dot_product_int8) -#pragma OPENCL EXTENSION cl_arm_integer_dot_product_int8 : begin -uint __ovld arm_dot(uchar4 a, uchar4 b); -int __ovld arm_dot(char4 a, char4 b); -#pragma OPENCL EXTENSION cl_arm_integer_dot_product_int8 : end +uint __ovld arm_dot(uchar4, uchar4); +int __ovld arm_dot(char4, char4); #endif // defined(cl_arm_integer_dot_product_int8) #if defined(cl_arm_integer_dot_product_accumulate_int8) -#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_int8 : begin -uint __ovld arm_dot_acc(uchar4 a, uchar4 b, uint c); -int __ovld arm_dot_acc(char4 a, char4 b, int c); -#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_int8 : end +uint __ovld arm_dot_acc(uchar4, uchar4, uint); +int __ovld arm_dot_acc(char4, char4, int); #endif // defined(cl_arm_integer_dot_product_accumulate_int8) #if defined(cl_arm_integer_dot_product_accumulate_int16) -#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_int16 : begin -uint __ovld arm_dot_acc(ushort2 a, ushort2 b, uint c); -int __ovld arm_dot_acc(short2 a, short2 b, int c); -#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_int16 : end +uint __ovld arm_dot_acc(ushort2, ushort2, uint); +int __ovld arm_dot_acc(short2, short2, int); #endif // defined(cl_arm_integer_dot_product_accumulate_int16) #if defined(cl_arm_integer_dot_product_accumulate_saturate_int8) -#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_saturate_int8 : begin -uint __ovld arm_dot_acc_sat(uchar4 a, uchar4 b, uint c); -int __ovld arm_dot_acc_sat(char4 a, char4 b, int c); -#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_saturate_int8 : end +uint __ovld arm_dot_acc_sat(uchar4, uchar4, uint); +int __ovld arm_dot_acc_sat(char4, char4, int); #endif // defined(cl_arm_integer_dot_product_accumulate_saturate_int8) // Disable any extensions we may have enabled previously. diff --git a/external/lc/opencl/linux/lib/bitcode/irif.amdgcn.bc b/external/lc/opencl/linux/lib/bitcode/irif.amdgcn.bc deleted file mode 100755 index bbfdecb0147af629e568d395602d54d1c9d3d317..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16980 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 ac*T#)w}9YxNu?Lx{BBuRTJa{g diff --git a/external/lc/opencl/linux/lib/bitcode/ockl.amdgcn.bc b/external/lc/opencl/linux/lib/bitcode/ockl.amdgcn.bc index 0d9d7cb265271d570945da65dfd13f2d95808a3d..9902e95dff1cc38192bcc8342416ea5597e26d83 100755 GIT binary patch literal 231428 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 literal 211432 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 JPW~S&{|7&kt-1gJ diff --git a/external/lc/opencl/linux/lib/bitcode/oclc_correctly_rounded_sqrt_off.amdgcn.bc b/external/lc/opencl/linux/lib/bitcode/oclc_correctly_rounded_sqrt_off.amdgcn.bc index a094f3a8c9fe0bcc4ddcce38ace61d949e5edc9a..e355b798f3b83b4335f0a9656b7dc6d549d6d182 100755 GIT binary patch delta 677 zcmeyvw?<%sh~V1aTl}R@sJJj1u`(#~FfbgLsG4mAq#2BqPH-qBxiKhetIXh0R0R@} z>O8GWCL|c8#3-mFH#N-AQFz8Np|Qb|$$)`j<32scNY0cK9uox|lv_?_9!k4?Tes}i z-g}0O@dlj13>*zWBL!+06gE08C@5rLa1i5QU;rWpBe@v@l7c=HdN|eGkFhwP;$T?I z;l|*#z=4-*p#o5TqXYxP*3FJgF--OClBb{Zy*J>0_<--F1OLkf{7(%IGcp&iU@w7Dvkmhb=ZZ+fHz{JmYX=f$XV;vJV{P?j4j#Q%N@9dw78F zjR8NCa}x8?70ObJiZk=`6b#Mu4D<{XG>VHetn~HMQ;Ui+OVTq-^m8)P zGfMI@^V0QGll60Q%5rrJit@8klS>rL5>qV<%neN~EiKZL5>t{5lMD zlsTFWnhbc9IhYNb3`BrDASGkW(Q4={aK=D}$>?wa&q zfcVX+C(kb3yW_?=CFI79H@9Lgoj7&pg&XIz9x(6Ly%Vo)oQgTaf8)@(XKs=+jxjQ< z1V)YeF)}hv{>UiosK_X9z!}WI(Ev0+pr+vn zTjQabj0_Bs3P3(P5F5$O;E@#cnb5YymW=K)S}|d{5%CiV?6^s0|kwYl9GaAD}DX+ z%#w`KB)#PPT>YTLl+^q@|AN#!=ltA)(vnpDoSd>;-GZY0tkmQZJ)lYj1JgtcgES)p z%fw`3V?*jKre&;>@bl08eKHpVYF{ z9A%DXgC+wWWe#S;CIb;5&#>7+#F*tEPqU(oG0%yF6CMdoK~>G##nQ>el|Z~vd-81W z>SAeChoHpd&Dq7C%G$+?rBywQl0dx7YUS0*+Qo*++}5+DT?51z7*+xULJ=5P++0N( f?d6l>*lK~H`-RPgk!i9e`(lX4N%6#FUJiKxO8GWCL|c8#3-mFH#N-AQFz8Np|Qb|$$)`j<32scNY0cK9uox|lv_?_9!k4?Tes}i z-g}0O@dlj13>*zWBL!+06gE08C@5rLa1i5QU;rWpBe@v@l7c=HdN|eGkFhv=abD<3 zU|GPzb!CA77ZXr^qXYxP*3FJgF--OClBb{Zy*J>0_<--F1OLkf{7(%IGcp&iU@w7Dvkmhb=ZZ+fHz{JmYX=f$XV;vJV{P?j4j#Q%N@9dw78F zjR8NKDGfUI7 zG(&R}OEWW|v_X<)Vs1)$L1}z)eoAV5eo{S1b3D}A^5l%fqWI#>s?-2aX9b_sveX;~ z24#+BgC+wWWe#S;CIb;54@k)vbF>;d3!E{KVKO>gz;lwP*-6GoXvTsm_a2XU zJs^H_>dCW9_wKlHP6@ejeE<@ZUIe?wOn9jAM)p zD}hm?K6x)|n`GiaM*c4f{0{^8zclc1cYp(w9T;p3lU>+c7?~$`vMq)L5HLuH_W0yj Gc6k8AUhoD0 delta 494 zcmZ1@@P}`Lh+ysSE&kFcR9qO1SQ!*~7#OBZRL$1oW?*12QaZt*kkZOBS#e1Vka*m( zaDs@CPg@UnONx(xKrzb+1ttd`mNSA4j2jQ>F)}hv{>UiosK_X9z!}WI(Ev0+pr+vn zTjQabj0_Bs3P3(P5F5$O;E@#cnb5o36F%PpsHr=V(H}KN+8~-J$bfw zb+NRnLr`M!=ImlmW$og{(yAUtNg!Tkwesp@?P9}ZZtL07t^r~U3@d>Fp$H5tZmuGY f_VUSbY_-79{lezL$TZoKeKEx2qO8GWCL|c8#3-mFH#N-AQFz8Np|Qb|$$)`j<32scNY0cK9uox|lv_?_9!k4?Tes}i z-g}0Oeg>Su3>*zWBLyrN6gE08C@5rLa1i5QU;rWpBe@v@l7c=HdN|eGkFhwP;$T?I z;l|*#z=4-*p#o5TqXYxP*3FJgF--OClBb{Zy*J>0_<--F1OLkf{7(%IGcp&iU@w7Dvkmhb=ZZ+fHz{JmYX=f$XV;vJV{P?j4j#Q%N@9dw78F zjR8NCa}x8?70ObJiZk=`6b#Mu4D<{XG>VHetn~HMQ;Ui+OVTq-^m8)P zGfMI@^V0QGll60Q%5rrJit@8klS>rL5>qV<%neN~EiKZL5>t{5lMD zlsTFWnhbc9IhYNb3`BrDASGkW(Q4={aK=D}$>?wa&q zfcVX+C(kb3yW_?=CFI79H@9Lgoj7&pg&XIz9x(6Ly%Vo)oQgTaf8)@(XKs=+jxjQ< z1V)YeF)}hv{>UiosL04?z!}WI(Ev0+z@p&@ zTjQabj0_Bs3P3(P5F5$O;E@#cnb5YymW=K)S}|d{5%CiV?6^s0|kwYl9GaAD}DX+ z%#w`KB)#PPT>YTLl+^q@|AN#!=ltA)(vnpDoSd>;-GZY0tkmQZJ)lYj1JgtcgES)p z%fw`3V?*jKre&;>@bl08eKHpVYF{ z9A%DXgC+wWWe#S;CIb;5&#>7+#F*tEPqU(oG0%yF6CMdoK~>G##nQ>el|Z~vd-81W z>SAeChoHpd&Dq7C%G$+?rBywQl0dx7YUS0*+Qo*++}5+DT?51z7*+xULJ=5P++0N( f?d6l>*lK~H`-RPgk!i9e`y`0RN%6$wKkNzsA%%?r diff --git a/external/lc/opencl/linux/lib/bitcode/oclc_daz_opt_on.amdgcn.bc b/external/lc/opencl/linux/lib/bitcode/oclc_daz_opt_on.amdgcn.bc index c2fd9e76e3ce52672f359d232a9c55c780df29ab..0bf7deaa5f2aebf4bf1128cbe36dcc39c4535487 100755 GIT binary patch delta 677 zcmaFEH%DNCh~V1aTl}R@sJJj1u`(#~FfbgLsG4mAq#2BqPH-qBxiKhetIXh0R0R@} z>O8GWCL|c8#3-mFH#N-AQFz8Np|Qb|$$)`j<32scNY0cK9uox|lv_?_9!k4?Tes}i z-g}0Oeg>Su3>*zWBLyrN6gE08C@5rLa1i5QU;rWpBe@v@l7c=HdN|eGkFhv=abD<3 zU|GPzb!CA77ZXr^qXYxP*3FJgF--OClBb{Zy*J>0_<--F1OLkf{7(%IGcp&iU@w7Dvkmhb=ZZ+fHz{JmYX=f$XV;vJV{P?j4j#Q%N@9dw78F zjR8NKDGfUI7 zG(&R}OEWW|v_X<)Vs1)$L1}z)eoAV5eo{S1b3D}A^5l%fqWI#>s?-2aX9b_sveX;~ z24#+BgC+wWWe#S;CIb;54@k)vbF>;d3!E{KVKO>gz;lwP*-6GoXvTsm_a2XU zJs^H_>dCW9_wKlHP6@ejeE<@ZUIe?wOn9jAM)p zD}hm?K6x)|n`GiaM*c4f{0{^8zclc1cYp(w9T;p3lU>+c7?~$`vQ2^n5HLuH_V{EU Gb_D>i_U~{2 delta 494 zcmbOu@P==Kh+ysSE&kFcR9qO1SQ!*~7#OBZRL$1oW?*12QaZt*kkZOBS#e1Vka*m( zaDs@CPg@UnONx(xKrzb+1ttd`mNSA4j2jQ>F)}hv{>UiosL04?z!}WI(Ev0+z@p&@ zTjQabj0_Bs3P3(P5F5$O;E@#cnb5o36F%PpsHr=V(H}KN+8~-J$bfw zb+NRnLr`M!=ImlmW$og{(yAUtNg!Tkwesp@?P9}ZZtL07t^r~U3@d>Fp$H5tZmuGY f_VUSbY_-79{lezL$TZoKeGO8GWCL|c8#3-mFH#N-AQFz8Np|Qb|$$)`j<32scNY0cK9uox|lv_?_9!k4?Tes}i z-g}0OVFsMR3>*zWBLyND6gE08C@5rLa1i5QU;rWpBe@v@l7c=HdN|eGkFhwP;$T?I z;l|*#z=4-*p#o5TqXYxP*3FJgF--OClBb{Zy*J>0_<--F1OLkf{7(%IGcp&iU@w7Dvkmhb=ZZ+fHz{JmYX=f$XV;vJV{P?j4j#Q%N@9dw78F zjR8NCa}x8?70ObJiZk=`6b#Mu4D<{XG>VHetn~HMQ;Ui+OVTq-^m8)P zGfMI@^V0QGll60Q%5rrJit@8klS>rL5>qV<%neN~EiKZL5>t{5lMD zlsTFWnhbc9IhYNb3`BrDASGkW(Q4={aK=D}$>?wa&q zfcVX+C(kb3yW_?=CFI79H@9Lgoj7&pg&XIz9x(6Ly%Vo)oQgTaf8)@(XKs=+jxjQ< z1V)YeGPe delta 494 zcmZ1?@P%)Jh+ysSE&kFcR9qO1SQ!*~7#OBZRL$1oW?*12QaZt*kkZOBS#e1Vka*m( zaDs@CPg@UnONx(xKrzb+1ttd`mNSA4j2jQ>F)}hv{>UiosK_X0z!}WI(Ev0+Afn+2 zTjQabj0_Bs3P3(P5F5$O;E@#cnb5YymW=K)S}|d{5%CiV?6^s0|kwYl9GaAD}DX+ z%#w`KB)#PPT>YTLl+^q@|AN#!=ltA)(vnpDoSd>;-GZY0tkmQZJ)lYj1JgtcgES)p z%fw`3V?*jKre&;>@bl08eKHpVYF{ z9A%DXgC+wWWe#S;CIb;5&#>7+#F*tEPqU(oG0%yF6CMdoK~>G##nQ>el|Z~vd-81W z>SAeChoHpd&Dq7C%G$+?rBywQl0dx7YUS0*+Qo*++}5+DT?51z7*+xULJ=5P++0N( f?d6l>*lK~H`-RPgk!i9e`z(mZN%6#F77hgfeP4`9 diff --git a/external/lc/opencl/linux/lib/bitcode/oclc_finite_only_on.amdgcn.bc b/external/lc/opencl/linux/lib/bitcode/oclc_finite_only_on.amdgcn.bc index ba93d946a6dabf84bab677662e52d5a30daced76..930a7e25b3eeab69f51fb515018c1fa2b730fb05 100755 GIT binary patch delta 677 zcmeyuw?trqh~V1aTl}R@sJJj1u`(#~FfbgLsG4mAq#2BqPH-qBxiKhetIXh0R0R@} z>O8GWCL|c8#3-mFH#N-AQFz8Np|Qb|$$)`j<32scNY0cK9uox|lv_?_9!k4?Tes}i z-g}0OVFsMR3>*zWBLyND6gE08C@5rLa1i5QU;rWpBe@v@l7c=HdN|eGkFhv=abD<3 zU|GPzb!CA77ZXr^qXYxP*3FJgF--OClBb{Zy*J>0_<--F1OLkf{7(%IGcp&iU@w7Dvkmhb=ZZ+fHz{JmYX=f$XV;vJV{P?j4j#Q%N@9dw78F zjR8NKDGfUI7 zG(&R}OEWW|v_X<)Vs1)$L1}z)eoAV5eo{S1b3D}A^5l%fqWI#>s?-2aX9b_sveX;~ z24#+BgC+wWWe#S;CIb;54@k)vbF>;d3!E{KVKO>gz;lwP*-6GoXvTsm_a2XU zJs^H_>dCW9_wKlHP6@ejeE<@ZUIe?wOn9jAM)p zD}hm?K6x)|n`GiaM*c4f{0{^8zclc1cYp(w9T;p3lU>+c7?~$`vdw}75HLuH_W0xw Gb_D=674NtJ delta 494 zcmZ1?@P%)Jh+ysSE&kFcR9qO1SQ!*~7#OBZRL$1oW?*12QaZt*kkZOBS#e1Vka*m( zaDs@CPg@UnONx(xKrzb+1ttd`mNSA4j2jQ>F)}hv{>UiosK_X0z!}WI(Ev0+Afn+2 zTjQabj0_Bs3P3(P5F5$O;E@#cnb5o36F%PpsHr=V(H}KN+8~-J$bfw zb+NRnLr`M!=ImlmW$og{(yAUtNg!Tkwesp@?P9}ZZtL07t^r~U3@d>Fp$H5tZmuGY f_VUSbY_-79{lezL$TZoKeHO&yqkwAI4?7BGyu&L@L*8b=(xb3kb%KLjDvvzh!~9IW(Y_M`b_BIRC7PZ;=JmDHFH-2 z%K{dzD+>g;n1BXLFfeT0Y|9kGRNpRn`Z?cw1OA5(_+C2jzg)oo)Zj29bMXrHa*6i% z8SMoH?IjD^OD?n*&1h_Kw0v;bVuQ2o1ZT@L4o4Qqo?0mTz)|krL76m_WCOm32l(C? z@B-puMI6sCVNOMw_0)Hd78;TyVD9(`B zD9OvrOV>|L*3Zc)%hfF?%FjwoE>SQ`OtmmDH#D`hv`9-zOi4COGB7l-NKQ1fG)+r0 zG&iv{GXqK+Bxxq*rlc2?#wX{eq{inb@qjePL#>_c$SPdVz@W_0XwW3Uqs+l**d!nV zc>E0bT&M6@` zZoIh_bLqsXJ1^Wgr}cn&x9**Ib>mdbnHz`BJ#&+sag32+B`_}3fuX_8Rix2g-oRcJ zQ82@K@=4Y*$;5+<{9hFK9|rJ$Y2f4T0EZ|$P$k1;2R0W*=E<#W(;y)P3=^V#KG}y| F0RRd9>^%Sg delta 505 zcmbOu@P==Kh+ysSE&kFcR9qO1SQ!*~7#Jo`RL$1rVqjn}QtIGPNNHseR$S5oBp$ac zoFF3P)6&D;;^HH~Q_PZJ(7_8V}82WMGI?0P@*^*hp>$kEEc_gdR>c_hT&1i!N9*cO|eaVBuOQ z!?00;fnoY)SEd*y4xrLXpca?Oimb}@76LkqUl*t_Blx@7 zC}?DqloS+O>FcLwmSmJB=_Tjq>IWsJq~_=O7o_Gn=jRrbmZa+Ew>mM7O|Bo@UN zXI7;KcseWiq?V=TD04IzG%@ffb1)b-F^B+phRqHl#w-VUniXY?c}^sp@JMJ1s%q9Q zmQF6N1mca_lV^KZ7fY);1SKYK&Mx*;)-GNwt?FTv1ma~@E3Z!0E;dZ&ww^8R8X(5N ruo4&$ion3)<|@)?FP|L6R?EmZ`2(8^BhzG4_Gu80lj4cVf7lfOy=Ic% diff --git a/external/lc/opencl/linux/lib/bitcode/oclc_isa_version_1011.amdgcn.bc b/external/lc/opencl/linux/lib/bitcode/oclc_isa_version_1011.amdgcn.bc index f59969556ddf1220c451c6dacf0efd668f7da9a4..268a3b1bf9d53f0397878c5188fb5ffda3bb7362 100755 GIT binary patch delta 675 zcmaFEH%DNCh~V1aTl}R@sJJj1u`(#~Ffi<&sG6kwAI4?7BGyu&L@L*8b=(xb3kb%KLjDvvzh!~9IW(Y_M`b_BIRC7PZ;=JmLHFH-2 z%K{dzD+>g;n1BXLFfeT0Y|9kGRNpRn`Z?cw1OA5(_+C2jzg)oo)Zj29bMXrHa*6i% z8SMoH?IjD^OD?n*&1h_Kw0v;bVuQ2o1ZT@L4o4Qqo?0mTz)|krL76m_WCOm32l(C? z@B-puMI6sCVNOMw_0)Hd78;TyVD9(`B zD9OvrOV>|L*3Zc)%hfF?%FjwoE>SQ`OtmmDH#D`hv`9-zOi4COGB7l-NKQ1fG)+r0 zG&iv{GXqK+Bxxq*rlc2?#wX{eq{inb@qjePL#>_c$SPdVz@W_0XwW3Uqs+l**d!nV zc>E0bT&M6@` zZoIh_bLqsXJ1^Wgr}cn&x9**Ib>mdbnHz`BJ#&+sag32+B`_}3fuX_8Rix2g-oRcJ zQ82@K@=4Y*$;5+<{9hFK9|rJ$Y2f4T0EZ|$P$k1;2R0W*=E<#W(;y)P3=^V#KG}y| F0RR#@>_Gqk delta 505 zcmbOu@P==Kh+ysSE&kFcR9qO1SQ!*~7#Jo`RL$1rVqjn}QtIGPNNHseR$S5oBp$ac zoFF3P)6&D;;^HH~Q_PZJ(7_8V}82WMGI?0P@*^*hp>$kEEc_gdR>c_hT&1i>_ERcO|eaVBuOQ z!?00;fnoY)SEd*y4xrLXpca?Oimb}@76LkqUl*t_Blx@7 zC}?DqloS+O>FcLwmSmJB=_Tjq>IWsJq~_=O7o_Gn=jRrbmZa+Ew>mM7O|Bo@UN zXI7;KcseWiq?V=TD04IzG%@ffb1)b-F^B+phRqHl#w-VUniXY?c}^sp@JMJ1s%q9Q zmQF6N1mca_lV^KZ7fY);1SKYK&Mx*;)-GNwt?FTv1ma~@E3Z!0E;dZ&ww^8R8X(5N ruo4&$ion3)<|@)?FP|L6R?EmZ`2(8^BhzG4_Gu80lj4cVf7lfO!wQn) diff --git a/external/lc/opencl/linux/lib/bitcode/oclc_isa_version_1012.amdgcn.bc b/external/lc/opencl/linux/lib/bitcode/oclc_isa_version_1012.amdgcn.bc index 42dba19bb7717a3ba704e3f5e4a39e1869ee69f6..5708a519d2a575bf87ba4cbbed2b5a0a87265c73 100755 GIT binary patch delta 675 zcmaFEH%DNCh~V1aTl}R@sJJj1u`(#~Ffi<&sG6kwAI4?7BGyu&L@L*8b=(xb3kb%KLjDvvzh!~9IW(Y_M`b_BIRC7PZ;=JmHHFH-2 z%K{dzD+>g;n1BXLFfeT0Y|9kGRNpRn`Z?cw1OA5(_+C2jzg)oo)Zj29bMXrHa*6i% z8SMoH?IjD^OD?n*&1h_Kw0v;bVuQ2o1ZT@L4o4Qqo?0mTz)|krL76m_WCOm32l(C? z@B-puMI6sCVNOMw_0)Hd78;TyVD9(`B zD9OvrOV>|L*3Zc)%hfF?%FjwoE>SQ`OtmmDH#D`hv`9-zOi4COGB7l-NKQ1fG)+r0 zG&iv{GXqK+Bxxq*rlc2?#wX{eq{inb@qjePL#>_c$SPdVz@W_0XwW3Uqs+l**d!nV zc>E0bT&M6@` zZoIh_bLqsXJ1^Wgr}cn&x9**Ib>mdbnHz`BJ#&+sag32+B`_}3fuX_8Rix2g-oRcJ zQ82@K@=4Y*$;5+<{9hFK9|rJ$Y2f4T0EZ|$P$k1;2R0W*=E<#W(;y)P3=^V#KG}y| F0RS3y>_q?o delta 505 zcmbOu@P==Kh+ysSE&kFcR9qO1SQ!*~7#Jo`RL$1rVqjn}QtIGPNNHseR$S5oBp$ac zoFF3P)6&D;;^HH~Q_PZJ(7_8V}82WMGI?0P@*^*hp>$kEEc_gdR>c_hT&1i*8smcO|eaVBuOQ z!?00;fnoY)SEd*y4xrLXpca?Oimb}@76LkqUl*t_Blx@7 zC}?DqloS+O>FcLwmSmJB=_Tjq>IWsJq~_=O7o_Gn=jRrbmZa+Ew>mM7O|Bo@UN zXI7;KcseWiq?V=TD04IzG%@ffb1)b-F^B+phRqHl#w-VUniXY?c}^sp@JMJ1s%q9Q zmQF6N1mca_lV^KZ7fY);1SKYK&Mx*;)-GNwt?FTv1ma~@E3Z!0E;dZ&ww^8R8X(5N ruo4&$ion3)<|@)?FP|L6R?EmZ`2(8^BhzG4_Gu80lj4cVf7lfO$gYy- diff --git a/external/lc/opencl/linux/lib/bitcode/oclc_isa_version_1030.amdgcn.bc b/external/lc/opencl/linux/lib/bitcode/oclc_isa_version_1030.amdgcn.bc index 90789afb7197dc93ab3a0cf1bc65be9410bff974..48c9682990b9bbb28c61513a3e3b3d468ca0d820 100755 GIT binary patch delta 675 zcmaFEH%DNCh~V1aTl}R@sJJj1u`(#~Ffi<&sG6kwAI4?7BGyu&L@L*8b=(xb3kb%KLjDvvzh!~9IW(Y_M`b_BIRC7PZ;=JmEBXd^* z%K{dzD+>g;n1BXLFfeT0Y|9kGRNpRn`Z?cw1OA5(_+C2jzg)oo)Zj29bMXrHa*6i% z8SMoH?IjD^OD?n*&1h_Kw0v;bVuQ2o1ZT@L4o4Qqo?0mTz)|krL76m_WCOm32l(C? z@B-puMI6sCVNOMw_0)Hd78;TyVD9(`B zD9OvrOV>|L*3Zc)%hfF?%FjwoE>SQ`OtmmDH#D`hv`9-zOi4COGB7l-NKQ1fG)+r0 zG&iv{GXqK+Bxxq*rlc2?#wX{eq{inb@qjePL#>_c$SPdVz@W_0XwW3Uqs+l**d!nV zc>E0bT&M6@` zZoIh_bLqsXJ1^Wgr}cn&x9**Ib>mdbnHz`BJ#&+sag32+B`_}3fuX_8Rix2g-oRcJ zQ82@K@=4Y*$;5+<{9hFK9|rJ$Y2f4T0EZ|$P$k1;2R0W*=E<#W(;y)P3=^V#KG}y| F0RUJs>|+1` delta 505 zcmbOu@P==Kh+ysSE&kFcR9qO1SQ!*~7#Jo`RL$1rVqjn}QtIGPNNHseR$S5oBp$ac zoFF3P)6&D;;^HH~Q_PZJ(7_8V}82WMGI?0P@*^*hp>$kEEc_gdR>c_hT&1i#|9qcO|eaVBuOQ z!?00;fnoY)SEd*y4xrLXpca?Oimb}@76LkqUl*t_Blx@7 zC}?DqloS+O>FcLwmSmJB=_Tjq>IWsJq~_=O7o_Gn=jRrbmZa+Ew>mM7O|Bo@UN zXI7;KcseWiq?V=TD04IzG%@ffb1)b-F^B+phRqHl#w-VUniXY?c}^sp@JMJ1s%q9Q zmQF6N1mca_lV^KZ7fY);1SKYK&Mx*;)-GNwt?FTv1ma~@E3Z!0E;dZ&ww^8R8X(5N ruo4&$ion3)<|@)?FP|L6R?EmZ`2(8^BhzG4_Gu80lj4cVf7lfO^7fMj diff --git a/external/lc/opencl/linux/lib/bitcode/oclc_isa_version_1031.amdgcn.bc b/external/lc/opencl/linux/lib/bitcode/oclc_isa_version_1031.amdgcn.bc index 3223e9afe75d36cb82464ab0a9bdd2f82c0ac756..73a889a0a443b2649a3967fcd6b70ab91776ecc2 100755 GIT binary patch delta 675 zcmaFEH%DNCh~V1aTl}R@sJJj1u`(#~Ffi<&sG6kwAI4?7BGyu&L@L*8b=(xb3kb%KLjDvvzh!~9IW(Y_M`b_BIRC7PZ;=JmMBXd^* z%K{dzD+>g;n1BXLFfeT0Y|9kGRNpRn`Z?cw1OA5(_+C2jzg)oo)Zj29bMXrHa*6i% z8SMoH?IjD^OD?n*&1h_Kw0v;bVuQ2o1ZT@L4o4Qqo?0mTz)|krL76m_WCOm32l(C? z@B-puMI6sCVNOMw_0)Hd78;TyVD9(`B zD9OvrOV>|L*3Zc)%hfF?%FjwoE>SQ`OtmmDH#D`hv`9-zOi4COGB7l-NKQ1fG)+r0 zG&iv{GXqK+Bxxq*rlc2?#wX{eq{inb@qjePL#>_c$SPdVz@W_0XwW3Uqs+l**d!nV zc>E0bT&M6@` zZoIh_bLqsXJ1^Wgr}cn&x9**Ib>mdbnHz`BJ#&+sag32+B`_}3fuX_8Rix2g-oRcJ zQ82@K@=4Y*$;5+<{9hFK9|rJ$Y2f4T0EZ|$P$k1;2R0W*=E<#W(;y)P3=^V#KG}y| F0RUib>}LP~ delta 505 zcmbOu@P==Kh+ysSE&kFcR9qO1SQ!*~7#Jo`RL$1rVqjn}QtIGPNNHseR$S5oBp$ac zoFF3P)6&D;;^HH~Q_PZJ(7_8V}82WMGI?0P@*^*hp>$kEEc_gdR>c_hT&1i@rEAcO|eaVBuOQ z!?00;fnoY)SEd*y4xrLXpca?Oimb}@76LkqUl*t_Blx@7 zC}?DqloS+O>FcLwmSmJB=_Tjq>IWsJq~_=O7o_Gn=jRrbmZa+Ew>mM7O|Bo@UN zXI7;KcseWiq?V=TD04IzG%@ffb1)b-F^B+phRqHl#w-VUniXY?c}^sp@JMJ1s%q9Q zmQF6N1mca_lV^KZ7fY);1SKYK&Mx*;)-GNwt?FTv1ma~@E3Z!0E;dZ&ww^8R8X(5N ruo4&$ion3)<|@)?FP|L6R?EmZ`2(8^BhzG4_Gu80lj4cVf7lfO_?nXm diff --git a/external/lc/opencl/linux/lib/bitcode/oclc_isa_version_1032.amdgcn.bc b/external/lc/opencl/linux/lib/bitcode/oclc_isa_version_1032.amdgcn.bc index 67027b6f3f21375ed9eab7ced8502a59b36ecc06..1fe817a31701746e2a9a018e4c259cac83c681cc 100755 GIT binary patch delta 675 zcmaFEH%DNCh~V1aTl}R@sJJj1u`(#~Ffi<&sG6kwAI4?7BGyu&L@L*8b=(xb3kb%KLjDvvzh!~9IW(Y_M`b_BIRC7PZ;=JmIBXd^* z%K{dzD+>g;n1BXLFfeT0Y|9kGRNpRn`Z?cw1OA5(_+C2jzg)oo)Zj29bMXrHa*6i% z8SMoH?IjD^OD?n*&1h_Kw0v;bVuQ2o1ZT@L4o4Qqo?0mTz)|krL76m_WCOm32l(C? z@B-puMI6sCVNOMw_0)Hd78;TyVD9(`B zD9OvrOV>|L*3Zc)%hfF?%FjwoE>SQ`OtmmDH#D`hv`9-zOi4COGB7l-NKQ1fG)+r0 zG&iv{GXqK+Bxxq*rlc2?#wX{eq{inb@qjePL#>_c$SPdVz@W_0XwW3Uqs+l**d!nV zc>E0bT&M6@` zZoIh_bLqsXJ1^Wgr}cn&x9**Ib>mdbnHz`BJ#&+sag32+B`_}3fuX_8Rix2g-oRcJ zQ82@K@=4Y*$;5+<{9hFK9|rJ$Y2f4T0EZ|$P$k1;2R0W*=E<#W(;y)P3=^V#KG}y| F0RU*K>}vo3 delta 505 zcmbOu@P==Kh+ysSE&kFcR9qO1SQ!*~7#Jo`RL$1rVqjn}QtIGPNNHseR$S5oBp$ac zoFF3P)6&D;;^HH~Q_PZJ(7_8V}82WMGI?0P@*^*hp>$kEEc_gdR>c_hT&1i+(sVcO|eaVBuOQ z!?00;fnoY)SEd*y4xrLXpca?Oimb}@76LkqUl*t_Blx@7 zC}?DqloS+O>FcLwmSmJB=_Tjq>IWsJq~_=O7o_Gn=jRrbmZa+Ew>mM7O|Bo@UN zXI7;KcseWiq?V=TD04IzG%@ffb1)b-F^B+phRqHl#w-VUniXY?c}^sp@JMJ1s%q9Q zmQF6N1mca_lV^KZ7fY);1SKYK&Mx*;)-GNwt?FTv1ma~@E3Z!0E;dZ&ww^8R8X(5N ruo4&$ion3)<|@)?FP|L6R?EmZ`2(8^BhzG4_Gu80lj4cVf7lfO{yvip diff --git a/external/lc/opencl/linux/lib/bitcode/oclc_isa_version_1034.amdgcn.bc b/external/lc/opencl/linux/lib/bitcode/oclc_isa_version_1034.amdgcn.bc index d5f5279b6104efd61243ef0a4d8f4ab7c4b7855d..893fd5d97fa1be68998ee4f97121f1de596ff2c4 100644 GIT binary patch delta 585 zcmaFDH%DNCh~V1aTl}R@sJJj1u`(#~Ffi<&s5+5DN8uUAfdmDHjr;T%BRNw}cnAtQ zD7T!Ai>fJbn(Wd9H&6L9y7o4s3 zG+Uox2D-9Rfq{Y1Yw}VSWeE=fE5?@#G&z%V67$j(%2JDpGxPHl49zA#U@@pSOH8#e zFgG-{w6sV|N=!*MOfoPuut-icvouXhGc-4`G&2KA8zgBa=BA_|#F-NPRv%nbx z878B{1w1Etnw{KajD%(^m~!vIsXNDR#M}eoH>aLFyL9i48|Rde8#mtEin(;+)SVY@ zoYQ*1yj%B9yt;8J=FE*l=bpJq&N#-%uo4*D>XSFJwn-))WaR&%!2d9S|4RcOcLz9- e*nvU8Fxi6bwxOAxfu2EnW{Co^KA!Btt^fdXJJXZ^ delta 400 zcmbOu@Pu!Ih+yyUE&kFcR9qO1SQ!*~7#Jo_RGrA7%+Tz}(jdXHai1PzC}YYA4?#f( z<(89~hth7})-AiW_nso7kOAjq295>>1_l9-h9hi^ho&(yFhnW<`RqV!BsYUcQqX5Y z52u>@F&5`V49?752`md(xE9JVY?NSNn7-MSDTavysI(HO#c{GCtFnZJfCA&o1u6{5 zIf;4c3T3H9#hLke3Wg?=V^|I9lgyJW(#+C~k`2vL5>t!~jFVH%ER7RQ43dmf6V1&` z6BCUsjZ@9dHOrGT5{u%CGpkYqJe?JMQp-|vlsOscb)wl+q_$sgEm8=B}D=ozGEmM9SG>dAlD6#$Z< BbtnJ; diff --git a/external/lc/opencl/linux/lib/bitcode/oclc_isa_version_1035.amdgcn.bc b/external/lc/opencl/linux/lib/bitcode/oclc_isa_version_1035.amdgcn.bc new file mode 100644 index 0000000000000000000000000000000000000000..45fdf894385758a156ba21f19c6d362de598e550 GIT binary patch literal 2076 zcma(SZA=^I`85W=2Y7b}LkU*S?p>fQ?V56S8e+$`1RSHzmTB(VNlaq0jj_QkALqlE zk5-e7iH>eoP&%wbkUvuZ*Kvh48@sAz^(7FAlM?Ku;s z?%!VB^E~f!&&T_`&&OS-aJO)w0ih~{P@kS}{@#y14*u?6i{C$!Ywprmst~6~=noo% zYAZNY0XnAuaJ=bSN3Qa+j<(pYYi9M&R}ltN<T%b@a_&h=W+N%3)D%BjhN1jBz9*iyQRm zops$|7DwChv=>KUPnS34H^YdMvUrTe(>#_y#FsbaHz109-OBwxqUhJG_QCD3H!l_T z;%OR3*L6=>^(A;7_EP`#|Fj)Xo@h>$HKmxU5KdtTLvlYe90w7L0fT6qRz)fXpEMTB zZo>#m?W$BlI1*EpMew|?djhvO_RrU$+djc(_RJXYoY#C`NPD{W(`%U3=5) zz0h*-(W7(GhaVNpnji4he?deHa!I=od#fYMhY@N&MIZzZvY0Zoq3%j5S^dK6tChlU zD+TROy_MO@noqNI4K&29MudJ3dgqB4vr=M$4I1a1V4YQxoiRK$iN`Ww{Vt+Dr^%xj zd0yXXT3#~VpJ#%6Raq@@Ca-no1ZPs~%ugmGB7T>^Q!ZH)@wBLoPRb%H8}fDJL5eK# z)Cf;)9g>G`@;tp_EO5*QXI%D~g8cjTI|=)`U|ZBW?j#(uT6_MmA?n5N4&sZ0vIICL ziz!+3;%Ezwepv->Ct|XPki(6#l#!=0@mHQ4l23}{Kkt$UytXel&uq^#`7+-0F>4&N z5;v~-bbn0=wwz$gl<{rFnii~cT6!4;BDdP95=$PyE!Y<0=8|c-!}Ne-HshwvBC}mGex@-68{e=l2$yao z?0I+dvx|7;iAg+}dE?4aic&LRdfT+-WA->>VafOtjY$odGamYMZ(U7T^NM{za6&@9 zT6Sy;_BmjcDL*VHaEM?-oTQqram)voaU+_&!4?0ZSrPCWFV*vti8SD!Q z=VIc_tYS?Hw!GrFy=2QNa7RbpwHPKaL=}bv_Q-}utK@-~`n;$+WT_pV+F_}uZgPYs zw|ElRFN(VTBDw7*zvP?#cHm={yKV%NbWVBUEsYdoIX+Xul&kZ)LES#cfv}3=q~)?9bVuPa zPI)c#^c0KGcYsPJ7c0!^4b_sx#Wuy0*RFlim8Dzy9cD}C2Py8CF8Y#YKl@U(f5MV`GDtT3ZJKk`#&zgd(j&p@G53NN8lBHQ;X@8j22|6Q$9& z1O5ox<_lQ)i{=Y9n>E-U@ccr$PH``T<5fZSOuPY<5?t-`dzXc-Z?Ox3;<0UH$W9nR{5seYUaI zo8MTzzuRrdtZLA2;9Kw_-Da>Z+E+wywzkZ`1==0ImS2c0B;R#19StoLp{u@@k8Z4|ILkwqtLJS|PyvH-@AM$%Hzu9q8`s03s4*S3R aNNpqk$T=V?437EA-8d8)c}G0~q5lBuNVvWL literal 0 HcmV?d00001 diff --git a/external/lc/opencl/linux/lib/bitcode/oclc_isa_version_1100.amdgcn.bc b/external/lc/opencl/linux/lib/bitcode/oclc_isa_version_1100.amdgcn.bc new file mode 100644 index 0000000000000000000000000000000000000000..f80e93928ab3353039280edb581ba8fd333c3247 GIT binary patch literal 2076 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 F0RUk`>+1jj delta 505 zcmbOu@P==Kh+ysSE&kFcR9qO1SQ!*~7#Jo`RL$1rVqjn}QtIGPNNHseR$S5oBp$ac zoFF3P)6&D;;^HH~Q_PZJ(7_8V}82WMGI?0P@*^*hp>$kEEc_gdR>c_hT&1ixx;ScO|eaVBuOQ z!?00;fnoY)SEd*y4xrLXpca?Oimb}@76LkqUl*t_Blx@7 zC}?DqloS+O>FcLwmSmJB=_Tjq>IWsJq~_=O7o_Gn=jRrbmZa+Ew>mM7O|Bo@UN zXI7;KcseWiq?V=TD04IzG%@ffb1)b-F^B+phRqHl#w-VUniXY?c}^sp@JMJ1s%q9Q zmQF6N1mca_lV^KZ7fY);1SKYK&Mx*;)-GNwt?FTv1ma~@E3Z!0E;dZ&ww^8R8X(5N ruo4&$ion3)<|@)?FP|L6R?EmZ`2(8^BhzG4_Gu80lj4cVf7lfON#>G` diff --git a/external/lc/opencl/linux/lib/bitcode/oclc_isa_version_902.amdgcn.bc b/external/lc/opencl/linux/lib/bitcode/oclc_isa_version_902.amdgcn.bc index 9ff9335bb817606eb30fc7e15846128393b85396..b0c0ed2bf061bac2c61291143f505bb1bf2c3368 100755 GIT binary patch delta 675 zcmaFEH%DNCh~V1aTl}R@sJJj1u`(#~Ffi<&sG6kwAI4?7BGyu&L@L*8b=(xb3kb%KLjDvvzh!~9IW(Y_M`b_BIRC7PZ;=F2wBy(2+ z%K{dzD+>g;n1BXLFfeT0Y|9kGRNpRn`Z?cw1OA5(_+C2jzg)oo)Zj29bMXrHa*6i% z8SMoH?IjD^OD?n*&1h_Kw0v;bVuQ2o1ZT@L4o4Qqo?0mTz)|krL76m_WCOm32l(C? z@B-puMI6sCVNOMw_0)Hd78;TyVD9(`B zD9OvrOV>|L*3Zc)%hfF?%FjwoE>SQ`OtmmDH#D`hv`9-zOi4COGB7l-NKQ1fG)+r0 zG&iv{GXqK+Bxxq*rlc2?#wX{eq{inb@qjePL#>_c$SPdVz@W_0XwW3Uqs+l**d!nV zc>E0bT&M6@` zZoIh_bLqsXJ1^Wgr}cn&x9**Ib>mdbnHz`BJ#&+sag32+B`_}3fuX_8Rix2g-oRcJ zQ82@K@=4Y*$;5+<{9hFK9|rJ$Y2f4T0EZ|$P$k1;2R0W*=E<#W(;y)P3=^V#KG}y| F0RVBk>+=8r delta 505 zcmbOu@P==Kh+ysSE&kFcR9qO1SQ!*~7#Jo`RL$1rVqjn}QtIGPNNHseR$S5oBp$ac zoFF3P)6&D;;^HH~Q_PZJ(7_8V}82WMGI?0P@*^*hp>$kEEc_gdR>c_hT&1i&jW7cO|eaVBuOQ z!?00;fnoY)SEd*y4xrLXpca?Oimb}@76LkqUl*t_Blx@7 zC}?DqloS+O>FcLwmSmJB=_Tjq>IWsJq~_=O7o_Gn=jRrbmZa+Ew>mM7O|Bo@UN zXI7;KcseWiq?V=TD04IzG%@ffb1)b-F^B+phRqHl#w-VUniXY?c}^sp@JMJ1s%q9Q zmQF6N1mca_lV^KZ7fY);1SKYK&Mx*;)-GNwt?FTv1ma~@E3Z!0E;dZ&ww^8R8X(5N ruo4&$ion3)<|@)?FP|L6R?EmZ`2(8^BhzG4_Gu80lj4cVf7lfORW6d1 diff --git a/external/lc/opencl/linux/lib/bitcode/oclc_isa_version_904.amdgcn.bc b/external/lc/opencl/linux/lib/bitcode/oclc_isa_version_904.amdgcn.bc index 9d33d5375609e32414eb3707381b1570ccabdecd..7a18aa439d0c1b43329e58355435d9c54306d410 100755 GIT binary patch delta 675 zcmaFEH%DNCh~V1aTl}R@sJJj1u`(#~Ffi<&sG6kwAI4?7BGyu&L@L*8b=(xb3kb%KLjDvvzh!~9IW(Y_M`b_BIRC7PZ;=F2uBy(2+ z%K{dzD+>g;n1BXLFfeT0Y|9kGRNpRn`Z?cw1OA5(_+C2jzg)oo)Zj29bMXrHa*6i% z8SMoH?IjD^OD?n*&1h_Kw0v;bVuQ2o1ZT@L4o4Qqo?0mTz)|krL76m_WCOm32l(C? z@B-puMI6sCVNOMw_0)Hd78;TyVD9(`B zD9OvrOV>|L*3Zc)%hfF?%FjwoE>SQ`OtmmDH#D`hv`9-zOi4COGB7l-NKQ1fG)+r0 zG&iv{GXqK+Bxxq*rlc2?#wX{eq{inb@qjePL#>_c$SPdVz@W_0XwW3Uqs+l**d!nV zc>E0bT&M6@` zZoIh_bLqsXJ1^Wgr}cn&x9**Ib>mdbnHz`BJ#&+sag32+B`_}3fuX_8Rix2g-oRcJ zQ82@K@=4Y*$;5+<{9hFK9|rJ$Y2f4T0EZ|$P$k1;2R0W*=E<#W(;y)P3=^V#KG}y| F0RVzC>-zuz delta 505 zcmbOu@P==Kh+ysSE&kFcR9qO1SQ!*~7#Jo`RL$1rVqjn}QtIGPNNHseR$S5oBp$ac zoFF3P)6&D;;^HH~Q_PZJ(7_8V}82WMGI?0P@*^*hp>$kEEc_gdR>c_hT&1i#A9ycO|eaVBuOQ z!?00;fnoY)SEd*y4xrLXpca?Oimb}@76LkqUl*t_Blx@7 zC}?DqloS+O>FcLwmSmJB=_Tjq>IWsJq~_=O7o_Gn=jRrbmZa+Ew>mM7O|Bo@UN zXI7;KcseWiq?V=TD04IzG%@ffb1)b-F^B+phRqHl#w-VUniXY?c}^sp@JMJ1s%q9Q zmQF6N1mca_lV^KZ7fY);1SKYK&Mx*;)-GNwt?FTv1ma~@E3Z!0E;dZ&ww^8R8X(5N ruo4&$ion3)<|@)?FP|L6R?EmZ`2(8^BhzG4_Gu80lj4cVf7lfOV0Mz7 diff --git a/external/lc/opencl/linux/lib/bitcode/oclc_isa_version_906.amdgcn.bc b/external/lc/opencl/linux/lib/bitcode/oclc_isa_version_906.amdgcn.bc index 8ada7d68a49dad34205ef56a088156ae4816e879..9aa5ad90a75e56c7c1fc5ef2543c036cd9ca5e2b 100755 GIT binary patch delta 675 zcmaFEH%DNCh~V1aTl}R@sJJj1u`(#~Ffi<&sG6kwAI4?7BGyu&L@L*8b=(xb3kb%KLjDvvzh!~9IW(Y_M`b_BIRC7PZ;=F2yBy(2+ z%K{dzD+>g;n1BXLFfeT0Y|9kGRNpRn`Z?cw1OA5(_+C2jzg)oo)Zj29bMXrHa*6i% z8SMoH?IjD^OD?n*&1h_Kw0v;bVuQ2o1ZT@L4o4Qqo?0mTz)|krL76m_WCOm32l(C? z@B-puMI6sCVNOMw_0)Hd78;TyVD9(`B zD9OvrOV>|L*3Zc)%hfF?%FjwoE>SQ`OtmmDH#D`hv`9-zOi4COGB7l-NKQ1fG)+r0 zG&iv{GXqK+Bxxq*rlc2?#wX{eq{inb@qjePL#>_c$SPdVz@W_0XwW3Uqs+l**d!nV zc>E0bT&M6@` zZoIh_bLqsXJ1^Wgr}cn&x9**Ib>mdbnHz`BJ#&+sag32+B`_}3fuX_8Rix2g-oRcJ zQ82@K@=4Y*$;5+<{9hFK9|rJ$Y2f4T0EZ|$P$k1;2R0W*=E<#W(;y)P3=^V#KG}y| F0RWP#>;nJ* delta 505 zcmbOu@P==Kh+ysSE&kFcR9qO1SQ!*~7#Jo`RL$1rVqjn}QtIGPNNHseR$S5oBp$ac zoFF3P)6&D;;^HH~Q_PZJ(7_8V}82WMGI?0P@*^*hp>$kEEc_gdR>c_hT&1i*`sdcO|eaVBuOQ z!?00;fnoY)SEd*y4xrLXpca?Oimb}@76LkqUl*t_Blx@7 zC}?DqloS+O>FcLwmSmJB=_Tjq>IWsJq~_=O7o_Gn=jRrbmZa+Ew>mM7O|Bo@UN zXI7;KcseWiq?V=TD04IzG%@ffb1)b-F^B+phRqHl#w-VUniXY?c}^sp@JMJ1s%q9Q zmQF6N1mca_lV^KZ7fY);1SKYK&Mx*;)-GNwt?FTv1ma~@E3Z!0E;dZ&ww^8R8X(5N ruo4&$ion3)<|@)?FP|L6R?EmZ`2(8^BhzG4_Gu80lj4cVf7lfOYrc}D diff --git a/external/lc/opencl/linux/lib/bitcode/oclc_isa_version_908.amdgcn.bc b/external/lc/opencl/linux/lib/bitcode/oclc_isa_version_908.amdgcn.bc index e533f86eaaea2d9f27cfee65aaa94b1652590a33..2bc427e40d02619f1edd7605499a46bedc93327f 100755 GIT binary patch delta 675 zcmaFEH%DNCh~V1aTl}R@sJJj1u`(#~Ffi<&sG6kwAI4?7BGyu&L@L*8b=(xb3kb%KLjDvvzh!~9IW(Y_M`b_BIRC7PZ;=JmBBy(2+ z%K{dzD+>g;n1BXLFfeT0Y|9kGRNpRn`Z?cw1OA5(_+C2jzg)oo)Zj29bMXrHa*6i% z8SMoH?IjD^OD?n*&1h_Kw0v;bVuQ2o1ZT@L4o4Qqo?0mTz)|krL76m_WCOm32l(C? z@B-puMI6sCVNOMw_0)Hd78;TyVD9(`B zD9OvrOV>|L*3Zc)%hfF?%FjwoE>SQ`OtmmDH#D`hv`9-zOi4COGB7l-NKQ1fG)+r0 zG&iv{GXqK+Bxxq*rlc2?#wX{eq{inb@qjePL#>_c$SPdVz@W_0XwW3Uqs+l**d!nV zc>E0bT&M6@` zZoIh_bLqsXJ1^Wgr}cn&x9**Ib>mdbnHz`BJ#&+sag32+B`_}3fuX_8Rix2g-oRcJ zQ82@K@=4Y*$;5+<{9hFK9|rJ$Y2f4T0EZ|$P$k1;2R0W*=E<#W(;y)P3=^V#KG}y| F0RW>T>8V}82WMGI?0P@*^*hp>$kEEc_gdR>c_hT&1iw;OKcO|eaVBuOQ z!?00;fnoY)SEd*y4xrLXpca?Oimb}@76LkqUl*t_Blx@7 zC}?DqloS+O>FcLwmSmJB=_Tjq>IWsJq~_=O7o_Gn=jRrbmZa+Ew>mM7O|Bo@UN zXI7;KcseWiq?V=TD04IzG%@ffb1)b-F^B+phRqHl#w-VUniXY?c}^sp@JMJ1s%q9Q zmQF6N1mca_lV^KZ7fY);1SKYK&Mx*;)-GNwt?FTv1ma~@E3Z!0E;dZ&ww^8R8X(5N ruo4&$ion3)<|@)?FP|L6R?EmZ`2(8^BhzG4_Gu80lj4cVf7lfOcLtKJ diff --git a/external/lc/opencl/linux/lib/bitcode/oclc_isa_version_909.amdgcn.bc b/external/lc/opencl/linux/lib/bitcode/oclc_isa_version_909.amdgcn.bc index 214941a2b6f4a7bb4661c8b2abd35e9b982d47cb..1db7cf96cf4b1412efc01fc3148d5894fd49cf69 100755 GIT binary patch delta 675 zcmaFEH%DNCh~V1aTl}R@sJJj1u`(#~Ffi<&sG6kwAI4?7BGyu&L@L*8b=(xb3kb%KLjDvvzh!~9IW(Y_M`b_BIRC7PZ;=JmJBy(2+ z%K{dzD+>g;n1BXLFfeT0Y|9kGRNpRn`Z?cw1OA5(_+C2jzg)oo)Zj29bMXrHa*6i% z8SMoH?IjD^OD?n*&1h_Kw0v;bVuQ2o1ZT@L4o4Qqo?0mTz)|krL76m_WCOm32l(C? z@B-puMI6sCVNOMw_0)Hd78;TyVD9(`B zD9OvrOV>|L*3Zc)%hfF?%FjwoE>SQ`OtmmDH#D`hv`9-zOi4COGB7l-NKQ1fG)+r0 zG&iv{GXqK+Bxxq*rlc2?#wX{eq{inb@qjePL#>_c$SPdVz@W_0XwW3Uqs+l**d!nV zc>E0bT&M6@` zZoIh_bLqsXJ1^Wgr}cn&x9**Ib>mdbnHz`BJ#&+sag32+B`_}3fuX_8Rix2g-oRcJ zQ82@K@=4Y*$;5+<{9hFK9|rJ$Y2f4T0EZ|$P$k1;2R0W*=E<#W(;y)P3=^V#KG}y| F0RXFC><<6{ delta 505 zcmbOu@P==Kh+ysSE&kFcR9qO1SQ!*~7#Jo`RL$1rVqjn}QtIGPNNHseR$S5oBp$ac zoFF3P)6&D;;^HH~Q_PZJ(7_8V}82WMGI?0P@*^*hp>$kEEc_gdR>c_hT&1i;hS#cO|eaVBuOQ z!?00;fnoY)SEd*y4xrLXpca?Oimb}@76LkqUl*t_Blx@7 zC}?DqloS+O>FcLwmSmJB=_Tjq>IWsJq~_=O7o_Gn=jRrbmZa+Ew>mM7O|Bo@UN zXI7;KcseWiq?V=TD04IzG%@ffb1)b-F^B+phRqHl#w-VUniXY?c}^sp@JMJ1s%q9Q zmQF6N1mca_lV^KZ7fY);1SKYK&Mx*;)-GNwt?FTv1ma~@E3Z!0E;dZ&ww^8R8X(5N ruo4&$ion3)<|@)?FP|L6R?EmZ`2(8^BhzG4_Gu80lj4cVf7lfOe5#VM diff --git a/external/lc/opencl/linux/lib/bitcode/oclc_isa_version_90a.amdgcn.bc b/external/lc/opencl/linux/lib/bitcode/oclc_isa_version_90a.amdgcn.bc index 60c3078debfd75a7961c5f451707b4d127ec404d..6c74120951109f0f37d59ec1ec4a874fd0fb493a 100755 GIT binary patch delta 675 zcmaFEH%DNCh~V1aTl}R@sJJj1u`(#~Ffi<&sG6kwAI4?7BGyu&L@L*8b=(xb3kb%KLjDvvzh!~9IW(Y_M`b_BIRC7PZ;=JmFBy(2+ z%K{dzD+>g;n1BXLFfeT0Y|9kGRNpRn`Z?cw1OA5(_+C2jzg)oo)Zj29bMXrHa*6i% z8SMoH?IjD^OD?n*&1h_Kw0v;bVuQ2o1ZT@L4o4Qqo?0mTz)|krL76m_WCOm32l(C? z@B-puMI6sCVNOMw_0)Hd78;TyVD9(`B zD9OvrOV>|L*3Zc)%hfF?%FjwoE>SQ`OtmmDH#D`hv`9-zOi4COGB7l-NKQ1fG)+r0 zG&iv{GXqK+Bxxq*rlc2?#wX{eq{inb@qjePL#>_c$SPdVz@W_0XwW3Uqs+l**d!nV zc>E0bT&M6@` zZoIh_bLqsXJ1^Wgr}cn&x9**Ib>mdbnHz`BJ#&+sag32+B`_}3fuX_8Rix2g-oRcJ zQ82@K@=4Y*$;5+<{9hFK9|rJ$Y2f4T0EZ|$P$k1;2R0W*=E<#W(;y)P3=^V#KG}y| F0RXd`>=OV0 delta 505 zcmbOu@P==Kh+ysSE&kFcR9qO1SQ!*~7#Jo`RL$1rVqjn}QtIGPNNHseR$S5oBp$ac zoFF3P)6&D;;^HH~Q_PZJ(7_8V}82WMGI?0P@*^*hp>$kEEc_gdR>c_hT&1i%v)~cO|eaVBuOQ z!?00;fnoY)SEd*y4xrLXpca?Oimb}@76LkqUl*t_Blx@7 zC}?DqloS+O>FcLwmSmJB=_Tjq>IWsJq~_=O7o_Gn=jRrbmZa+Ew>mM7O|Bo@UN zXI7;KcseWiq?V=TD04IzG%@ffb1)b-F^B+phRqHl#w-VUniXY?c}^sp@JMJ1s%q9Q zmQF6N1mca_lV^KZ7fY);1SKYK&Mx*;)-GNwt?FTv1ma~@E3Z!0E;dZ&ww^8R8X(5N ruo4&$ion3)<|@)?FP|L6R?EmZ`2(8^BhzG4_Gu80lj4cVf7lfOf=-gP diff --git a/external/lc/opencl/linux/lib/bitcode/oclc_isa_version_90c.amdgcn.bc b/external/lc/opencl/linux/lib/bitcode/oclc_isa_version_90c.amdgcn.bc index f50998d38d16d740d15d5cb36d2f4a65c342cb39..3d02d2df6277a292b7462480f206f6d0f2b8794f 100755 GIT binary patch delta 675 zcmaFEH%DNCh~V1aTl}R@sJJj1u`(#~Ffi<&sG6kwAI4?7BGyu&L@L*8b=(xb3kb%KLjDvvzh!~9IW(Y_M`b_BIRC7PZ;=JmDBy(2+ z%K{dzD+>g;n1BXLFfeT0Y|9kGRNpRn`Z?cw1OA5(_+C2jzg)oo)Zj29bMXrHa*6i% z8SMoH?IjD^OD?n*&1h_Kw0v;bVuQ2o1ZT@L4o4Qqo?0mTz)|krL76m_WCOm32l(C? z@B-puMI6sCVNOMw_0)Hd78;TyVD9(`B zD9OvrOV>|L*3Zc)%hfF?%FjwoE>SQ`OtmmDH#D`hv`9-zOi4COGB7l-NKQ1fG)+r0 zG&iv{GXqK+Bxxq*rlc2?#wX{eq{inb@qjePL#>_c$SPdVz@W_0XwW3Uqs+l**d!nV zc>E0bT&M6@` zZoIh_bLqsXJ1^Wgr}cn&x9**Ib>mdbnHz`BJ#&+sag32+B`_}3fuX_8Rix2g-oRcJ zQ82@K@=4Y*$;5+<{9hFK9|rJ$Y2f4T0EZ|$P$k1;2R0W*=E<#W(;y)P3=^V#KG}y| F0RY4k>>B_8 delta 505 zcmbOu@P==Kh+ysSE&kFcR9qO1SQ!*~7#Jo`RL$1rVqjn}QtIGPNNHseR$S5oBp$ac zoFF3P)6&D;;^HH~Q_PZJ(7_8V}82WMGI?0P@*^*hp>$kEEc_gdR>c_hT&1i!MkqcO|eaVBuOQ z!?00;fnoY)SEd*y4xrLXpca?Oimb}@76LkqUl*t_Blx@7 zC}?DqloS+O>FcLwmSmJB=_Tjq>IWsJq~_=O7o_Gn=jRrbmZa+Ew>mM7O|Bo@UN zXI7;KcseWiq?V=TD04IzG%@ffb1)b-F^B+phRqHl#w-VUniXY?c}^sp@JMJ1s%q9Q zmQF6N1mca_lV^KZ7fY);1SKYK&Mx*;)-GNwt?FTv1ma~@E3Z!0E;dZ&ww^8R8X(5N ruo4&$ion3)<|@)?FP|L6R?EmZ`2(8^BhzG4_Gu80lj4cVf7lfOjh2$V diff --git a/external/lc/opencl/linux/lib/bitcode/oclc_unsafe_math_off.amdgcn.bc b/external/lc/opencl/linux/lib/bitcode/oclc_unsafe_math_off.amdgcn.bc index 434b2fe3a1ae6c9d4fcb5b9907a2ea3ae248bfc2..a228edced8486ca12e51d32118abd1bca856b4ae 100755 GIT binary patch delta 677 zcmeyuw?trqh~V1aTl}R@sJJj1u`(#~FfbgLsG4mAq#2BqPH-qBxiKhetIXh0R0R@} z>O8GWCL|c8#3-mFH#N-AQFz8Np|Qb|$$)`j<32scNY0cK9uox|lv_?_9!k4?Tes}i z-g}0OVFsMR3>*zWBLyND6gE08C@5rLa1i5QU;rWpBe@v@l7c=HdN|eGkFhwP;$T?I z;l|*#z=4-*p#o5TqXYxP*3FJgF--OClBb{Zy*J>0_<--F1OLkf{7(%IGcp&iU@w7Dvkmhb=ZZ+fHz{JmYX=f$XV;vJV{P?j4j#Q%N@9dw78F zjR8NCa}x8?70ObJiZk=`6b#Mu4D<{XG>VHetn~HMQ;Ui+OVTq-^m8)P zGfMI@^V0QGll60Q%5rrJit@8klS>rL5>qV<%neN~EiKZL5>t{5lMD zlsTFWnhbc9IhYNb3`BrDASGkW(Q4={aK=D}$>?wa&q zfcVX+C(kb3yW_?=CFI79H@9Lgoj7&pg&XIz9x(6Ly%Vo)oQgTaf8)@(XKs=+jxjQ< z1V)YeGPe delta 494 zcmZ1?@P%)Jh+ysSE&kFcR9qO1SQ!*~7#OBZRL$1oW?*12QaZt*kkZOBS#e1Vka*m( zaDs@CPg@UnONx(xKrzb+1ttd`mNSA4j2jQ>F)}hv{>UiosK_X0z!}WI(Ev0+Afn+2 zTjQabj0_Bs3P3(P5F5$O;E@#cnb5YymW=K)S}|d{5%CiV?6^s0|kwYl9GaAD}DX+ z%#w`KB)#PPT>YTLl+^q@|AN#!=ltA)(vnpDoSd>;-GZY0tkmQZJ)lYj1JgtcgES)p z%fw`3V?*jKre&;>@bl08eKHpVYF{ z9A%DXgC+wWWe#S;CIb;5&#>7+#F*tEPqU(oG0%yF6CMdoK~>G##nQ>el|Z~vd-81W z>SAeChoHpd&Dq7C%G$+?rBywQl0dx7YUS0*+Qo*++}5+DT?51z7*+xULJ=5P++0N( f?d6l>*lK~H`-RPgk!i9e`z(mZN%6#F77hgfeP4`9 diff --git a/external/lc/opencl/linux/lib/bitcode/oclc_unsafe_math_on.amdgcn.bc b/external/lc/opencl/linux/lib/bitcode/oclc_unsafe_math_on.amdgcn.bc index 6056bb51901052fd9cd842b489ca3be86c666c0a..b5f2c018ae8614418e93f4309491938d718f0575 100755 GIT binary patch delta 677 zcmeyuw?trqh~V1aTl}R@sJJj1u`(#~FfbgLsG4mAq#2BqPH-qBxiKhetIXh0R0R@} z>O8GWCL|c8#3-mFH#N-AQFz8Np|Qb|$$)`j<32scNY0cK9uox|lv_?_9!k4?Tes}i z-g}0OVFsMR3>*zWBLyND6gE08C@5rLa1i5QU;rWpBe@v@l7c=HdN|eGkFhv=abD<3 zU|GPzb!CA77ZXr^qXYxP*3FJgF--OClBb{Zy*J>0_<--F1OLkf{7(%IGcp&iU@w7Dvkmhb=ZZ+fHz{JmYX=f$XV;vJV{P?j4j#Q%N@9dw78F zjR8NKDGfUI7 zG(&R}OEWW|v_X<)Vs1)$L1}z)eoAV5eo{S1b3D}A^5l%fqWI#>s?-2aX9b_sveX;~ z24#+BgC+wWWe#S;CIb;54@k)vbF>;d3!E{KVKO>gz;lwP*-6GoXvTsm_a2XU zJs^H_>dCW9_wKlHP6@ejeE<@ZUIe?wOn9jAM)p zD}hm?K6x)|n`GiaM*c4f{0{^8zclc1cYp(w9T;p3lU>+c7?~$`vdw}75HLuH_W0xw Gb_D=674NtJ delta 494 zcmZ1?@P%)Jh+ysSE&kFcR9qO1SQ!*~7#OBZRL$1oW?*12QaZt*kkZOBS#e1Vka*m( zaDs@CPg@UnONx(xKrzb+1ttd`mNSA4j2jQ>F)}hv{>UiosK_X0z!}WI(Ev0+Afn+2 zTjQabj0_Bs3P3(P5F5$O;E@#cnb5o36F%PpsHr=V(H}KN+8~-J$bfw zb+NRnLr`M!=ImlmW$og{(yAUtNg!Tkwesp@?P9}ZZtL07t^r~U3@d>Fp$H5tZmuGY f_VUSbY_-79{lezL$TZoKeHO&yqO8GWCL|c8#3-mFH#N-AQFz8Np|Qb|$$)`j<32scNY0cK9uox|lv_?_9!k4?Tes}i z-g}0OVFsMR3>*zWBLyND6gE08C@5rLa1i5QU;rWpBe@v@l7c=HdN|eGkFhwP;$T?I z;l|*#z=4-*p#o5TqXYxP*3FJgF--OClBb{Zy*J>0_<--F1OLkf{7(%IGcp&iU@w7Dvkmhb=ZZ+fHz{JmYX=f$XV;vJV{P?j4j#Q%N@9dw78F zjR8NCa}x8?70ObJiZk=`6b#Mu4D<{XG>VHetn~HMQ;Ui+OVTq-^m8)P zGfMI@^V0QGll60Q%5rrJit@8klS>rL5>qV<%neN~EiKZL5>t{5lMD zlsTFWnhbc9IhYNb3`BrDASGkW(Q4={aK=D}$>?wa&q zfcVX+C(kb3yW_?=CFI79H@9Lgoj7&pg&XIz9x(6Ly%Vo)oQgTaf8)@(XKs=+jxjQ< z1V)YeGPe delta 494 zcmZ1?@P%)Jh+ysSE&kFcR9qO1SQ!*~7#OBZRL$1oW?*12QaZt*kkZOBS#e1Vka*m( zaDs@CPg@UnONx(xKrzb+1ttd`mNSA4j2jQ>F)}hv{>UiosK_X0z!}WI(Ev0+Afn+2 zTjQabj0_Bs3P3(P5F5$O;E@#cnb5YymW=K)S}|d{5%CiV?6^s0|kwYl9GaAD}DX+ z%#w`KB)#PPT>YTLl+^q@|AN#!=ltA)(vnpDoSd>;-GZY0tkmQZJ)lYj1JgtcgES)p z%fw`3V?*jKre&;>@bl08eKHpVYF{ z9A%DXgC+wWWe#S;CIb;5&#>7+#F*tEPqU(oG0%yF6CMdoK~>G##nQ>el|Z~vd-81W z>SAeChoHpd&Dq7C%G$+?rBywQl0dx7YUS0*+Qo*++}5+DT?51z7*+xULJ=5P++0N( f?d6l>*lK~H`-RPgk!i9e`z(mZN%6#F77hgfeP4`9 diff --git a/external/lc/opencl/linux/lib/bitcode/oclc_wavefrontsize64_on.amdgcn.bc b/external/lc/opencl/linux/lib/bitcode/oclc_wavefrontsize64_on.amdgcn.bc index 9f70e9d31aff8da06d3860aa651b55cd4c19231f..9dd201e97c0272df5d350c8890a34123703e537d 100755 GIT binary patch delta 677 zcmeyuw?trqh~V1aTl}R@sJJj1u`(#~FfbgLsG4mAq#2BqPH-qBxiKhetIXh0R0R@} z>O8GWCL|c8#3-mFH#N-AQFz8Np|Qb|$$)`j<32scNY0cK9uox|lv_?_9!k4?Tes}i z-g}0OVFsMR3>*zWBLyND6gE08C@5rLa1i5QU;rWpBe@v@l7c=HdN|eGkFhv=abD<3 zU|GPzb!CA77ZXr^qXYxP*3FJgF--OClBb{Zy*J>0_<--F1OLkf{7(%IGcp&iU@w7Dvkmhb=ZZ+fHz{JmYX=f$XV;vJV{P?j4j#Q%N@9dw78F zjR8NKDGfUI7 zG(&R}OEWW|v_X<)Vs1)$L1}z)eoAV5eo{S1b3D}A^5l%fqWI#>s?-2aX9b_sveX;~ z24#+BgC+wWWe#S;CIb;54@k)vbF>;d3!E{KVKO>gz;lwP*-6GoXvTsm_a2XU zJs^H_>dCW9_wKlHP6@ejeE<@ZUIe?wOn9jAM)p zD}hm?K6x)|n`GiaM*c4f{0{^8zclc1cYp(w9T;p3lU>+c7?~$`vdw}75HLuH_W0xw Gb_D=674NtJ delta 494 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/aA0*b_Q9OV$DzJuyXeTQ&oyfaS%odB}~ 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π&U0fDB3~eNLe2BnX+GQ} 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 literal 205544 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�g+GXRRCE*di*S3JS!%qOz@U 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

E)3*hUb%masUKkL(q-VP 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

    tyC*F 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 P%FfDpm_G>_5b(bM@v{Mu diff --git a/external/lc/opencl/linux/lib/bitcode/opencl.amdgcn.bc b/external/lc/opencl/linux/lib/bitcode/opencl.amdgcn.bc index b52ce69dea81498c87435d8d764d6c8bced04fff..b8fea9d2f503a07f1386130080c9e52fc16d83cf 100755 GIT binary patch literal 132 zcmWN?NfN>!5CFh?Ucm-jNDQ O!#4Z32;&W)b=wazohNhv literal 2851140 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 z zyYi#km7m_O{KE37Yrpa<%X3cUH@9m%=e)o7tNFjRD}TLR`KSkm*QIKe%1ZA6=f`)0Cf5K4ZD^3)?lG{l6{G>s9l2 zwJU$TUHL2R%0DR2IX`Uui+rw*esDOanxCs(<2mOt?LRlD+= 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%0DHh;NgJ_|Kd7`2+ELnfLZUe3$Y-{L%6df0jJN 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 Ef6I6H4*&oF diff --git a/external/lc/opencl/windows/bin/clang.exe b/external/lc/opencl/windows/bin/clang.exe index 986d125..081ae98 100644 --- a/external/lc/opencl/windows/bin/clang.exe +++ b/external/lc/opencl/windows/bin/clang.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:dfffa8fd3ce7c6a1b253e2bfecd1e1f19ccc716ed797ae42bae9a57a40bd05c5 -size 68150272 +oid sha256:07822fe9154f31456f426cb73ca5bd76d71399657eb01d4f65137db3c662b7d0 +size 76510208 diff --git a/external/lc/opencl/windows/bin/ld.lld.exe b/external/lc/opencl/windows/bin/ld.lld.exe index b8c481b..3f57e1c 100644 --- a/external/lc/opencl/windows/bin/ld.lld.exe +++ b/external/lc/opencl/windows/bin/ld.lld.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:94cd4f7752e4ce94a3408210961856f49950ca0b29d2a23178d7cca78f83827b -size 38812672 +oid sha256:83ce53a8112a920ab09c4ad2f7717bdfaf3b27524b8d8a248184c5ea26a80f0a +size 45319168 diff --git a/external/lc/opencl/windows/bin/llvm-objdump.exe b/external/lc/opencl/windows/bin/llvm-objdump.exe index a8ccf3b..a2dfcd7 100644 --- a/external/lc/opencl/windows/bin/llvm-objdump.exe +++ b/external/lc/opencl/windows/bin/llvm-objdump.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d552ae385539b08d02b62963abfb380d061b7c727dcac1b334a23c7b8c040a75 -size 9172992 +oid sha256:3f3ca86928eed804fbf182970305bc9f907a66a39dd4b79f97d6a54512c39050 +size 13249024 diff --git a/external/lc/opencl/windows/bin/llvm-readobj.exe b/external/lc/opencl/windows/bin/llvm-readobj.exe index 07cb008..6fe02e4 100644 --- a/external/lc/opencl/windows/bin/llvm-readobj.exe +++ b/external/lc/opencl/windows/bin/llvm-readobj.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:53d54ff03bf52ccfc830266f0c449a0e8cc9834e123b11a4782b49081dc55829 -size 5997056 +oid sha256:f69278865eb7e2535a3b4f73a7eb7ba157f47a487748bcf00b185eee4246747e +size 6526976 diff --git a/external/lc/opencl/windows/include/opencl-c-base.h b/external/lc/opencl/windows/include/opencl-c-base.h index dd038a2..c433b4f 100644 --- a/external/lc/opencl/windows/include/opencl-c-base.h +++ b/external/lc/opencl/windows/include/opencl-c-base.h @@ -12,8 +12,8 @@ // Define extension macros #if (defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__ >= 200) -// For SPIR all extensions are supported. -#if defined(__SPIR__) +// For SPIR and SPIR-V all extensions are supported. +#if defined(__SPIR__) || defined(__SPIRV__) #define cl_khr_subgroup_extended_types 1 #define cl_khr_subgroup_non_uniform_vote 1 #define cl_khr_subgroup_ballot 1 @@ -21,11 +21,36 @@ #define cl_khr_subgroup_shuffle 1 #define cl_khr_subgroup_shuffle_relative 1 #define cl_khr_subgroup_clustered_reduce 1 -#endif // defined(__SPIR__) +#define cl_khr_subgroup_rotate 1 +#define cl_khr_extended_bit_ops 1 +#define cl_khr_integer_dot_product 1 +#define __opencl_c_integer_dot_product_input_4x8bit 1 +#define __opencl_c_integer_dot_product_input_4x8bit_packed 1 +#define cl_ext_float_atomics 1 +#ifdef cl_khr_fp16 +#define __opencl_c_ext_fp16_global_atomic_load_store 1 +#define __opencl_c_ext_fp16_local_atomic_load_store 1 +#define __opencl_c_ext_fp16_global_atomic_add 1 +#define __opencl_c_ext_fp16_local_atomic_add 1 +#define __opencl_c_ext_fp16_global_atomic_min_max 1 +#define __opencl_c_ext_fp16_local_atomic_min_max 1 +#endif +#ifdef cl_khr_fp64 +#define __opencl_c_ext_fp64_global_atomic_add 1 +#define __opencl_c_ext_fp64_local_atomic_add 1 +#define __opencl_c_ext_fp64_global_atomic_min_max 1 +#define __opencl_c_ext_fp64_local_atomic_min_max 1 +#endif +#define __opencl_c_ext_fp32_global_atomic_add 1 +#define __opencl_c_ext_fp32_local_atomic_add 1 +#define __opencl_c_ext_fp32_global_atomic_min_max 1 +#define __opencl_c_ext_fp32_local_atomic_min_max 1 + +#endif // defined(__SPIR__) || defined(__SPIRV__) #endif // (defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__ >= 200) // Define feature macros for OpenCL C 2.0 -#if (defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__ == 200) +#if (__OPENCL_CPP_VERSION__ == 100 || __OPENCL_C_VERSION__ == 200) #define __opencl_c_pipes 1 #define __opencl_c_generic_address_space 1 #define __opencl_c_work_group_collective_functions 1 @@ -39,6 +64,29 @@ #define __opencl_c_images 1 #endif +// Define header-only feature macros for OpenCL C 3.0. +#if (__OPENCL_CPP_VERSION__ == 202100 || __OPENCL_C_VERSION__ == 300) +// For the SPIR and SPIR-V target all features are supported. +#if defined(__SPIR__) || defined(__SPIRV__) +#define __opencl_c_work_group_collective_functions 1 +#define __opencl_c_atomic_order_seq_cst 1 +#define __opencl_c_atomic_scope_device 1 +#define __opencl_c_atomic_scope_all_devices 1 +#define __opencl_c_read_write_images 1 +#endif // defined(__SPIR__) +#endif // (__OPENCL_CPP_VERSION__ == 202100 || __OPENCL_C_VERSION__ == 300) + +#if !defined(__opencl_c_generic_address_space) +// Internal feature macro to provide named (global, local, private) address +// space overloads for builtin functions that take a pointer argument. +#define __opencl_c_named_address_space_builtins 1 +#endif // !defined(__opencl_c_generic_address_space) + +#if defined(cl_intel_subgroups) || defined(cl_khr_subgroups) || defined(__opencl_c_subgroups) +// Internal feature macro to provide subgroup builtins. +#define __opencl_subgroup_builtins 1 +#endif + // built-in scalar data types: /** @@ -156,7 +204,12 @@ typedef double double8 __attribute__((ext_vector_type(8))); typedef double double16 __attribute__((ext_vector_type(16))); #endif -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +// An internal alias for half, for use by OpenCLBuiltins.td. +#define __half half + +#if defined(__OPENCL_CPP_VERSION__) +#define NULL nullptr +#elif defined(__OPENCL_C_VERSION__) #define NULL ((void*)0) #endif @@ -312,8 +365,19 @@ typedef enum memory_scope { memory_scope_work_item = __OPENCL_MEMORY_SCOPE_WORK_ITEM, memory_scope_work_group = __OPENCL_MEMORY_SCOPE_WORK_GROUP, memory_scope_device = __OPENCL_MEMORY_SCOPE_DEVICE, +#if defined(__opencl_c_atomic_scope_all_devices) memory_scope_all_svm_devices = __OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES, -#if defined(cl_intel_subgroups) || defined(cl_khr_subgroups) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) + memory_scope_all_devices = memory_scope_all_svm_devices, +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +#endif // defined(__opencl_c_atomic_scope_all_devices) +/** + * Subgroups have different requirements on forward progress, so just test + * all the relevant macros. + * CL 3.0 sub-groups "they are not guaranteed to make independent forward progress" + * KHR subgroups "Subgroups within a workgroup are independent, make forward progress with respect to each other" + */ +#if defined(cl_intel_subgroups) || defined(cl_khr_subgroups) || defined(__opencl_c_subgroups) memory_scope_sub_group = __OPENCL_MEMORY_SCOPE_SUB_GROUP #endif } memory_scope; @@ -337,7 +401,9 @@ typedef enum memory_order memory_order_acquire = __ATOMIC_ACQUIRE, memory_order_release = __ATOMIC_RELEASE, memory_order_acq_rel = __ATOMIC_ACQ_REL, +#if defined(__opencl_c_atomic_order_seq_cst) memory_order_seq_cst = __ATOMIC_SEQ_CST +#endif } memory_order; #endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) @@ -451,12 +517,14 @@ typedef int clk_profiling_info; #define MAX_WORK_DIM 3 +#ifdef __opencl_c_device_enqueue typedef struct { unsigned int workDimension; size_t globalWorkOffset[MAX_WORK_DIM]; size_t globalWorkSize[MAX_WORK_DIM]; size_t localWorkSize[MAX_WORK_DIM]; } ndrange_t; +#endif // __opencl_c_device_enqueue #endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) @@ -550,6 +618,28 @@ typedef struct { #define as_intptr_t(x) __builtin_astype((x), intptr_t) #define as_uintptr_t(x) __builtin_astype((x), uintptr_t) +// C++ for OpenCL - __remove_address_space +#if defined(__OPENCL_CPP_VERSION__) +template struct __remove_address_space { using type = _Tp; }; +#if defined(__opencl_c_generic_address_space) +template struct __remove_address_space<__generic _Tp> { + using type = _Tp; +}; +#endif +template struct __remove_address_space<__global _Tp> { + using type = _Tp; +}; +template struct __remove_address_space<__private _Tp> { + using type = _Tp; +}; +template struct __remove_address_space<__local _Tp> { + using type = _Tp; +}; +template struct __remove_address_space<__constant _Tp> { + using type = _Tp; +}; +#endif + // OpenCL v1.1 s6.9, v1.2/2.0 s6.10 - Function qualifiers #define __kernel_exec(X, typen) __kernel \ @@ -567,7 +657,6 @@ int printf(__constant const char* st, ...) __attribute__((format(printf, 1, 2))) #endif #ifdef cl_intel_device_side_avc_motion_estimation -#pragma OPENCL EXTENSION cl_intel_device_side_avc_motion_estimation : begin #define CLK_AVC_ME_MAJOR_16x16_INTEL 0x0 #define CLK_AVC_ME_MAJOR_16x8_INTEL 0x1 @@ -701,7 +790,6 @@ int printf(__constant const char* st, ...) __attribute__((format(printf, 1, 2))) #define CLK_AVC_IME_RESULT_DUAL_REFERENCE_STREAMOUT_INITIALIZE_INTEL 0x0 #define CLK_AVC_IME_RESULT_DUAL_REFERENCE_STREAMIN_INITIALIZE_INTEL 0x0 -#pragma OPENCL EXTENSION cl_intel_device_side_avc_motion_estimation : end #endif // cl_intel_device_side_avc_motion_estimation // Disable any extensions we may have enabled previously. diff --git a/external/lc/opencl/windows/include/opencl-c.h b/external/lc/opencl/windows/include/opencl-c.h index 9893961..da0a2c1 100644 --- a/external/lc/opencl/windows/include/opencl-c.h +++ b/external/lc/opencl/windows/include/opencl-c.h @@ -3,20 +3,14 @@ // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// Modifications Copyright (c) 2022 Advanced Micro Devices, Inc. All rights reserved. +// Notified per clause 4(b) of the license. // //===----------------------------------------------------------------------===// #ifndef _OPENCL_H_ #define _OPENCL_H_ -//===----- opencl-c-base.h - OpenCL C language base definitions -----------===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - #ifndef _OPENCL_BASE_H_ #define _OPENCL_BASE_H_ @@ -50,6 +44,15 @@ #define __opencl_c_images 1 #endif + #if !defined(__opencl_c_generic_address_space) + // Internal feature macro to provide named (global, local, private) address + // space overloads for builtin functions that take a pointer argument. + #define __opencl_c_named_address_space_builtins 1 + #endif // !defined(__opencl_c_generic_address_space) + #if defined(cl_intel_subgroups) || defined(cl_khr_subgroups) || defined(__opencl_c_subgroups) + // Internal feature macro to provide subgroup builtins. + #define __opencl_subgroup_builtins 1 + #endif // built-in scalar data types: /** @@ -167,6 +170,9 @@ typedef double double8 __attribute__((ext_vector_type(8))); typedef double double16 __attribute__((ext_vector_type(16))); #endif +// An internal alias for half, for use by OpenCLBuiltins.td. +#define __half half + #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) #define NULL ((void*)0) #endif @@ -715,11 +721,11 @@ int printf(__constant const char* st, ...) __attribute__((format(printf, 1, 2))) #endif //_OPENCL_BASE_H_ -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#if defined(__opencl_c_images) #ifndef cl_khr_depth_images #define cl_khr_depth_images #endif //cl_khr_depth_images -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_images) #if __OPENCL_C_VERSION__ < CL_VERSION_2_0 #ifdef cl_khr_3d_image_writes @@ -727,10 +733,14 @@ int printf(__constant const char* st, ...) __attribute__((format(printf, 1, 2))) #endif //cl_khr_3d_image_writes #endif //__OPENCL_C_VERSION__ < CL_VERSION_2_0 -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) +#if (defined(__OPENCL_CPP_VERSION__) || \ + (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)) && \ + (defined(__SPIR__) || defined(__SPIRV__)) #pragma OPENCL EXTENSION cl_intel_planar_yuv : begin #pragma OPENCL EXTENSION cl_intel_planar_yuv : end -#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) +#endif // (defined(__OPENCL_CPP_VERSION__) || + // (__OPENCL_C_VERSION__ >= CL_VERSION_1_2)) && + // (defined(__SPIR__) || defined(__SPIRV__)) #define __ovld __attribute__((overloadable)) #define __conv __attribute__((convergent)) @@ -7062,7 +7072,7 @@ uint __ovld __cnfn get_work_dim(void); * dimindx, get_global_size() returns 1. * For clEnqueueTask, this always returns 1. */ -size_t __ovld __cnfn get_global_size(uint dimindx); +size_t __ovld __cnfn get_global_size(uint); /** * Returns the unique global work-item ID value for @@ -7073,7 +7083,7 @@ size_t __ovld __cnfn get_global_size(uint dimindx); * other values of dimindx, get_global_id() returns 0. * For clEnqueueTask, this returns 0. */ -size_t __ovld __cnfn get_global_id(uint dimindx); +size_t __ovld __cnfn get_global_id(uint); /** * Returns the number of local work-items specified in @@ -7087,7 +7097,7 @@ size_t __ovld __cnfn get_global_id(uint dimindx); * get_local_size() returns 1. * For clEnqueueTask, this always returns 1. */ -size_t __ovld __cnfn get_local_size(uint dimindx); +size_t __ovld __cnfn get_local_size(uint); /** * Returns the unique local work-item ID i.e. a work-item @@ -7097,17 +7107,16 @@ size_t __ovld __cnfn get_local_size(uint dimindx); * get_local_id() returns 0. * For clEnqueueTask, this returns 0. */ -size_t __ovld __cnfn get_local_id(uint dimindx); +size_t __ovld __cnfn get_local_id(uint); /** * Returns the number of work-groups that will execute a * kernel for dimension identified by dimindx. * Valid values of dimindx are 0 to get_work_dim() - 1. - * For other values of dimindx, get_num_groups () returns - * 1. + * For other values of dimindx, get_num_groups() returns 1. * For clEnqueueTask, this always returns 1. */ -size_t __ovld __cnfn get_num_groups(uint dimindx); +size_t __ovld __cnfn get_num_groups(uint); /** * get_group_id returns the work-group ID which is a @@ -7116,7 +7125,7 @@ size_t __ovld __cnfn get_num_groups(uint dimindx); * For other values, get_group_id() returns 0. * For clEnqueueTask, this returns 0. */ -size_t __ovld __cnfn get_group_id(uint dimindx); +size_t __ovld __cnfn get_group_id(uint); /** * get_global_offset returns the offset values specified in @@ -7126,10 +7135,10 @@ size_t __ovld __cnfn get_group_id(uint dimindx); * For other values, get_global_offset() returns 0. * For clEnqueueTask, this returns 0. */ -size_t __ovld __cnfn get_global_offset(uint dimindx); +size_t __ovld __cnfn get_global_offset(uint); #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -size_t __ovld get_enqueued_local_size(uint dimindx); +size_t __ovld get_enqueued_local_size(uint); size_t __ovld get_global_linear_id(void); size_t __ovld get_local_linear_id(void); #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) @@ -7295,53 +7304,53 @@ half16 __ovld __cnfn asinpi(half16 x); /** * Arc tangent function. */ -float __ovld __cnfn atan(float y_over_x); -float2 __ovld __cnfn atan(float2 y_over_x); -float3 __ovld __cnfn atan(float3 y_over_x); -float4 __ovld __cnfn atan(float4 y_over_x); -float8 __ovld __cnfn atan(float8 y_over_x); -float16 __ovld __cnfn atan(float16 y_over_x); +float __ovld __cnfn atan(float); +float2 __ovld __cnfn atan(float2); +float3 __ovld __cnfn atan(float3); +float4 __ovld __cnfn atan(float4); +float8 __ovld __cnfn atan(float8); +float16 __ovld __cnfn atan(float16); #ifdef cl_khr_fp64 -double __ovld __cnfn atan(double y_over_x); -double2 __ovld __cnfn atan(double2 y_over_x); -double3 __ovld __cnfn atan(double3 y_over_x); -double4 __ovld __cnfn atan(double4 y_over_x); -double8 __ovld __cnfn atan(double8 y_over_x); -double16 __ovld __cnfn atan(double16 y_over_x); +double __ovld __cnfn atan(double); +double2 __ovld __cnfn atan(double2); +double3 __ovld __cnfn atan(double3); +double4 __ovld __cnfn atan(double4); +double8 __ovld __cnfn atan(double8); +double16 __ovld __cnfn atan(double16); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn atan(half y_over_x); -half2 __ovld __cnfn atan(half2 y_over_x); -half3 __ovld __cnfn atan(half3 y_over_x); -half4 __ovld __cnfn atan(half4 y_over_x); -half8 __ovld __cnfn atan(half8 y_over_x); -half16 __ovld __cnfn atan(half16 y_over_x); +half __ovld __cnfn atan(half); +half2 __ovld __cnfn atan(half2); +half3 __ovld __cnfn atan(half3); +half4 __ovld __cnfn atan(half4); +half8 __ovld __cnfn atan(half8); +half16 __ovld __cnfn atan(half16); #endif //cl_khr_fp16 /** * Arc tangent of y / x. */ -float __ovld __cnfn atan2(float y, float x); -float2 __ovld __cnfn atan2(float2 y, float2 x); -float3 __ovld __cnfn atan2(float3 y, float3 x); -float4 __ovld __cnfn atan2(float4 y, float4 x); -float8 __ovld __cnfn atan2(float8 y, float8 x); -float16 __ovld __cnfn atan2(float16 y, float16 x); +float __ovld __cnfn atan2(float, float x); +float2 __ovld __cnfn atan2(float2, float2 x); +float3 __ovld __cnfn atan2(float3, float3 x); +float4 __ovld __cnfn atan2(float4, float4 x); +float8 __ovld __cnfn atan2(float8, float8 x); +float16 __ovld __cnfn atan2(float16, float16 x); #ifdef cl_khr_fp64 -double __ovld __cnfn atan2(double y, double x); -double2 __ovld __cnfn atan2(double2 y, double2 x); -double3 __ovld __cnfn atan2(double3 y, double3 x); -double4 __ovld __cnfn atan2(double4 y, double4 x); -double8 __ovld __cnfn atan2(double8 y, double8 x); -double16 __ovld __cnfn atan2(double16 y, double16 x); +double __ovld __cnfn atan2(double, double x); +double2 __ovld __cnfn atan2(double2, double2 x); +double3 __ovld __cnfn atan2(double3, double3 x); +double4 __ovld __cnfn atan2(double4, double4 x); +double8 __ovld __cnfn atan2(double8, double8 x); +double16 __ovld __cnfn atan2(double16, double16 x); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn atan2(half y, half x); -half2 __ovld __cnfn atan2(half2 y, half2 x); -half3 __ovld __cnfn atan2(half3 y, half3 x); -half4 __ovld __cnfn atan2(half4 y, half4 x); -half8 __ovld __cnfn atan2(half8 y, half8 x); -half16 __ovld __cnfn atan2(half16 y, half16 x); +half __ovld __cnfn atan2(half, half x); +half2 __ovld __cnfn atan2(half2, half2 x); +half3 __ovld __cnfn atan2(half3, half3 x); +half4 __ovld __cnfn atan2(half4, half4 x); +half8 __ovld __cnfn atan2(half8, half8 x); +half16 __ovld __cnfn atan2(half16, half16 x); #endif //cl_khr_fp16 /** @@ -7399,27 +7408,27 @@ half16 __ovld __cnfn atanpi(half16 x); /** * Compute atan2 (y, x) / PI. */ -float __ovld __cnfn atan2pi(float y, float x); -float2 __ovld __cnfn atan2pi(float2 y, float2 x); -float3 __ovld __cnfn atan2pi(float3 y, float3 x); -float4 __ovld __cnfn atan2pi(float4 y, float4 x); -float8 __ovld __cnfn atan2pi(float8 y, float8 x); -float16 __ovld __cnfn atan2pi(float16 y, float16 x); +float __ovld __cnfn atan2pi(float, float x); +float2 __ovld __cnfn atan2pi(float2, float2 x); +float3 __ovld __cnfn atan2pi(float3, float3 x); +float4 __ovld __cnfn atan2pi(float4, float4 x); +float8 __ovld __cnfn atan2pi(float8, float8 x); +float16 __ovld __cnfn atan2pi(float16, float16 x); #ifdef cl_khr_fp64 -double __ovld __cnfn atan2pi(double y, double x); -double2 __ovld __cnfn atan2pi(double2 y, double2 x); -double3 __ovld __cnfn atan2pi(double3 y, double3 x); -double4 __ovld __cnfn atan2pi(double4 y, double4 x); -double8 __ovld __cnfn atan2pi(double8 y, double8 x); -double16 __ovld __cnfn atan2pi(double16 y, double16 x); +double __ovld __cnfn atan2pi(double, double x); +double2 __ovld __cnfn atan2pi(double2, double2 x); +double3 __ovld __cnfn atan2pi(double3, double3 x); +double4 __ovld __cnfn atan2pi(double4, double4 x); +double8 __ovld __cnfn atan2pi(double8, double8 x); +double16 __ovld __cnfn atan2pi(double16, double16 x); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn atan2pi(half y, half x); -half2 __ovld __cnfn atan2pi(half2 y, half2 x); -half3 __ovld __cnfn atan2pi(half3 y, half3 x); -half4 __ovld __cnfn atan2pi(half4 y, half4 x); -half8 __ovld __cnfn atan2pi(half8 y, half8 x); -half16 __ovld __cnfn atan2pi(half16 y, half16 x); +half __ovld __cnfn atan2pi(half, half x); +half2 __ovld __cnfn atan2pi(half2, half2 x); +half3 __ovld __cnfn atan2pi(half3, half3 x); +half4 __ovld __cnfn atan2pi(half4, half4 x); +half8 __ovld __cnfn atan2pi(half8, half8 x); +half16 __ovld __cnfn atan2pi(half16, half16 x); #endif //cl_khr_fp16 /** @@ -7478,27 +7487,27 @@ half16 __ovld __cnfn ceil(half16); /** * Returns x with its sign changed to match the sign of y. */ -float __ovld __cnfn copysign(float x, float y); -float2 __ovld __cnfn copysign(float2 x, float2 y); -float3 __ovld __cnfn copysign(float3 x, float3 y); -float4 __ovld __cnfn copysign(float4 x, float4 y); -float8 __ovld __cnfn copysign(float8 x, float8 y); -float16 __ovld __cnfn copysign(float16 x, float16 y); +float __ovld __cnfn copysign(float, float ); +float2 __ovld __cnfn copysign(float2, float2 ); +float3 __ovld __cnfn copysign(float3, float3 ); +float4 __ovld __cnfn copysign(float4, float4 ); +float8 __ovld __cnfn copysign(float8, float8 ); +float16 __ovld __cnfn copysign(float16, float16 ); #ifdef cl_khr_fp64 -double __ovld __cnfn copysign(double x, double y); -double2 __ovld __cnfn copysign(double2 x, double2 y); -double3 __ovld __cnfn copysign(double3 x, double3 y); -double4 __ovld __cnfn copysign(double4 x, double4 y); -double8 __ovld __cnfn copysign(double8 x, double8 y); -double16 __ovld __cnfn copysign(double16 x, double16 y); +double __ovld __cnfn copysign(double, double ); +double2 __ovld __cnfn copysign(double2, double2 ); +double3 __ovld __cnfn copysign(double3, double3 ); +double4 __ovld __cnfn copysign(double4, double4 ); +double8 __ovld __cnfn copysign(double8, double8 ); +double16 __ovld __cnfn copysign(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn copysign(half x, half y); -half2 __ovld __cnfn copysign(half2 x, half2 y); -half3 __ovld __cnfn copysign(half3 x, half3 y); -half4 __ovld __cnfn copysign(half4 x, half4 y); -half8 __ovld __cnfn copysign(half8 x, half8 y); -half16 __ovld __cnfn copysign(half16 x, half16 y); +half __ovld __cnfn copysign(half, half ); +half2 __ovld __cnfn copysign(half2, half2 ); +half3 __ovld __cnfn copysign(half3, half3 ); +half4 __ovld __cnfn copysign(half4, half4 ); +half8 __ovld __cnfn copysign(half8, half8 ); +half16 __ovld __cnfn copysign(half16, half16 ); #endif //cl_khr_fp16 /** @@ -7763,29 +7772,29 @@ half16 __ovld __cnfn fabs(half16); #endif //cl_khr_fp16 /** - * x - y if x > y, +0 if x is less than or equal to y. + * x - y if x >, +0 if x is less than or equal to y. */ -float __ovld __cnfn fdim(float x, float y); -float2 __ovld __cnfn fdim(float2 x, float2 y); -float3 __ovld __cnfn fdim(float3 x, float3 y); -float4 __ovld __cnfn fdim(float4 x, float4 y); -float8 __ovld __cnfn fdim(float8 x, float8 y); -float16 __ovld __cnfn fdim(float16 x, float16 y); +float __ovld __cnfn fdim(float, float ); +float2 __ovld __cnfn fdim(float2, float2 ); +float3 __ovld __cnfn fdim(float3, float3 ); +float4 __ovld __cnfn fdim(float4, float4 ); +float8 __ovld __cnfn fdim(float8, float8 ); +float16 __ovld __cnfn fdim(float16, float16 ); #ifdef cl_khr_fp64 -double __ovld __cnfn fdim(double x, double y); -double2 __ovld __cnfn fdim(double2 x, double2 y); -double3 __ovld __cnfn fdim(double3 x, double3 y); -double4 __ovld __cnfn fdim(double4 x, double4 y); -double8 __ovld __cnfn fdim(double8 x, double8 y); -double16 __ovld __cnfn fdim(double16 x, double16 y); +double __ovld __cnfn fdim(double, double ); +double2 __ovld __cnfn fdim(double2, double2 ); +double3 __ovld __cnfn fdim(double3, double3 ); +double4 __ovld __cnfn fdim(double4, double4 ); +double8 __ovld __cnfn fdim(double8, double8 ); +double16 __ovld __cnfn fdim(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn fdim(half x, half y); -half2 __ovld __cnfn fdim(half2 x, half2 y); -half3 __ovld __cnfn fdim(half3 x, half3 y); -half4 __ovld __cnfn fdim(half4 x, half4 y); -half8 __ovld __cnfn fdim(half8 x, half8 y); -half16 __ovld __cnfn fdim(half16 x, half16 y); +half __ovld __cnfn fdim(half, half ); +half2 __ovld __cnfn fdim(half2, half2 ); +half3 __ovld __cnfn fdim(half3, half3 ); +half4 __ovld __cnfn fdim(half4, half4 ); +half8 __ovld __cnfn fdim(half8, half8 ); +half16 __ovld __cnfn fdim(half16, half16 ); #endif //cl_khr_fp16 /** @@ -7822,230 +7831,230 @@ half16 __ovld __cnfn floor(half16); * intermediate products shall not occur. Edge case * behavior is per the IEEE 754-2008 standard. */ -float __ovld __cnfn fma(float a, float b, float c); -float2 __ovld __cnfn fma(float2 a, float2 b, float2 c); -float3 __ovld __cnfn fma(float3 a, float3 b, float3 c); -float4 __ovld __cnfn fma(float4 a, float4 b, float4 c); -float8 __ovld __cnfn fma(float8 a, float8 b, float8 c); -float16 __ovld __cnfn fma(float16 a, float16 b, float16 c); +float __ovld __cnfn fma(float, float, float); +float2 __ovld __cnfn fma(float2, float2, float2); +float3 __ovld __cnfn fma(float3, float3, float3); +float4 __ovld __cnfn fma(float4, float4, float4); +float8 __ovld __cnfn fma(float8, float8, float8); +float16 __ovld __cnfn fma(float16, float16, float16); #ifdef cl_khr_fp64 -double __ovld __cnfn fma(double a, double b, double c); -double2 __ovld __cnfn fma(double2 a, double2 b, double2 c); -double3 __ovld __cnfn fma(double3 a, double3 b, double3 c); -double4 __ovld __cnfn fma(double4 a, double4 b, double4 c); -double8 __ovld __cnfn fma(double8 a, double8 b, double8 c); -double16 __ovld __cnfn fma(double16 a, double16 b, double16 c); +double __ovld __cnfn fma(double, double, double); +double2 __ovld __cnfn fma(double2, double2, double2); +double3 __ovld __cnfn fma(double3, double3, double3); +double4 __ovld __cnfn fma(double4, double4, double4); +double8 __ovld __cnfn fma(double8, double8, double8); +double16 __ovld __cnfn fma(double16, double16, double16); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn fma(half a, half b, half c); -half2 __ovld __cnfn fma(half2 a, half2 b, half2 c); -half3 __ovld __cnfn fma(half3 a, half3 b, half3 c); -half4 __ovld __cnfn fma(half4 a, half4 b, half4 c); -half8 __ovld __cnfn fma(half8 a, half8 b, half8 c); -half16 __ovld __cnfn fma(half16 a, half16 b, half16 c); +half __ovld __cnfn fma(half, half, half); +half2 __ovld __cnfn fma(half2, half2, half2); +half3 __ovld __cnfn fma(half3, half3, half3); +half4 __ovld __cnfn fma(half4, half4, half4); +half8 __ovld __cnfn fma(half8, half8, half8); +half16 __ovld __cnfn fma(half16, half16, half16); #endif //cl_khr_fp16 /** - * Returns y if x < y, otherwise it returns x. If one + * Returns y if x <, otherwise it returns x. If one * argument is a NaN, fmax() returns the other * argument. If both arguments are NaNs, fmax() * returns a NaN. */ -float __ovld __cnfn fmax(float x, float y); -float2 __ovld __cnfn fmax(float2 x, float2 y); -float3 __ovld __cnfn fmax(float3 x, float3 y); -float4 __ovld __cnfn fmax(float4 x, float4 y); -float8 __ovld __cnfn fmax(float8 x, float8 y); -float16 __ovld __cnfn fmax(float16 x, float16 y); -float2 __ovld __cnfn fmax(float2 x, float y); -float3 __ovld __cnfn fmax(float3 x, float y); -float4 __ovld __cnfn fmax(float4 x, float y); -float8 __ovld __cnfn fmax(float8 x, float y); -float16 __ovld __cnfn fmax(float16 x, float y); +float __ovld __cnfn fmax(float, float ); +float2 __ovld __cnfn fmax(float2, float2 ); +float3 __ovld __cnfn fmax(float3, float3 ); +float4 __ovld __cnfn fmax(float4, float4 ); +float8 __ovld __cnfn fmax(float8, float8 ); +float16 __ovld __cnfn fmax(float16, float16 ); +float2 __ovld __cnfn fmax(float2, float ); +float3 __ovld __cnfn fmax(float3, float ); +float4 __ovld __cnfn fmax(float4, float ); +float8 __ovld __cnfn fmax(float8, float ); +float16 __ovld __cnfn fmax(float16, float ); #ifdef cl_khr_fp64 -double __ovld __cnfn fmax(double x, double y); -double2 __ovld __cnfn fmax(double2 x, double2 y); -double3 __ovld __cnfn fmax(double3 x, double3 y); -double4 __ovld __cnfn fmax(double4 x, double4 y); -double8 __ovld __cnfn fmax(double8 x, double8 y); -double16 __ovld __cnfn fmax(double16 x, double16 y); -double2 __ovld __cnfn fmax(double2 x, double y); -double3 __ovld __cnfn fmax(double3 x, double y); -double4 __ovld __cnfn fmax(double4 x, double y); -double8 __ovld __cnfn fmax(double8 x, double y); -double16 __ovld __cnfn fmax(double16 x, double y); +double __ovld __cnfn fmax(double, double ); +double2 __ovld __cnfn fmax(double2, double2 ); +double3 __ovld __cnfn fmax(double3, double3 ); +double4 __ovld __cnfn fmax(double4, double4 ); +double8 __ovld __cnfn fmax(double8, double8 ); +double16 __ovld __cnfn fmax(double16, double16 ); +double2 __ovld __cnfn fmax(double2, double ); +double3 __ovld __cnfn fmax(double3, double ); +double4 __ovld __cnfn fmax(double4, double ); +double8 __ovld __cnfn fmax(double8, double ); +double16 __ovld __cnfn fmax(double16, double ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn fmax(half x, half y); -half2 __ovld __cnfn fmax(half2 x, half2 y); -half3 __ovld __cnfn fmax(half3 x, half3 y); -half4 __ovld __cnfn fmax(half4 x, half4 y); -half8 __ovld __cnfn fmax(half8 x, half8 y); -half16 __ovld __cnfn fmax(half16 x, half16 y); -half2 __ovld __cnfn fmax(half2 x, half y); -half3 __ovld __cnfn fmax(half3 x, half y); -half4 __ovld __cnfn fmax(half4 x, half y); -half8 __ovld __cnfn fmax(half8 x, half y); -half16 __ovld __cnfn fmax(half16 x, half y); +half __ovld __cnfn fmax(half, half ); +half2 __ovld __cnfn fmax(half2, half2 ); +half3 __ovld __cnfn fmax(half3, half3 ); +half4 __ovld __cnfn fmax(half4, half4 ); +half8 __ovld __cnfn fmax(half8, half8 ); +half16 __ovld __cnfn fmax(half16, half16 ); +half2 __ovld __cnfn fmax(half2, half ); +half3 __ovld __cnfn fmax(half3, half ); +half4 __ovld __cnfn fmax(half4, half ); +half8 __ovld __cnfn fmax(half8, half ); +half16 __ovld __cnfn fmax(half16, half ); #endif //cl_khr_fp16 /** - * Returns y if y < x, otherwise it returns x. If one + * Returns y if y <, otherwise it returns x. If one * argument is a NaN, fmin() returns the other * argument. If both arguments are NaNs, fmin() * returns a NaN. */ -float __ovld __cnfn fmin(float x, float y); -float2 __ovld __cnfn fmin(float2 x, float2 y); -float3 __ovld __cnfn fmin(float3 x, float3 y); -float4 __ovld __cnfn fmin(float4 x, float4 y); -float8 __ovld __cnfn fmin(float8 x, float8 y); -float16 __ovld __cnfn fmin(float16 x, float16 y); -float2 __ovld __cnfn fmin(float2 x, float y); -float3 __ovld __cnfn fmin(float3 x, float y); -float4 __ovld __cnfn fmin(float4 x, float y); -float8 __ovld __cnfn fmin(float8 x, float y); -float16 __ovld __cnfn fmin(float16 x, float y); +float __ovld __cnfn fmin(float, float ); +float2 __ovld __cnfn fmin(float2, float2 ); +float3 __ovld __cnfn fmin(float3, float3 ); +float4 __ovld __cnfn fmin(float4, float4 ); +float8 __ovld __cnfn fmin(float8, float8 ); +float16 __ovld __cnfn fmin(float16, float16 ); +float2 __ovld __cnfn fmin(float2, float ); +float3 __ovld __cnfn fmin(float3, float ); +float4 __ovld __cnfn fmin(float4, float ); +float8 __ovld __cnfn fmin(float8, float ); +float16 __ovld __cnfn fmin(float16, float ); #ifdef cl_khr_fp64 -double __ovld __cnfn fmin(double x, double y); -double2 __ovld __cnfn fmin(double2 x, double2 y); -double3 __ovld __cnfn fmin(double3 x, double3 y); -double4 __ovld __cnfn fmin(double4 x, double4 y); -double8 __ovld __cnfn fmin(double8 x, double8 y); -double16 __ovld __cnfn fmin(double16 x, double16 y); -double2 __ovld __cnfn fmin(double2 x, double y); -double3 __ovld __cnfn fmin(double3 x, double y); -double4 __ovld __cnfn fmin(double4 x, double y); -double8 __ovld __cnfn fmin(double8 x, double y); -double16 __ovld __cnfn fmin(double16 x, double y); +double __ovld __cnfn fmin(double, double ); +double2 __ovld __cnfn fmin(double2, double2 ); +double3 __ovld __cnfn fmin(double3, double3 ); +double4 __ovld __cnfn fmin(double4, double4 ); +double8 __ovld __cnfn fmin(double8, double8 ); +double16 __ovld __cnfn fmin(double16, double16 ); +double2 __ovld __cnfn fmin(double2, double ); +double3 __ovld __cnfn fmin(double3, double ); +double4 __ovld __cnfn fmin(double4, double ); +double8 __ovld __cnfn fmin(double8, double ); +double16 __ovld __cnfn fmin(double16, double ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn fmin(half x, half y); -half2 __ovld __cnfn fmin(half2 x, half2 y); -half3 __ovld __cnfn fmin(half3 x, half3 y); -half4 __ovld __cnfn fmin(half4 x, half4 y); -half8 __ovld __cnfn fmin(half8 x, half8 y); -half16 __ovld __cnfn fmin(half16 x, half16 y); -half2 __ovld __cnfn fmin(half2 x, half y); -half3 __ovld __cnfn fmin(half3 x, half y); -half4 __ovld __cnfn fmin(half4 x, half y); -half8 __ovld __cnfn fmin(half8 x, half y); -half16 __ovld __cnfn fmin(half16 x, half y); +half __ovld __cnfn fmin(half, half ); +half2 __ovld __cnfn fmin(half2, half2 ); +half3 __ovld __cnfn fmin(half3, half3 ); +half4 __ovld __cnfn fmin(half4, half4 ); +half8 __ovld __cnfn fmin(half8, half8 ); +half16 __ovld __cnfn fmin(half16, half16 ); +half2 __ovld __cnfn fmin(half2, half ); +half3 __ovld __cnfn fmin(half3, half ); +half4 __ovld __cnfn fmin(half4, half ); +half8 __ovld __cnfn fmin(half8, half ); +half16 __ovld __cnfn fmin(half16, half ); #endif //cl_khr_fp16 /** * Modulus. Returns x - y * trunc (x/y). */ -float __ovld __cnfn fmod(float x, float y); -float2 __ovld __cnfn fmod(float2 x, float2 y); -float3 __ovld __cnfn fmod(float3 x, float3 y); -float4 __ovld __cnfn fmod(float4 x, float4 y); -float8 __ovld __cnfn fmod(float8 x, float8 y); -float16 __ovld __cnfn fmod(float16 x, float16 y); +float __ovld __cnfn fmod(float, float ); +float2 __ovld __cnfn fmod(float2, float2 ); +float3 __ovld __cnfn fmod(float3, float3 ); +float4 __ovld __cnfn fmod(float4, float4 ); +float8 __ovld __cnfn fmod(float8, float8 ); +float16 __ovld __cnfn fmod(float16, float16 ); #ifdef cl_khr_fp64 -double __ovld __cnfn fmod(double x, double y); -double2 __ovld __cnfn fmod(double2 x, double2 y); -double3 __ovld __cnfn fmod(double3 x, double3 y); -double4 __ovld __cnfn fmod(double4 x, double4 y); -double8 __ovld __cnfn fmod(double8 x, double8 y); -double16 __ovld __cnfn fmod(double16 x, double16 y); +double __ovld __cnfn fmod(double, double ); +double2 __ovld __cnfn fmod(double2, double2 ); +double3 __ovld __cnfn fmod(double3, double3 ); +double4 __ovld __cnfn fmod(double4, double4 ); +double8 __ovld __cnfn fmod(double8, double8 ); +double16 __ovld __cnfn fmod(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn fmod(half x, half y); -half2 __ovld __cnfn fmod(half2 x, half2 y); -half3 __ovld __cnfn fmod(half3 x, half3 y); -half4 __ovld __cnfn fmod(half4 x, half4 y); -half8 __ovld __cnfn fmod(half8 x, half8 y); -half16 __ovld __cnfn fmod(half16 x, half16 y); +half __ovld __cnfn fmod(half, half ); +half2 __ovld __cnfn fmod(half2, half2 ); +half3 __ovld __cnfn fmod(half3, half3 ); +half4 __ovld __cnfn fmod(half4, half4 ); +half8 __ovld __cnfn fmod(half8, half8 ); +half16 __ovld __cnfn fmod(half16, half16 ); #endif //cl_khr_fp16 /** * Returns fmin(x - floor (x), 0x1.fffffep-1f ). * floor(x) is returned in iptr. */ -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -float __ovld fract(float x, float *iptr); -float2 __ovld fract(float2 x, float2 *iptr); -float3 __ovld fract(float3 x, float3 *iptr); -float4 __ovld fract(float4 x, float4 *iptr); -float8 __ovld fract(float8 x, float8 *iptr); -float16 __ovld fract(float16 x, float16 *iptr); +#if defined(__opencl_c_generic_address_space) +float __ovld fract(float, float *iptr); +float2 __ovld fract(float2, float2 *iptr); +float3 __ovld fract(float3, float3 *iptr); +float4 __ovld fract(float4, float4 *iptr); +float8 __ovld fract(float8, float8 *iptr); +float16 __ovld fract(float16, float16 *iptr); #ifdef cl_khr_fp64 -double __ovld fract(double x, double *iptr); -double2 __ovld fract(double2 x, double2 *iptr); -double3 __ovld fract(double3 x, double3 *iptr); -double4 __ovld fract(double4 x, double4 *iptr); -double8 __ovld fract(double8 x, double8 *iptr); -double16 __ovld fract(double16 x, double16 *iptr); +double __ovld fract(double, double *iptr); +double2 __ovld fract(double2, double2 *iptr); +double3 __ovld fract(double3, double3 *iptr); +double4 __ovld fract(double4, double4 *iptr); +double8 __ovld fract(double8, double8 *iptr); +double16 __ovld fract(double16, double16 *iptr); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld fract(half x, half *iptr); -half2 __ovld fract(half2 x, half2 *iptr); -half3 __ovld fract(half3 x, half3 *iptr); -half4 __ovld fract(half4 x, half4 *iptr); -half8 __ovld fract(half8 x, half8 *iptr); -half16 __ovld fract(half16 x, half16 *iptr); +half __ovld fract(half, half *iptr); +half2 __ovld fract(half2, half2 *iptr); +half3 __ovld fract(half3, half3 *iptr); +half4 __ovld fract(half4, half4 *iptr); +half8 __ovld fract(half8, half8 *iptr); +half16 __ovld fract(half16, half16 *iptr); #endif //cl_khr_fp16 #else -float __ovld fract(float x, __global float *iptr); -float2 __ovld fract(float2 x, __global float2 *iptr); -float3 __ovld fract(float3 x, __global float3 *iptr); -float4 __ovld fract(float4 x, __global float4 *iptr); -float8 __ovld fract(float8 x, __global float8 *iptr); -float16 __ovld fract(float16 x, __global float16 *iptr); -float __ovld fract(float x, __local float *iptr); -float2 __ovld fract(float2 x, __local float2 *iptr); -float3 __ovld fract(float3 x, __local float3 *iptr); -float4 __ovld fract(float4 x, __local float4 *iptr); -float8 __ovld fract(float8 x, __local float8 *iptr); -float16 __ovld fract(float16 x, __local float16 *iptr); -float __ovld fract(float x, __private float *iptr); -float2 __ovld fract(float2 x, __private float2 *iptr); -float3 __ovld fract(float3 x, __private float3 *iptr); -float4 __ovld fract(float4 x, __private float4 *iptr); -float8 __ovld fract(float8 x, __private float8 *iptr); -float16 __ovld fract(float16 x, __private float16 *iptr); +float __ovld fract(float, __global float *iptr); +float2 __ovld fract(float2, __global float2 *iptr); +float3 __ovld fract(float3, __global float3 *iptr); +float4 __ovld fract(float4, __global float4 *iptr); +float8 __ovld fract(float8, __global float8 *iptr); +float16 __ovld fract(float16, __global float16 *iptr); +float __ovld fract(float, __local float *iptr); +float2 __ovld fract(float2, __local float2 *iptr); +float3 __ovld fract(float3, __local float3 *iptr); +float4 __ovld fract(float4, __local float4 *iptr); +float8 __ovld fract(float8, __local float8 *iptr); +float16 __ovld fract(float16, __local float16 *iptr); +float __ovld fract(float, __private float *iptr); +float2 __ovld fract(float2, __private float2 *iptr); +float3 __ovld fract(float3, __private float3 *iptr); +float4 __ovld fract(float4, __private float4 *iptr); +float8 __ovld fract(float8, __private float8 *iptr); +float16 __ovld fract(float16, __private float16 *iptr); #ifdef cl_khr_fp64 -double __ovld fract(double x, __global double *iptr); -double2 __ovld fract(double2 x, __global double2 *iptr); -double3 __ovld fract(double3 x, __global double3 *iptr); -double4 __ovld fract(double4 x, __global double4 *iptr); -double8 __ovld fract(double8 x, __global double8 *iptr); -double16 __ovld fract(double16 x, __global double16 *iptr); -double __ovld fract(double x, __local double *iptr); -double2 __ovld fract(double2 x, __local double2 *iptr); -double3 __ovld fract(double3 x, __local double3 *iptr); -double4 __ovld fract(double4 x, __local double4 *iptr); -double8 __ovld fract(double8 x, __local double8 *iptr); -double16 __ovld fract(double16 x, __local double16 *iptr); -double __ovld fract(double x, __private double *iptr); -double2 __ovld fract(double2 x, __private double2 *iptr); -double3 __ovld fract(double3 x, __private double3 *iptr); -double4 __ovld fract(double4 x, __private double4 *iptr); -double8 __ovld fract(double8 x, __private double8 *iptr); -double16 __ovld fract(double16 x, __private double16 *iptr); +double __ovld fract(double, __global double *iptr); +double2 __ovld fract(double2, __global double2 *iptr); +double3 __ovld fract(double3, __global double3 *iptr); +double4 __ovld fract(double4, __global double4 *iptr); +double8 __ovld fract(double8, __global double8 *iptr); +double16 __ovld fract(double16, __global double16 *iptr); +double __ovld fract(double, __local double *iptr); +double2 __ovld fract(double2, __local double2 *iptr); +double3 __ovld fract(double3, __local double3 *iptr); +double4 __ovld fract(double4, __local double4 *iptr); +double8 __ovld fract(double8, __local double8 *iptr); +double16 __ovld fract(double16, __local double16 *iptr); +double __ovld fract(double, __private double *iptr); +double2 __ovld fract(double2, __private double2 *iptr); +double3 __ovld fract(double3, __private double3 *iptr); +double4 __ovld fract(double4, __private double4 *iptr); +double8 __ovld fract(double8, __private double8 *iptr); +double16 __ovld fract(double16, __private double16 *iptr); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld fract(half x, __global half *iptr); -half2 __ovld fract(half2 x, __global half2 *iptr); -half3 __ovld fract(half3 x, __global half3 *iptr); -half4 __ovld fract(half4 x, __global half4 *iptr); -half8 __ovld fract(half8 x, __global half8 *iptr); -half16 __ovld fract(half16 x, __global half16 *iptr); -half __ovld fract(half x, __local half *iptr); -half2 __ovld fract(half2 x, __local half2 *iptr); -half3 __ovld fract(half3 x, __local half3 *iptr); -half4 __ovld fract(half4 x, __local half4 *iptr); -half8 __ovld fract(half8 x, __local half8 *iptr); -half16 __ovld fract(half16 x, __local half16 *iptr); -half __ovld fract(half x, __private half *iptr); -half2 __ovld fract(half2 x, __private half2 *iptr); -half3 __ovld fract(half3 x, __private half3 *iptr); -half4 __ovld fract(half4 x, __private half4 *iptr); -half8 __ovld fract(half8 x, __private half8 *iptr); -half16 __ovld fract(half16 x, __private half16 *iptr); +half __ovld fract(half, __global half *iptr); +half2 __ovld fract(half2, __global half2 *iptr); +half3 __ovld fract(half3, __global half3 *iptr); +half4 __ovld fract(half4, __global half4 *iptr); +half8 __ovld fract(half8, __global half8 *iptr); +half16 __ovld fract(half16, __global half16 *iptr); +half __ovld fract(half, __local half *iptr); +half2 __ovld fract(half2, __local half2 *iptr); +half3 __ovld fract(half3, __local half3 *iptr); +half4 __ovld fract(half4, __local half4 *iptr); +half8 __ovld fract(half8, __local half8 *iptr); +half16 __ovld fract(half16, __local half16 *iptr); +half __ovld fract(half, __private half *iptr); +half2 __ovld fract(half2, __private half2 *iptr); +half3 __ovld fract(half3, __private half3 *iptr); +half4 __ovld fract(half4, __private half4 *iptr); +half8 __ovld fract(half8, __private half8 *iptr); +half16 __ovld fract(half16, __private half16 *iptr); #endif //cl_khr_fp16 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_generic_address_space) /** * Extract mantissa and exponent from x. For each @@ -8053,115 +8062,115 @@ half16 __ovld fract(half16 x, __private half16 *iptr); * magnitude in the interval [1/2, 1) or 0. Each * component of x equals mantissa returned * 2^exp. */ -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -float __ovld frexp(float x, int *exp); -float2 __ovld frexp(float2 x, int2 *exp); -float3 __ovld frexp(float3 x, int3 *exp); -float4 __ovld frexp(float4 x, int4 *exp); -float8 __ovld frexp(float8 x, int8 *exp); -float16 __ovld frexp(float16 x, int16 *exp); +#if defined(__opencl_c_generic_address_space) +float __ovld frexp(float, int *); +float2 __ovld frexp(float2, int2 *); +float3 __ovld frexp(float3, int3 *); +float4 __ovld frexp(float4, int4 *); +float8 __ovld frexp(float8, int8 *); +float16 __ovld frexp(float16, int16 *); #ifdef cl_khr_fp64 -double __ovld frexp(double x, int *exp); -double2 __ovld frexp(double2 x, int2 *exp); -double3 __ovld frexp(double3 x, int3 *exp); -double4 __ovld frexp(double4 x, int4 *exp); -double8 __ovld frexp(double8 x, int8 *exp); -double16 __ovld frexp(double16 x, int16 *exp); +double __ovld frexp(double, int *); +double2 __ovld frexp(double2, int2 *); +double3 __ovld frexp(double3, int3 *); +double4 __ovld frexp(double4, int4 *); +double8 __ovld frexp(double8, int8 *); +double16 __ovld frexp(double16, int16 *); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld frexp(half x, int *exp); -half2 __ovld frexp(half2 x, int2 *exp); -half3 __ovld frexp(half3 x, int3 *exp); -half4 __ovld frexp(half4 x, int4 *exp); -half8 __ovld frexp(half8 x, int8 *exp); -half16 __ovld frexp(half16 x, int16 *exp); +half __ovld frexp(half, int *); +half2 __ovld frexp(half2, int2 *); +half3 __ovld frexp(half3, int3 *); +half4 __ovld frexp(half4, int4 *); +half8 __ovld frexp(half8, int8 *); +half16 __ovld frexp(half16, int16 *); #endif //cl_khr_fp16 #else -float __ovld frexp(float x, __global int *exp); -float2 __ovld frexp(float2 x, __global int2 *exp); -float3 __ovld frexp(float3 x, __global int3 *exp); -float4 __ovld frexp(float4 x, __global int4 *exp); -float8 __ovld frexp(float8 x, __global int8 *exp); -float16 __ovld frexp(float16 x, __global int16 *exp); -float __ovld frexp(float x, __local int *exp); -float2 __ovld frexp(float2 x, __local int2 *exp); -float3 __ovld frexp(float3 x, __local int3 *exp); -float4 __ovld frexp(float4 x, __local int4 *exp); -float8 __ovld frexp(float8 x, __local int8 *exp); -float16 __ovld frexp(float16 x, __local int16 *exp); -float __ovld frexp(float x, __private int *exp); -float2 __ovld frexp(float2 x, __private int2 *exp); -float3 __ovld frexp(float3 x, __private int3 *exp); -float4 __ovld frexp(float4 x, __private int4 *exp); -float8 __ovld frexp(float8 x, __private int8 *exp); -float16 __ovld frexp(float16 x, __private int16 *exp); +float __ovld frexp(float, __global int *); +float2 __ovld frexp(float2, __global int2 *); +float3 __ovld frexp(float3, __global int3 *); +float4 __ovld frexp(float4, __global int4 *); +float8 __ovld frexp(float8, __global int8 *); +float16 __ovld frexp(float16, __global int16 *); +float __ovld frexp(float, __local int *); +float2 __ovld frexp(float2, __local int2 *); +float3 __ovld frexp(float3, __local int3 *); +float4 __ovld frexp(float4, __local int4 *); +float8 __ovld frexp(float8, __local int8 *); +float16 __ovld frexp(float16, __local int16 *); +float __ovld frexp(float, __private int *); +float2 __ovld frexp(float2, __private int2 *); +float3 __ovld frexp(float3, __private int3 *); +float4 __ovld frexp(float4, __private int4 *); +float8 __ovld frexp(float8, __private int8 *); +float16 __ovld frexp(float16, __private int16 *); #ifdef cl_khr_fp64 -double __ovld frexp(double x, __global int *exp); -double2 __ovld frexp(double2 x, __global int2 *exp); -double3 __ovld frexp(double3 x, __global int3 *exp); -double4 __ovld frexp(double4 x, __global int4 *exp); -double8 __ovld frexp(double8 x, __global int8 *exp); -double16 __ovld frexp(double16 x, __global int16 *exp); -double __ovld frexp(double x, __local int *exp); -double2 __ovld frexp(double2 x, __local int2 *exp); -double3 __ovld frexp(double3 x, __local int3 *exp); -double4 __ovld frexp(double4 x, __local int4 *exp); -double8 __ovld frexp(double8 x, __local int8 *exp); -double16 __ovld frexp(double16 x, __local int16 *exp); -double __ovld frexp(double x, __private int *exp); -double2 __ovld frexp(double2 x, __private int2 *exp); -double3 __ovld frexp(double3 x, __private int3 *exp); -double4 __ovld frexp(double4 x, __private int4 *exp); -double8 __ovld frexp(double8 x, __private int8 *exp); -double16 __ovld frexp(double16 x, __private int16 *exp); +double __ovld frexp(double, __global int *); +double2 __ovld frexp(double2, __global int2 *); +double3 __ovld frexp(double3, __global int3 *); +double4 __ovld frexp(double4, __global int4 *); +double8 __ovld frexp(double8, __global int8 *); +double16 __ovld frexp(double16, __global int16 *); +double __ovld frexp(double, __local int *); +double2 __ovld frexp(double2, __local int2 *); +double3 __ovld frexp(double3, __local int3 *); +double4 __ovld frexp(double4, __local int4 *); +double8 __ovld frexp(double8, __local int8 *); +double16 __ovld frexp(double16, __local int16 *); +double __ovld frexp(double, __private int *); +double2 __ovld frexp(double2, __private int2 *); +double3 __ovld frexp(double3, __private int3 *); +double4 __ovld frexp(double4, __private int4 *); +double8 __ovld frexp(double8, __private int8 *); +double16 __ovld frexp(double16, __private int16 *); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld frexp(half x, __global int *exp); -half2 __ovld frexp(half2 x, __global int2 *exp); -half3 __ovld frexp(half3 x, __global int3 *exp); -half4 __ovld frexp(half4 x, __global int4 *exp); -half8 __ovld frexp(half8 x, __global int8 *exp); -half16 __ovld frexp(half16 x, __global int16 *exp); -half __ovld frexp(half x, __local int *exp); -half2 __ovld frexp(half2 x, __local int2 *exp); -half3 __ovld frexp(half3 x, __local int3 *exp); -half4 __ovld frexp(half4 x, __local int4 *exp); -half8 __ovld frexp(half8 x, __local int8 *exp); -half16 __ovld frexp(half16 x, __local int16 *exp); -half __ovld frexp(half x, __private int *exp); -half2 __ovld frexp(half2 x, __private int2 *exp); -half3 __ovld frexp(half3 x, __private int3 *exp); -half4 __ovld frexp(half4 x, __private int4 *exp); -half8 __ovld frexp(half8 x, __private int8 *exp); -half16 __ovld frexp(half16 x, __private int16 *exp); +half __ovld frexp(half, __global int *); +half2 __ovld frexp(half2, __global int2 *); +half3 __ovld frexp(half3, __global int3 *); +half4 __ovld frexp(half4, __global int4 *); +half8 __ovld frexp(half8, __global int8 *); +half16 __ovld frexp(half16, __global int16 *); +half __ovld frexp(half, __local int *); +half2 __ovld frexp(half2, __local int2 *); +half3 __ovld frexp(half3, __local int3 *); +half4 __ovld frexp(half4, __local int4 *); +half8 __ovld frexp(half8, __local int8 *); +half16 __ovld frexp(half16, __local int16 *); +half __ovld frexp(half, __private int *); +half2 __ovld frexp(half2, __private int2 *); +half3 __ovld frexp(half3, __private int3 *); +half4 __ovld frexp(half4, __private int4 *); +half8 __ovld frexp(half8, __private int8 *); +half16 __ovld frexp(half16, __private int16 *); #endif //cl_khr_fp16 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_generic_address_space) /** * Compute the value of the square root of x^2 + y^2 * without undue overflow or underflow. */ -float __ovld __cnfn hypot(float x, float y); -float2 __ovld __cnfn hypot(float2 x, float2 y); -float3 __ovld __cnfn hypot(float3 x, float3 y); -float4 __ovld __cnfn hypot(float4 x, float4 y); -float8 __ovld __cnfn hypot(float8 x, float8 y); -float16 __ovld __cnfn hypot(float16 x, float16 y); +float __ovld __cnfn hypot(float, float ); +float2 __ovld __cnfn hypot(float2, float2 ); +float3 __ovld __cnfn hypot(float3, float3 ); +float4 __ovld __cnfn hypot(float4, float4 ); +float8 __ovld __cnfn hypot(float8, float8 ); +float16 __ovld __cnfn hypot(float16, float16 ); #ifdef cl_khr_fp64 -double __ovld __cnfn hypot(double x, double y); -double2 __ovld __cnfn hypot(double2 x, double2 y); -double3 __ovld __cnfn hypot(double3 x, double3 y); -double4 __ovld __cnfn hypot(double4 x, double4 y); -double8 __ovld __cnfn hypot(double8 x, double8 y); -double16 __ovld __cnfn hypot(double16 x, double16 y); +double __ovld __cnfn hypot(double, double ); +double2 __ovld __cnfn hypot(double2, double2 ); +double3 __ovld __cnfn hypot(double3, double3 ); +double4 __ovld __cnfn hypot(double4, double4 ); +double8 __ovld __cnfn hypot(double8, double8 ); +double16 __ovld __cnfn hypot(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn hypot(half x, half y); -half2 __ovld __cnfn hypot(half2 x, half2 y); -half3 __ovld __cnfn hypot(half3 x, half3 y); -half4 __ovld __cnfn hypot(half4 x, half4 y); -half8 __ovld __cnfn hypot(half8 x, half8 y); -half16 __ovld __cnfn hypot(half16 x, half16 y); +half __ovld __cnfn hypot(half, half ); +half2 __ovld __cnfn hypot(half2, half2 ); +half3 __ovld __cnfn hypot(half3, half3 ); +half4 __ovld __cnfn hypot(half4, half4 ); +half8 __ovld __cnfn hypot(half8, half8 ); +half16 __ovld __cnfn hypot(half16, half16 ); #endif //cl_khr_fp16 /** @@ -8193,42 +8202,42 @@ int16 __ovld __cnfn ilogb(half16 x); /** * Multiply x by 2 to the power n. */ -float __ovld __cnfn ldexp(float x, int n); -float2 __ovld __cnfn ldexp(float2 x, int2 n); -float3 __ovld __cnfn ldexp(float3 x, int3 n); -float4 __ovld __cnfn ldexp(float4 x, int4 n); -float8 __ovld __cnfn ldexp(float8 x, int8 n); -float16 __ovld __cnfn ldexp(float16 x, int16 n); -float2 __ovld __cnfn ldexp(float2 x, int n); -float3 __ovld __cnfn ldexp(float3 x, int n); -float4 __ovld __cnfn ldexp(float4 x, int n); -float8 __ovld __cnfn ldexp(float8 x, int n); -float16 __ovld __cnfn ldexp(float16 x, int n); +float __ovld __cnfn ldexp(float, int); +float2 __ovld __cnfn ldexp(float2, int2); +float3 __ovld __cnfn ldexp(float3, int3); +float4 __ovld __cnfn ldexp(float4, int4); +float8 __ovld __cnfn ldexp(float8, int8); +float16 __ovld __cnfn ldexp(float16, int16); +float2 __ovld __cnfn ldexp(float2, int); +float3 __ovld __cnfn ldexp(float3, int); +float4 __ovld __cnfn ldexp(float4, int); +float8 __ovld __cnfn ldexp(float8, int); +float16 __ovld __cnfn ldexp(float16, int); #ifdef cl_khr_fp64 -double __ovld __cnfn ldexp(double x, int n); -double2 __ovld __cnfn ldexp(double2 x, int2 n); -double3 __ovld __cnfn ldexp(double3 x, int3 n); -double4 __ovld __cnfn ldexp(double4 x, int4 n); -double8 __ovld __cnfn ldexp(double8 x, int8 n); -double16 __ovld __cnfn ldexp(double16 x, int16 n); -double2 __ovld __cnfn ldexp(double2 x, int n); -double3 __ovld __cnfn ldexp(double3 x, int n); -double4 __ovld __cnfn ldexp(double4 x, int n); -double8 __ovld __cnfn ldexp(double8 x, int n); -double16 __ovld __cnfn ldexp(double16 x, int n); +double __ovld __cnfn ldexp(double, int); +double2 __ovld __cnfn ldexp(double2, int2); +double3 __ovld __cnfn ldexp(double3, int3); +double4 __ovld __cnfn ldexp(double4, int4); +double8 __ovld __cnfn ldexp(double8, int8); +double16 __ovld __cnfn ldexp(double16, int16); +double2 __ovld __cnfn ldexp(double2, int); +double3 __ovld __cnfn ldexp(double3, int); +double4 __ovld __cnfn ldexp(double4, int); +double8 __ovld __cnfn ldexp(double8, int); +double16 __ovld __cnfn ldexp(double16, int); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn ldexp(half x, int n); -half2 __ovld __cnfn ldexp(half2 x, int2 n); -half3 __ovld __cnfn ldexp(half3 x, int3 n); -half4 __ovld __cnfn ldexp(half4 x, int4 n); -half8 __ovld __cnfn ldexp(half8 x, int8 n); -half16 __ovld __cnfn ldexp(half16 x, int16 n); -half2 __ovld __cnfn ldexp(half2 x, int n); -half3 __ovld __cnfn ldexp(half3 x, int n); -half4 __ovld __cnfn ldexp(half4 x, int n); -half8 __ovld __cnfn ldexp(half8 x, int n); -half16 __ovld __cnfn ldexp(half16 x, int n); +half __ovld __cnfn ldexp(half, int); +half2 __ovld __cnfn ldexp(half2, int2); +half3 __ovld __cnfn ldexp(half3, int3); +half4 __ovld __cnfn ldexp(half4, int4); +half8 __ovld __cnfn ldexp(half8, int8); +half16 __ovld __cnfn ldexp(half16, int16); +half2 __ovld __cnfn ldexp(half2, int); +half3 __ovld __cnfn ldexp(half3, int); +half4 __ovld __cnfn ldexp(half4, int); +half8 __ovld __cnfn ldexp(half8, int); +half16 __ovld __cnfn ldexp(half16, int); #endif //cl_khr_fp16 /** @@ -8260,89 +8269,89 @@ half8 __ovld __cnfn lgamma(half8 x); half16 __ovld __cnfn lgamma(half16 x); #endif //cl_khr_fp16 -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -float __ovld lgamma_r(float x, int *signp); -float2 __ovld lgamma_r(float2 x, int2 *signp); -float3 __ovld lgamma_r(float3 x, int3 *signp); -float4 __ovld lgamma_r(float4 x, int4 *signp); -float8 __ovld lgamma_r(float8 x, int8 *signp); -float16 __ovld lgamma_r(float16 x, int16 *signp); +#if defined(__opencl_c_generic_address_space) +float __ovld lgamma_r(float, int *signp); +float2 __ovld lgamma_r(float2, int2 *signp); +float3 __ovld lgamma_r(float3, int3 *signp); +float4 __ovld lgamma_r(float4, int4 *signp); +float8 __ovld lgamma_r(float8, int8 *signp); +float16 __ovld lgamma_r(float16, int16 *signp); #ifdef cl_khr_fp64 -double __ovld lgamma_r(double x, int *signp); -double2 __ovld lgamma_r(double2 x, int2 *signp); -double3 __ovld lgamma_r(double3 x, int3 *signp); -double4 __ovld lgamma_r(double4 x, int4 *signp); -double8 __ovld lgamma_r(double8 x, int8 *signp); -double16 __ovld lgamma_r(double16 x, int16 *signp); +double __ovld lgamma_r(double, int *signp); +double2 __ovld lgamma_r(double2, int2 *signp); +double3 __ovld lgamma_r(double3, int3 *signp); +double4 __ovld lgamma_r(double4, int4 *signp); +double8 __ovld lgamma_r(double8, int8 *signp); +double16 __ovld lgamma_r(double16, int16 *signp); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld lgamma_r(half x, int *signp); -half2 __ovld lgamma_r(half2 x, int2 *signp); -half3 __ovld lgamma_r(half3 x, int3 *signp); -half4 __ovld lgamma_r(half4 x, int4 *signp); -half8 __ovld lgamma_r(half8 x, int8 *signp); -half16 __ovld lgamma_r(half16 x, int16 *signp); +half __ovld lgamma_r(half, int *signp); +half2 __ovld lgamma_r(half2, int2 *signp); +half3 __ovld lgamma_r(half3, int3 *signp); +half4 __ovld lgamma_r(half4, int4 *signp); +half8 __ovld lgamma_r(half8, int8 *signp); +half16 __ovld lgamma_r(half16, int16 *signp); #endif //cl_khr_fp16 #else -float __ovld lgamma_r(float x, __global int *signp); -float2 __ovld lgamma_r(float2 x, __global int2 *signp); -float3 __ovld lgamma_r(float3 x, __global int3 *signp); -float4 __ovld lgamma_r(float4 x, __global int4 *signp); -float8 __ovld lgamma_r(float8 x, __global int8 *signp); -float16 __ovld lgamma_r(float16 x, __global int16 *signp); -float __ovld lgamma_r(float x, __local int *signp); -float2 __ovld lgamma_r(float2 x, __local int2 *signp); -float3 __ovld lgamma_r(float3 x, __local int3 *signp); -float4 __ovld lgamma_r(float4 x, __local int4 *signp); -float8 __ovld lgamma_r(float8 x, __local int8 *signp); -float16 __ovld lgamma_r(float16 x, __local int16 *signp); -float __ovld lgamma_r(float x, __private int *signp); -float2 __ovld lgamma_r(float2 x, __private int2 *signp); -float3 __ovld lgamma_r(float3 x, __private int3 *signp); -float4 __ovld lgamma_r(float4 x, __private int4 *signp); -float8 __ovld lgamma_r(float8 x, __private int8 *signp); -float16 __ovld lgamma_r(float16 x, __private int16 *signp); +float __ovld lgamma_r(float, __global int *signp); +float2 __ovld lgamma_r(float2, __global int2 *signp); +float3 __ovld lgamma_r(float3, __global int3 *signp); +float4 __ovld lgamma_r(float4, __global int4 *signp); +float8 __ovld lgamma_r(float8, __global int8 *signp); +float16 __ovld lgamma_r(float16, __global int16 *signp); +float __ovld lgamma_r(float, __local int *signp); +float2 __ovld lgamma_r(float2, __local int2 *signp); +float3 __ovld lgamma_r(float3, __local int3 *signp); +float4 __ovld lgamma_r(float4, __local int4 *signp); +float8 __ovld lgamma_r(float8, __local int8 *signp); +float16 __ovld lgamma_r(float16, __local int16 *signp); +float __ovld lgamma_r(float, __private int *signp); +float2 __ovld lgamma_r(float2, __private int2 *signp); +float3 __ovld lgamma_r(float3, __private int3 *signp); +float4 __ovld lgamma_r(float4, __private int4 *signp); +float8 __ovld lgamma_r(float8, __private int8 *signp); +float16 __ovld lgamma_r(float16, __private int16 *signp); #ifdef cl_khr_fp64 -double __ovld lgamma_r(double x, __global int *signp); -double2 __ovld lgamma_r(double2 x, __global int2 *signp); -double3 __ovld lgamma_r(double3 x, __global int3 *signp); -double4 __ovld lgamma_r(double4 x, __global int4 *signp); -double8 __ovld lgamma_r(double8 x, __global int8 *signp); -double16 __ovld lgamma_r(double16 x, __global int16 *signp); -double __ovld lgamma_r(double x, __local int *signp); -double2 __ovld lgamma_r(double2 x, __local int2 *signp); -double3 __ovld lgamma_r(double3 x, __local int3 *signp); -double4 __ovld lgamma_r(double4 x, __local int4 *signp); -double8 __ovld lgamma_r(double8 x, __local int8 *signp); -double16 __ovld lgamma_r(double16 x, __local int16 *signp); -double __ovld lgamma_r(double x, __private int *signp); -double2 __ovld lgamma_r(double2 x, __private int2 *signp); -double3 __ovld lgamma_r(double3 x, __private int3 *signp); -double4 __ovld lgamma_r(double4 x, __private int4 *signp); -double8 __ovld lgamma_r(double8 x, __private int8 *signp); -double16 __ovld lgamma_r(double16 x, __private int16 *signp); +double __ovld lgamma_r(double, __global int *signp); +double2 __ovld lgamma_r(double2, __global int2 *signp); +double3 __ovld lgamma_r(double3, __global int3 *signp); +double4 __ovld lgamma_r(double4, __global int4 *signp); +double8 __ovld lgamma_r(double8, __global int8 *signp); +double16 __ovld lgamma_r(double16, __global int16 *signp); +double __ovld lgamma_r(double, __local int *signp); +double2 __ovld lgamma_r(double2, __local int2 *signp); +double3 __ovld lgamma_r(double3, __local int3 *signp); +double4 __ovld lgamma_r(double4, __local int4 *signp); +double8 __ovld lgamma_r(double8, __local int8 *signp); +double16 __ovld lgamma_r(double16, __local int16 *signp); +double __ovld lgamma_r(double, __private int *signp); +double2 __ovld lgamma_r(double2, __private int2 *signp); +double3 __ovld lgamma_r(double3, __private int3 *signp); +double4 __ovld lgamma_r(double4, __private int4 *signp); +double8 __ovld lgamma_r(double8, __private int8 *signp); +double16 __ovld lgamma_r(double16, __private int16 *signp); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld lgamma_r(half x, __global int *signp); -half2 __ovld lgamma_r(half2 x, __global int2 *signp); -half3 __ovld lgamma_r(half3 x, __global int3 *signp); -half4 __ovld lgamma_r(half4 x, __global int4 *signp); -half8 __ovld lgamma_r(half8 x, __global int8 *signp); -half16 __ovld lgamma_r(half16 x, __global int16 *signp); -half __ovld lgamma_r(half x, __local int *signp); -half2 __ovld lgamma_r(half2 x, __local int2 *signp); -half3 __ovld lgamma_r(half3 x, __local int3 *signp); -half4 __ovld lgamma_r(half4 x, __local int4 *signp); -half8 __ovld lgamma_r(half8 x, __local int8 *signp); -half16 __ovld lgamma_r(half16 x, __local int16 *signp); -half __ovld lgamma_r(half x, __private int *signp); -half2 __ovld lgamma_r(half2 x, __private int2 *signp); -half3 __ovld lgamma_r(half3 x, __private int3 *signp); -half4 __ovld lgamma_r(half4 x, __private int4 *signp); -half8 __ovld lgamma_r(half8 x, __private int8 *signp); -half16 __ovld lgamma_r(half16 x, __private int16 *signp); +half __ovld lgamma_r(half, __global int *signp); +half2 __ovld lgamma_r(half2, __global int2 *signp); +half3 __ovld lgamma_r(half3, __global int3 *signp); +half4 __ovld lgamma_r(half4, __global int4 *signp); +half8 __ovld lgamma_r(half8, __global int8 *signp); +half16 __ovld lgamma_r(half16, __global int16 *signp); +half __ovld lgamma_r(half, __local int *signp); +half2 __ovld lgamma_r(half2, __local int2 *signp); +half3 __ovld lgamma_r(half3, __local int3 *signp); +half4 __ovld lgamma_r(half4, __local int4 *signp); +half8 __ovld lgamma_r(half8, __local int8 *signp); +half16 __ovld lgamma_r(half16, __local int16 *signp); +half __ovld lgamma_r(half, __private int *signp); +half2 __ovld lgamma_r(half2, __private int2 *signp); +half3 __ovld lgamma_r(half3, __private int3 *signp); +half4 __ovld lgamma_r(half4, __private int4 *signp); +half8 __ovld lgamma_r(half8, __private int8 *signp); +half16 __ovld lgamma_r(half16, __private int16 *signp); #endif //cl_khr_fp16 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_generic_address_space) /** * Compute natural logarithm. @@ -8449,7 +8458,7 @@ half16 __ovld __cnfn log1p(half16 x); #endif //cl_khr_fp16 /** - * Compute the exponent of x, which is the integral + * Compute the exponent of, which is the integral * part of logr | x |. */ float __ovld __cnfn logb(float x); @@ -8482,81 +8491,81 @@ half16 __ovld __cnfn logb(half16 x); * defined. mad is intended to be used where speed is * preferred over accuracy. */ -float __ovld __cnfn mad(float a, float b, float c); -float2 __ovld __cnfn mad(float2 a, float2 b, float2 c); -float3 __ovld __cnfn mad(float3 a, float3 b, float3 c); -float4 __ovld __cnfn mad(float4 a, float4 b, float4 c); -float8 __ovld __cnfn mad(float8 a, float8 b, float8 c); -float16 __ovld __cnfn mad(float16 a, float16 b, float16 c); +float __ovld __cnfn mad(float, float, float); +float2 __ovld __cnfn mad(float2, float2, float2); +float3 __ovld __cnfn mad(float3, float3, float3); +float4 __ovld __cnfn mad(float4, float4, float4); +float8 __ovld __cnfn mad(float8, float8, float8); +float16 __ovld __cnfn mad(float16, float16, float16); #ifdef cl_khr_fp64 -double __ovld __cnfn mad(double a, double b, double c); -double2 __ovld __cnfn mad(double2 a, double2 b, double2 c); -double3 __ovld __cnfn mad(double3 a, double3 b, double3 c); -double4 __ovld __cnfn mad(double4 a, double4 b, double4 c); -double8 __ovld __cnfn mad(double8 a, double8 b, double8 c); -double16 __ovld __cnfn mad(double16 a, double16 b, double16 c); +double __ovld __cnfn mad(double, double, double); +double2 __ovld __cnfn mad(double2, double2, double2); +double3 __ovld __cnfn mad(double3, double3, double3); +double4 __ovld __cnfn mad(double4, double4, double4); +double8 __ovld __cnfn mad(double8, double8, double8); +double16 __ovld __cnfn mad(double16, double16, double16); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn mad(half a, half b, half c); -half2 __ovld __cnfn mad(half2 a, half2 b, half2 c); -half3 __ovld __cnfn mad(half3 a, half3 b, half3 c); -half4 __ovld __cnfn mad(half4 a, half4 b, half4 c); -half8 __ovld __cnfn mad(half8 a, half8 b, half8 c); -half16 __ovld __cnfn mad(half16 a, half16 b, half16 c); +half __ovld __cnfn mad(half, half, half); +half2 __ovld __cnfn mad(half2, half2, half2); +half3 __ovld __cnfn mad(half3, half3, half3); +half4 __ovld __cnfn mad(half4, half4, half4); +half8 __ovld __cnfn mad(half8, half8, half8); +half16 __ovld __cnfn mad(half16, half16, half16); #endif //cl_khr_fp16 /** * Returns x if | x | > | y |, y if | y | > | x |, otherwise - * fmax(x, y). + * fmax(x, ). */ -float __ovld __cnfn maxmag(float x, float y); -float2 __ovld __cnfn maxmag(float2 x, float2 y); -float3 __ovld __cnfn maxmag(float3 x, float3 y); -float4 __ovld __cnfn maxmag(float4 x, float4 y); -float8 __ovld __cnfn maxmag(float8 x, float8 y); -float16 __ovld __cnfn maxmag(float16 x, float16 y); +float __ovld __cnfn maxmag(float, float ); +float2 __ovld __cnfn maxmag(float2, float2 ); +float3 __ovld __cnfn maxmag(float3, float3 ); +float4 __ovld __cnfn maxmag(float4, float4 ); +float8 __ovld __cnfn maxmag(float8, float8 ); +float16 __ovld __cnfn maxmag(float16, float16 ); #ifdef cl_khr_fp64 -double __ovld __cnfn maxmag(double x, double y); -double2 __ovld __cnfn maxmag(double2 x, double2 y); -double3 __ovld __cnfn maxmag(double3 x, double3 y); -double4 __ovld __cnfn maxmag(double4 x, double4 y); -double8 __ovld __cnfn maxmag(double8 x, double8 y); -double16 __ovld __cnfn maxmag(double16 x, double16 y); +double __ovld __cnfn maxmag(double, double ); +double2 __ovld __cnfn maxmag(double2, double2 ); +double3 __ovld __cnfn maxmag(double3, double3 ); +double4 __ovld __cnfn maxmag(double4, double4 ); +double8 __ovld __cnfn maxmag(double8, double8 ); +double16 __ovld __cnfn maxmag(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn maxmag(half x, half y); -half2 __ovld __cnfn maxmag(half2 x, half2 y); -half3 __ovld __cnfn maxmag(half3 x, half3 y); -half4 __ovld __cnfn maxmag(half4 x, half4 y); -half8 __ovld __cnfn maxmag(half8 x, half8 y); -half16 __ovld __cnfn maxmag(half16 x, half16 y); +half __ovld __cnfn maxmag(half, half ); +half2 __ovld __cnfn maxmag(half2, half2 ); +half3 __ovld __cnfn maxmag(half3, half3 ); +half4 __ovld __cnfn maxmag(half4, half4 ); +half8 __ovld __cnfn maxmag(half8, half8 ); +half16 __ovld __cnfn maxmag(half16, half16 ); #endif //cl_khr_fp16 /** * Returns x if | x | < | y |, y if | y | < | x |, otherwise - * fmin(x, y). + * fmin(x, ). */ -float __ovld __cnfn minmag(float x, float y); -float2 __ovld __cnfn minmag(float2 x, float2 y); -float3 __ovld __cnfn minmag(float3 x, float3 y); -float4 __ovld __cnfn minmag(float4 x, float4 y); -float8 __ovld __cnfn minmag(float8 x, float8 y); -float16 __ovld __cnfn minmag(float16 x, float16 y); +float __ovld __cnfn minmag(float, float ); +float2 __ovld __cnfn minmag(float2, float2 ); +float3 __ovld __cnfn minmag(float3, float3 ); +float4 __ovld __cnfn minmag(float4, float4 ); +float8 __ovld __cnfn minmag(float8, float8 ); +float16 __ovld __cnfn minmag(float16, float16 ); #ifdef cl_khr_fp64 -double __ovld __cnfn minmag(double x, double y); -double2 __ovld __cnfn minmag(double2 x, double2 y); -double3 __ovld __cnfn minmag(double3 x, double3 y); -double4 __ovld __cnfn minmag(double4 x, double4 y); -double8 __ovld __cnfn minmag(double8 x, double8 y); -double16 __ovld __cnfn minmag(double16 x, double16 y); +double __ovld __cnfn minmag(double, double ); +double2 __ovld __cnfn minmag(double2, double2 ); +double3 __ovld __cnfn minmag(double3, double3 ); +double4 __ovld __cnfn minmag(double4, double4 ); +double8 __ovld __cnfn minmag(double8, double8 ); +double16 __ovld __cnfn minmag(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn minmag(half x, half y); -half2 __ovld __cnfn minmag(half2 x, half2 y); -half3 __ovld __cnfn minmag(half3 x, half3 y); -half4 __ovld __cnfn minmag(half4 x, half4 y); -half8 __ovld __cnfn minmag(half8 x, half8 y); -half16 __ovld __cnfn minmag(half16 x, half16 y); +half __ovld __cnfn minmag(half, half ); +half2 __ovld __cnfn minmag(half2, half2 ); +half3 __ovld __cnfn minmag(half3, half3 ); +half4 __ovld __cnfn minmag(half4, half4 ); +half8 __ovld __cnfn minmag(half8, half8 ); +half16 __ovld __cnfn minmag(half16, half16 ); #endif //cl_khr_fp16 /** @@ -8566,223 +8575,223 @@ half16 __ovld __cnfn minmag(half16 x, half16 y); * the argument. It stores the integral part in the object * pointed to by iptr. */ -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -float __ovld modf(float x, float *iptr); -float2 __ovld modf(float2 x, float2 *iptr); -float3 __ovld modf(float3 x, float3 *iptr); -float4 __ovld modf(float4 x, float4 *iptr); -float8 __ovld modf(float8 x, float8 *iptr); -float16 __ovld modf(float16 x, float16 *iptr); +#if defined(__opencl_c_generic_address_space) +float __ovld modf(float, float *iptr); +float2 __ovld modf(float2, float2 *iptr); +float3 __ovld modf(float3, float3 *iptr); +float4 __ovld modf(float4, float4 *iptr); +float8 __ovld modf(float8, float8 *iptr); +float16 __ovld modf(float16, float16 *iptr); #ifdef cl_khr_fp64 -double __ovld modf(double x, double *iptr); -double2 __ovld modf(double2 x, double2 *iptr); -double3 __ovld modf(double3 x, double3 *iptr); -double4 __ovld modf(double4 x, double4 *iptr); -double8 __ovld modf(double8 x, double8 *iptr); -double16 __ovld modf(double16 x, double16 *iptr); +double __ovld modf(double, double *iptr); +double2 __ovld modf(double2, double2 *iptr); +double3 __ovld modf(double3, double3 *iptr); +double4 __ovld modf(double4, double4 *iptr); +double8 __ovld modf(double8, double8 *iptr); +double16 __ovld modf(double16, double16 *iptr); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld modf(half x, half *iptr); -half2 __ovld modf(half2 x, half2 *iptr); -half3 __ovld modf(half3 x, half3 *iptr); -half4 __ovld modf(half4 x, half4 *iptr); -half8 __ovld modf(half8 x, half8 *iptr); -half16 __ovld modf(half16 x, half16 *iptr); +half __ovld modf(half, half *iptr); +half2 __ovld modf(half2, half2 *iptr); +half3 __ovld modf(half3, half3 *iptr); +half4 __ovld modf(half4, half4 *iptr); +half8 __ovld modf(half8, half8 *iptr); +half16 __ovld modf(half16, half16 *iptr); #endif //cl_khr_fp16 #else -float __ovld modf(float x, __global float *iptr); -float2 __ovld modf(float2 x, __global float2 *iptr); -float3 __ovld modf(float3 x, __global float3 *iptr); -float4 __ovld modf(float4 x, __global float4 *iptr); -float8 __ovld modf(float8 x, __global float8 *iptr); -float16 __ovld modf(float16 x, __global float16 *iptr); -float __ovld modf(float x, __local float *iptr); -float2 __ovld modf(float2 x, __local float2 *iptr); -float3 __ovld modf(float3 x, __local float3 *iptr); -float4 __ovld modf(float4 x, __local float4 *iptr); -float8 __ovld modf(float8 x, __local float8 *iptr); -float16 __ovld modf(float16 x, __local float16 *iptr); -float __ovld modf(float x, __private float *iptr); -float2 __ovld modf(float2 x, __private float2 *iptr); -float3 __ovld modf(float3 x, __private float3 *iptr); -float4 __ovld modf(float4 x, __private float4 *iptr); -float8 __ovld modf(float8 x, __private float8 *iptr); -float16 __ovld modf(float16 x, __private float16 *iptr); +float __ovld modf(float, __global float *iptr); +float2 __ovld modf(float2, __global float2 *iptr); +float3 __ovld modf(float3, __global float3 *iptr); +float4 __ovld modf(float4, __global float4 *iptr); +float8 __ovld modf(float8, __global float8 *iptr); +float16 __ovld modf(float16, __global float16 *iptr); +float __ovld modf(float, __local float *iptr); +float2 __ovld modf(float2, __local float2 *iptr); +float3 __ovld modf(float3, __local float3 *iptr); +float4 __ovld modf(float4, __local float4 *iptr); +float8 __ovld modf(float8, __local float8 *iptr); +float16 __ovld modf(float16, __local float16 *iptr); +float __ovld modf(float, __private float *iptr); +float2 __ovld modf(float2, __private float2 *iptr); +float3 __ovld modf(float3, __private float3 *iptr); +float4 __ovld modf(float4, __private float4 *iptr); +float8 __ovld modf(float8, __private float8 *iptr); +float16 __ovld modf(float16, __private float16 *iptr); #ifdef cl_khr_fp64 -double __ovld modf(double x, __global double *iptr); -double2 __ovld modf(double2 x, __global double2 *iptr); -double3 __ovld modf(double3 x, __global double3 *iptr); -double4 __ovld modf(double4 x, __global double4 *iptr); -double8 __ovld modf(double8 x, __global double8 *iptr); -double16 __ovld modf(double16 x, __global double16 *iptr); -double __ovld modf(double x, __local double *iptr); -double2 __ovld modf(double2 x, __local double2 *iptr); -double3 __ovld modf(double3 x, __local double3 *iptr); -double4 __ovld modf(double4 x, __local double4 *iptr); -double8 __ovld modf(double8 x, __local double8 *iptr); -double16 __ovld modf(double16 x, __local double16 *iptr); -double __ovld modf(double x, __private double *iptr); -double2 __ovld modf(double2 x, __private double2 *iptr); -double3 __ovld modf(double3 x, __private double3 *iptr); -double4 __ovld modf(double4 x, __private double4 *iptr); -double8 __ovld modf(double8 x, __private double8 *iptr); -double16 __ovld modf(double16 x, __private double16 *iptr); +double __ovld modf(double, __global double *iptr); +double2 __ovld modf(double2, __global double2 *iptr); +double3 __ovld modf(double3, __global double3 *iptr); +double4 __ovld modf(double4, __global double4 *iptr); +double8 __ovld modf(double8, __global double8 *iptr); +double16 __ovld modf(double16, __global double16 *iptr); +double __ovld modf(double, __local double *iptr); +double2 __ovld modf(double2, __local double2 *iptr); +double3 __ovld modf(double3, __local double3 *iptr); +double4 __ovld modf(double4, __local double4 *iptr); +double8 __ovld modf(double8, __local double8 *iptr); +double16 __ovld modf(double16, __local double16 *iptr); +double __ovld modf(double, __private double *iptr); +double2 __ovld modf(double2, __private double2 *iptr); +double3 __ovld modf(double3, __private double3 *iptr); +double4 __ovld modf(double4, __private double4 *iptr); +double8 __ovld modf(double8, __private double8 *iptr); +double16 __ovld modf(double16, __private double16 *iptr); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld modf(half x, __global half *iptr); -half2 __ovld modf(half2 x, __global half2 *iptr); -half3 __ovld modf(half3 x, __global half3 *iptr); -half4 __ovld modf(half4 x, __global half4 *iptr); -half8 __ovld modf(half8 x, __global half8 *iptr); -half16 __ovld modf(half16 x, __global half16 *iptr); -half __ovld modf(half x, __local half *iptr); -half2 __ovld modf(half2 x, __local half2 *iptr); -half3 __ovld modf(half3 x, __local half3 *iptr); -half4 __ovld modf(half4 x, __local half4 *iptr); -half8 __ovld modf(half8 x, __local half8 *iptr); -half16 __ovld modf(half16 x, __local half16 *iptr); -half __ovld modf(half x, __private half *iptr); -half2 __ovld modf(half2 x, __private half2 *iptr); -half3 __ovld modf(half3 x, __private half3 *iptr); -half4 __ovld modf(half4 x, __private half4 *iptr); -half8 __ovld modf(half8 x, __private half8 *iptr); -half16 __ovld modf(half16 x, __private half16 *iptr); +half __ovld modf(half, __global half *iptr); +half2 __ovld modf(half2, __global half2 *iptr); +half3 __ovld modf(half3, __global half3 *iptr); +half4 __ovld modf(half4, __global half4 *iptr); +half8 __ovld modf(half8, __global half8 *iptr); +half16 __ovld modf(half16, __global half16 *iptr); +half __ovld modf(half, __local half *iptr); +half2 __ovld modf(half2, __local half2 *iptr); +half3 __ovld modf(half3, __local half3 *iptr); +half4 __ovld modf(half4, __local half4 *iptr); +half8 __ovld modf(half8, __local half8 *iptr); +half16 __ovld modf(half16, __local half16 *iptr); +half __ovld modf(half, __private half *iptr); +half2 __ovld modf(half2, __private half2 *iptr); +half3 __ovld modf(half3, __private half3 *iptr); +half4 __ovld modf(half4, __private half4 *iptr); +half8 __ovld modf(half8, __private half8 *iptr); +half16 __ovld modf(half16, __private half16 *iptr); #endif //cl_khr_fp16 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_generic_address_space) /** * Returns a quiet NaN. The nancode may be placed * in the significand of the resulting NaN. */ -float __ovld __cnfn nan(uint nancode); -float2 __ovld __cnfn nan(uint2 nancode); -float3 __ovld __cnfn nan(uint3 nancode); -float4 __ovld __cnfn nan(uint4 nancode); -float8 __ovld __cnfn nan(uint8 nancode); -float16 __ovld __cnfn nan(uint16 nancode); +float __ovld __cnfn nan(uint); +float2 __ovld __cnfn nan(uint2); +float3 __ovld __cnfn nan(uint3); +float4 __ovld __cnfn nan(uint4); +float8 __ovld __cnfn nan(uint8); +float16 __ovld __cnfn nan(uint16); #ifdef cl_khr_fp64 -double __ovld __cnfn nan(ulong nancode); -double2 __ovld __cnfn nan(ulong2 nancode); -double3 __ovld __cnfn nan(ulong3 nancode); -double4 __ovld __cnfn nan(ulong4 nancode); -double8 __ovld __cnfn nan(ulong8 nancode); -double16 __ovld __cnfn nan(ulong16 nancode); +double __ovld __cnfn nan(ulong); +double2 __ovld __cnfn nan(ulong2); +double3 __ovld __cnfn nan(ulong3); +double4 __ovld __cnfn nan(ulong4); +double8 __ovld __cnfn nan(ulong8); +double16 __ovld __cnfn nan(ulong16); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn nan(ushort nancode); -half2 __ovld __cnfn nan(ushort2 nancode); -half3 __ovld __cnfn nan(ushort3 nancode); -half4 __ovld __cnfn nan(ushort4 nancode); -half8 __ovld __cnfn nan(ushort8 nancode); -half16 __ovld __cnfn nan(ushort16 nancode); +half __ovld __cnfn nan(ushort); +half2 __ovld __cnfn nan(ushort2); +half3 __ovld __cnfn nan(ushort3); +half4 __ovld __cnfn nan(ushort4); +half8 __ovld __cnfn nan(ushort8); +half16 __ovld __cnfn nan(ushort16); #endif //cl_khr_fp16 /** * Computes the next representable single-precision * floating-point value following x in the direction of - * y. Thus, if y is less than x, nextafter() returns the + * y. Thus, if y is less than, nextafter() returns the * largest representable floating-point number less * than x. */ -float __ovld __cnfn nextafter(float x, float y); -float2 __ovld __cnfn nextafter(float2 x, float2 y); -float3 __ovld __cnfn nextafter(float3 x, float3 y); -float4 __ovld __cnfn nextafter(float4 x, float4 y); -float8 __ovld __cnfn nextafter(float8 x, float8 y); -float16 __ovld __cnfn nextafter(float16 x, float16 y); +float __ovld __cnfn nextafter(float, float ); +float2 __ovld __cnfn nextafter(float2, float2 ); +float3 __ovld __cnfn nextafter(float3, float3 ); +float4 __ovld __cnfn nextafter(float4, float4 ); +float8 __ovld __cnfn nextafter(float8, float8 ); +float16 __ovld __cnfn nextafter(float16, float16 ); #ifdef cl_khr_fp64 -double __ovld __cnfn nextafter(double x, double y); -double2 __ovld __cnfn nextafter(double2 x, double2 y); -double3 __ovld __cnfn nextafter(double3 x, double3 y); -double4 __ovld __cnfn nextafter(double4 x, double4 y); -double8 __ovld __cnfn nextafter(double8 x, double8 y); -double16 __ovld __cnfn nextafter(double16 x, double16 y); +double __ovld __cnfn nextafter(double, double ); +double2 __ovld __cnfn nextafter(double2, double2 ); +double3 __ovld __cnfn nextafter(double3, double3 ); +double4 __ovld __cnfn nextafter(double4, double4 ); +double8 __ovld __cnfn nextafter(double8, double8 ); +double16 __ovld __cnfn nextafter(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn nextafter(half x, half y); -half2 __ovld __cnfn nextafter(half2 x, half2 y); -half3 __ovld __cnfn nextafter(half3 x, half3 y); -half4 __ovld __cnfn nextafter(half4 x, half4 y); -half8 __ovld __cnfn nextafter(half8 x, half8 y); -half16 __ovld __cnfn nextafter(half16 x, half16 y); +half __ovld __cnfn nextafter(half, half ); +half2 __ovld __cnfn nextafter(half2, half2 ); +half3 __ovld __cnfn nextafter(half3, half3 ); +half4 __ovld __cnfn nextafter(half4, half4 ); +half8 __ovld __cnfn nextafter(half8, half8 ); +half16 __ovld __cnfn nextafter(half16, half16 ); #endif //cl_khr_fp16 /** * Compute x to the power y. */ -float __ovld __cnfn pow(float x, float y); -float2 __ovld __cnfn pow(float2 x, float2 y); -float3 __ovld __cnfn pow(float3 x, float3 y); -float4 __ovld __cnfn pow(float4 x, float4 y); -float8 __ovld __cnfn pow(float8 x, float8 y); -float16 __ovld __cnfn pow(float16 x, float16 y); +float __ovld __cnfn pow(float, float ); +float2 __ovld __cnfn pow(float2, float2 ); +float3 __ovld __cnfn pow(float3, float3 ); +float4 __ovld __cnfn pow(float4, float4 ); +float8 __ovld __cnfn pow(float8, float8 ); +float16 __ovld __cnfn pow(float16, float16 ); #ifdef cl_khr_fp64 -double __ovld __cnfn pow(double x, double y); -double2 __ovld __cnfn pow(double2 x, double2 y); -double3 __ovld __cnfn pow(double3 x, double3 y); -double4 __ovld __cnfn pow(double4 x, double4 y); -double8 __ovld __cnfn pow(double8 x, double8 y); -double16 __ovld __cnfn pow(double16 x, double16 y); +double __ovld __cnfn pow(double, double ); +double2 __ovld __cnfn pow(double2, double2 ); +double3 __ovld __cnfn pow(double3, double3 ); +double4 __ovld __cnfn pow(double4, double4 ); +double8 __ovld __cnfn pow(double8, double8 ); +double16 __ovld __cnfn pow(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn pow(half x, half y); -half2 __ovld __cnfn pow(half2 x, half2 y); -half3 __ovld __cnfn pow(half3 x, half3 y); -half4 __ovld __cnfn pow(half4 x, half4 y); -half8 __ovld __cnfn pow(half8 x, half8 y); -half16 __ovld __cnfn pow(half16 x, half16 y); +half __ovld __cnfn pow(half, half ); +half2 __ovld __cnfn pow(half2, half2 ); +half3 __ovld __cnfn pow(half3, half3 ); +half4 __ovld __cnfn pow(half4, half4 ); +half8 __ovld __cnfn pow(half8, half8 ); +half16 __ovld __cnfn pow(half16, half16 ); #endif //cl_khr_fp16 /** - * Compute x to the power y, where y is an integer. + * Compute x to the power, where y is an integer. */ -float __ovld __cnfn pown(float x, int y); -float2 __ovld __cnfn pown(float2 x, int2 y); -float3 __ovld __cnfn pown(float3 x, int3 y); -float4 __ovld __cnfn pown(float4 x, int4 y); -float8 __ovld __cnfn pown(float8 x, int8 y); -float16 __ovld __cnfn pown(float16 x, int16 y); +float __ovld __cnfn pown(float, int ); +float2 __ovld __cnfn pown(float2, int2 ); +float3 __ovld __cnfn pown(float3, int3 ); +float4 __ovld __cnfn pown(float4, int4 ); +float8 __ovld __cnfn pown(float8, int8 ); +float16 __ovld __cnfn pown(float16, int16 ); #ifdef cl_khr_fp64 -double __ovld __cnfn pown(double x, int y); -double2 __ovld __cnfn pown(double2 x, int2 y); -double3 __ovld __cnfn pown(double3 x, int3 y); -double4 __ovld __cnfn pown(double4 x, int4 y); -double8 __ovld __cnfn pown(double8 x, int8 y); -double16 __ovld __cnfn pown(double16 x, int16 y); +double __ovld __cnfn pown(double, int ); +double2 __ovld __cnfn pown(double2, int2 ); +double3 __ovld __cnfn pown(double3, int3 ); +double4 __ovld __cnfn pown(double4, int4 ); +double8 __ovld __cnfn pown(double8, int8 ); +double16 __ovld __cnfn pown(double16, int16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn pown(half x, int y); -half2 __ovld __cnfn pown(half2 x, int2 y); -half3 __ovld __cnfn pown(half3 x, int3 y); -half4 __ovld __cnfn pown(half4 x, int4 y); -half8 __ovld __cnfn pown(half8 x, int8 y); -half16 __ovld __cnfn pown(half16 x, int16 y); +half __ovld __cnfn pown(half, int ); +half2 __ovld __cnfn pown(half2, int2 ); +half3 __ovld __cnfn pown(half3, int3 ); +half4 __ovld __cnfn pown(half4, int4 ); +half8 __ovld __cnfn pown(half8, int8 ); +half16 __ovld __cnfn pown(half16, int16 ); #endif //cl_khr_fp16 /** - * Compute x to the power y, where x is >= 0. + * Compute x to the power, where x is >= 0. */ -float __ovld __cnfn powr(float x, float y); -float2 __ovld __cnfn powr(float2 x, float2 y); -float3 __ovld __cnfn powr(float3 x, float3 y); -float4 __ovld __cnfn powr(float4 x, float4 y); -float8 __ovld __cnfn powr(float8 x, float8 y); -float16 __ovld __cnfn powr(float16 x, float16 y); +float __ovld __cnfn powr(float, float ); +float2 __ovld __cnfn powr(float2, float2 ); +float3 __ovld __cnfn powr(float3, float3 ); +float4 __ovld __cnfn powr(float4, float4 ); +float8 __ovld __cnfn powr(float8, float8 ); +float16 __ovld __cnfn powr(float16, float16 ); #ifdef cl_khr_fp64 -double __ovld __cnfn powr(double x, double y); -double2 __ovld __cnfn powr(double2 x, double2 y); -double3 __ovld __cnfn powr(double3 x, double3 y); -double4 __ovld __cnfn powr(double4 x, double4 y); -double8 __ovld __cnfn powr(double8 x, double8 y); -double16 __ovld __cnfn powr(double16 x, double16 y); +double __ovld __cnfn powr(double, double ); +double2 __ovld __cnfn powr(double2, double2 ); +double3 __ovld __cnfn powr(double3, double3 ); +double4 __ovld __cnfn powr(double4, double4 ); +double8 __ovld __cnfn powr(double8, double8 ); +double16 __ovld __cnfn powr(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn powr(half x, half y); -half2 __ovld __cnfn powr(half2 x, half2 y); -half3 __ovld __cnfn powr(half3 x, half3 y); -half4 __ovld __cnfn powr(half4 x, half4 y); -half8 __ovld __cnfn powr(half8 x, half8 y); -half16 __ovld __cnfn powr(half16 x, half16 y); +half __ovld __cnfn powr(half, half ); +half2 __ovld __cnfn powr(half2, half2 ); +half3 __ovld __cnfn powr(half3, half3 ); +half4 __ovld __cnfn powr(half4, half4 ); +half8 __ovld __cnfn powr(half8, half8 ); +half16 __ovld __cnfn powr(half16, half16 ); #endif //cl_khr_fp16 /** @@ -8791,27 +8800,27 @@ half16 __ovld __cnfn powr(half16 x, half16 y); * are two integers closest to x/y, n shall be the even * one. If r is zero, it is given the same sign as x. */ -float __ovld __cnfn remainder(float x, float y); -float2 __ovld __cnfn remainder(float2 x, float2 y); -float3 __ovld __cnfn remainder(float3 x, float3 y); -float4 __ovld __cnfn remainder(float4 x, float4 y); -float8 __ovld __cnfn remainder(float8 x, float8 y); -float16 __ovld __cnfn remainder(float16 x, float16 y); +float __ovld __cnfn remainder(float, float ); +float2 __ovld __cnfn remainder(float2, float2 ); +float3 __ovld __cnfn remainder(float3, float3 ); +float4 __ovld __cnfn remainder(float4, float4 ); +float8 __ovld __cnfn remainder(float8, float8 ); +float16 __ovld __cnfn remainder(float16, float16 ); #ifdef cl_khr_fp64 -double __ovld __cnfn remainder(double x, double y); -double2 __ovld __cnfn remainder(double2 x, double2 y); -double3 __ovld __cnfn remainder(double3 x, double3 y); -double4 __ovld __cnfn remainder(double4 x, double4 y); -double8 __ovld __cnfn remainder(double8 x, double8 y); -double16 __ovld __cnfn remainder(double16 x, double16 y); +double __ovld __cnfn remainder(double, double ); +double2 __ovld __cnfn remainder(double2, double2 ); +double3 __ovld __cnfn remainder(double3, double3 ); +double4 __ovld __cnfn remainder(double4, double4 ); +double8 __ovld __cnfn remainder(double8, double8 ); +double16 __ovld __cnfn remainder(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn remainder(half x, half y); -half2 __ovld __cnfn remainder(half2 x, half2 y); -half3 __ovld __cnfn remainder(half3 x, half3 y); -half4 __ovld __cnfn remainder(half4 x, half4 y); -half8 __ovld __cnfn remainder(half8 x, half8 y); -half16 __ovld __cnfn remainder(half16 x, half16 y); +half __ovld __cnfn remainder(half, half ); +half2 __ovld __cnfn remainder(half2, half2 ); +half3 __ovld __cnfn remainder(half3, half3 ); +half4 __ovld __cnfn remainder(half4, half4 ); +half8 __ovld __cnfn remainder(half8, half8 ); +half16 __ovld __cnfn remainder(half16, half16 ); #endif //cl_khr_fp16 /** @@ -8826,90 +8835,90 @@ half16 __ovld __cnfn remainder(half16 x, half16 y); * sign as x/y. It stores this signed value in the object * pointed to by quo. */ -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -float __ovld remquo(float x, float y, int *quo); -float2 __ovld remquo(float2 x, float2 y, int2 *quo); -float3 __ovld remquo(float3 x, float3 y, int3 *quo); -float4 __ovld remquo(float4 x, float4 y, int4 *quo); -float8 __ovld remquo(float8 x, float8 y, int8 *quo); -float16 __ovld remquo(float16 x, float16 y, int16 *quo); +#if defined(__opencl_c_generic_address_space) +float __ovld remquo(float, float, int *); +float2 __ovld remquo(float2, float2, int2 *); +float3 __ovld remquo(float3, float3, int3 *); +float4 __ovld remquo(float4, float4, int4 *); +float8 __ovld remquo(float8, float8, int8 *); +float16 __ovld remquo(float16, float16, int16 *); #ifdef cl_khr_fp64 -double __ovld remquo(double x, double y, int *quo); -double2 __ovld remquo(double2 x, double2 y, int2 *quo); -double3 __ovld remquo(double3 x, double3 y, int3 *quo); -double4 __ovld remquo(double4 x, double4 y, int4 *quo); -double8 __ovld remquo(double8 x, double8 y, int8 *quo); -double16 __ovld remquo(double16 x, double16 y, int16 *quo); +double __ovld remquo(double, double, int *); +double2 __ovld remquo(double2, double2, int2 *); +double3 __ovld remquo(double3, double3, int3 *); +double4 __ovld remquo(double4, double4, int4 *); +double8 __ovld remquo(double8, double8, int8 *); +double16 __ovld remquo(double16, double16, int16 *); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld remquo(half x, half y, int *quo); -half2 __ovld remquo(half2 x, half2 y, int2 *quo); -half3 __ovld remquo(half3 x, half3 y, int3 *quo); -half4 __ovld remquo(half4 x, half4 y, int4 *quo); -half8 __ovld remquo(half8 x, half8 y, int8 *quo); -half16 __ovld remquo(half16 x, half16 y, int16 *quo); +half __ovld remquo(half, half, int *); +half2 __ovld remquo(half2, half2, int2 *); +half3 __ovld remquo(half3, half3, int3 *); +half4 __ovld remquo(half4, half4, int4 *); +half8 __ovld remquo(half8, half8, int8 *); +half16 __ovld remquo(half16, half16, int16 *); #endif //cl_khr_fp16 #else -float __ovld remquo(float x, float y, __global int *quo); -float2 __ovld remquo(float2 x, float2 y, __global int2 *quo); -float3 __ovld remquo(float3 x, float3 y, __global int3 *quo); -float4 __ovld remquo(float4 x, float4 y, __global int4 *quo); -float8 __ovld remquo(float8 x, float8 y, __global int8 *quo); -float16 __ovld remquo(float16 x, float16 y, __global int16 *quo); -float __ovld remquo(float x, float y, __local int *quo); -float2 __ovld remquo(float2 x, float2 y, __local int2 *quo); -float3 __ovld remquo(float3 x, float3 y, __local int3 *quo); -float4 __ovld remquo(float4 x, float4 y, __local int4 *quo); -float8 __ovld remquo(float8 x, float8 y, __local int8 *quo); -float16 __ovld remquo(float16 x, float16 y, __local int16 *quo); -float __ovld remquo(float x, float y, __private int *quo); -float2 __ovld remquo(float2 x, float2 y, __private int2 *quo); -float3 __ovld remquo(float3 x, float3 y, __private int3 *quo); -float4 __ovld remquo(float4 x, float4 y, __private int4 *quo); -float8 __ovld remquo(float8 x, float8 y, __private int8 *quo); -float16 __ovld remquo(float16 x, float16 y, __private int16 *quo); +float __ovld remquo(float, float, __global int *); +float2 __ovld remquo(float2, float2, __global int2 *); +float3 __ovld remquo(float3, float3, __global int3 *); +float4 __ovld remquo(float4, float4, __global int4 *); +float8 __ovld remquo(float8, float8, __global int8 *); +float16 __ovld remquo(float16, float16, __global int16 *); +float __ovld remquo(float, float, __local int *); +float2 __ovld remquo(float2, float2, __local int2 *); +float3 __ovld remquo(float3, float3, __local int3 *); +float4 __ovld remquo(float4, float4, __local int4 *); +float8 __ovld remquo(float8, float8, __local int8 *); +float16 __ovld remquo(float16, float16, __local int16 *); +float __ovld remquo(float, float, __private int *); +float2 __ovld remquo(float2, float2, __private int2 *); +float3 __ovld remquo(float3, float3, __private int3 *); +float4 __ovld remquo(float4, float4, __private int4 *); +float8 __ovld remquo(float8, float8, __private int8 *); +float16 __ovld remquo(float16, float16, __private int16 *); #ifdef cl_khr_fp64 -double __ovld remquo(double x, double y, __global int *quo); -double2 __ovld remquo(double2 x, double2 y, __global int2 *quo); -double3 __ovld remquo(double3 x, double3 y, __global int3 *quo); -double4 __ovld remquo(double4 x, double4 y, __global int4 *quo); -double8 __ovld remquo(double8 x, double8 y, __global int8 *quo); -double16 __ovld remquo(double16 x, double16 y, __global int16 *quo); -double __ovld remquo(double x, double y, __local int *quo); -double2 __ovld remquo(double2 x, double2 y, __local int2 *quo); -double3 __ovld remquo(double3 x, double3 y, __local int3 *quo); -double4 __ovld remquo(double4 x, double4 y, __local int4 *quo); -double8 __ovld remquo(double8 x, double8 y, __local int8 *quo); -double16 __ovld remquo(double16 x, double16 y, __local int16 *quo); -double __ovld remquo(double x, double y, __private int *quo); -double2 __ovld remquo(double2 x, double2 y, __private int2 *quo); -double3 __ovld remquo(double3 x, double3 y, __private int3 *quo); -double4 __ovld remquo(double4 x, double4 y, __private int4 *quo); -double8 __ovld remquo(double8 x, double8 y, __private int8 *quo); -double16 __ovld remquo(double16 x, double16 y, __private int16 *quo); +double __ovld remquo(double, double, __global int *); +double2 __ovld remquo(double2, double2, __global int2 *); +double3 __ovld remquo(double3, double3, __global int3 *); +double4 __ovld remquo(double4, double4, __global int4 *); +double8 __ovld remquo(double8, double8, __global int8 *); +double16 __ovld remquo(double16, double16, __global int16 *); +double __ovld remquo(double, double, __local int *); +double2 __ovld remquo(double2, double2, __local int2 *); +double3 __ovld remquo(double3, double3, __local int3 *); +double4 __ovld remquo(double4, double4, __local int4 *); +double8 __ovld remquo(double8, double8, __local int8 *); +double16 __ovld remquo(double16, double16, __local int16 *); +double __ovld remquo(double, double, __private int *); +double2 __ovld remquo(double2, double2, __private int2 *); +double3 __ovld remquo(double3, double3, __private int3 *); +double4 __ovld remquo(double4, double4, __private int4 *); +double8 __ovld remquo(double8, double8, __private int8 *); +double16 __ovld remquo(double16, double16, __private int16 *); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld remquo(half x, half y, __global int *quo); -half2 __ovld remquo(half2 x, half2 y, __global int2 *quo); -half3 __ovld remquo(half3 x, half3 y, __global int3 *quo); -half4 __ovld remquo(half4 x, half4 y, __global int4 *quo); -half8 __ovld remquo(half8 x, half8 y, __global int8 *quo); -half16 __ovld remquo(half16 x, half16 y, __global int16 *quo); -half __ovld remquo(half x, half y, __local int *quo); -half2 __ovld remquo(half2 x, half2 y, __local int2 *quo); -half3 __ovld remquo(half3 x, half3 y, __local int3 *quo); -half4 __ovld remquo(half4 x, half4 y, __local int4 *quo); -half8 __ovld remquo(half8 x, half8 y, __local int8 *quo); -half16 __ovld remquo(half16 x, half16 y, __local int16 *quo); -half __ovld remquo(half x, half y, __private int *quo); -half2 __ovld remquo(half2 x, half2 y, __private int2 *quo); -half3 __ovld remquo(half3 x, half3 y, __private int3 *quo); -half4 __ovld remquo(half4 x, half4 y, __private int4 *quo); -half8 __ovld remquo(half8 x, half8 y, __private int8 *quo); -half16 __ovld remquo(half16 x, half16 y, __private int16 *quo); +half __ovld remquo(half, half, __global int *); +half2 __ovld remquo(half2, half2, __global int2 *); +half3 __ovld remquo(half3, half3, __global int3 *); +half4 __ovld remquo(half4, half4, __global int4 *); +half8 __ovld remquo(half8, half8, __global int8 *); +half16 __ovld remquo(half16, half16, __global int16 *); +half __ovld remquo(half, half, __local int *); +half2 __ovld remquo(half2, half2, __local int2 *); +half3 __ovld remquo(half3, half3, __local int3 *); +half4 __ovld remquo(half4, half4, __local int4 *); +half8 __ovld remquo(half8, half8, __local int8 *); +half16 __ovld remquo(half16, half16, __local int16 *); +half __ovld remquo(half, half, __private int *); +half2 __ovld remquo(half2, half2, __private int2 *); +half3 __ovld remquo(half3, half3, __private int3 *); +half4 __ovld remquo(half4, half4, __private int4 *); +half8 __ovld remquo(half8, half8, __private int8 *); +half16 __ovld remquo(half16, half16, __private int16 *); #endif //cl_khr_fp16 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_generic_address_space) /** * Round to integral value (using round to nearest * even rounding mode) in floating-point format. @@ -8942,27 +8951,27 @@ half16 __ovld __cnfn rint(half16); /** * Compute x to the power 1/y. */ -float __ovld __cnfn rootn(float x, int y); -float2 __ovld __cnfn rootn(float2 x, int2 y); -float3 __ovld __cnfn rootn(float3 x, int3 y); -float4 __ovld __cnfn rootn(float4 x, int4 y); -float8 __ovld __cnfn rootn(float8 x, int8 y); -float16 __ovld __cnfn rootn(float16 x, int16 y); +float __ovld __cnfn rootn(float, int ); +float2 __ovld __cnfn rootn(float2, int2 ); +float3 __ovld __cnfn rootn(float3, int3 ); +float4 __ovld __cnfn rootn(float4, int4 ); +float8 __ovld __cnfn rootn(float8, int8 ); +float16 __ovld __cnfn rootn(float16, int16 ); #ifdef cl_khr_fp64 -double __ovld __cnfn rootn(double x, int y); -double2 __ovld __cnfn rootn(double2 x, int2 y); -double3 __ovld __cnfn rootn(double3 x, int3 y); -double4 __ovld __cnfn rootn(double4 x, int4 y); -double8 __ovld __cnfn rootn(double8 x, int8 y); -double16 __ovld __cnfn rootn(double16 x, int16 y); +double __ovld __cnfn rootn(double, int ); +double2 __ovld __cnfn rootn(double2, int2 ); +double3 __ovld __cnfn rootn(double3, int3 ); +double4 __ovld __cnfn rootn(double4, int4 ); +double8 __ovld __cnfn rootn(double8, int8 ); +double16 __ovld __cnfn rootn(double16, int16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn rootn(half x, int y); -half2 __ovld __cnfn rootn(half2 x, int2 y); -half3 __ovld __cnfn rootn(half3 x, int3 y); -half4 __ovld __cnfn rootn(half4 x, int4 y); -half8 __ovld __cnfn rootn(half8 x, int8 y); -half16 __ovld __cnfn rootn(half16 x, int16 y); +half __ovld __cnfn rootn(half, int ); +half2 __ovld __cnfn rootn(half2, int2 ); +half3 __ovld __cnfn rootn(half3, int3 ); +half4 __ovld __cnfn rootn(half4, int4 ); +half8 __ovld __cnfn rootn(half8, int8 ); +half16 __ovld __cnfn rootn(half16, int16 ); #endif //cl_khr_fp16 /** @@ -9050,89 +9059,89 @@ half16 __ovld __cnfn sin(half16); * is the return value and computed cosine is returned * in cosval. */ -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -float __ovld sincos(float x, float *cosval); -float2 __ovld sincos(float2 x, float2 *cosval); -float3 __ovld sincos(float3 x, float3 *cosval); -float4 __ovld sincos(float4 x, float4 *cosval); -float8 __ovld sincos(float8 x, float8 *cosval); -float16 __ovld sincos(float16 x, float16 *cosval); +#if defined(__opencl_c_generic_address_space) +float __ovld sincos(float, float *cosval); +float2 __ovld sincos(float2, float2 *cosval); +float3 __ovld sincos(float3, float3 *cosval); +float4 __ovld sincos(float4, float4 *cosval); +float8 __ovld sincos(float8, float8 *cosval); +float16 __ovld sincos(float16, float16 *cosval); #ifdef cl_khr_fp64 -double __ovld sincos(double x, double *cosval); -double2 __ovld sincos(double2 x, double2 *cosval); -double3 __ovld sincos(double3 x, double3 *cosval); -double4 __ovld sincos(double4 x, double4 *cosval); -double8 __ovld sincos(double8 x, double8 *cosval); -double16 __ovld sincos(double16 x, double16 *cosval); +double __ovld sincos(double, double *cosval); +double2 __ovld sincos(double2, double2 *cosval); +double3 __ovld sincos(double3, double3 *cosval); +double4 __ovld sincos(double4, double4 *cosval); +double8 __ovld sincos(double8, double8 *cosval); +double16 __ovld sincos(double16, double16 *cosval); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld sincos(half x, half *cosval); -half2 __ovld sincos(half2 x, half2 *cosval); -half3 __ovld sincos(half3 x, half3 *cosval); -half4 __ovld sincos(half4 x, half4 *cosval); -half8 __ovld sincos(half8 x, half8 *cosval); -half16 __ovld sincos(half16 x, half16 *cosval); +half __ovld sincos(half, half *cosval); +half2 __ovld sincos(half2, half2 *cosval); +half3 __ovld sincos(half3, half3 *cosval); +half4 __ovld sincos(half4, half4 *cosval); +half8 __ovld sincos(half8, half8 *cosval); +half16 __ovld sincos(half16, half16 *cosval); #endif //cl_khr_fp16 #else -float __ovld sincos(float x, __global float *cosval); -float2 __ovld sincos(float2 x, __global float2 *cosval); -float3 __ovld sincos(float3 x, __global float3 *cosval); -float4 __ovld sincos(float4 x, __global float4 *cosval); -float8 __ovld sincos(float8 x, __global float8 *cosval); -float16 __ovld sincos(float16 x, __global float16 *cosval); -float __ovld sincos(float x, __local float *cosval); -float2 __ovld sincos(float2 x, __local float2 *cosval); -float3 __ovld sincos(float3 x, __local float3 *cosval); -float4 __ovld sincos(float4 x, __local float4 *cosval); -float8 __ovld sincos(float8 x, __local float8 *cosval); -float16 __ovld sincos(float16 x, __local float16 *cosval); -float __ovld sincos(float x, __private float *cosval); -float2 __ovld sincos(float2 x, __private float2 *cosval); -float3 __ovld sincos(float3 x, __private float3 *cosval); -float4 __ovld sincos(float4 x, __private float4 *cosval); -float8 __ovld sincos(float8 x, __private float8 *cosval); -float16 __ovld sincos(float16 x, __private float16 *cosval); +float __ovld sincos(float, __global float *cosval); +float2 __ovld sincos(float2, __global float2 *cosval); +float3 __ovld sincos(float3, __global float3 *cosval); +float4 __ovld sincos(float4, __global float4 *cosval); +float8 __ovld sincos(float8, __global float8 *cosval); +float16 __ovld sincos(float16, __global float16 *cosval); +float __ovld sincos(float, __local float *cosval); +float2 __ovld sincos(float2, __local float2 *cosval); +float3 __ovld sincos(float3, __local float3 *cosval); +float4 __ovld sincos(float4, __local float4 *cosval); +float8 __ovld sincos(float8, __local float8 *cosval); +float16 __ovld sincos(float16, __local float16 *cosval); +float __ovld sincos(float, __private float *cosval); +float2 __ovld sincos(float2, __private float2 *cosval); +float3 __ovld sincos(float3, __private float3 *cosval); +float4 __ovld sincos(float4, __private float4 *cosval); +float8 __ovld sincos(float8, __private float8 *cosval); +float16 __ovld sincos(float16, __private float16 *cosval); #ifdef cl_khr_fp64 -double __ovld sincos(double x, __global double *cosval); -double2 __ovld sincos(double2 x, __global double2 *cosval); -double3 __ovld sincos(double3 x, __global double3 *cosval); -double4 __ovld sincos(double4 x, __global double4 *cosval); -double8 __ovld sincos(double8 x, __global double8 *cosval); -double16 __ovld sincos(double16 x, __global double16 *cosval); -double __ovld sincos(double x, __local double *cosval); -double2 __ovld sincos(double2 x, __local double2 *cosval); -double3 __ovld sincos(double3 x, __local double3 *cosval); -double4 __ovld sincos(double4 x, __local double4 *cosval); -double8 __ovld sincos(double8 x, __local double8 *cosval); -double16 __ovld sincos(double16 x, __local double16 *cosval); -double __ovld sincos(double x, __private double *cosval); -double2 __ovld sincos(double2 x, __private double2 *cosval); -double3 __ovld sincos(double3 x, __private double3 *cosval); -double4 __ovld sincos(double4 x, __private double4 *cosval); -double8 __ovld sincos(double8 x, __private double8 *cosval); -double16 __ovld sincos(double16 x, __private double16 *cosval); +double __ovld sincos(double, __global double *cosval); +double2 __ovld sincos(double2, __global double2 *cosval); +double3 __ovld sincos(double3, __global double3 *cosval); +double4 __ovld sincos(double4, __global double4 *cosval); +double8 __ovld sincos(double8, __global double8 *cosval); +double16 __ovld sincos(double16, __global double16 *cosval); +double __ovld sincos(double, __local double *cosval); +double2 __ovld sincos(double2, __local double2 *cosval); +double3 __ovld sincos(double3, __local double3 *cosval); +double4 __ovld sincos(double4, __local double4 *cosval); +double8 __ovld sincos(double8, __local double8 *cosval); +double16 __ovld sincos(double16, __local double16 *cosval); +double __ovld sincos(double, __private double *cosval); +double2 __ovld sincos(double2, __private double2 *cosval); +double3 __ovld sincos(double3, __private double3 *cosval); +double4 __ovld sincos(double4, __private double4 *cosval); +double8 __ovld sincos(double8, __private double8 *cosval); +double16 __ovld sincos(double16, __private double16 *cosval); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld sincos(half x, __global half *cosval); -half2 __ovld sincos(half2 x, __global half2 *cosval); -half3 __ovld sincos(half3 x, __global half3 *cosval); -half4 __ovld sincos(half4 x, __global half4 *cosval); -half8 __ovld sincos(half8 x, __global half8 *cosval); -half16 __ovld sincos(half16 x, __global half16 *cosval); -half __ovld sincos(half x, __local half *cosval); -half2 __ovld sincos(half2 x, __local half2 *cosval); -half3 __ovld sincos(half3 x, __local half3 *cosval); -half4 __ovld sincos(half4 x, __local half4 *cosval); -half8 __ovld sincos(half8 x, __local half8 *cosval); -half16 __ovld sincos(half16 x, __local half16 *cosval); -half __ovld sincos(half x, __private half *cosval); -half2 __ovld sincos(half2 x, __private half2 *cosval); -half3 __ovld sincos(half3 x, __private half3 *cosval); -half4 __ovld sincos(half4 x, __private half4 *cosval); -half8 __ovld sincos(half8 x, __private half8 *cosval); -half16 __ovld sincos(half16 x, __private half16 *cosval); +half __ovld sincos(half, __global half *cosval); +half2 __ovld sincos(half2, __global half2 *cosval); +half3 __ovld sincos(half3, __global half3 *cosval); +half4 __ovld sincos(half4, __global half4 *cosval); +half8 __ovld sincos(half8, __global half8 *cosval); +half16 __ovld sincos(half16, __global half16 *cosval); +half __ovld sincos(half, __local half *cosval); +half2 __ovld sincos(half2, __local half2 *cosval); +half3 __ovld sincos(half3, __local half3 *cosval); +half4 __ovld sincos(half4, __local half4 *cosval); +half8 __ovld sincos(half8, __local half8 *cosval); +half16 __ovld sincos(half16, __local half16 *cosval); +half __ovld sincos(half, __private half *cosval); +half2 __ovld sincos(half2, __private half2 *cosval); +half3 __ovld sincos(half3, __private half3 *cosval); +half4 __ovld sincos(half4, __private half4 *cosval); +half8 __ovld sincos(half8, __private half8 *cosval); +half16 __ovld sincos(half16, __private half16 *cosval); #endif //cl_khr_fp16 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_generic_address_space) /** * Compute hyperbolic sine. @@ -9356,12 +9365,12 @@ float16 __ovld __cnfn half_cos(float16 x); /** * Compute x / y. */ -float __ovld __cnfn half_divide(float x, float y); -float2 __ovld __cnfn half_divide(float2 x, float2 y); -float3 __ovld __cnfn half_divide(float3 x, float3 y); -float4 __ovld __cnfn half_divide(float4 x, float4 y); -float8 __ovld __cnfn half_divide(float8 x, float8 y); -float16 __ovld __cnfn half_divide(float16 x, float16 y); +float __ovld __cnfn half_divide(float, float ); +float2 __ovld __cnfn half_divide(float2, float2 ); +float3 __ovld __cnfn half_divide(float3, float3 ); +float4 __ovld __cnfn half_divide(float4, float4 ); +float8 __ovld __cnfn half_divide(float8, float8 ); +float16 __ovld __cnfn half_divide(float16, float16 ); /** * Compute the base- e exponential of x. @@ -9424,14 +9433,14 @@ float8 __ovld __cnfn half_log10(float8 x); float16 __ovld __cnfn half_log10(float16 x); /** - * Compute x to the power y, where x is >= 0. + * Compute x to the power, where x is >= 0. */ -float __ovld __cnfn half_powr(float x, float y); -float2 __ovld __cnfn half_powr(float2 x, float2 y); -float3 __ovld __cnfn half_powr(float3 x, float3 y); -float4 __ovld __cnfn half_powr(float4 x, float4 y); -float8 __ovld __cnfn half_powr(float8 x, float8 y); -float16 __ovld __cnfn half_powr(float16 x, float16 y); +float __ovld __cnfn half_powr(float, float ); +float2 __ovld __cnfn half_powr(float2, float2 ); +float3 __ovld __cnfn half_powr(float3, float3 ); +float4 __ovld __cnfn half_powr(float4, float4 ); +float8 __ovld __cnfn half_powr(float8, float8 ); +float16 __ovld __cnfn half_powr(float16, float16 ); /** * Compute reciprocal. @@ -9498,12 +9507,12 @@ float16 __ovld __cnfn native_cos(float16 x); * Compute x / y over an implementation-defined range. * The maximum error is implementation-defined. */ -float __ovld __cnfn native_divide(float x, float y); -float2 __ovld __cnfn native_divide(float2 x, float2 y); -float3 __ovld __cnfn native_divide(float3 x, float3 y); -float4 __ovld __cnfn native_divide(float4 x, float4 y); -float8 __ovld __cnfn native_divide(float8 x, float8 y); -float16 __ovld __cnfn native_divide(float16 x, float16 y); +float __ovld __cnfn native_divide(float, float ); +float2 __ovld __cnfn native_divide(float2, float2 ); +float3 __ovld __cnfn native_divide(float3, float3 ); +float4 __ovld __cnfn native_divide(float4, float4 ); +float8 __ovld __cnfn native_divide(float8, float8 ); +float16 __ovld __cnfn native_divide(float16, float16 ); /** * Compute the base- e exponential of x over an @@ -9576,16 +9585,16 @@ float8 __ovld __cnfn native_log10(float8 x); float16 __ovld __cnfn native_log10(float16 x); /** - * Compute x to the power y, where x is >= 0. The range of + * Compute x to the power, where x is >= 0. The range of * x and y are implementation-defined. The maximum error * is implementation-defined. */ -float __ovld __cnfn native_powr(float x, float y); -float2 __ovld __cnfn native_powr(float2 x, float2 y); -float3 __ovld __cnfn native_powr(float3 x, float3 y); -float4 __ovld __cnfn native_powr(float4 x, float4 y); -float8 __ovld __cnfn native_powr(float8 x, float8 y); -float16 __ovld __cnfn native_powr(float16 x, float16 y); +float __ovld __cnfn native_powr(float, float ); +float2 __ovld __cnfn native_powr(float2, float2 ); +float3 __ovld __cnfn native_powr(float3, float3 ); +float4 __ovld __cnfn native_powr(float4, float4 ); +float8 __ovld __cnfn native_powr(float8, float8 ); +float16 __ovld __cnfn native_powr(float16, float16 ); /** * Compute reciprocal over an implementation-defined @@ -9699,308 +9708,308 @@ ulong16 __ovld __cnfn abs(ulong16 x); /** * Returns | x - y | without modulo overflow. */ -uchar __ovld __cnfn abs_diff(char x, char y); -uchar __ovld __cnfn abs_diff(uchar x, uchar y); -uchar2 __ovld __cnfn abs_diff(char2 x, char2 y); -uchar2 __ovld __cnfn abs_diff(uchar2 x, uchar2 y); -uchar3 __ovld __cnfn abs_diff(char3 x, char3 y); -uchar3 __ovld __cnfn abs_diff(uchar3 x, uchar3 y); -uchar4 __ovld __cnfn abs_diff(char4 x, char4 y); -uchar4 __ovld __cnfn abs_diff(uchar4 x, uchar4 y); -uchar8 __ovld __cnfn abs_diff(char8 x, char8 y); -uchar8 __ovld __cnfn abs_diff(uchar8 x, uchar8 y); -uchar16 __ovld __cnfn abs_diff(char16 x, char16 y); -uchar16 __ovld __cnfn abs_diff(uchar16 x, uchar16 y); -ushort __ovld __cnfn abs_diff(short x, short y); -ushort __ovld __cnfn abs_diff(ushort x, ushort y); -ushort2 __ovld __cnfn abs_diff(short2 x, short2 y); -ushort2 __ovld __cnfn abs_diff(ushort2 x, ushort2 y); -ushort3 __ovld __cnfn abs_diff(short3 x, short3 y); -ushort3 __ovld __cnfn abs_diff(ushort3 x, ushort3 y); -ushort4 __ovld __cnfn abs_diff(short4 x, short4 y); -ushort4 __ovld __cnfn abs_diff(ushort4 x, ushort4 y); -ushort8 __ovld __cnfn abs_diff(short8 x, short8 y); -ushort8 __ovld __cnfn abs_diff(ushort8 x, ushort8 y); -ushort16 __ovld __cnfn abs_diff(short16 x, short16 y); -ushort16 __ovld __cnfn abs_diff(ushort16 x, ushort16 y); -uint __ovld __cnfn abs_diff(int x, int y); -uint __ovld __cnfn abs_diff(uint x, uint y); -uint2 __ovld __cnfn abs_diff(int2 x, int2 y); -uint2 __ovld __cnfn abs_diff(uint2 x, uint2 y); -uint3 __ovld __cnfn abs_diff(int3 x, int3 y); -uint3 __ovld __cnfn abs_diff(uint3 x, uint3 y); -uint4 __ovld __cnfn abs_diff(int4 x, int4 y); -uint4 __ovld __cnfn abs_diff(uint4 x, uint4 y); -uint8 __ovld __cnfn abs_diff(int8 x, int8 y); -uint8 __ovld __cnfn abs_diff(uint8 x, uint8 y); -uint16 __ovld __cnfn abs_diff(int16 x, int16 y); -uint16 __ovld __cnfn abs_diff(uint16 x, uint16 y); -ulong __ovld __cnfn abs_diff(long x, long y); -ulong __ovld __cnfn abs_diff(ulong x, ulong y); -ulong2 __ovld __cnfn abs_diff(long2 x, long2 y); -ulong2 __ovld __cnfn abs_diff(ulong2 x, ulong2 y); -ulong3 __ovld __cnfn abs_diff(long3 x, long3 y); -ulong3 __ovld __cnfn abs_diff(ulong3 x, ulong3 y); -ulong4 __ovld __cnfn abs_diff(long4 x, long4 y); -ulong4 __ovld __cnfn abs_diff(ulong4 x, ulong4 y); -ulong8 __ovld __cnfn abs_diff(long8 x, long8 y); -ulong8 __ovld __cnfn abs_diff(ulong8 x, ulong8 y); -ulong16 __ovld __cnfn abs_diff(long16 x, long16 y); -ulong16 __ovld __cnfn abs_diff(ulong16 x, ulong16 y); +uchar __ovld __cnfn abs_diff(char, char ); +uchar __ovld __cnfn abs_diff(uchar, uchar ); +uchar2 __ovld __cnfn abs_diff(char2, char2 ); +uchar2 __ovld __cnfn abs_diff(uchar2, uchar2 ); +uchar3 __ovld __cnfn abs_diff(char3, char3 ); +uchar3 __ovld __cnfn abs_diff(uchar3, uchar3 ); +uchar4 __ovld __cnfn abs_diff(char4, char4 ); +uchar4 __ovld __cnfn abs_diff(uchar4, uchar4 ); +uchar8 __ovld __cnfn abs_diff(char8, char8 ); +uchar8 __ovld __cnfn abs_diff(uchar8, uchar8 ); +uchar16 __ovld __cnfn abs_diff(char16, char16 ); +uchar16 __ovld __cnfn abs_diff(uchar16, uchar16 ); +ushort __ovld __cnfn abs_diff(short, short ); +ushort __ovld __cnfn abs_diff(ushort, ushort ); +ushort2 __ovld __cnfn abs_diff(short2, short2 ); +ushort2 __ovld __cnfn abs_diff(ushort2, ushort2 ); +ushort3 __ovld __cnfn abs_diff(short3, short3 ); +ushort3 __ovld __cnfn abs_diff(ushort3, ushort3 ); +ushort4 __ovld __cnfn abs_diff(short4, short4 ); +ushort4 __ovld __cnfn abs_diff(ushort4, ushort4 ); +ushort8 __ovld __cnfn abs_diff(short8, short8 ); +ushort8 __ovld __cnfn abs_diff(ushort8, ushort8 ); +ushort16 __ovld __cnfn abs_diff(short16, short16 ); +ushort16 __ovld __cnfn abs_diff(ushort16, ushort16 ); +uint __ovld __cnfn abs_diff(int, int ); +uint __ovld __cnfn abs_diff(uint, uint ); +uint2 __ovld __cnfn abs_diff(int2, int2 ); +uint2 __ovld __cnfn abs_diff(uint2, uint2 ); +uint3 __ovld __cnfn abs_diff(int3, int3 ); +uint3 __ovld __cnfn abs_diff(uint3, uint3 ); +uint4 __ovld __cnfn abs_diff(int4, int4 ); +uint4 __ovld __cnfn abs_diff(uint4, uint4 ); +uint8 __ovld __cnfn abs_diff(int8, int8 ); +uint8 __ovld __cnfn abs_diff(uint8, uint8 ); +uint16 __ovld __cnfn abs_diff(int16, int16 ); +uint16 __ovld __cnfn abs_diff(uint16, uint16 ); +ulong __ovld __cnfn abs_diff(long, long ); +ulong __ovld __cnfn abs_diff(ulong, ulong ); +ulong2 __ovld __cnfn abs_diff(long2, long2 ); +ulong2 __ovld __cnfn abs_diff(ulong2, ulong2 ); +ulong3 __ovld __cnfn abs_diff(long3, long3 ); +ulong3 __ovld __cnfn abs_diff(ulong3, ulong3 ); +ulong4 __ovld __cnfn abs_diff(long4, long4 ); +ulong4 __ovld __cnfn abs_diff(ulong4, ulong4 ); +ulong8 __ovld __cnfn abs_diff(long8, long8 ); +ulong8 __ovld __cnfn abs_diff(ulong8, ulong8 ); +ulong16 __ovld __cnfn abs_diff(long16, long16 ); +ulong16 __ovld __cnfn abs_diff(ulong16, ulong16 ); /** * Returns x + y and saturates the result. */ -char __ovld __cnfn add_sat(char x, char y); -uchar __ovld __cnfn add_sat(uchar x, uchar y); -char2 __ovld __cnfn add_sat(char2 x, char2 y); -uchar2 __ovld __cnfn add_sat(uchar2 x, uchar2 y); -char3 __ovld __cnfn add_sat(char3 x, char3 y); -uchar3 __ovld __cnfn add_sat(uchar3 x, uchar3 y); -char4 __ovld __cnfn add_sat(char4 x, char4 y); -uchar4 __ovld __cnfn add_sat(uchar4 x, uchar4 y); -char8 __ovld __cnfn add_sat(char8 x, char8 y); -uchar8 __ovld __cnfn add_sat(uchar8 x, uchar8 y); -char16 __ovld __cnfn add_sat(char16 x, char16 y); -uchar16 __ovld __cnfn add_sat(uchar16 x, uchar16 y); -short __ovld __cnfn add_sat(short x, short y); -ushort __ovld __cnfn add_sat(ushort x, ushort y); -short2 __ovld __cnfn add_sat(short2 x, short2 y); -ushort2 __ovld __cnfn add_sat(ushort2 x, ushort2 y); -short3 __ovld __cnfn add_sat(short3 x, short3 y); -ushort3 __ovld __cnfn add_sat(ushort3 x, ushort3 y); -short4 __ovld __cnfn add_sat(short4 x, short4 y); -ushort4 __ovld __cnfn add_sat(ushort4 x, ushort4 y); -short8 __ovld __cnfn add_sat(short8 x, short8 y); -ushort8 __ovld __cnfn add_sat(ushort8 x, ushort8 y); -short16 __ovld __cnfn add_sat(short16 x, short16 y); -ushort16 __ovld __cnfn add_sat(ushort16 x, ushort16 y); -int __ovld __cnfn add_sat(int x, int y); -uint __ovld __cnfn add_sat(uint x, uint y); -int2 __ovld __cnfn add_sat(int2 x, int2 y); -uint2 __ovld __cnfn add_sat(uint2 x, uint2 y); -int3 __ovld __cnfn add_sat(int3 x, int3 y); -uint3 __ovld __cnfn add_sat(uint3 x, uint3 y); -int4 __ovld __cnfn add_sat(int4 x, int4 y); -uint4 __ovld __cnfn add_sat(uint4 x, uint4 y); -int8 __ovld __cnfn add_sat(int8 x, int8 y); -uint8 __ovld __cnfn add_sat(uint8 x, uint8 y); -int16 __ovld __cnfn add_sat(int16 x, int16 y); -uint16 __ovld __cnfn add_sat(uint16 x, uint16 y); -long __ovld __cnfn add_sat(long x, long y); -ulong __ovld __cnfn add_sat(ulong x, ulong y); -long2 __ovld __cnfn add_sat(long2 x, long2 y); -ulong2 __ovld __cnfn add_sat(ulong2 x, ulong2 y); -long3 __ovld __cnfn add_sat(long3 x, long3 y); -ulong3 __ovld __cnfn add_sat(ulong3 x, ulong3 y); -long4 __ovld __cnfn add_sat(long4 x, long4 y); -ulong4 __ovld __cnfn add_sat(ulong4 x, ulong4 y); -long8 __ovld __cnfn add_sat(long8 x, long8 y); -ulong8 __ovld __cnfn add_sat(ulong8 x, ulong8 y); -long16 __ovld __cnfn add_sat(long16 x, long16 y); -ulong16 __ovld __cnfn add_sat(ulong16 x, ulong16 y); +char __ovld __cnfn add_sat(char, char ); +uchar __ovld __cnfn add_sat(uchar, uchar ); +char2 __ovld __cnfn add_sat(char2, char2 ); +uchar2 __ovld __cnfn add_sat(uchar2, uchar2 ); +char3 __ovld __cnfn add_sat(char3, char3 ); +uchar3 __ovld __cnfn add_sat(uchar3, uchar3 ); +char4 __ovld __cnfn add_sat(char4, char4 ); +uchar4 __ovld __cnfn add_sat(uchar4, uchar4 ); +char8 __ovld __cnfn add_sat(char8, char8 ); +uchar8 __ovld __cnfn add_sat(uchar8, uchar8 ); +char16 __ovld __cnfn add_sat(char16, char16 ); +uchar16 __ovld __cnfn add_sat(uchar16, uchar16 ); +short __ovld __cnfn add_sat(short, short ); +ushort __ovld __cnfn add_sat(ushort, ushort ); +short2 __ovld __cnfn add_sat(short2, short2 ); +ushort2 __ovld __cnfn add_sat(ushort2, ushort2 ); +short3 __ovld __cnfn add_sat(short3, short3 ); +ushort3 __ovld __cnfn add_sat(ushort3, ushort3 ); +short4 __ovld __cnfn add_sat(short4, short4 ); +ushort4 __ovld __cnfn add_sat(ushort4, ushort4 ); +short8 __ovld __cnfn add_sat(short8, short8 ); +ushort8 __ovld __cnfn add_sat(ushort8, ushort8 ); +short16 __ovld __cnfn add_sat(short16, short16 ); +ushort16 __ovld __cnfn add_sat(ushort16, ushort16 ); +int __ovld __cnfn add_sat(int, int ); +uint __ovld __cnfn add_sat(uint, uint ); +int2 __ovld __cnfn add_sat(int2, int2 ); +uint2 __ovld __cnfn add_sat(uint2, uint2 ); +int3 __ovld __cnfn add_sat(int3, int3 ); +uint3 __ovld __cnfn add_sat(uint3, uint3 ); +int4 __ovld __cnfn add_sat(int4, int4 ); +uint4 __ovld __cnfn add_sat(uint4, uint4 ); +int8 __ovld __cnfn add_sat(int8, int8 ); +uint8 __ovld __cnfn add_sat(uint8, uint8 ); +int16 __ovld __cnfn add_sat(int16, int16 ); +uint16 __ovld __cnfn add_sat(uint16, uint16 ); +long __ovld __cnfn add_sat(long, long ); +ulong __ovld __cnfn add_sat(ulong, ulong ); +long2 __ovld __cnfn add_sat(long2, long2 ); +ulong2 __ovld __cnfn add_sat(ulong2, ulong2 ); +long3 __ovld __cnfn add_sat(long3, long3 ); +ulong3 __ovld __cnfn add_sat(ulong3, ulong3 ); +long4 __ovld __cnfn add_sat(long4, long4 ); +ulong4 __ovld __cnfn add_sat(ulong4, ulong4 ); +long8 __ovld __cnfn add_sat(long8, long8 ); +ulong8 __ovld __cnfn add_sat(ulong8, ulong8 ); +long16 __ovld __cnfn add_sat(long16, long16 ); +ulong16 __ovld __cnfn add_sat(ulong16, ulong16 ); /** - * Returns (x + y) >> 1. The intermediate sum does + * Returns (x + ) >> 1. The intermediate sum does * not modulo overflow. */ -char __ovld __cnfn hadd(char x, char y); -uchar __ovld __cnfn hadd(uchar x, uchar y); -char2 __ovld __cnfn hadd(char2 x, char2 y); -uchar2 __ovld __cnfn hadd(uchar2 x, uchar2 y); -char3 __ovld __cnfn hadd(char3 x, char3 y); -uchar3 __ovld __cnfn hadd(uchar3 x, uchar3 y); -char4 __ovld __cnfn hadd(char4 x, char4 y); -uchar4 __ovld __cnfn hadd(uchar4 x, uchar4 y); -char8 __ovld __cnfn hadd(char8 x, char8 y); -uchar8 __ovld __cnfn hadd(uchar8 x, uchar8 y); -char16 __ovld __cnfn hadd(char16 x, char16 y); -uchar16 __ovld __cnfn hadd(uchar16 x, uchar16 y); -short __ovld __cnfn hadd(short x, short y); -ushort __ovld __cnfn hadd(ushort x, ushort y); -short2 __ovld __cnfn hadd(short2 x, short2 y); -ushort2 __ovld __cnfn hadd(ushort2 x, ushort2 y); -short3 __ovld __cnfn hadd(short3 x, short3 y); -ushort3 __ovld __cnfn hadd(ushort3 x, ushort3 y); -short4 __ovld __cnfn hadd(short4 x, short4 y); -ushort4 __ovld __cnfn hadd(ushort4 x, ushort4 y); -short8 __ovld __cnfn hadd(short8 x, short8 y); -ushort8 __ovld __cnfn hadd(ushort8 x, ushort8 y); -short16 __ovld __cnfn hadd(short16 x, short16 y); -ushort16 __ovld __cnfn hadd(ushort16 x, ushort16 y); -int __ovld __cnfn hadd(int x, int y); -uint __ovld __cnfn hadd(uint x, uint y); -int2 __ovld __cnfn hadd(int2 x, int2 y); -uint2 __ovld __cnfn hadd(uint2 x, uint2 y); -int3 __ovld __cnfn hadd(int3 x, int3 y); -uint3 __ovld __cnfn hadd(uint3 x, uint3 y); -int4 __ovld __cnfn hadd(int4 x, int4 y); -uint4 __ovld __cnfn hadd(uint4 x, uint4 y); -int8 __ovld __cnfn hadd(int8 x, int8 y); -uint8 __ovld __cnfn hadd(uint8 x, uint8 y); -int16 __ovld __cnfn hadd(int16 x, int16 y); -uint16 __ovld __cnfn hadd(uint16 x, uint16 y); -long __ovld __cnfn hadd(long x, long y); -ulong __ovld __cnfn hadd(ulong x, ulong y); -long2 __ovld __cnfn hadd(long2 x, long2 y); -ulong2 __ovld __cnfn hadd(ulong2 x, ulong2 y); -long3 __ovld __cnfn hadd(long3 x, long3 y); -ulong3 __ovld __cnfn hadd(ulong3 x, ulong3 y); -long4 __ovld __cnfn hadd(long4 x, long4 y); -ulong4 __ovld __cnfn hadd(ulong4 x, ulong4 y); -long8 __ovld __cnfn hadd(long8 x, long8 y); -ulong8 __ovld __cnfn hadd(ulong8 x, ulong8 y); -long16 __ovld __cnfn hadd(long16 x, long16 y); -ulong16 __ovld __cnfn hadd(ulong16 x, ulong16 y); +char __ovld __cnfn hadd(char, char ); +uchar __ovld __cnfn hadd(uchar, uchar ); +char2 __ovld __cnfn hadd(char2, char2 ); +uchar2 __ovld __cnfn hadd(uchar2, uchar2 ); +char3 __ovld __cnfn hadd(char3, char3 ); +uchar3 __ovld __cnfn hadd(uchar3, uchar3 ); +char4 __ovld __cnfn hadd(char4, char4 ); +uchar4 __ovld __cnfn hadd(uchar4, uchar4 ); +char8 __ovld __cnfn hadd(char8, char8 ); +uchar8 __ovld __cnfn hadd(uchar8, uchar8 ); +char16 __ovld __cnfn hadd(char16, char16 ); +uchar16 __ovld __cnfn hadd(uchar16, uchar16 ); +short __ovld __cnfn hadd(short, short ); +ushort __ovld __cnfn hadd(ushort, ushort ); +short2 __ovld __cnfn hadd(short2, short2 ); +ushort2 __ovld __cnfn hadd(ushort2, ushort2 ); +short3 __ovld __cnfn hadd(short3, short3 ); +ushort3 __ovld __cnfn hadd(ushort3, ushort3 ); +short4 __ovld __cnfn hadd(short4, short4 ); +ushort4 __ovld __cnfn hadd(ushort4, ushort4 ); +short8 __ovld __cnfn hadd(short8, short8 ); +ushort8 __ovld __cnfn hadd(ushort8, ushort8 ); +short16 __ovld __cnfn hadd(short16, short16 ); +ushort16 __ovld __cnfn hadd(ushort16, ushort16 ); +int __ovld __cnfn hadd(int, int ); +uint __ovld __cnfn hadd(uint, uint ); +int2 __ovld __cnfn hadd(int2, int2 ); +uint2 __ovld __cnfn hadd(uint2, uint2 ); +int3 __ovld __cnfn hadd(int3, int3 ); +uint3 __ovld __cnfn hadd(uint3, uint3 ); +int4 __ovld __cnfn hadd(int4, int4 ); +uint4 __ovld __cnfn hadd(uint4, uint4 ); +int8 __ovld __cnfn hadd(int8, int8 ); +uint8 __ovld __cnfn hadd(uint8, uint8 ); +int16 __ovld __cnfn hadd(int16, int16 ); +uint16 __ovld __cnfn hadd(uint16, uint16 ); +long __ovld __cnfn hadd(long, long ); +ulong __ovld __cnfn hadd(ulong, ulong ); +long2 __ovld __cnfn hadd(long2, long2 ); +ulong2 __ovld __cnfn hadd(ulong2, ulong2 ); +long3 __ovld __cnfn hadd(long3, long3 ); +ulong3 __ovld __cnfn hadd(ulong3, ulong3 ); +long4 __ovld __cnfn hadd(long4, long4 ); +ulong4 __ovld __cnfn hadd(ulong4, ulong4 ); +long8 __ovld __cnfn hadd(long8, long8 ); +ulong8 __ovld __cnfn hadd(ulong8, ulong8 ); +long16 __ovld __cnfn hadd(long16, long16 ); +ulong16 __ovld __cnfn hadd(ulong16, ulong16 ); /** * Returns (x + y + 1) >> 1. The intermediate sum * does not modulo overflow. */ -char __ovld __cnfn rhadd(char x, char y); -uchar __ovld __cnfn rhadd(uchar x, uchar y); -char2 __ovld __cnfn rhadd(char2 x, char2 y); -uchar2 __ovld __cnfn rhadd(uchar2 x, uchar2 y); -char3 __ovld __cnfn rhadd(char3 x, char3 y); -uchar3 __ovld __cnfn rhadd(uchar3 x, uchar3 y); -char4 __ovld __cnfn rhadd(char4 x, char4 y); -uchar4 __ovld __cnfn rhadd(uchar4 x, uchar4 y); -char8 __ovld __cnfn rhadd(char8 x, char8 y); -uchar8 __ovld __cnfn rhadd(uchar8 x, uchar8 y); -char16 __ovld __cnfn rhadd(char16 x, char16 y); -uchar16 __ovld __cnfn rhadd(uchar16 x, uchar16 y); -short __ovld __cnfn rhadd(short x, short y); -ushort __ovld __cnfn rhadd(ushort x, ushort y); -short2 __ovld __cnfn rhadd(short2 x, short2 y); -ushort2 __ovld __cnfn rhadd(ushort2 x, ushort2 y); -short3 __ovld __cnfn rhadd(short3 x, short3 y); -ushort3 __ovld __cnfn rhadd(ushort3 x, ushort3 y); -short4 __ovld __cnfn rhadd(short4 x, short4 y); -ushort4 __ovld __cnfn rhadd(ushort4 x, ushort4 y); -short8 __ovld __cnfn rhadd(short8 x, short8 y); -ushort8 __ovld __cnfn rhadd(ushort8 x, ushort8 y); -short16 __ovld __cnfn rhadd(short16 x, short16 y); -ushort16 __ovld __cnfn rhadd(ushort16 x, ushort16 y); -int __ovld __cnfn rhadd(int x, int y); -uint __ovld __cnfn rhadd(uint x, uint y); -int2 __ovld __cnfn rhadd(int2 x, int2 y); -uint2 __ovld __cnfn rhadd(uint2 x, uint2 y); -int3 __ovld __cnfn rhadd(int3 x, int3 y); -uint3 __ovld __cnfn rhadd(uint3 x, uint3 y); -int4 __ovld __cnfn rhadd(int4 x, int4 y); -uint4 __ovld __cnfn rhadd(uint4 x, uint4 y); -int8 __ovld __cnfn rhadd(int8 x, int8 y); -uint8 __ovld __cnfn rhadd(uint8 x, uint8 y); -int16 __ovld __cnfn rhadd(int16 x, int16 y); -uint16 __ovld __cnfn rhadd(uint16 x, uint16 y); -long __ovld __cnfn rhadd(long x, long y); -ulong __ovld __cnfn rhadd(ulong x, ulong y); -long2 __ovld __cnfn rhadd(long2 x, long2 y); -ulong2 __ovld __cnfn rhadd(ulong2 x, ulong2 y); -long3 __ovld __cnfn rhadd(long3 x, long3 y); -ulong3 __ovld __cnfn rhadd(ulong3 x, ulong3 y); -long4 __ovld __cnfn rhadd(long4 x, long4 y); -ulong4 __ovld __cnfn rhadd(ulong4 x, ulong4 y); -long8 __ovld __cnfn rhadd(long8 x, long8 y); -ulong8 __ovld __cnfn rhadd(ulong8 x, ulong8 y); -long16 __ovld __cnfn rhadd(long16 x, long16 y); -ulong16 __ovld __cnfn rhadd(ulong16 x, ulong16 y); +char __ovld __cnfn rhadd(char, char ); +uchar __ovld __cnfn rhadd(uchar, uchar ); +char2 __ovld __cnfn rhadd(char2, char2 ); +uchar2 __ovld __cnfn rhadd(uchar2, uchar2 ); +char3 __ovld __cnfn rhadd(char3, char3 ); +uchar3 __ovld __cnfn rhadd(uchar3, uchar3 ); +char4 __ovld __cnfn rhadd(char4, char4 ); +uchar4 __ovld __cnfn rhadd(uchar4, uchar4 ); +char8 __ovld __cnfn rhadd(char8, char8 ); +uchar8 __ovld __cnfn rhadd(uchar8, uchar8 ); +char16 __ovld __cnfn rhadd(char16, char16 ); +uchar16 __ovld __cnfn rhadd(uchar16, uchar16 ); +short __ovld __cnfn rhadd(short, short ); +ushort __ovld __cnfn rhadd(ushort, ushort ); +short2 __ovld __cnfn rhadd(short2, short2 ); +ushort2 __ovld __cnfn rhadd(ushort2, ushort2 ); +short3 __ovld __cnfn rhadd(short3, short3 ); +ushort3 __ovld __cnfn rhadd(ushort3, ushort3 ); +short4 __ovld __cnfn rhadd(short4, short4 ); +ushort4 __ovld __cnfn rhadd(ushort4, ushort4 ); +short8 __ovld __cnfn rhadd(short8, short8 ); +ushort8 __ovld __cnfn rhadd(ushort8, ushort8 ); +short16 __ovld __cnfn rhadd(short16, short16 ); +ushort16 __ovld __cnfn rhadd(ushort16, ushort16 ); +int __ovld __cnfn rhadd(int, int ); +uint __ovld __cnfn rhadd(uint, uint ); +int2 __ovld __cnfn rhadd(int2, int2 ); +uint2 __ovld __cnfn rhadd(uint2, uint2 ); +int3 __ovld __cnfn rhadd(int3, int3 ); +uint3 __ovld __cnfn rhadd(uint3, uint3 ); +int4 __ovld __cnfn rhadd(int4, int4 ); +uint4 __ovld __cnfn rhadd(uint4, uint4 ); +int8 __ovld __cnfn rhadd(int8, int8 ); +uint8 __ovld __cnfn rhadd(uint8, uint8 ); +int16 __ovld __cnfn rhadd(int16, int16 ); +uint16 __ovld __cnfn rhadd(uint16, uint16 ); +long __ovld __cnfn rhadd(long, long ); +ulong __ovld __cnfn rhadd(ulong, ulong ); +long2 __ovld __cnfn rhadd(long2, long2 ); +ulong2 __ovld __cnfn rhadd(ulong2, ulong2 ); +long3 __ovld __cnfn rhadd(long3, long3 ); +ulong3 __ovld __cnfn rhadd(ulong3, ulong3 ); +long4 __ovld __cnfn rhadd(long4, long4 ); +ulong4 __ovld __cnfn rhadd(ulong4, ulong4 ); +long8 __ovld __cnfn rhadd(long8, long8 ); +ulong8 __ovld __cnfn rhadd(ulong8, ulong8 ); +long16 __ovld __cnfn rhadd(long16, long16 ); +ulong16 __ovld __cnfn rhadd(ulong16, ulong16 ); /** * Returns min(max(x, minval), maxval). * Results are undefined if minval > maxval. */ -char __ovld __cnfn clamp(char x, char minval, char maxval); -uchar __ovld __cnfn clamp(uchar x, uchar minval, uchar maxval); -char2 __ovld __cnfn clamp(char2 x, char2 minval, char2 maxval); -uchar2 __ovld __cnfn clamp(uchar2 x, uchar2 minval, uchar2 maxval); -char3 __ovld __cnfn clamp(char3 x, char3 minval, char3 maxval); -uchar3 __ovld __cnfn clamp(uchar3 x, uchar3 minval, uchar3 maxval); -char4 __ovld __cnfn clamp(char4 x, char4 minval, char4 maxval); -uchar4 __ovld __cnfn clamp(uchar4 x, uchar4 minval, uchar4 maxval); -char8 __ovld __cnfn clamp(char8 x, char8 minval, char8 maxval); -uchar8 __ovld __cnfn clamp(uchar8 x, uchar8 minval, uchar8 maxval); -char16 __ovld __cnfn clamp(char16 x, char16 minval, char16 maxval); -uchar16 __ovld __cnfn clamp(uchar16 x, uchar16 minval, uchar16 maxval); -short __ovld __cnfn clamp(short x, short minval, short maxval); -ushort __ovld __cnfn clamp(ushort x, ushort minval, ushort maxval); -short2 __ovld __cnfn clamp(short2 x, short2 minval, short2 maxval); -ushort2 __ovld __cnfn clamp(ushort2 x, ushort2 minval, ushort2 maxval); -short3 __ovld __cnfn clamp(short3 x, short3 minval, short3 maxval); -ushort3 __ovld __cnfn clamp(ushort3 x, ushort3 minval, ushort3 maxval); -short4 __ovld __cnfn clamp(short4 x, short4 minval, short4 maxval); -ushort4 __ovld __cnfn clamp(ushort4 x, ushort4 minval, ushort4 maxval); -short8 __ovld __cnfn clamp(short8 x, short8 minval, short8 maxval); -ushort8 __ovld __cnfn clamp(ushort8 x, ushort8 minval, ushort8 maxval); -short16 __ovld __cnfn clamp(short16 x, short16 minval, short16 maxval); -ushort16 __ovld __cnfn clamp(ushort16 x, ushort16 minval, ushort16 maxval); -int __ovld __cnfn clamp(int x, int minval, int maxval); -uint __ovld __cnfn clamp(uint x, uint minval, uint maxval); -int2 __ovld __cnfn clamp(int2 x, int2 minval, int2 maxval); -uint2 __ovld __cnfn clamp(uint2 x, uint2 minval, uint2 maxval); -int3 __ovld __cnfn clamp(int3 x, int3 minval, int3 maxval); -uint3 __ovld __cnfn clamp(uint3 x, uint3 minval, uint3 maxval); -int4 __ovld __cnfn clamp(int4 x, int4 minval, int4 maxval); -uint4 __ovld __cnfn clamp(uint4 x, uint4 minval, uint4 maxval); -int8 __ovld __cnfn clamp(int8 x, int8 minval, int8 maxval); -uint8 __ovld __cnfn clamp(uint8 x, uint8 minval, uint8 maxval); -int16 __ovld __cnfn clamp(int16 x, int16 minval, int16 maxval); -uint16 __ovld __cnfn clamp(uint16 x, uint16 minval, uint16 maxval); -long __ovld __cnfn clamp(long x, long minval, long maxval); -ulong __ovld __cnfn clamp(ulong x, ulong minval, ulong maxval); -long2 __ovld __cnfn clamp(long2 x, long2 minval, long2 maxval); -ulong2 __ovld __cnfn clamp(ulong2 x, ulong2 minval, ulong2 maxval); -long3 __ovld __cnfn clamp(long3 x, long3 minval, long3 maxval); -ulong3 __ovld __cnfn clamp(ulong3 x, ulong3 minval, ulong3 maxval); -long4 __ovld __cnfn clamp(long4 x, long4 minval, long4 maxval); -ulong4 __ovld __cnfn clamp(ulong4 x, ulong4 minval, ulong4 maxval); -long8 __ovld __cnfn clamp(long8 x, long8 minval, long8 maxval); -ulong8 __ovld __cnfn clamp(ulong8 x, ulong8 minval, ulong8 maxval); -long16 __ovld __cnfn clamp(long16 x, long16 minval, long16 maxval); -ulong16 __ovld __cnfn clamp(ulong16 x, ulong16 minval, ulong16 maxval); -char2 __ovld __cnfn clamp(char2 x, char minval, char maxval); -uchar2 __ovld __cnfn clamp(uchar2 x, uchar minval, uchar maxval); -char3 __ovld __cnfn clamp(char3 x, char minval, char maxval); -uchar3 __ovld __cnfn clamp(uchar3 x, uchar minval, uchar maxval); -char4 __ovld __cnfn clamp(char4 x, char minval, char maxval); -uchar4 __ovld __cnfn clamp(uchar4 x, uchar minval, uchar maxval); -char8 __ovld __cnfn clamp(char8 x, char minval, char maxval); -uchar8 __ovld __cnfn clamp(uchar8 x, uchar minval, uchar maxval); -char16 __ovld __cnfn clamp(char16 x, char minval, char maxval); -uchar16 __ovld __cnfn clamp(uchar16 x, uchar minval, uchar maxval); -short2 __ovld __cnfn clamp(short2 x, short minval, short maxval); -ushort2 __ovld __cnfn clamp(ushort2 x, ushort minval, ushort maxval); -short3 __ovld __cnfn clamp(short3 x, short minval, short maxval); -ushort3 __ovld __cnfn clamp(ushort3 x, ushort minval, ushort maxval); -short4 __ovld __cnfn clamp(short4 x, short minval, short maxval); -ushort4 __ovld __cnfn clamp(ushort4 x, ushort minval, ushort maxval); -short8 __ovld __cnfn clamp(short8 x, short minval, short maxval); -ushort8 __ovld __cnfn clamp(ushort8 x, ushort minval, ushort maxval); -short16 __ovld __cnfn clamp(short16 x, short minval, short maxval); -ushort16 __ovld __cnfn clamp(ushort16 x, ushort minval, ushort maxval); -int2 __ovld __cnfn clamp(int2 x, int minval, int maxval); -uint2 __ovld __cnfn clamp(uint2 x, uint minval, uint maxval); -int3 __ovld __cnfn clamp(int3 x, int minval, int maxval); -uint3 __ovld __cnfn clamp(uint3 x, uint minval, uint maxval); -int4 __ovld __cnfn clamp(int4 x, int minval, int maxval); -uint4 __ovld __cnfn clamp(uint4 x, uint minval, uint maxval); -int8 __ovld __cnfn clamp(int8 x, int minval, int maxval); -uint8 __ovld __cnfn clamp(uint8 x, uint minval, uint maxval); -int16 __ovld __cnfn clamp(int16 x, int minval, int maxval); -uint16 __ovld __cnfn clamp(uint16 x, uint minval, uint maxval); -long2 __ovld __cnfn clamp(long2 x, long minval, long maxval); -ulong2 __ovld __cnfn clamp(ulong2 x, ulong minval, ulong maxval); -long3 __ovld __cnfn clamp(long3 x, long minval, long maxval); -ulong3 __ovld __cnfn clamp(ulong3 x, ulong minval, ulong maxval); -long4 __ovld __cnfn clamp(long4 x, long minval, long maxval); -ulong4 __ovld __cnfn clamp(ulong4 x, ulong minval, ulong maxval); -long8 __ovld __cnfn clamp(long8 x, long minval, long maxval); -ulong8 __ovld __cnfn clamp(ulong8 x, ulong minval, ulong maxval); -long16 __ovld __cnfn clamp(long16 x, long minval, long maxval); -ulong16 __ovld __cnfn clamp(ulong16 x, ulong minval, ulong maxval); +char __ovld __cnfn clamp(char, char, char); +uchar __ovld __cnfn clamp(uchar, uchar, uchar); +char2 __ovld __cnfn clamp(char2, char2, char2); +uchar2 __ovld __cnfn clamp(uchar2, uchar2, uchar2); +char3 __ovld __cnfn clamp(char3, char3, char3); +uchar3 __ovld __cnfn clamp(uchar3, uchar3, uchar3); +char4 __ovld __cnfn clamp(char4, char4, char4); +uchar4 __ovld __cnfn clamp(uchar4, uchar4, uchar4); +char8 __ovld __cnfn clamp(char8, char8, char8); +uchar8 __ovld __cnfn clamp(uchar8, uchar8, uchar8); +char16 __ovld __cnfn clamp(char16, char16, char16); +uchar16 __ovld __cnfn clamp(uchar16, uchar16, uchar16); +short __ovld __cnfn clamp(short, short, short); +ushort __ovld __cnfn clamp(ushort, ushort, ushort); +short2 __ovld __cnfn clamp(short2, short2, short2); +ushort2 __ovld __cnfn clamp(ushort2, ushort2, ushort2); +short3 __ovld __cnfn clamp(short3, short3, short3); +ushort3 __ovld __cnfn clamp(ushort3, ushort3, ushort3); +short4 __ovld __cnfn clamp(short4, short4, short4); +ushort4 __ovld __cnfn clamp(ushort4, ushort4, ushort4); +short8 __ovld __cnfn clamp(short8, short8, short8); +ushort8 __ovld __cnfn clamp(ushort8, ushort8, ushort8); +short16 __ovld __cnfn clamp(short16, short16, short16); +ushort16 __ovld __cnfn clamp(ushort16, ushort16, ushort16); +int __ovld __cnfn clamp(int, int, int); +uint __ovld __cnfn clamp(uint, uint, uint); +int2 __ovld __cnfn clamp(int2, int2, int2); +uint2 __ovld __cnfn clamp(uint2, uint2, uint2); +int3 __ovld __cnfn clamp(int3, int3, int3); +uint3 __ovld __cnfn clamp(uint3, uint3, uint3); +int4 __ovld __cnfn clamp(int4, int4, int4); +uint4 __ovld __cnfn clamp(uint4, uint4, uint4); +int8 __ovld __cnfn clamp(int8, int8, int8); +uint8 __ovld __cnfn clamp(uint8, uint8, uint8); +int16 __ovld __cnfn clamp(int16, int16, int16); +uint16 __ovld __cnfn clamp(uint16, uint16, uint16); +long __ovld __cnfn clamp(long, long, long); +ulong __ovld __cnfn clamp(ulong, ulong, ulong); +long2 __ovld __cnfn clamp(long2, long2, long2); +ulong2 __ovld __cnfn clamp(ulong2, ulong2, ulong2); +long3 __ovld __cnfn clamp(long3, long3, long3); +ulong3 __ovld __cnfn clamp(ulong3, ulong3, ulong3); +long4 __ovld __cnfn clamp(long4, long4, long4); +ulong4 __ovld __cnfn clamp(ulong4, ulong4, ulong4); +long8 __ovld __cnfn clamp(long8, long8, long8); +ulong8 __ovld __cnfn clamp(ulong8, ulong8, ulong8); +long16 __ovld __cnfn clamp(long16, long16, long16); +ulong16 __ovld __cnfn clamp(ulong16, ulong16, ulong16); +char2 __ovld __cnfn clamp(char2, char, char); +uchar2 __ovld __cnfn clamp(uchar2, uchar, uchar); +char3 __ovld __cnfn clamp(char3, char, char); +uchar3 __ovld __cnfn clamp(uchar3, uchar, uchar); +char4 __ovld __cnfn clamp(char4, char, char); +uchar4 __ovld __cnfn clamp(uchar4, uchar, uchar); +char8 __ovld __cnfn clamp(char8, char, char); +uchar8 __ovld __cnfn clamp(uchar8, uchar, uchar); +char16 __ovld __cnfn clamp(char16, char, char); +uchar16 __ovld __cnfn clamp(uchar16, uchar, uchar); +short2 __ovld __cnfn clamp(short2, short, short); +ushort2 __ovld __cnfn clamp(ushort2, ushort, ushort); +short3 __ovld __cnfn clamp(short3, short, short); +ushort3 __ovld __cnfn clamp(ushort3, ushort, ushort); +short4 __ovld __cnfn clamp(short4, short, short); +ushort4 __ovld __cnfn clamp(ushort4, ushort, ushort); +short8 __ovld __cnfn clamp(short8, short, short); +ushort8 __ovld __cnfn clamp(ushort8, ushort, ushort); +short16 __ovld __cnfn clamp(short16, short, short); +ushort16 __ovld __cnfn clamp(ushort16, ushort, ushort); +int2 __ovld __cnfn clamp(int2, int, int); +uint2 __ovld __cnfn clamp(uint2, uint, uint); +int3 __ovld __cnfn clamp(int3, int, int); +uint3 __ovld __cnfn clamp(uint3, uint, uint); +int4 __ovld __cnfn clamp(int4, int, int); +uint4 __ovld __cnfn clamp(uint4, uint, uint); +int8 __ovld __cnfn clamp(int8, int, int); +uint8 __ovld __cnfn clamp(uint8, uint, uint); +int16 __ovld __cnfn clamp(int16, int, int); +uint16 __ovld __cnfn clamp(uint16, uint, uint); +long2 __ovld __cnfn clamp(long2, long, long); +ulong2 __ovld __cnfn clamp(ulong2, ulong, ulong); +long3 __ovld __cnfn clamp(long3, long, long); +ulong3 __ovld __cnfn clamp(ulong3, ulong, ulong); +long4 __ovld __cnfn clamp(long4, long, long); +ulong4 __ovld __cnfn clamp(ulong4, ulong, ulong); +long8 __ovld __cnfn clamp(long8, long, long); +ulong8 __ovld __cnfn clamp(ulong8, ulong, ulong); +long16 __ovld __cnfn clamp(long16, long, long); +ulong16 __ovld __cnfn clamp(ulong16, ulong, ulong); /** - * Returns the number of leading 0-bits in x, starting + * Returns the number of leading 0-bits in, starting * at the most significant bit position. */ char __ovld __cnfn clz(char x); @@ -10055,399 +10064,399 @@ ulong16 __ovld __cnfn clz(ulong16 x); /** * Returns the count of trailing 0-bits in x. If x is 0, * returns the size in bits of the type of x or - * component type of x, if x is a vector. + * component type of, if x is a vector. */ #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -char __ovld ctz(char x); -uchar __ovld ctz(uchar x); -char2 __ovld ctz(char2 x); -uchar2 __ovld ctz(uchar2 x); -char3 __ovld ctz(char3 x); -uchar3 __ovld ctz(uchar3 x); -char4 __ovld ctz(char4 x); -uchar4 __ovld ctz(uchar4 x); -char8 __ovld ctz(char8 x); -uchar8 __ovld ctz(uchar8 x); -char16 __ovld ctz(char16 x); -uchar16 __ovld ctz(uchar16 x); -short __ovld ctz(short x); -ushort __ovld ctz(ushort x); -short2 __ovld ctz(short2 x); -ushort2 __ovld ctz(ushort2 x); -short3 __ovld ctz(short3 x); -ushort3 __ovld ctz(ushort3 x); -short4 __ovld ctz(short4 x); -ushort4 __ovld ctz(ushort4 x); -short8 __ovld ctz(short8 x); -ushort8 __ovld ctz(ushort8 x); -short16 __ovld ctz(short16 x); -ushort16 __ovld ctz(ushort16 x); -int __ovld ctz(int x); -uint __ovld ctz(uint x); -int2 __ovld ctz(int2 x); -uint2 __ovld ctz(uint2 x); -int3 __ovld ctz(int3 x); -uint3 __ovld ctz(uint3 x); -int4 __ovld ctz(int4 x); -uint4 __ovld ctz(uint4 x); -int8 __ovld ctz(int8 x); -uint8 __ovld ctz(uint8 x); -int16 __ovld ctz(int16 x); -uint16 __ovld ctz(uint16 x); -long __ovld ctz(long x); -ulong __ovld ctz(ulong x); -long2 __ovld ctz(long2 x); -ulong2 __ovld ctz(ulong2 x); -long3 __ovld ctz(long3 x); -ulong3 __ovld ctz(ulong3 x); -long4 __ovld ctz(long4 x); -ulong4 __ovld ctz(ulong4 x); -long8 __ovld ctz(long8 x); -ulong8 __ovld ctz(ulong8 x); -long16 __ovld ctz(long16 x); -ulong16 __ovld ctz(ulong16 x); +char __ovld __cnfn ctz(char x); +uchar __ovld __cnfn ctz(uchar x); +char2 __ovld __cnfn ctz(char2 x); +uchar2 __ovld __cnfn ctz(uchar2 x); +char3 __ovld __cnfn ctz(char3 x); +uchar3 __ovld __cnfn ctz(uchar3 x); +char4 __ovld __cnfn ctz(char4 x); +uchar4 __ovld __cnfn ctz(uchar4 x); +char8 __ovld __cnfn ctz(char8 x); +uchar8 __ovld __cnfn ctz(uchar8 x); +char16 __ovld __cnfn ctz(char16 x); +uchar16 __ovld __cnfn ctz(uchar16 x); +short __ovld __cnfn ctz(short x); +ushort __ovld __cnfn ctz(ushort x); +short2 __ovld __cnfn ctz(short2 x); +ushort2 __ovld __cnfn ctz(ushort2 x); +short3 __ovld __cnfn ctz(short3 x); +ushort3 __ovld __cnfn ctz(ushort3 x); +short4 __ovld __cnfn ctz(short4 x); +ushort4 __ovld __cnfn ctz(ushort4 x); +short8 __ovld __cnfn ctz(short8 x); +ushort8 __ovld __cnfn ctz(ushort8 x); +short16 __ovld __cnfn ctz(short16 x); +ushort16 __ovld __cnfn ctz(ushort16 x); +int __ovld __cnfn ctz(int x); +uint __ovld __cnfn ctz(uint x); +int2 __ovld __cnfn ctz(int2 x); +uint2 __ovld __cnfn ctz(uint2 x); +int3 __ovld __cnfn ctz(int3 x); +uint3 __ovld __cnfn ctz(uint3 x); +int4 __ovld __cnfn ctz(int4 x); +uint4 __ovld __cnfn ctz(uint4 x); +int8 __ovld __cnfn ctz(int8 x); +uint8 __ovld __cnfn ctz(uint8 x); +int16 __ovld __cnfn ctz(int16 x); +uint16 __ovld __cnfn ctz(uint16 x); +long __ovld __cnfn ctz(long x); +ulong __ovld __cnfn ctz(ulong x); +long2 __ovld __cnfn ctz(long2 x); +ulong2 __ovld __cnfn ctz(ulong2 x); +long3 __ovld __cnfn ctz(long3 x); +ulong3 __ovld __cnfn ctz(ulong3 x); +long4 __ovld __cnfn ctz(long4 x); +ulong4 __ovld __cnfn ctz(ulong4 x); +long8 __ovld __cnfn ctz(long8 x); +ulong8 __ovld __cnfn ctz(ulong8 x); +long16 __ovld __cnfn ctz(long16 x); +ulong16 __ovld __cnfn ctz(ulong16 x); #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) /** * Returns mul_hi(a, b) + c. */ -char __ovld __cnfn mad_hi(char a, char b, char c); -uchar __ovld __cnfn mad_hi(uchar a, uchar b, uchar c); -char2 __ovld __cnfn mad_hi(char2 a, char2 b, char2 c); -uchar2 __ovld __cnfn mad_hi(uchar2 a, uchar2 b, uchar2 c); -char3 __ovld __cnfn mad_hi(char3 a, char3 b, char3 c); -uchar3 __ovld __cnfn mad_hi(uchar3 a, uchar3 b, uchar3 c); -char4 __ovld __cnfn mad_hi(char4 a, char4 b, char4 c); -uchar4 __ovld __cnfn mad_hi(uchar4 a, uchar4 b, uchar4 c); -char8 __ovld __cnfn mad_hi(char8 a, char8 b, char8 c); -uchar8 __ovld __cnfn mad_hi(uchar8 a, uchar8 b, uchar8 c); -char16 __ovld __cnfn mad_hi(char16 a, char16 b, char16 c); -uchar16 __ovld __cnfn mad_hi(uchar16 a, uchar16 b, uchar16 c); -short __ovld __cnfn mad_hi(short a, short b, short c); -ushort __ovld __cnfn mad_hi(ushort a, ushort b, ushort c); -short2 __ovld __cnfn mad_hi(short2 a, short2 b, short2 c); -ushort2 __ovld __cnfn mad_hi(ushort2 a, ushort2 b, ushort2 c); -short3 __ovld __cnfn mad_hi(short3 a, short3 b, short3 c); -ushort3 __ovld __cnfn mad_hi(ushort3 a, ushort3 b, ushort3 c); -short4 __ovld __cnfn mad_hi(short4 a, short4 b, short4 c); -ushort4 __ovld __cnfn mad_hi(ushort4 a, ushort4 b, ushort4 c); -short8 __ovld __cnfn mad_hi(short8 a, short8 b, short8 c); -ushort8 __ovld __cnfn mad_hi(ushort8 a, ushort8 b, ushort8 c); -short16 __ovld __cnfn mad_hi(short16 a, short16 b, short16 c); -ushort16 __ovld __cnfn mad_hi(ushort16 a, ushort16 b, ushort16 c); -int __ovld __cnfn mad_hi(int a, int b, int c); -uint __ovld __cnfn mad_hi(uint a, uint b, uint c); -int2 __ovld __cnfn mad_hi(int2 a, int2 b, int2 c); -uint2 __ovld __cnfn mad_hi(uint2 a, uint2 b, uint2 c); -int3 __ovld __cnfn mad_hi(int3 a, int3 b, int3 c); -uint3 __ovld __cnfn mad_hi(uint3 a, uint3 b, uint3 c); -int4 __ovld __cnfn mad_hi(int4 a, int4 b, int4 c); -uint4 __ovld __cnfn mad_hi(uint4 a, uint4 b, uint4 c); -int8 __ovld __cnfn mad_hi(int8 a, int8 b, int8 c); -uint8 __ovld __cnfn mad_hi(uint8 a, uint8 b, uint8 c); -int16 __ovld __cnfn mad_hi(int16 a, int16 b, int16 c); -uint16 __ovld __cnfn mad_hi(uint16 a, uint16 b, uint16 c); -long __ovld __cnfn mad_hi(long a, long b, long c); -ulong __ovld __cnfn mad_hi(ulong a, ulong b, ulong c); -long2 __ovld __cnfn mad_hi(long2 a, long2 b, long2 c); -ulong2 __ovld __cnfn mad_hi(ulong2 a, ulong2 b, ulong2 c); -long3 __ovld __cnfn mad_hi(long3 a, long3 b, long3 c); -ulong3 __ovld __cnfn mad_hi(ulong3 a, ulong3 b, ulong3 c); -long4 __ovld __cnfn mad_hi(long4 a, long4 b, long4 c); -ulong4 __ovld __cnfn mad_hi(ulong4 a, ulong4 b, ulong4 c); -long8 __ovld __cnfn mad_hi(long8 a, long8 b, long8 c); -ulong8 __ovld __cnfn mad_hi(ulong8 a, ulong8 b, ulong8 c); -long16 __ovld __cnfn mad_hi(long16 a, long16 b, long16 c); -ulong16 __ovld __cnfn mad_hi(ulong16 a, ulong16 b, ulong16 c); +char __ovld __cnfn mad_hi(char, char, char); +uchar __ovld __cnfn mad_hi(uchar, uchar, uchar); +char2 __ovld __cnfn mad_hi(char2, char2, char2); +uchar2 __ovld __cnfn mad_hi(uchar2, uchar2, uchar2); +char3 __ovld __cnfn mad_hi(char3, char3, char3); +uchar3 __ovld __cnfn mad_hi(uchar3, uchar3, uchar3); +char4 __ovld __cnfn mad_hi(char4, char4, char4); +uchar4 __ovld __cnfn mad_hi(uchar4, uchar4, uchar4); +char8 __ovld __cnfn mad_hi(char8, char8, char8); +uchar8 __ovld __cnfn mad_hi(uchar8, uchar8, uchar8); +char16 __ovld __cnfn mad_hi(char16, char16, char16); +uchar16 __ovld __cnfn mad_hi(uchar16, uchar16, uchar16); +short __ovld __cnfn mad_hi(short, short, short); +ushort __ovld __cnfn mad_hi(ushort, ushort, ushort); +short2 __ovld __cnfn mad_hi(short2, short2, short2); +ushort2 __ovld __cnfn mad_hi(ushort2, ushort2, ushort2); +short3 __ovld __cnfn mad_hi(short3, short3, short3); +ushort3 __ovld __cnfn mad_hi(ushort3, ushort3, ushort3); +short4 __ovld __cnfn mad_hi(short4, short4, short4); +ushort4 __ovld __cnfn mad_hi(ushort4, ushort4, ushort4); +short8 __ovld __cnfn mad_hi(short8, short8, short8); +ushort8 __ovld __cnfn mad_hi(ushort8, ushort8, ushort8); +short16 __ovld __cnfn mad_hi(short16, short16, short16); +ushort16 __ovld __cnfn mad_hi(ushort16, ushort16, ushort16); +int __ovld __cnfn mad_hi(int, int, int); +uint __ovld __cnfn mad_hi(uint, uint, uint); +int2 __ovld __cnfn mad_hi(int2, int2, int2); +uint2 __ovld __cnfn mad_hi(uint2, uint2, uint2); +int3 __ovld __cnfn mad_hi(int3, int3, int3); +uint3 __ovld __cnfn mad_hi(uint3, uint3, uint3); +int4 __ovld __cnfn mad_hi(int4, int4, int4); +uint4 __ovld __cnfn mad_hi(uint4, uint4, uint4); +int8 __ovld __cnfn mad_hi(int8, int8, int8); +uint8 __ovld __cnfn mad_hi(uint8, uint8, uint8); +int16 __ovld __cnfn mad_hi(int16, int16, int16); +uint16 __ovld __cnfn mad_hi(uint16, uint16, uint16); +long __ovld __cnfn mad_hi(long, long, long); +ulong __ovld __cnfn mad_hi(ulong, ulong, ulong); +long2 __ovld __cnfn mad_hi(long2, long2, long2); +ulong2 __ovld __cnfn mad_hi(ulong2, ulong2, ulong2); +long3 __ovld __cnfn mad_hi(long3, long3, long3); +ulong3 __ovld __cnfn mad_hi(ulong3, ulong3, ulong3); +long4 __ovld __cnfn mad_hi(long4, long4, long4); +ulong4 __ovld __cnfn mad_hi(ulong4, ulong4, ulong4); +long8 __ovld __cnfn mad_hi(long8, long8, long8); +ulong8 __ovld __cnfn mad_hi(ulong8, ulong8, ulong8); +long16 __ovld __cnfn mad_hi(long16, long16, long16); +ulong16 __ovld __cnfn mad_hi(ulong16, ulong16, ulong16); /** * Returns a * b + c and saturates the result. */ -char __ovld __cnfn mad_sat(char a, char b, char c); -uchar __ovld __cnfn mad_sat(uchar a, uchar b, uchar c); -char2 __ovld __cnfn mad_sat(char2 a, char2 b, char2 c); -uchar2 __ovld __cnfn mad_sat(uchar2 a, uchar2 b, uchar2 c); -char3 __ovld __cnfn mad_sat(char3 a, char3 b, char3 c); -uchar3 __ovld __cnfn mad_sat(uchar3 a, uchar3 b, uchar3 c); -char4 __ovld __cnfn mad_sat(char4 a, char4 b, char4 c); -uchar4 __ovld __cnfn mad_sat(uchar4 a, uchar4 b, uchar4 c); -char8 __ovld __cnfn mad_sat(char8 a, char8 b, char8 c); -uchar8 __ovld __cnfn mad_sat(uchar8 a, uchar8 b, uchar8 c); -char16 __ovld __cnfn mad_sat(char16 a, char16 b, char16 c); -uchar16 __ovld __cnfn mad_sat(uchar16 a, uchar16 b, uchar16 c); -short __ovld __cnfn mad_sat(short a, short b, short c); -ushort __ovld __cnfn mad_sat(ushort a, ushort b, ushort c); -short2 __ovld __cnfn mad_sat(short2 a, short2 b, short2 c); -ushort2 __ovld __cnfn mad_sat(ushort2 a, ushort2 b, ushort2 c); -short3 __ovld __cnfn mad_sat(short3 a, short3 b, short3 c); -ushort3 __ovld __cnfn mad_sat(ushort3 a, ushort3 b, ushort3 c); -short4 __ovld __cnfn mad_sat(short4 a, short4 b, short4 c); -ushort4 __ovld __cnfn mad_sat(ushort4 a, ushort4 b, ushort4 c); -short8 __ovld __cnfn mad_sat(short8 a, short8 b, short8 c); -ushort8 __ovld __cnfn mad_sat(ushort8 a, ushort8 b, ushort8 c); -short16 __ovld __cnfn mad_sat(short16 a, short16 b, short16 c); -ushort16 __ovld __cnfn mad_sat(ushort16 a, ushort16 b, ushort16 c); -int __ovld __cnfn mad_sat(int a, int b, int c); -uint __ovld __cnfn mad_sat(uint a, uint b, uint c); -int2 __ovld __cnfn mad_sat(int2 a, int2 b, int2 c); -uint2 __ovld __cnfn mad_sat(uint2 a, uint2 b, uint2 c); -int3 __ovld __cnfn mad_sat(int3 a, int3 b, int3 c); -uint3 __ovld __cnfn mad_sat(uint3 a, uint3 b, uint3 c); -int4 __ovld __cnfn mad_sat(int4 a, int4 b, int4 c); -uint4 __ovld __cnfn mad_sat(uint4 a, uint4 b, uint4 c); -int8 __ovld __cnfn mad_sat(int8 a, int8 b, int8 c); -uint8 __ovld __cnfn mad_sat(uint8 a, uint8 b, uint8 c); -int16 __ovld __cnfn mad_sat(int16 a, int16 b, int16 c); -uint16 __ovld __cnfn mad_sat(uint16 a, uint16 b, uint16 c); -long __ovld __cnfn mad_sat(long a, long b, long c); -ulong __ovld __cnfn mad_sat(ulong a, ulong b, ulong c); -long2 __ovld __cnfn mad_sat(long2 a, long2 b, long2 c); -ulong2 __ovld __cnfn mad_sat(ulong2 a, ulong2 b, ulong2 c); -long3 __ovld __cnfn mad_sat(long3 a, long3 b, long3 c); -ulong3 __ovld __cnfn mad_sat(ulong3 a, ulong3 b, ulong3 c); -long4 __ovld __cnfn mad_sat(long4 a, long4 b, long4 c); -ulong4 __ovld __cnfn mad_sat(ulong4 a, ulong4 b, ulong4 c); -long8 __ovld __cnfn mad_sat(long8 a, long8 b, long8 c); -ulong8 __ovld __cnfn mad_sat(ulong8 a, ulong8 b, ulong8 c); -long16 __ovld __cnfn mad_sat(long16 a, long16 b, long16 c); -ulong16 __ovld __cnfn mad_sat(ulong16 a, ulong16 b, ulong16 c); +char __ovld __cnfn mad_sat(char, char, char); +uchar __ovld __cnfn mad_sat(uchar, uchar, uchar); +char2 __ovld __cnfn mad_sat(char2, char2, char2); +uchar2 __ovld __cnfn mad_sat(uchar2, uchar2, uchar2); +char3 __ovld __cnfn mad_sat(char3, char3, char3); +uchar3 __ovld __cnfn mad_sat(uchar3, uchar3, uchar3); +char4 __ovld __cnfn mad_sat(char4, char4, char4); +uchar4 __ovld __cnfn mad_sat(uchar4, uchar4, uchar4); +char8 __ovld __cnfn mad_sat(char8, char8, char8); +uchar8 __ovld __cnfn mad_sat(uchar8, uchar8, uchar8); +char16 __ovld __cnfn mad_sat(char16, char16, char16); +uchar16 __ovld __cnfn mad_sat(uchar16, uchar16, uchar16); +short __ovld __cnfn mad_sat(short, short, short); +ushort __ovld __cnfn mad_sat(ushort, ushort, ushort); +short2 __ovld __cnfn mad_sat(short2, short2, short2); +ushort2 __ovld __cnfn mad_sat(ushort2, ushort2, ushort2); +short3 __ovld __cnfn mad_sat(short3, short3, short3); +ushort3 __ovld __cnfn mad_sat(ushort3, ushort3, ushort3); +short4 __ovld __cnfn mad_sat(short4, short4, short4); +ushort4 __ovld __cnfn mad_sat(ushort4, ushort4, ushort4); +short8 __ovld __cnfn mad_sat(short8, short8, short8); +ushort8 __ovld __cnfn mad_sat(ushort8, ushort8, ushort8); +short16 __ovld __cnfn mad_sat(short16, short16, short16); +ushort16 __ovld __cnfn mad_sat(ushort16, ushort16, ushort16); +int __ovld __cnfn mad_sat(int, int, int); +uint __ovld __cnfn mad_sat(uint, uint, uint); +int2 __ovld __cnfn mad_sat(int2, int2, int2); +uint2 __ovld __cnfn mad_sat(uint2, uint2, uint2); +int3 __ovld __cnfn mad_sat(int3, int3, int3); +uint3 __ovld __cnfn mad_sat(uint3, uint3, uint3); +int4 __ovld __cnfn mad_sat(int4, int4, int4); +uint4 __ovld __cnfn mad_sat(uint4, uint4, uint4); +int8 __ovld __cnfn mad_sat(int8, int8, int8); +uint8 __ovld __cnfn mad_sat(uint8, uint8, uint8); +int16 __ovld __cnfn mad_sat(int16, int16, int16); +uint16 __ovld __cnfn mad_sat(uint16, uint16, uint16); +long __ovld __cnfn mad_sat(long, long, long); +ulong __ovld __cnfn mad_sat(ulong, ulong, ulong); +long2 __ovld __cnfn mad_sat(long2, long2, long2); +ulong2 __ovld __cnfn mad_sat(ulong2, ulong2, ulong2); +long3 __ovld __cnfn mad_sat(long3, long3, long3); +ulong3 __ovld __cnfn mad_sat(ulong3, ulong3, ulong3); +long4 __ovld __cnfn mad_sat(long4, long4, long4); +ulong4 __ovld __cnfn mad_sat(ulong4, ulong4, ulong4); +long8 __ovld __cnfn mad_sat(long8, long8, long8); +ulong8 __ovld __cnfn mad_sat(ulong8, ulong8, ulong8); +long16 __ovld __cnfn mad_sat(long16, long16, long16); +ulong16 __ovld __cnfn mad_sat(ulong16, ulong16, ulong16); /** - * Returns y if x < y, otherwise it returns x. + * Returns y if x <, otherwise it returns x. */ -char __ovld __cnfn max(char x, char y); -uchar __ovld __cnfn max(uchar x, uchar y); -char2 __ovld __cnfn max(char2 x, char2 y); -uchar2 __ovld __cnfn max(uchar2 x, uchar2 y); -char3 __ovld __cnfn max(char3 x, char3 y); -uchar3 __ovld __cnfn max(uchar3 x, uchar3 y); -char4 __ovld __cnfn max(char4 x, char4 y); -uchar4 __ovld __cnfn max(uchar4 x, uchar4 y); -char8 __ovld __cnfn max(char8 x, char8 y); -uchar8 __ovld __cnfn max(uchar8 x, uchar8 y); -char16 __ovld __cnfn max(char16 x, char16 y); -uchar16 __ovld __cnfn max(uchar16 x, uchar16 y); -short __ovld __cnfn max(short x, short y); -ushort __ovld __cnfn max(ushort x, ushort y); -short2 __ovld __cnfn max(short2 x, short2 y); -ushort2 __ovld __cnfn max(ushort2 x, ushort2 y); -short3 __ovld __cnfn max(short3 x, short3 y); -ushort3 __ovld __cnfn max(ushort3 x, ushort3 y); -short4 __ovld __cnfn max(short4 x, short4 y); -ushort4 __ovld __cnfn max(ushort4 x, ushort4 y); -short8 __ovld __cnfn max(short8 x, short8 y); -ushort8 __ovld __cnfn max(ushort8 x, ushort8 y); -short16 __ovld __cnfn max(short16 x, short16 y); -ushort16 __ovld __cnfn max(ushort16 x, ushort16 y); -int __ovld __cnfn max(int x, int y); -uint __ovld __cnfn max(uint x, uint y); -int2 __ovld __cnfn max(int2 x, int2 y); -uint2 __ovld __cnfn max(uint2 x, uint2 y); -int3 __ovld __cnfn max(int3 x, int3 y); -uint3 __ovld __cnfn max(uint3 x, uint3 y); -int4 __ovld __cnfn max(int4 x, int4 y); -uint4 __ovld __cnfn max(uint4 x, uint4 y); -int8 __ovld __cnfn max(int8 x, int8 y); -uint8 __ovld __cnfn max(uint8 x, uint8 y); -int16 __ovld __cnfn max(int16 x, int16 y); -uint16 __ovld __cnfn max(uint16 x, uint16 y); -long __ovld __cnfn max(long x, long y); -ulong __ovld __cnfn max(ulong x, ulong y); -long2 __ovld __cnfn max(long2 x, long2 y); -ulong2 __ovld __cnfn max(ulong2 x, ulong2 y); -long3 __ovld __cnfn max(long3 x, long3 y); -ulong3 __ovld __cnfn max(ulong3 x, ulong3 y); -long4 __ovld __cnfn max(long4 x, long4 y); -ulong4 __ovld __cnfn max(ulong4 x, ulong4 y); -long8 __ovld __cnfn max(long8 x, long8 y); -ulong8 __ovld __cnfn max(ulong8 x, ulong8 y); -long16 __ovld __cnfn max(long16 x, long16 y); -ulong16 __ovld __cnfn max(ulong16 x, ulong16 y); -char2 __ovld __cnfn max(char2 x, char y); -uchar2 __ovld __cnfn max(uchar2 x, uchar y); -char3 __ovld __cnfn max(char3 x, char y); -uchar3 __ovld __cnfn max(uchar3 x, uchar y); -char4 __ovld __cnfn max(char4 x, char y); -uchar4 __ovld __cnfn max(uchar4 x, uchar y); -char8 __ovld __cnfn max(char8 x, char y); -uchar8 __ovld __cnfn max(uchar8 x, uchar y); -char16 __ovld __cnfn max(char16 x, char y); -uchar16 __ovld __cnfn max(uchar16 x, uchar y); -short2 __ovld __cnfn max(short2 x, short y); -ushort2 __ovld __cnfn max(ushort2 x, ushort y); -short3 __ovld __cnfn max(short3 x, short y); -ushort3 __ovld __cnfn max(ushort3 x, ushort y); -short4 __ovld __cnfn max(short4 x, short y); -ushort4 __ovld __cnfn max(ushort4 x, ushort y); -short8 __ovld __cnfn max(short8 x, short y); -ushort8 __ovld __cnfn max(ushort8 x, ushort y); -short16 __ovld __cnfn max(short16 x, short y); -ushort16 __ovld __cnfn max(ushort16 x, ushort y); -int2 __ovld __cnfn max(int2 x, int y); -uint2 __ovld __cnfn max(uint2 x, uint y); -int3 __ovld __cnfn max(int3 x, int y); -uint3 __ovld __cnfn max(uint3 x, uint y); -int4 __ovld __cnfn max(int4 x, int y); -uint4 __ovld __cnfn max(uint4 x, uint y); -int8 __ovld __cnfn max(int8 x, int y); -uint8 __ovld __cnfn max(uint8 x, uint y); -int16 __ovld __cnfn max(int16 x, int y); -uint16 __ovld __cnfn max(uint16 x, uint y); -long2 __ovld __cnfn max(long2 x, long y); -ulong2 __ovld __cnfn max(ulong2 x, ulong y); -long3 __ovld __cnfn max(long3 x, long y); -ulong3 __ovld __cnfn max(ulong3 x, ulong y); -long4 __ovld __cnfn max(long4 x, long y); -ulong4 __ovld __cnfn max(ulong4 x, ulong y); -long8 __ovld __cnfn max(long8 x, long y); -ulong8 __ovld __cnfn max(ulong8 x, ulong y); -long16 __ovld __cnfn max(long16 x, long y); -ulong16 __ovld __cnfn max(ulong16 x, ulong y); +char __ovld __cnfn max(char, char ); +uchar __ovld __cnfn max(uchar, uchar ); +char2 __ovld __cnfn max(char2, char2 ); +uchar2 __ovld __cnfn max(uchar2, uchar2 ); +char3 __ovld __cnfn max(char3, char3 ); +uchar3 __ovld __cnfn max(uchar3, uchar3 ); +char4 __ovld __cnfn max(char4, char4 ); +uchar4 __ovld __cnfn max(uchar4, uchar4 ); +char8 __ovld __cnfn max(char8, char8 ); +uchar8 __ovld __cnfn max(uchar8, uchar8 ); +char16 __ovld __cnfn max(char16, char16 ); +uchar16 __ovld __cnfn max(uchar16, uchar16 ); +short __ovld __cnfn max(short, short ); +ushort __ovld __cnfn max(ushort, ushort ); +short2 __ovld __cnfn max(short2, short2 ); +ushort2 __ovld __cnfn max(ushort2, ushort2 ); +short3 __ovld __cnfn max(short3, short3 ); +ushort3 __ovld __cnfn max(ushort3, ushort3 ); +short4 __ovld __cnfn max(short4, short4 ); +ushort4 __ovld __cnfn max(ushort4, ushort4 ); +short8 __ovld __cnfn max(short8, short8 ); +ushort8 __ovld __cnfn max(ushort8, ushort8 ); +short16 __ovld __cnfn max(short16, short16 ); +ushort16 __ovld __cnfn max(ushort16, ushort16 ); +int __ovld __cnfn max(int, int ); +uint __ovld __cnfn max(uint, uint ); +int2 __ovld __cnfn max(int2, int2 ); +uint2 __ovld __cnfn max(uint2, uint2 ); +int3 __ovld __cnfn max(int3, int3 ); +uint3 __ovld __cnfn max(uint3, uint3 ); +int4 __ovld __cnfn max(int4, int4 ); +uint4 __ovld __cnfn max(uint4, uint4 ); +int8 __ovld __cnfn max(int8, int8 ); +uint8 __ovld __cnfn max(uint8, uint8 ); +int16 __ovld __cnfn max(int16, int16 ); +uint16 __ovld __cnfn max(uint16, uint16 ); +long __ovld __cnfn max(long, long ); +ulong __ovld __cnfn max(ulong, ulong ); +long2 __ovld __cnfn max(long2, long2 ); +ulong2 __ovld __cnfn max(ulong2, ulong2 ); +long3 __ovld __cnfn max(long3, long3 ); +ulong3 __ovld __cnfn max(ulong3, ulong3 ); +long4 __ovld __cnfn max(long4, long4 ); +ulong4 __ovld __cnfn max(ulong4, ulong4 ); +long8 __ovld __cnfn max(long8, long8 ); +ulong8 __ovld __cnfn max(ulong8, ulong8 ); +long16 __ovld __cnfn max(long16, long16 ); +ulong16 __ovld __cnfn max(ulong16, ulong16 ); +char2 __ovld __cnfn max(char2, char ); +uchar2 __ovld __cnfn max(uchar2, uchar ); +char3 __ovld __cnfn max(char3, char ); +uchar3 __ovld __cnfn max(uchar3, uchar ); +char4 __ovld __cnfn max(char4, char ); +uchar4 __ovld __cnfn max(uchar4, uchar ); +char8 __ovld __cnfn max(char8, char ); +uchar8 __ovld __cnfn max(uchar8, uchar ); +char16 __ovld __cnfn max(char16, char ); +uchar16 __ovld __cnfn max(uchar16, uchar ); +short2 __ovld __cnfn max(short2, short ); +ushort2 __ovld __cnfn max(ushort2, ushort ); +short3 __ovld __cnfn max(short3, short ); +ushort3 __ovld __cnfn max(ushort3, ushort ); +short4 __ovld __cnfn max(short4, short ); +ushort4 __ovld __cnfn max(ushort4, ushort ); +short8 __ovld __cnfn max(short8, short ); +ushort8 __ovld __cnfn max(ushort8, ushort ); +short16 __ovld __cnfn max(short16, short ); +ushort16 __ovld __cnfn max(ushort16, ushort ); +int2 __ovld __cnfn max(int2, int ); +uint2 __ovld __cnfn max(uint2, uint ); +int3 __ovld __cnfn max(int3, int ); +uint3 __ovld __cnfn max(uint3, uint ); +int4 __ovld __cnfn max(int4, int ); +uint4 __ovld __cnfn max(uint4, uint ); +int8 __ovld __cnfn max(int8, int ); +uint8 __ovld __cnfn max(uint8, uint ); +int16 __ovld __cnfn max(int16, int ); +uint16 __ovld __cnfn max(uint16, uint ); +long2 __ovld __cnfn max(long2, long ); +ulong2 __ovld __cnfn max(ulong2, ulong ); +long3 __ovld __cnfn max(long3, long ); +ulong3 __ovld __cnfn max(ulong3, ulong ); +long4 __ovld __cnfn max(long4, long ); +ulong4 __ovld __cnfn max(ulong4, ulong ); +long8 __ovld __cnfn max(long8, long ); +ulong8 __ovld __cnfn max(ulong8, ulong ); +long16 __ovld __cnfn max(long16, long ); +ulong16 __ovld __cnfn max(ulong16, ulong ); /** - * Returns y if y < x, otherwise it returns x. + * Returns y if y <, otherwise it returns x. */ -char __ovld __cnfn min(char x, char y); -uchar __ovld __cnfn min(uchar x, uchar y); -char2 __ovld __cnfn min(char2 x, char2 y); -uchar2 __ovld __cnfn min(uchar2 x, uchar2 y); -char3 __ovld __cnfn min(char3 x, char3 y); -uchar3 __ovld __cnfn min(uchar3 x, uchar3 y); -char4 __ovld __cnfn min(char4 x, char4 y); -uchar4 __ovld __cnfn min(uchar4 x, uchar4 y); -char8 __ovld __cnfn min(char8 x, char8 y); -uchar8 __ovld __cnfn min(uchar8 x, uchar8 y); -char16 __ovld __cnfn min(char16 x, char16 y); -uchar16 __ovld __cnfn min(uchar16 x, uchar16 y); -short __ovld __cnfn min(short x, short y); -ushort __ovld __cnfn min(ushort x, ushort y); -short2 __ovld __cnfn min(short2 x, short2 y); -ushort2 __ovld __cnfn min(ushort2 x, ushort2 y); -short3 __ovld __cnfn min(short3 x, short3 y); -ushort3 __ovld __cnfn min(ushort3 x, ushort3 y); -short4 __ovld __cnfn min(short4 x, short4 y); -ushort4 __ovld __cnfn min(ushort4 x, ushort4 y); -short8 __ovld __cnfn min(short8 x, short8 y); -ushort8 __ovld __cnfn min(ushort8 x, ushort8 y); -short16 __ovld __cnfn min(short16 x, short16 y); -ushort16 __ovld __cnfn min(ushort16 x, ushort16 y); -int __ovld __cnfn min(int x, int y); -uint __ovld __cnfn min(uint x, uint y); -int2 __ovld __cnfn min(int2 x, int2 y); -uint2 __ovld __cnfn min(uint2 x, uint2 y); -int3 __ovld __cnfn min(int3 x, int3 y); -uint3 __ovld __cnfn min(uint3 x, uint3 y); -int4 __ovld __cnfn min(int4 x, int4 y); -uint4 __ovld __cnfn min(uint4 x, uint4 y); -int8 __ovld __cnfn min(int8 x, int8 y); -uint8 __ovld __cnfn min(uint8 x, uint8 y); -int16 __ovld __cnfn min(int16 x, int16 y); -uint16 __ovld __cnfn min(uint16 x, uint16 y); -long __ovld __cnfn min(long x, long y); -ulong __ovld __cnfn min(ulong x, ulong y); -long2 __ovld __cnfn min(long2 x, long2 y); -ulong2 __ovld __cnfn min(ulong2 x, ulong2 y); -long3 __ovld __cnfn min(long3 x, long3 y); -ulong3 __ovld __cnfn min(ulong3 x, ulong3 y); -long4 __ovld __cnfn min(long4 x, long4 y); -ulong4 __ovld __cnfn min(ulong4 x, ulong4 y); -long8 __ovld __cnfn min(long8 x, long8 y); -ulong8 __ovld __cnfn min(ulong8 x, ulong8 y); -long16 __ovld __cnfn min(long16 x, long16 y); -ulong16 __ovld __cnfn min(ulong16 x, ulong16 y); -char2 __ovld __cnfn min(char2 x, char y); -uchar2 __ovld __cnfn min(uchar2 x, uchar y); -char3 __ovld __cnfn min(char3 x, char y); -uchar3 __ovld __cnfn min(uchar3 x, uchar y); -char4 __ovld __cnfn min(char4 x, char y); -uchar4 __ovld __cnfn min(uchar4 x, uchar y); -char8 __ovld __cnfn min(char8 x, char y); -uchar8 __ovld __cnfn min(uchar8 x, uchar y); -char16 __ovld __cnfn min(char16 x, char y); -uchar16 __ovld __cnfn min(uchar16 x, uchar y); -short2 __ovld __cnfn min(short2 x, short y); -ushort2 __ovld __cnfn min(ushort2 x, ushort y); -short3 __ovld __cnfn min(short3 x, short y); -ushort3 __ovld __cnfn min(ushort3 x, ushort y); -short4 __ovld __cnfn min(short4 x, short y); -ushort4 __ovld __cnfn min(ushort4 x, ushort y); -short8 __ovld __cnfn min(short8 x, short y); -ushort8 __ovld __cnfn min(ushort8 x, ushort y); -short16 __ovld __cnfn min(short16 x, short y); -ushort16 __ovld __cnfn min(ushort16 x, ushort y); -int2 __ovld __cnfn min(int2 x, int y); -uint2 __ovld __cnfn min(uint2 x, uint y); -int3 __ovld __cnfn min(int3 x, int y); -uint3 __ovld __cnfn min(uint3 x, uint y); -int4 __ovld __cnfn min(int4 x, int y); -uint4 __ovld __cnfn min(uint4 x, uint y); -int8 __ovld __cnfn min(int8 x, int y); -uint8 __ovld __cnfn min(uint8 x, uint y); -int16 __ovld __cnfn min(int16 x, int y); -uint16 __ovld __cnfn min(uint16 x, uint y); -long2 __ovld __cnfn min(long2 x, long y); -ulong2 __ovld __cnfn min(ulong2 x, ulong y); -long3 __ovld __cnfn min(long3 x, long y); -ulong3 __ovld __cnfn min(ulong3 x, ulong y); -long4 __ovld __cnfn min(long4 x, long y); -ulong4 __ovld __cnfn min(ulong4 x, ulong y); -long8 __ovld __cnfn min(long8 x, long y); -ulong8 __ovld __cnfn min(ulong8 x, ulong y); -long16 __ovld __cnfn min(long16 x, long y); -ulong16 __ovld __cnfn min(ulong16 x, ulong y); +char __ovld __cnfn min(char, char ); +uchar __ovld __cnfn min(uchar, uchar ); +char2 __ovld __cnfn min(char2, char2 ); +uchar2 __ovld __cnfn min(uchar2, uchar2 ); +char3 __ovld __cnfn min(char3, char3 ); +uchar3 __ovld __cnfn min(uchar3, uchar3 ); +char4 __ovld __cnfn min(char4, char4 ); +uchar4 __ovld __cnfn min(uchar4, uchar4 ); +char8 __ovld __cnfn min(char8, char8 ); +uchar8 __ovld __cnfn min(uchar8, uchar8 ); +char16 __ovld __cnfn min(char16, char16 ); +uchar16 __ovld __cnfn min(uchar16, uchar16 ); +short __ovld __cnfn min(short, short ); +ushort __ovld __cnfn min(ushort, ushort ); +short2 __ovld __cnfn min(short2, short2 ); +ushort2 __ovld __cnfn min(ushort2, ushort2 ); +short3 __ovld __cnfn min(short3, short3 ); +ushort3 __ovld __cnfn min(ushort3, ushort3 ); +short4 __ovld __cnfn min(short4, short4 ); +ushort4 __ovld __cnfn min(ushort4, ushort4 ); +short8 __ovld __cnfn min(short8, short8 ); +ushort8 __ovld __cnfn min(ushort8, ushort8 ); +short16 __ovld __cnfn min(short16, short16 ); +ushort16 __ovld __cnfn min(ushort16, ushort16 ); +int __ovld __cnfn min(int, int ); +uint __ovld __cnfn min(uint, uint ); +int2 __ovld __cnfn min(int2, int2 ); +uint2 __ovld __cnfn min(uint2, uint2 ); +int3 __ovld __cnfn min(int3, int3 ); +uint3 __ovld __cnfn min(uint3, uint3 ); +int4 __ovld __cnfn min(int4, int4 ); +uint4 __ovld __cnfn min(uint4, uint4 ); +int8 __ovld __cnfn min(int8, int8 ); +uint8 __ovld __cnfn min(uint8, uint8 ); +int16 __ovld __cnfn min(int16, int16 ); +uint16 __ovld __cnfn min(uint16, uint16 ); +long __ovld __cnfn min(long, long ); +ulong __ovld __cnfn min(ulong, ulong ); +long2 __ovld __cnfn min(long2, long2 ); +ulong2 __ovld __cnfn min(ulong2, ulong2 ); +long3 __ovld __cnfn min(long3, long3 ); +ulong3 __ovld __cnfn min(ulong3, ulong3 ); +long4 __ovld __cnfn min(long4, long4 ); +ulong4 __ovld __cnfn min(ulong4, ulong4 ); +long8 __ovld __cnfn min(long8, long8 ); +ulong8 __ovld __cnfn min(ulong8, ulong8 ); +long16 __ovld __cnfn min(long16, long16 ); +ulong16 __ovld __cnfn min(ulong16, ulong16 ); +char2 __ovld __cnfn min(char2, char ); +uchar2 __ovld __cnfn min(uchar2, uchar ); +char3 __ovld __cnfn min(char3, char ); +uchar3 __ovld __cnfn min(uchar3, uchar ); +char4 __ovld __cnfn min(char4, char ); +uchar4 __ovld __cnfn min(uchar4, uchar ); +char8 __ovld __cnfn min(char8, char ); +uchar8 __ovld __cnfn min(uchar8, uchar ); +char16 __ovld __cnfn min(char16, char ); +uchar16 __ovld __cnfn min(uchar16, uchar ); +short2 __ovld __cnfn min(short2, short ); +ushort2 __ovld __cnfn min(ushort2, ushort ); +short3 __ovld __cnfn min(short3, short ); +ushort3 __ovld __cnfn min(ushort3, ushort ); +short4 __ovld __cnfn min(short4, short ); +ushort4 __ovld __cnfn min(ushort4, ushort ); +short8 __ovld __cnfn min(short8, short ); +ushort8 __ovld __cnfn min(ushort8, ushort ); +short16 __ovld __cnfn min(short16, short ); +ushort16 __ovld __cnfn min(ushort16, ushort ); +int2 __ovld __cnfn min(int2, int ); +uint2 __ovld __cnfn min(uint2, uint ); +int3 __ovld __cnfn min(int3, int ); +uint3 __ovld __cnfn min(uint3, uint ); +int4 __ovld __cnfn min(int4, int ); +uint4 __ovld __cnfn min(uint4, uint ); +int8 __ovld __cnfn min(int8, int ); +uint8 __ovld __cnfn min(uint8, uint ); +int16 __ovld __cnfn min(int16, int ); +uint16 __ovld __cnfn min(uint16, uint ); +long2 __ovld __cnfn min(long2, long ); +ulong2 __ovld __cnfn min(ulong2, ulong ); +long3 __ovld __cnfn min(long3, long ); +ulong3 __ovld __cnfn min(ulong3, ulong ); +long4 __ovld __cnfn min(long4, long ); +ulong4 __ovld __cnfn min(ulong4, ulong ); +long8 __ovld __cnfn min(long8, long ); +ulong8 __ovld __cnfn min(ulong8, ulong ); +long16 __ovld __cnfn min(long16, long ); +ulong16 __ovld __cnfn min(ulong16, ulong ); /** * Computes x * y and returns the high half of the * product of x and y. */ -char __ovld __cnfn mul_hi(char x, char y); -uchar __ovld __cnfn mul_hi(uchar x, uchar y); -char2 __ovld __cnfn mul_hi(char2 x, char2 y); -uchar2 __ovld __cnfn mul_hi(uchar2 x, uchar2 y); -char3 __ovld __cnfn mul_hi(char3 x, char3 y); -uchar3 __ovld __cnfn mul_hi(uchar3 x, uchar3 y); -char4 __ovld __cnfn mul_hi(char4 x, char4 y); -uchar4 __ovld __cnfn mul_hi(uchar4 x, uchar4 y); -char8 __ovld __cnfn mul_hi(char8 x, char8 y); -uchar8 __ovld __cnfn mul_hi(uchar8 x, uchar8 y); -char16 __ovld __cnfn mul_hi(char16 x, char16 y); -uchar16 __ovld __cnfn mul_hi(uchar16 x, uchar16 y); -short __ovld __cnfn mul_hi(short x, short y); -ushort __ovld __cnfn mul_hi(ushort x, ushort y); -short2 __ovld __cnfn mul_hi(short2 x, short2 y); -ushort2 __ovld __cnfn mul_hi(ushort2 x, ushort2 y); -short3 __ovld __cnfn mul_hi(short3 x, short3 y); -ushort3 __ovld __cnfn mul_hi(ushort3 x, ushort3 y); -short4 __ovld __cnfn mul_hi(short4 x, short4 y); -ushort4 __ovld __cnfn mul_hi(ushort4 x, ushort4 y); -short8 __ovld __cnfn mul_hi(short8 x, short8 y); -ushort8 __ovld __cnfn mul_hi(ushort8 x, ushort8 y); -short16 __ovld __cnfn mul_hi(short16 x, short16 y); -ushort16 __ovld __cnfn mul_hi(ushort16 x, ushort16 y); -int __ovld __cnfn mul_hi(int x, int y); -uint __ovld __cnfn mul_hi(uint x, uint y); -int2 __ovld __cnfn mul_hi(int2 x, int2 y); -uint2 __ovld __cnfn mul_hi(uint2 x, uint2 y); -int3 __ovld __cnfn mul_hi(int3 x, int3 y); -uint3 __ovld __cnfn mul_hi(uint3 x, uint3 y); -int4 __ovld __cnfn mul_hi(int4 x, int4 y); -uint4 __ovld __cnfn mul_hi(uint4 x, uint4 y); -int8 __ovld __cnfn mul_hi(int8 x, int8 y); -uint8 __ovld __cnfn mul_hi(uint8 x, uint8 y); -int16 __ovld __cnfn mul_hi(int16 x, int16 y); -uint16 __ovld __cnfn mul_hi(uint16 x, uint16 y); -long __ovld __cnfn mul_hi(long x, long y); -ulong __ovld __cnfn mul_hi(ulong x, ulong y); -long2 __ovld __cnfn mul_hi(long2 x, long2 y); -ulong2 __ovld __cnfn mul_hi(ulong2 x, ulong2 y); -long3 __ovld __cnfn mul_hi(long3 x, long3 y); -ulong3 __ovld __cnfn mul_hi(ulong3 x, ulong3 y); -long4 __ovld __cnfn mul_hi(long4 x, long4 y); -ulong4 __ovld __cnfn mul_hi(ulong4 x, ulong4 y); -long8 __ovld __cnfn mul_hi(long8 x, long8 y); -ulong8 __ovld __cnfn mul_hi(ulong8 x, ulong8 y); -long16 __ovld __cnfn mul_hi(long16 x, long16 y); -ulong16 __ovld __cnfn mul_hi(ulong16 x, ulong16 y); +char __ovld __cnfn mul_hi(char, char ); +uchar __ovld __cnfn mul_hi(uchar, uchar ); +char2 __ovld __cnfn mul_hi(char2, char2 ); +uchar2 __ovld __cnfn mul_hi(uchar2, uchar2 ); +char3 __ovld __cnfn mul_hi(char3, char3 ); +uchar3 __ovld __cnfn mul_hi(uchar3, uchar3 ); +char4 __ovld __cnfn mul_hi(char4, char4 ); +uchar4 __ovld __cnfn mul_hi(uchar4, uchar4 ); +char8 __ovld __cnfn mul_hi(char8, char8 ); +uchar8 __ovld __cnfn mul_hi(uchar8, uchar8 ); +char16 __ovld __cnfn mul_hi(char16, char16 ); +uchar16 __ovld __cnfn mul_hi(uchar16, uchar16 ); +short __ovld __cnfn mul_hi(short, short ); +ushort __ovld __cnfn mul_hi(ushort, ushort ); +short2 __ovld __cnfn mul_hi(short2, short2 ); +ushort2 __ovld __cnfn mul_hi(ushort2, ushort2 ); +short3 __ovld __cnfn mul_hi(short3, short3 ); +ushort3 __ovld __cnfn mul_hi(ushort3, ushort3 ); +short4 __ovld __cnfn mul_hi(short4, short4 ); +ushort4 __ovld __cnfn mul_hi(ushort4, ushort4 ); +short8 __ovld __cnfn mul_hi(short8, short8 ); +ushort8 __ovld __cnfn mul_hi(ushort8, ushort8 ); +short16 __ovld __cnfn mul_hi(short16, short16 ); +ushort16 __ovld __cnfn mul_hi(ushort16, ushort16 ); +int __ovld __cnfn mul_hi(int, int ); +uint __ovld __cnfn mul_hi(uint, uint ); +int2 __ovld __cnfn mul_hi(int2, int2 ); +uint2 __ovld __cnfn mul_hi(uint2, uint2 ); +int3 __ovld __cnfn mul_hi(int3, int3 ); +uint3 __ovld __cnfn mul_hi(uint3, uint3 ); +int4 __ovld __cnfn mul_hi(int4, int4 ); +uint4 __ovld __cnfn mul_hi(uint4, uint4 ); +int8 __ovld __cnfn mul_hi(int8, int8 ); +uint8 __ovld __cnfn mul_hi(uint8, uint8 ); +int16 __ovld __cnfn mul_hi(int16, int16 ); +uint16 __ovld __cnfn mul_hi(uint16, uint16 ); +long __ovld __cnfn mul_hi(long, long ); +ulong __ovld __cnfn mul_hi(ulong, ulong ); +long2 __ovld __cnfn mul_hi(long2, long2 ); +ulong2 __ovld __cnfn mul_hi(ulong2, ulong2 ); +long3 __ovld __cnfn mul_hi(long3, long3 ); +ulong3 __ovld __cnfn mul_hi(ulong3, ulong3 ); +long4 __ovld __cnfn mul_hi(long4, long4 ); +ulong4 __ovld __cnfn mul_hi(ulong4, ulong4 ); +long8 __ovld __cnfn mul_hi(long8, long8 ); +ulong8 __ovld __cnfn mul_hi(ulong8, ulong8 ); +long16 __ovld __cnfn mul_hi(long16, long16 ); +ulong16 __ovld __cnfn mul_hi(ulong16, ulong16 ); /** * For each element in v, the bits are shifted left by @@ -10457,156 +10466,156 @@ ulong16 __ovld __cnfn mul_hi(ulong16 x, ulong16 y); * side of the element are shifted back in from the * right. */ -char __ovld __cnfn rotate(char v, char i); -uchar __ovld __cnfn rotate(uchar v, uchar i); -char2 __ovld __cnfn rotate(char2 v, char2 i); -uchar2 __ovld __cnfn rotate(uchar2 v, uchar2 i); -char3 __ovld __cnfn rotate(char3 v, char3 i); -uchar3 __ovld __cnfn rotate(uchar3 v, uchar3 i); -char4 __ovld __cnfn rotate(char4 v, char4 i); -uchar4 __ovld __cnfn rotate(uchar4 v, uchar4 i); -char8 __ovld __cnfn rotate(char8 v, char8 i); -uchar8 __ovld __cnfn rotate(uchar8 v, uchar8 i); -char16 __ovld __cnfn rotate(char16 v, char16 i); -uchar16 __ovld __cnfn rotate(uchar16 v, uchar16 i); -short __ovld __cnfn rotate(short v, short i); -ushort __ovld __cnfn rotate(ushort v, ushort i); -short2 __ovld __cnfn rotate(short2 v, short2 i); -ushort2 __ovld __cnfn rotate(ushort2 v, ushort2 i); -short3 __ovld __cnfn rotate(short3 v, short3 i); -ushort3 __ovld __cnfn rotate(ushort3 v, ushort3 i); -short4 __ovld __cnfn rotate(short4 v, short4 i); -ushort4 __ovld __cnfn rotate(ushort4 v, ushort4 i); -short8 __ovld __cnfn rotate(short8 v, short8 i); -ushort8 __ovld __cnfn rotate(ushort8 v, ushort8 i); -short16 __ovld __cnfn rotate(short16 v, short16 i); -ushort16 __ovld __cnfn rotate(ushort16 v, ushort16 i); -int __ovld __cnfn rotate(int v, int i); -uint __ovld __cnfn rotate(uint v, uint i); -int2 __ovld __cnfn rotate(int2 v, int2 i); -uint2 __ovld __cnfn rotate(uint2 v, uint2 i); -int3 __ovld __cnfn rotate(int3 v, int3 i); -uint3 __ovld __cnfn rotate(uint3 v, uint3 i); -int4 __ovld __cnfn rotate(int4 v, int4 i); -uint4 __ovld __cnfn rotate(uint4 v, uint4 i); -int8 __ovld __cnfn rotate(int8 v, int8 i); -uint8 __ovld __cnfn rotate(uint8 v, uint8 i); -int16 __ovld __cnfn rotate(int16 v, int16 i); -uint16 __ovld __cnfn rotate(uint16 v, uint16 i); -long __ovld __cnfn rotate(long v, long i); -ulong __ovld __cnfn rotate(ulong v, ulong i); -long2 __ovld __cnfn rotate(long2 v, long2 i); -ulong2 __ovld __cnfn rotate(ulong2 v, ulong2 i); -long3 __ovld __cnfn rotate(long3 v, long3 i); -ulong3 __ovld __cnfn rotate(ulong3 v, ulong3 i); -long4 __ovld __cnfn rotate(long4 v, long4 i); -ulong4 __ovld __cnfn rotate(ulong4 v, ulong4 i); -long8 __ovld __cnfn rotate(long8 v, long8 i); -ulong8 __ovld __cnfn rotate(ulong8 v, ulong8 i); -long16 __ovld __cnfn rotate(long16 v, long16 i); -ulong16 __ovld __cnfn rotate(ulong16 v, ulong16 i); +char __ovld __cnfn rotate(char, char); +uchar __ovld __cnfn rotate(uchar, uchar); +char2 __ovld __cnfn rotate(char2, char2); +uchar2 __ovld __cnfn rotate(uchar2, uchar2); +char3 __ovld __cnfn rotate(char3, char3); +uchar3 __ovld __cnfn rotate(uchar3, uchar3); +char4 __ovld __cnfn rotate(char4, char4); +uchar4 __ovld __cnfn rotate(uchar4, uchar4); +char8 __ovld __cnfn rotate(char8, char8); +uchar8 __ovld __cnfn rotate(uchar8, uchar8); +char16 __ovld __cnfn rotate(char16, char16); +uchar16 __ovld __cnfn rotate(uchar16, uchar16); +short __ovld __cnfn rotate(short, short); +ushort __ovld __cnfn rotate(ushort, ushort); +short2 __ovld __cnfn rotate(short2, short2); +ushort2 __ovld __cnfn rotate(ushort2, ushort2); +short3 __ovld __cnfn rotate(short3, short3); +ushort3 __ovld __cnfn rotate(ushort3, ushort3); +short4 __ovld __cnfn rotate(short4, short4); +ushort4 __ovld __cnfn rotate(ushort4, ushort4); +short8 __ovld __cnfn rotate(short8, short8); +ushort8 __ovld __cnfn rotate(ushort8, ushort8); +short16 __ovld __cnfn rotate(short16, short16); +ushort16 __ovld __cnfn rotate(ushort16, ushort16); +int __ovld __cnfn rotate(int, int); +uint __ovld __cnfn rotate(uint, uint); +int2 __ovld __cnfn rotate(int2, int2); +uint2 __ovld __cnfn rotate(uint2, uint2); +int3 __ovld __cnfn rotate(int3, int3); +uint3 __ovld __cnfn rotate(uint3, uint3); +int4 __ovld __cnfn rotate(int4, int4); +uint4 __ovld __cnfn rotate(uint4, uint4); +int8 __ovld __cnfn rotate(int8, int8); +uint8 __ovld __cnfn rotate(uint8, uint8); +int16 __ovld __cnfn rotate(int16, int16); +uint16 __ovld __cnfn rotate(uint16, uint16); +long __ovld __cnfn rotate(long, long); +ulong __ovld __cnfn rotate(ulong, ulong); +long2 __ovld __cnfn rotate(long2, long2); +ulong2 __ovld __cnfn rotate(ulong2, ulong2); +long3 __ovld __cnfn rotate(long3, long3); +ulong3 __ovld __cnfn rotate(ulong3, ulong3); +long4 __ovld __cnfn rotate(long4, long4); +ulong4 __ovld __cnfn rotate(ulong4, ulong4); +long8 __ovld __cnfn rotate(long8, long8); +ulong8 __ovld __cnfn rotate(ulong8, ulong8); +long16 __ovld __cnfn rotate(long16, long16); +ulong16 __ovld __cnfn rotate(ulong16, ulong16); /** * Returns x - y and saturates the result. */ -char __ovld __cnfn sub_sat(char x, char y); -uchar __ovld __cnfn sub_sat(uchar x, uchar y); -char2 __ovld __cnfn sub_sat(char2 x, char2 y); -uchar2 __ovld __cnfn sub_sat(uchar2 x, uchar2 y); -char3 __ovld __cnfn sub_sat(char3 x, char3 y); -uchar3 __ovld __cnfn sub_sat(uchar3 x, uchar3 y); -char4 __ovld __cnfn sub_sat(char4 x, char4 y); -uchar4 __ovld __cnfn sub_sat(uchar4 x, uchar4 y); -char8 __ovld __cnfn sub_sat(char8 x, char8 y); -uchar8 __ovld __cnfn sub_sat(uchar8 x, uchar8 y); -char16 __ovld __cnfn sub_sat(char16 x, char16 y); -uchar16 __ovld __cnfn sub_sat(uchar16 x, uchar16 y); -short __ovld __cnfn sub_sat(short x, short y); -ushort __ovld __cnfn sub_sat(ushort x, ushort y); -short2 __ovld __cnfn sub_sat(short2 x, short2 y); -ushort2 __ovld __cnfn sub_sat(ushort2 x, ushort2 y); -short3 __ovld __cnfn sub_sat(short3 x, short3 y); -ushort3 __ovld __cnfn sub_sat(ushort3 x, ushort3 y); -short4 __ovld __cnfn sub_sat(short4 x, short4 y); -ushort4 __ovld __cnfn sub_sat(ushort4 x, ushort4 y); -short8 __ovld __cnfn sub_sat(short8 x, short8 y); -ushort8 __ovld __cnfn sub_sat(ushort8 x, ushort8 y); -short16 __ovld __cnfn sub_sat(short16 x, short16 y); -ushort16 __ovld __cnfn sub_sat(ushort16 x, ushort16 y); -int __ovld __cnfn sub_sat(int x, int y); -uint __ovld __cnfn sub_sat(uint x, uint y); -int2 __ovld __cnfn sub_sat(int2 x, int2 y); -uint2 __ovld __cnfn sub_sat(uint2 x, uint2 y); -int3 __ovld __cnfn sub_sat(int3 x, int3 y); -uint3 __ovld __cnfn sub_sat(uint3 x, uint3 y); -int4 __ovld __cnfn sub_sat(int4 x, int4 y); -uint4 __ovld __cnfn sub_sat(uint4 x, uint4 y); -int8 __ovld __cnfn sub_sat(int8 x, int8 y); -uint8 __ovld __cnfn sub_sat(uint8 x, uint8 y); -int16 __ovld __cnfn sub_sat(int16 x, int16 y); -uint16 __ovld __cnfn sub_sat(uint16 x, uint16 y); -long __ovld __cnfn sub_sat(long x, long y); -ulong __ovld __cnfn sub_sat(ulong x, ulong y); -long2 __ovld __cnfn sub_sat(long2 x, long2 y); -ulong2 __ovld __cnfn sub_sat(ulong2 x, ulong2 y); -long3 __ovld __cnfn sub_sat(long3 x, long3 y); -ulong3 __ovld __cnfn sub_sat(ulong3 x, ulong3 y); -long4 __ovld __cnfn sub_sat(long4 x, long4 y); -ulong4 __ovld __cnfn sub_sat(ulong4 x, ulong4 y); -long8 __ovld __cnfn sub_sat(long8 x, long8 y); -ulong8 __ovld __cnfn sub_sat(ulong8 x, ulong8 y); -long16 __ovld __cnfn sub_sat(long16 x, long16 y); -ulong16 __ovld __cnfn sub_sat(ulong16 x, ulong16 y); +char __ovld __cnfn sub_sat(char, char ); +uchar __ovld __cnfn sub_sat(uchar, uchar ); +char2 __ovld __cnfn sub_sat(char2, char2 ); +uchar2 __ovld __cnfn sub_sat(uchar2, uchar2 ); +char3 __ovld __cnfn sub_sat(char3, char3 ); +uchar3 __ovld __cnfn sub_sat(uchar3, uchar3 ); +char4 __ovld __cnfn sub_sat(char4, char4 ); +uchar4 __ovld __cnfn sub_sat(uchar4, uchar4 ); +char8 __ovld __cnfn sub_sat(char8, char8 ); +uchar8 __ovld __cnfn sub_sat(uchar8, uchar8 ); +char16 __ovld __cnfn sub_sat(char16, char16 ); +uchar16 __ovld __cnfn sub_sat(uchar16, uchar16 ); +short __ovld __cnfn sub_sat(short, short ); +ushort __ovld __cnfn sub_sat(ushort, ushort ); +short2 __ovld __cnfn sub_sat(short2, short2 ); +ushort2 __ovld __cnfn sub_sat(ushort2, ushort2 ); +short3 __ovld __cnfn sub_sat(short3, short3 ); +ushort3 __ovld __cnfn sub_sat(ushort3, ushort3 ); +short4 __ovld __cnfn sub_sat(short4, short4 ); +ushort4 __ovld __cnfn sub_sat(ushort4, ushort4 ); +short8 __ovld __cnfn sub_sat(short8, short8 ); +ushort8 __ovld __cnfn sub_sat(ushort8, ushort8 ); +short16 __ovld __cnfn sub_sat(short16, short16 ); +ushort16 __ovld __cnfn sub_sat(ushort16, ushort16 ); +int __ovld __cnfn sub_sat(int, int ); +uint __ovld __cnfn sub_sat(uint, uint ); +int2 __ovld __cnfn sub_sat(int2, int2 ); +uint2 __ovld __cnfn sub_sat(uint2, uint2 ); +int3 __ovld __cnfn sub_sat(int3, int3 ); +uint3 __ovld __cnfn sub_sat(uint3, uint3 ); +int4 __ovld __cnfn sub_sat(int4, int4 ); +uint4 __ovld __cnfn sub_sat(uint4, uint4 ); +int8 __ovld __cnfn sub_sat(int8, int8 ); +uint8 __ovld __cnfn sub_sat(uint8, uint8 ); +int16 __ovld __cnfn sub_sat(int16, int16 ); +uint16 __ovld __cnfn sub_sat(uint16, uint16 ); +long __ovld __cnfn sub_sat(long, long ); +ulong __ovld __cnfn sub_sat(ulong, ulong ); +long2 __ovld __cnfn sub_sat(long2, long2 ); +ulong2 __ovld __cnfn sub_sat(ulong2, ulong2 ); +long3 __ovld __cnfn sub_sat(long3, long3 ); +ulong3 __ovld __cnfn sub_sat(ulong3, ulong3 ); +long4 __ovld __cnfn sub_sat(long4, long4 ); +ulong4 __ovld __cnfn sub_sat(ulong4, ulong4 ); +long8 __ovld __cnfn sub_sat(long8, long8 ); +ulong8 __ovld __cnfn sub_sat(ulong8, ulong8 ); +long16 __ovld __cnfn sub_sat(long16, long16 ); +ulong16 __ovld __cnfn sub_sat(ulong16, ulong16 ); /** * result[i] = ((short)hi[i] << 8) | lo[i] * result[i] = ((ushort)hi[i] << 8) | lo[i] */ -short __ovld __cnfn upsample(char hi, uchar lo); -ushort __ovld __cnfn upsample(uchar hi, uchar lo); -short2 __ovld __cnfn upsample(char2 hi, uchar2 lo); -short3 __ovld __cnfn upsample(char3 hi, uchar3 lo); -short4 __ovld __cnfn upsample(char4 hi, uchar4 lo); -short8 __ovld __cnfn upsample(char8 hi, uchar8 lo); -short16 __ovld __cnfn upsample(char16 hi, uchar16 lo); -ushort2 __ovld __cnfn upsample(uchar2 hi, uchar2 lo); -ushort3 __ovld __cnfn upsample(uchar3 hi, uchar3 lo); -ushort4 __ovld __cnfn upsample(uchar4 hi, uchar4 lo); -ushort8 __ovld __cnfn upsample(uchar8 hi, uchar8 lo); -ushort16 __ovld __cnfn upsample(uchar16 hi, uchar16 lo); +short __ovld __cnfn upsample(char, uchar); +ushort __ovld __cnfn upsample(uchar, uchar); +short2 __ovld __cnfn upsample(char2, uchar2); +short3 __ovld __cnfn upsample(char3, uchar3); +short4 __ovld __cnfn upsample(char4, uchar4); +short8 __ovld __cnfn upsample(char8, uchar8); +short16 __ovld __cnfn upsample(char16, uchar16); +ushort2 __ovld __cnfn upsample(uchar2, uchar2); +ushort3 __ovld __cnfn upsample(uchar3, uchar3); +ushort4 __ovld __cnfn upsample(uchar4, uchar4); +ushort8 __ovld __cnfn upsample(uchar8, uchar8); +ushort16 __ovld __cnfn upsample(uchar16, uchar16); /** * result[i] = ((int)hi[i] << 16) | lo[i] * result[i] = ((uint)hi[i] << 16) | lo[i] */ -int __ovld __cnfn upsample(short hi, ushort lo); -uint __ovld __cnfn upsample(ushort hi, ushort lo); -int2 __ovld __cnfn upsample(short2 hi, ushort2 lo); -int3 __ovld __cnfn upsample(short3 hi, ushort3 lo); -int4 __ovld __cnfn upsample(short4 hi, ushort4 lo); -int8 __ovld __cnfn upsample(short8 hi, ushort8 lo); -int16 __ovld __cnfn upsample(short16 hi, ushort16 lo); -uint2 __ovld __cnfn upsample(ushort2 hi, ushort2 lo); -uint3 __ovld __cnfn upsample(ushort3 hi, ushort3 lo); -uint4 __ovld __cnfn upsample(ushort4 hi, ushort4 lo); -uint8 __ovld __cnfn upsample(ushort8 hi, ushort8 lo); -uint16 __ovld __cnfn upsample(ushort16 hi, ushort16 lo); +int __ovld __cnfn upsample(short, ushort); +uint __ovld __cnfn upsample(ushort, ushort); +int2 __ovld __cnfn upsample(short2, ushort2); +int3 __ovld __cnfn upsample(short3, ushort3); +int4 __ovld __cnfn upsample(short4, ushort4); +int8 __ovld __cnfn upsample(short8, ushort8); +int16 __ovld __cnfn upsample(short16, ushort16); +uint2 __ovld __cnfn upsample(ushort2, ushort2); +uint3 __ovld __cnfn upsample(ushort3, ushort3); +uint4 __ovld __cnfn upsample(ushort4, ushort4); +uint8 __ovld __cnfn upsample(ushort8, ushort8); +uint16 __ovld __cnfn upsample(ushort16, ushort16); /** * result[i] = ((long)hi[i] << 32) | lo[i] * result[i] = ((ulong)hi[i] << 32) | lo[i] */ -long __ovld __cnfn upsample(int hi, uint lo); -ulong __ovld __cnfn upsample(uint hi, uint lo); -long2 __ovld __cnfn upsample(int2 hi, uint2 lo); -long3 __ovld __cnfn upsample(int3 hi, uint3 lo); -long4 __ovld __cnfn upsample(int4 hi, uint4 lo); -long8 __ovld __cnfn upsample(int8 hi, uint8 lo); -long16 __ovld __cnfn upsample(int16 hi, uint16 lo); -ulong2 __ovld __cnfn upsample(uint2 hi, uint2 lo); -ulong3 __ovld __cnfn upsample(uint3 hi, uint3 lo); -ulong4 __ovld __cnfn upsample(uint4 hi, uint4 lo); -ulong8 __ovld __cnfn upsample(uint8 hi, uint8 lo); -ulong16 __ovld __cnfn upsample(uint16 hi, uint16 lo); +long __ovld __cnfn upsample(int, uint); +ulong __ovld __cnfn upsample(uint, uint); +long2 __ovld __cnfn upsample(int2, uint2); +long3 __ovld __cnfn upsample(int3, uint3); +long4 __ovld __cnfn upsample(int4, uint4); +long8 __ovld __cnfn upsample(int8, uint8); +long16 __ovld __cnfn upsample(int16, uint16); +ulong2 __ovld __cnfn upsample(uint2, uint2); +ulong3 __ovld __cnfn upsample(uint3, uint3); +ulong4 __ovld __cnfn upsample(uint4, uint4); +ulong8 __ovld __cnfn upsample(uint8, uint8); +ulong16 __ovld __cnfn upsample(uint16, uint16); /* * popcount(x): returns the number of set bit in x @@ -10668,18 +10677,18 @@ ulong16 __ovld __cnfn popcount(ulong16 x); * Refer to definition of mul24 to see how the 24-bit * integer multiplication is performed. */ -int __ovld __cnfn mad24(int x, int y, int z); -uint __ovld __cnfn mad24(uint x, uint y, uint z); -int2 __ovld __cnfn mad24(int2 x, int2 y, int2 z); -uint2 __ovld __cnfn mad24(uint2 x, uint2 y, uint2 z); -int3 __ovld __cnfn mad24(int3 x, int3 y, int3 z); -uint3 __ovld __cnfn mad24(uint3 x, uint3 y, uint3 z); -int4 __ovld __cnfn mad24(int4 x, int4 y, int4 z); -uint4 __ovld __cnfn mad24(uint4 x, uint4 y, uint4 z); -int8 __ovld __cnfn mad24(int8 x, int8 y, int8 z); -uint8 __ovld __cnfn mad24(uint8 x, uint8 y, uint8 z); -int16 __ovld __cnfn mad24(int16 x, int16 y, int16 z); -uint16 __ovld __cnfn mad24(uint16 x, uint16 y, uint16 z); +int __ovld __cnfn mad24(int, int, int ); +uint __ovld __cnfn mad24(uint, uint, uint ); +int2 __ovld __cnfn mad24(int2, int2, int2 ); +uint2 __ovld __cnfn mad24(uint2, uint2, uint2 ); +int3 __ovld __cnfn mad24(int3, int3, int3 ); +uint3 __ovld __cnfn mad24(uint3, uint3, uint3 ); +int4 __ovld __cnfn mad24(int4, int4, int4 ); +uint4 __ovld __cnfn mad24(uint4, uint4, uint4 ); +int8 __ovld __cnfn mad24(int8, int8, int8 ); +uint8 __ovld __cnfn mad24(uint8, uint8, uint8 ); +int16 __ovld __cnfn mad24(int16, int16, int16 ); +uint16 __ovld __cnfn mad24(uint16, uint16, uint16 ); /** * Multiply two 24-bit integer values x and y. x and y @@ -10691,18 +10700,18 @@ uint16 __ovld __cnfn mad24(uint16 x, uint16 y, uint16 z); * x and y are not in this range, the multiplication * result is implementation-defined. */ -int __ovld __cnfn mul24(int x, int y); -uint __ovld __cnfn mul24(uint x, uint y); -int2 __ovld __cnfn mul24(int2 x, int2 y); -uint2 __ovld __cnfn mul24(uint2 x, uint2 y); -int3 __ovld __cnfn mul24(int3 x, int3 y); -uint3 __ovld __cnfn mul24(uint3 x, uint3 y); -int4 __ovld __cnfn mul24(int4 x, int4 y); -uint4 __ovld __cnfn mul24(uint4 x, uint4 y); -int8 __ovld __cnfn mul24(int8 x, int8 y); -uint8 __ovld __cnfn mul24(uint8 x, uint8 y); -int16 __ovld __cnfn mul24(int16 x, int16 y); -uint16 __ovld __cnfn mul24(uint16 x, uint16 y); +int __ovld __cnfn mul24(int, int ); +uint __ovld __cnfn mul24(uint, uint ); +int2 __ovld __cnfn mul24(int2, int2 ); +uint2 __ovld __cnfn mul24(uint2, uint2 ); +int3 __ovld __cnfn mul24(int3, int3 ); +uint3 __ovld __cnfn mul24(uint3, uint3 ); +int4 __ovld __cnfn mul24(int4, int4 ); +uint4 __ovld __cnfn mul24(uint4, uint4 ); +int8 __ovld __cnfn mul24(int8, int8 ); +uint8 __ovld __cnfn mul24(uint8, uint8 ); +int16 __ovld __cnfn mul24(int16, int16 ); +uint16 __ovld __cnfn mul24(uint16, uint16 ); // OpenCL v1.1 s6.11.4, v1.2 s6.12.4, v2.0 s6.13.4 - Common Functions @@ -10710,153 +10719,153 @@ uint16 __ovld __cnfn mul24(uint16 x, uint16 y); * Returns fmin(fmax(x, minval), maxval). * Results are undefined if minval > maxval. */ -float __ovld __cnfn clamp(float x, float minval, float maxval); -float2 __ovld __cnfn clamp(float2 x, float2 minval, float2 maxval); -float3 __ovld __cnfn clamp(float3 x, float3 minval, float3 maxval); -float4 __ovld __cnfn clamp(float4 x, float4 minval, float4 maxval); -float8 __ovld __cnfn clamp(float8 x, float8 minval, float8 maxval); -float16 __ovld __cnfn clamp(float16 x, float16 minval, float16 maxval); -float2 __ovld __cnfn clamp(float2 x, float minval, float maxval); -float3 __ovld __cnfn clamp(float3 x, float minval, float maxval); -float4 __ovld __cnfn clamp(float4 x, float minval, float maxval); -float8 __ovld __cnfn clamp(float8 x, float minval, float maxval); -float16 __ovld __cnfn clamp(float16 x, float minval, float maxval); +float __ovld __cnfn clamp(float, float, float); +float2 __ovld __cnfn clamp(float2, float2, float2); +float3 __ovld __cnfn clamp(float3, float3, float3); +float4 __ovld __cnfn clamp(float4, float4, float4); +float8 __ovld __cnfn clamp(float8, float8, float8); +float16 __ovld __cnfn clamp(float16, float16, float16); +float2 __ovld __cnfn clamp(float2, float, float); +float3 __ovld __cnfn clamp(float3, float, float); +float4 __ovld __cnfn clamp(float4, float, float); +float8 __ovld __cnfn clamp(float8, float, float); +float16 __ovld __cnfn clamp(float16, float, float); #ifdef cl_khr_fp64 -double __ovld __cnfn clamp(double x, double minval, double maxval); -double2 __ovld __cnfn clamp(double2 x, double2 minval, double2 maxval); -double3 __ovld __cnfn clamp(double3 x, double3 minval, double3 maxval); -double4 __ovld __cnfn clamp(double4 x, double4 minval, double4 maxval); -double8 __ovld __cnfn clamp(double8 x, double8 minval, double8 maxval); -double16 __ovld __cnfn clamp(double16 x, double16 minval, double16 maxval); -double2 __ovld __cnfn clamp(double2 x, double minval, double maxval); -double3 __ovld __cnfn clamp(double3 x, double minval, double maxval); -double4 __ovld __cnfn clamp(double4 x, double minval, double maxval); -double8 __ovld __cnfn clamp(double8 x, double minval, double maxval); -double16 __ovld __cnfn clamp(double16 x, double minval, double maxval); +double __ovld __cnfn clamp(double, double, double); +double2 __ovld __cnfn clamp(double2, double2, double2); +double3 __ovld __cnfn clamp(double3, double3, double3); +double4 __ovld __cnfn clamp(double4, double4, double4); +double8 __ovld __cnfn clamp(double8, double8, double8); +double16 __ovld __cnfn clamp(double16, double16, double16); +double2 __ovld __cnfn clamp(double2, double, double); +double3 __ovld __cnfn clamp(double3, double, double); +double4 __ovld __cnfn clamp(double4, double, double); +double8 __ovld __cnfn clamp(double8, double, double); +double16 __ovld __cnfn clamp(double16, double, double); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn clamp(half x, half minval, half maxval); -half2 __ovld __cnfn clamp(half2 x, half2 minval, half2 maxval); -half3 __ovld __cnfn clamp(half3 x, half3 minval, half3 maxval); -half4 __ovld __cnfn clamp(half4 x, half4 minval, half4 maxval); -half8 __ovld __cnfn clamp(half8 x, half8 minval, half8 maxval); -half16 __ovld __cnfn clamp(half16 x, half16 minval, half16 maxval); -half2 __ovld __cnfn clamp(half2 x, half minval, half maxval); -half3 __ovld __cnfn clamp(half3 x, half minval, half maxval); -half4 __ovld __cnfn clamp(half4 x, half minval, half maxval); -half8 __ovld __cnfn clamp(half8 x, half minval, half maxval); -half16 __ovld __cnfn clamp(half16 x, half minval, half maxval); +half __ovld __cnfn clamp(half, half, half); +half2 __ovld __cnfn clamp(half2, half2, half2); +half3 __ovld __cnfn clamp(half3, half3, half3); +half4 __ovld __cnfn clamp(half4, half4, half4); +half8 __ovld __cnfn clamp(half8, half8, half8); +half16 __ovld __cnfn clamp(half16, half16, half16); +half2 __ovld __cnfn clamp(half2, half, half); +half3 __ovld __cnfn clamp(half3, half, half); +half4 __ovld __cnfn clamp(half4, half, half); +half8 __ovld __cnfn clamp(half8, half, half); +half16 __ovld __cnfn clamp(half16, half, half); #endif //cl_khr_fp16 /** * Converts radians to degrees, i.e. (180 / PI) * * radians. */ -float __ovld __cnfn degrees(float radians); -float2 __ovld __cnfn degrees(float2 radians); -float3 __ovld __cnfn degrees(float3 radians); -float4 __ovld __cnfn degrees(float4 radians); -float8 __ovld __cnfn degrees(float8 radians); -float16 __ovld __cnfn degrees(float16 radians); +float __ovld __cnfn degrees(float); +float2 __ovld __cnfn degrees(float2); +float3 __ovld __cnfn degrees(float3); +float4 __ovld __cnfn degrees(float4); +float8 __ovld __cnfn degrees(float8); +float16 __ovld __cnfn degrees(float16); #ifdef cl_khr_fp64 -double __ovld __cnfn degrees(double radians); -double2 __ovld __cnfn degrees(double2 radians); -double3 __ovld __cnfn degrees(double3 radians); -double4 __ovld __cnfn degrees(double4 radians); -double8 __ovld __cnfn degrees(double8 radians); -double16 __ovld __cnfn degrees(double16 radians); +double __ovld __cnfn degrees(double); +double2 __ovld __cnfn degrees(double2); +double3 __ovld __cnfn degrees(double3); +double4 __ovld __cnfn degrees(double4); +double8 __ovld __cnfn degrees(double8); +double16 __ovld __cnfn degrees(double16); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn degrees(half radians); -half2 __ovld __cnfn degrees(half2 radians); -half3 __ovld __cnfn degrees(half3 radians); -half4 __ovld __cnfn degrees(half4 radians); -half8 __ovld __cnfn degrees(half8 radians); -half16 __ovld __cnfn degrees(half16 radians); +half __ovld __cnfn degrees(half); +half2 __ovld __cnfn degrees(half2); +half3 __ovld __cnfn degrees(half3); +half4 __ovld __cnfn degrees(half4); +half8 __ovld __cnfn degrees(half8); +half16 __ovld __cnfn degrees(half16); #endif //cl_khr_fp16 /** - * Returns y if x < y, otherwise it returns x. If x and y + * Returns y if x <, otherwise it returns x. If x and y * are infinite or NaN, the return values are undefined. */ -float __ovld __cnfn max(float x, float y); -float2 __ovld __cnfn max(float2 x, float2 y); -float3 __ovld __cnfn max(float3 x, float3 y); -float4 __ovld __cnfn max(float4 x, float4 y); -float8 __ovld __cnfn max(float8 x, float8 y); -float16 __ovld __cnfn max(float16 x, float16 y); -float2 __ovld __cnfn max(float2 x, float y); -float3 __ovld __cnfn max(float3 x, float y); -float4 __ovld __cnfn max(float4 x, float y); -float8 __ovld __cnfn max(float8 x, float y); -float16 __ovld __cnfn max(float16 x, float y); +float __ovld __cnfn max(float, float ); +float2 __ovld __cnfn max(float2, float2 ); +float3 __ovld __cnfn max(float3, float3 ); +float4 __ovld __cnfn max(float4, float4 ); +float8 __ovld __cnfn max(float8, float8 ); +float16 __ovld __cnfn max(float16, float16 ); +float2 __ovld __cnfn max(float2, float ); +float3 __ovld __cnfn max(float3, float ); +float4 __ovld __cnfn max(float4, float ); +float8 __ovld __cnfn max(float8, float ); +float16 __ovld __cnfn max(float16, float ); #ifdef cl_khr_fp64 -double __ovld __cnfn max(double x, double y); -double2 __ovld __cnfn max(double2 x, double2 y); -double3 __ovld __cnfn max(double3 x, double3 y); -double4 __ovld __cnfn max(double4 x, double4 y); -double8 __ovld __cnfn max(double8 x, double8 y); -double16 __ovld __cnfn max(double16 x, double16 y); -double2 __ovld __cnfn max(double2 x, double y); -double3 __ovld __cnfn max(double3 x, double y); -double4 __ovld __cnfn max(double4 x, double y); -double8 __ovld __cnfn max(double8 x, double y); -double16 __ovld __cnfn max(double16 x, double y); +double __ovld __cnfn max(double, double ); +double2 __ovld __cnfn max(double2, double2 ); +double3 __ovld __cnfn max(double3, double3 ); +double4 __ovld __cnfn max(double4, double4 ); +double8 __ovld __cnfn max(double8, double8 ); +double16 __ovld __cnfn max(double16, double16 ); +double2 __ovld __cnfn max(double2, double ); +double3 __ovld __cnfn max(double3, double ); +double4 __ovld __cnfn max(double4, double ); +double8 __ovld __cnfn max(double8, double ); +double16 __ovld __cnfn max(double16, double ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn max(half x, half y); -half2 __ovld __cnfn max(half2 x, half2 y); -half3 __ovld __cnfn max(half3 x, half3 y); -half4 __ovld __cnfn max(half4 x, half4 y); -half8 __ovld __cnfn max(half8 x, half8 y); -half16 __ovld __cnfn max(half16 x, half16 y); -half2 __ovld __cnfn max(half2 x, half y); -half3 __ovld __cnfn max(half3 x, half y); -half4 __ovld __cnfn max(half4 x, half y); -half8 __ovld __cnfn max(half8 x, half y); -half16 __ovld __cnfn max(half16 x, half y); +half __ovld __cnfn max(half, half ); +half2 __ovld __cnfn max(half2, half2 ); +half3 __ovld __cnfn max(half3, half3 ); +half4 __ovld __cnfn max(half4, half4 ); +half8 __ovld __cnfn max(half8, half8 ); +half16 __ovld __cnfn max(half16, half16 ); +half2 __ovld __cnfn max(half2, half ); +half3 __ovld __cnfn max(half3, half ); +half4 __ovld __cnfn max(half4, half ); +half8 __ovld __cnfn max(half8, half ); +half16 __ovld __cnfn max(half16, half ); #endif //cl_khr_fp16 /** - * Returns y if y < x, otherwise it returns x. If x and y + * Returns y if y <, otherwise it returns x. If x and y * are infinite or NaN, the return values are undefined. */ -float __ovld __cnfn min(float x, float y); -float2 __ovld __cnfn min(float2 x, float2 y); -float3 __ovld __cnfn min(float3 x, float3 y); -float4 __ovld __cnfn min(float4 x, float4 y); -float8 __ovld __cnfn min(float8 x, float8 y); -float16 __ovld __cnfn min(float16 x, float16 y); -float2 __ovld __cnfn min(float2 x, float y); -float3 __ovld __cnfn min(float3 x, float y); -float4 __ovld __cnfn min(float4 x, float y); -float8 __ovld __cnfn min(float8 x, float y); -float16 __ovld __cnfn min(float16 x, float y); +float __ovld __cnfn min(float, float ); +float2 __ovld __cnfn min(float2, float2 ); +float3 __ovld __cnfn min(float3, float3 ); +float4 __ovld __cnfn min(float4, float4 ); +float8 __ovld __cnfn min(float8, float8 ); +float16 __ovld __cnfn min(float16, float16 ); +float2 __ovld __cnfn min(float2, float ); +float3 __ovld __cnfn min(float3, float ); +float4 __ovld __cnfn min(float4, float ); +float8 __ovld __cnfn min(float8, float ); +float16 __ovld __cnfn min(float16, float ); #ifdef cl_khr_fp64 -double __ovld __cnfn min(double x, double y); -double2 __ovld __cnfn min(double2 x, double2 y); -double3 __ovld __cnfn min(double3 x, double3 y); -double4 __ovld __cnfn min(double4 x, double4 y); -double8 __ovld __cnfn min(double8 x, double8 y); -double16 __ovld __cnfn min(double16 x, double16 y); -double2 __ovld __cnfn min(double2 x, double y); -double3 __ovld __cnfn min(double3 x, double y); -double4 __ovld __cnfn min(double4 x, double y); -double8 __ovld __cnfn min(double8 x, double y); -double16 __ovld __cnfn min(double16 x, double y); +double __ovld __cnfn min(double, double ); +double2 __ovld __cnfn min(double2, double2 ); +double3 __ovld __cnfn min(double3, double3 ); +double4 __ovld __cnfn min(double4, double4 ); +double8 __ovld __cnfn min(double8, double8 ); +double16 __ovld __cnfn min(double16, double16 ); +double2 __ovld __cnfn min(double2, double ); +double3 __ovld __cnfn min(double3, double ); +double4 __ovld __cnfn min(double4, double ); +double8 __ovld __cnfn min(double8, double ); +double16 __ovld __cnfn min(double16, double ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn min(half x, half y); -half2 __ovld __cnfn min(half2 x, half2 y); -half3 __ovld __cnfn min(half3 x, half3 y); -half4 __ovld __cnfn min(half4 x, half4 y); -half8 __ovld __cnfn min(half8 x, half8 y); -half16 __ovld __cnfn min(half16 x, half16 y); -half2 __ovld __cnfn min(half2 x, half y); -half3 __ovld __cnfn min(half3 x, half y); -half4 __ovld __cnfn min(half4 x, half y); -half8 __ovld __cnfn min(half8 x, half y); -half16 __ovld __cnfn min(half16 x, half y); +half __ovld __cnfn min(half, half ); +half2 __ovld __cnfn min(half2, half2 ); +half3 __ovld __cnfn min(half3, half3 ); +half4 __ovld __cnfn min(half4, half4 ); +half8 __ovld __cnfn min(half8, half8 ); +half16 __ovld __cnfn min(half16, half16 ); +half2 __ovld __cnfn min(half2, half ); +half3 __ovld __cnfn min(half3, half ); +half4 __ovld __cnfn min(half4, half ); +half8 __ovld __cnfn min(half8, half ); +half16 __ovld __cnfn min(half16, half ); #endif //cl_khr_fp16 /** @@ -10866,110 +10875,110 @@ half16 __ovld __cnfn min(half16 x, half y); * in the range 0.0 ... 1.0, the return values are * undefined. */ -float __ovld __cnfn mix(float x, float y, float a); -float2 __ovld __cnfn mix(float2 x, float2 y, float2 a); -float3 __ovld __cnfn mix(float3 x, float3 y, float3 a); -float4 __ovld __cnfn mix(float4 x, float4 y, float4 a); -float8 __ovld __cnfn mix(float8 x, float8 y, float8 a); -float16 __ovld __cnfn mix(float16 x, float16 y, float16 a); -float2 __ovld __cnfn mix(float2 x, float2 y, float a); -float3 __ovld __cnfn mix(float3 x, float3 y, float a); -float4 __ovld __cnfn mix(float4 x, float4 y, float a); -float8 __ovld __cnfn mix(float8 x, float8 y, float a); -float16 __ovld __cnfn mix(float16 x, float16 y, float a); +float __ovld __cnfn mix(float, float, float); +float2 __ovld __cnfn mix(float2, float2, float2); +float3 __ovld __cnfn mix(float3, float3, float3); +float4 __ovld __cnfn mix(float4, float4, float4); +float8 __ovld __cnfn mix(float8, float8, float8); +float16 __ovld __cnfn mix(float16, float16, float16); +float2 __ovld __cnfn mix(float2, float2, float); +float3 __ovld __cnfn mix(float3, float3, float); +float4 __ovld __cnfn mix(float4, float4, float); +float8 __ovld __cnfn mix(float8, float8, float); +float16 __ovld __cnfn mix(float16, float16, float); #ifdef cl_khr_fp64 -double __ovld __cnfn mix(double x, double y, double a); -double2 __ovld __cnfn mix(double2 x, double2 y, double2 a); -double3 __ovld __cnfn mix(double3 x, double3 y, double3 a); -double4 __ovld __cnfn mix(double4 x, double4 y, double4 a); -double8 __ovld __cnfn mix(double8 x, double8 y, double8 a); -double16 __ovld __cnfn mix(double16 x, double16 y, double16 a); -double2 __ovld __cnfn mix(double2 x, double2 y, double a); -double3 __ovld __cnfn mix(double3 x, double3 y, double a); -double4 __ovld __cnfn mix(double4 x, double4 y, double a); -double8 __ovld __cnfn mix(double8 x, double8 y, double a); -double16 __ovld __cnfn mix(double16 x, double16 y, double a); +double __ovld __cnfn mix(double, double, double); +double2 __ovld __cnfn mix(double2, double2, double2); +double3 __ovld __cnfn mix(double3, double3, double3); +double4 __ovld __cnfn mix(double4, double4, double4); +double8 __ovld __cnfn mix(double8, double8, double8); +double16 __ovld __cnfn mix(double16, double16, double16); +double2 __ovld __cnfn mix(double2, double2, double); +double3 __ovld __cnfn mix(double3, double3, double); +double4 __ovld __cnfn mix(double4, double4, double); +double8 __ovld __cnfn mix(double8, double8, double); +double16 __ovld __cnfn mix(double16, double16, double); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn mix(half x, half y, half a); -half2 __ovld __cnfn mix(half2 x, half2 y, half2 a); -half3 __ovld __cnfn mix(half3 x, half3 y, half3 a); -half4 __ovld __cnfn mix(half4 x, half4 y, half4 a); -half8 __ovld __cnfn mix(half8 x, half8 y, half8 a); -half16 __ovld __cnfn mix(half16 x, half16 y, half16 a); -half2 __ovld __cnfn mix(half2 x, half2 y, half a); -half3 __ovld __cnfn mix(half3 x, half3 y, half a); -half4 __ovld __cnfn mix(half4 x, half4 y, half a); -half8 __ovld __cnfn mix(half8 x, half8 y, half a); -half16 __ovld __cnfn mix(half16 x, half16 y, half a); +half __ovld __cnfn mix(half, half, half); +half2 __ovld __cnfn mix(half2, half2, half2); +half3 __ovld __cnfn mix(half3, half3, half3); +half4 __ovld __cnfn mix(half4, half4, half4); +half8 __ovld __cnfn mix(half8, half8, half8); +half16 __ovld __cnfn mix(half16, half16, half16); +half2 __ovld __cnfn mix(half2, half2, half); +half3 __ovld __cnfn mix(half3, half3, half); +half4 __ovld __cnfn mix(half4, half4, half); +half8 __ovld __cnfn mix(half8, half8, half); +half16 __ovld __cnfn mix(half16, half16, half); #endif //cl_khr_fp16 /** * Converts degrees to radians, i.e. (PI / 180) * * degrees. */ -float __ovld __cnfn radians(float degrees); -float2 __ovld __cnfn radians(float2 degrees); -float3 __ovld __cnfn radians(float3 degrees); -float4 __ovld __cnfn radians(float4 degrees); -float8 __ovld __cnfn radians(float8 degrees); -float16 __ovld __cnfn radians(float16 degrees); +float __ovld __cnfn radians(float); +float2 __ovld __cnfn radians(float2); +float3 __ovld __cnfn radians(float3); +float4 __ovld __cnfn radians(float4); +float8 __ovld __cnfn radians(float8); +float16 __ovld __cnfn radians(float16); #ifdef cl_khr_fp64 -double __ovld __cnfn radians(double degrees); -double2 __ovld __cnfn radians(double2 degrees); -double3 __ovld __cnfn radians(double3 degrees); -double4 __ovld __cnfn radians(double4 degrees); -double8 __ovld __cnfn radians(double8 degrees); -double16 __ovld __cnfn radians(double16 degrees); +double __ovld __cnfn radians(double); +double2 __ovld __cnfn radians(double2); +double3 __ovld __cnfn radians(double3); +double4 __ovld __cnfn radians(double4); +double8 __ovld __cnfn radians(double8); +double16 __ovld __cnfn radians(double16); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn radians(half degrees); -half2 __ovld __cnfn radians(half2 degrees); -half3 __ovld __cnfn radians(half3 degrees); -half4 __ovld __cnfn radians(half4 degrees); -half8 __ovld __cnfn radians(half8 degrees); -half16 __ovld __cnfn radians(half16 degrees); +half __ovld __cnfn radians(half); +half2 __ovld __cnfn radians(half2); +half3 __ovld __cnfn radians(half3); +half4 __ovld __cnfn radians(half4); +half8 __ovld __cnfn radians(half8); +half16 __ovld __cnfn radians(half16); #endif //cl_khr_fp16 /** * Returns 0.0 if x < edge, otherwise it returns 1.0. */ -float __ovld __cnfn step(float edge, float x); -float2 __ovld __cnfn step(float2 edge, float2 x); -float3 __ovld __cnfn step(float3 edge, float3 x); -float4 __ovld __cnfn step(float4 edge, float4 x); -float8 __ovld __cnfn step(float8 edge, float8 x); -float16 __ovld __cnfn step(float16 edge, float16 x); -float2 __ovld __cnfn step(float edge, float2 x); -float3 __ovld __cnfn step(float edge, float3 x); -float4 __ovld __cnfn step(float edge, float4 x); -float8 __ovld __cnfn step(float edge, float8 x); -float16 __ovld __cnfn step(float edge, float16 x); +float __ovld __cnfn step(float edge, float); +float2 __ovld __cnfn step(float2 edge, float2); +float3 __ovld __cnfn step(float3 edge, float3); +float4 __ovld __cnfn step(float4 edge, float4); +float8 __ovld __cnfn step(float8 edge, float8); +float16 __ovld __cnfn step(float16 edge, float16); +float2 __ovld __cnfn step(float edge, float2); +float3 __ovld __cnfn step(float edge, float3); +float4 __ovld __cnfn step(float edge, float4); +float8 __ovld __cnfn step(float edge, float8); +float16 __ovld __cnfn step(float edge, float16); #ifdef cl_khr_fp64 -double __ovld __cnfn step(double edge, double x); -double2 __ovld __cnfn step(double2 edge, double2 x); -double3 __ovld __cnfn step(double3 edge, double3 x); -double4 __ovld __cnfn step(double4 edge, double4 x); -double8 __ovld __cnfn step(double8 edge, double8 x); -double16 __ovld __cnfn step(double16 edge, double16 x); -double2 __ovld __cnfn step(double edge, double2 x); -double3 __ovld __cnfn step(double edge, double3 x); -double4 __ovld __cnfn step(double edge, double4 x); -double8 __ovld __cnfn step(double edge, double8 x); -double16 __ovld __cnfn step(double edge, double16 x); +double __ovld __cnfn step(double edge, double); +double2 __ovld __cnfn step(double2 edge, double2); +double3 __ovld __cnfn step(double3 edge, double3); +double4 __ovld __cnfn step(double4 edge, double4); +double8 __ovld __cnfn step(double8 edge, double8); +double16 __ovld __cnfn step(double16 edge, double16); +double2 __ovld __cnfn step(double edge, double2); +double3 __ovld __cnfn step(double edge, double3); +double4 __ovld __cnfn step(double edge, double4); +double8 __ovld __cnfn step(double edge, double8); +double16 __ovld __cnfn step(double edge, double16); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn step(half edge, half x); -half2 __ovld __cnfn step(half2 edge, half2 x); -half3 __ovld __cnfn step(half3 edge, half3 x); -half4 __ovld __cnfn step(half4 edge, half4 x); -half8 __ovld __cnfn step(half8 edge, half8 x); -half16 __ovld __cnfn step(half16 edge, half16 x); -half2 __ovld __cnfn step(half edge, half2 x); -half3 __ovld __cnfn step(half edge, half3 x); -half4 __ovld __cnfn step(half edge, half4 x); -half8 __ovld __cnfn step(half edge, half8 x); -half16 __ovld __cnfn step(half edge, half16 x); +half __ovld __cnfn step(half edge, half); +half2 __ovld __cnfn step(half2 edge, half2); +half3 __ovld __cnfn step(half3 edge, half3); +half4 __ovld __cnfn step(half4 edge, half4); +half8 __ovld __cnfn step(half8 edge, half8); +half16 __ovld __cnfn step(half16 edge, half16); +half2 __ovld __cnfn step(half edge, half2); +half3 __ovld __cnfn step(half edge, half3); +half4 __ovld __cnfn step(half edge, half4); +half8 __ovld __cnfn step(half edge, half8); +half16 __ovld __cnfn step(half edge, half16); #endif //cl_khr_fp16 /** @@ -10982,7 +10991,7 @@ half16 __ovld __cnfn step(half edge, half16 x); * gentype t; * t = clamp ((x - edge0) / (edge1 - edge0), 0, 1); * return t * t * (3 - 2 * t); - * Results are undefined if edge0 >= edge1 or if x, + * Results are undefined if edge0 >= edge1 or if, * edge0 or edge1 is a NaN. */ float __ovld __cnfn smoothstep(float edge0, float edge1, float x); @@ -11056,128 +11065,116 @@ half16 __ovld __cnfn sign(half16 x); * Returns the cross product of p0.xyz and p1.xyz. The * w component of float4 result returned will be 0.0. */ -float4 __ovld __cnfn cross(float4 p0, float4 p1); -float3 __ovld __cnfn cross(float3 p0, float3 p1); +float4 __ovld __cnfn cross(float4, float4); +float3 __ovld __cnfn cross(float3, float3); #ifdef cl_khr_fp64 -double4 __ovld __cnfn cross(double4 p0, double4 p1); -double3 __ovld __cnfn cross(double3 p0, double3 p1); +double4 __ovld __cnfn cross(double4, double4); +double3 __ovld __cnfn cross(double3, double3); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half4 __ovld __cnfn cross(half4 p0, half4 p1); -half3 __ovld __cnfn cross(half3 p0, half3 p1); +half4 __ovld __cnfn cross(half4, half4); +half3 __ovld __cnfn cross(half3, half3); #endif //cl_khr_fp16 /** * Compute dot product. */ -float __ovld __cnfn dot(float p0, float p1); -float __ovld __cnfn dot(float2 p0, float2 p1); -float __ovld __cnfn dot(float3 p0, float3 p1); -float __ovld __cnfn dot(float4 p0, float4 p1); +float __ovld __cnfn dot(float, float); +float __ovld __cnfn dot(float2, float2); +float __ovld __cnfn dot(float3, float3); +float __ovld __cnfn dot(float4, float4); #ifdef cl_khr_fp64 -double __ovld __cnfn dot(double p0, double p1); -double __ovld __cnfn dot(double2 p0, double2 p1); -double __ovld __cnfn dot(double3 p0, double3 p1); -double __ovld __cnfn dot(double4 p0, double4 p1); +double __ovld __cnfn dot(double, double); +double __ovld __cnfn dot(double2, double2); +double __ovld __cnfn dot(double3, double3); +double __ovld __cnfn dot(double4, double4); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn dot(half p0, half p1); -half __ovld __cnfn dot(half2 p0, half2 p1); -half __ovld __cnfn dot(half3 p0, half3 p1); -half __ovld __cnfn dot(half4 p0, half4 p1); +half __ovld __cnfn dot(half, half); +half __ovld __cnfn dot(half2, half2); +half __ovld __cnfn dot(half3, half3); +half __ovld __cnfn dot(half4, half4); #endif //cl_khr_fp16 /** * Returns the distance between p0 and p1. This is * calculated as length(p0 - p1). */ -float __ovld __cnfn distance(float p0, float p1); -float __ovld __cnfn distance(float2 p0, float2 p1); -float __ovld __cnfn distance(float3 p0, float3 p1); -float __ovld __cnfn distance(float4 p0, float4 p1); +float __ovld __cnfn distance(float, float); +float __ovld __cnfn distance(float2, float2); +float __ovld __cnfn distance(float3, float3); +float __ovld __cnfn distance(float4, float4); #ifdef cl_khr_fp64 -double __ovld __cnfn distance(double p0, double p1); -double __ovld __cnfn distance(double2 p0, double2 p1); -double __ovld __cnfn distance(double3 p0, double3 p1); -double __ovld __cnfn distance(double4 p0, double4 p1); +double __ovld __cnfn distance(double, double); +double __ovld __cnfn distance(double2, double2); +double __ovld __cnfn distance(double3, double3); +double __ovld __cnfn distance(double4, double4); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn distance(half p0, half p1); -half __ovld __cnfn distance(half2 p0, half2 p1); -half __ovld __cnfn distance(half3 p0, half3 p1); -half __ovld __cnfn distance(half4 p0, half4 p1); +half __ovld __cnfn distance(half, half); +half __ovld __cnfn distance(half2, half2); +half __ovld __cnfn distance(half3, half3); +half __ovld __cnfn distance(half4, half4); #endif //cl_khr_fp16 /** * Return the length of vector p, i.e., * sqrt(p.x2 + p.y 2 + ...) */ -float __ovld __cnfn length(float p); -float __ovld __cnfn length(float2 p); -float __ovld __cnfn length(float3 p); -float __ovld __cnfn length(float4 p); +float __ovld __cnfn length(float); +float __ovld __cnfn length(float2); +float __ovld __cnfn length(float3); +float __ovld __cnfn length(float4); #ifdef cl_khr_fp64 -double __ovld __cnfn length(double p); -double __ovld __cnfn length(double2 p); -double __ovld __cnfn length(double3 p); -double __ovld __cnfn length(double4 p); +double __ovld __cnfn length(double); +double __ovld __cnfn length(double2); +double __ovld __cnfn length(double3); +double __ovld __cnfn length(double4); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn length(half p); -half __ovld __cnfn length(half2 p); -half __ovld __cnfn length(half3 p); -half __ovld __cnfn length(half4 p); +half __ovld __cnfn length(half); +half __ovld __cnfn length(half2); +half __ovld __cnfn length(half3); +half __ovld __cnfn length(half4); #endif //cl_khr_fp16 /** * Returns a vector in the same direction as p but with a * length of 1. */ -float __ovld __cnfn normalize(float p); -float2 __ovld __cnfn normalize(float2 p); -float3 __ovld __cnfn normalize(float3 p); -float4 __ovld __cnfn normalize(float4 p); +float __ovld __cnfn normalize(float); +float2 __ovld __cnfn normalize(float2); +float3 __ovld __cnfn normalize(float3); +float4 __ovld __cnfn normalize(float4); #ifdef cl_khr_fp64 -double __ovld __cnfn normalize(double p); -double2 __ovld __cnfn normalize(double2 p); -double3 __ovld __cnfn normalize(double3 p); -double4 __ovld __cnfn normalize(double4 p); +double __ovld __cnfn normalize(double); +double2 __ovld __cnfn normalize(double2); +double3 __ovld __cnfn normalize(double3); +double4 __ovld __cnfn normalize(double4); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn normalize(half p); -half2 __ovld __cnfn normalize(half2 p); -half3 __ovld __cnfn normalize(half3 p); -half4 __ovld __cnfn normalize(half4 p); +half __ovld __cnfn normalize(half); +half2 __ovld __cnfn normalize(half2); +half3 __ovld __cnfn normalize(half3); +half4 __ovld __cnfn normalize(half4); #endif //cl_khr_fp16 /** * Returns fast_length(p0 - p1). */ -float __ovld __cnfn fast_distance(float p0, float p1); -float __ovld __cnfn fast_distance(float2 p0, float2 p1); -float __ovld __cnfn fast_distance(float3 p0, float3 p1); -float __ovld __cnfn fast_distance(float4 p0, float4 p1); -#ifdef cl_khr_fp16 -half __ovld __cnfn fast_distance(half p0, half p1); -half __ovld __cnfn fast_distance(half2 p0, half2 p1); -half __ovld __cnfn fast_distance(half3 p0, half3 p1); -half __ovld __cnfn fast_distance(half4 p0, half4 p1); -#endif //cl_khr_fp16 +float __ovld __cnfn fast_distance(float, float); +float __ovld __cnfn fast_distance(float2, float2); +float __ovld __cnfn fast_distance(float3, float3); +float __ovld __cnfn fast_distance(float4, float4); /** * Returns the length of vector p computed as: * half_sqrt(p.x2 + p.y2 + ...) */ -float __ovld __cnfn fast_length(float p); -float __ovld __cnfn fast_length(float2 p); -float __ovld __cnfn fast_length(float3 p); -float __ovld __cnfn fast_length(float4 p); -#ifdef cl_khr_fp16 -half __ovld __cnfn fast_length(half p); -half __ovld __cnfn fast_length(half2 p); -half __ovld __cnfn fast_length(half3 p); -half __ovld __cnfn fast_length(half4 p); -#endif //cl_khr_fp16 +float __ovld __cnfn fast_length(float); +float __ovld __cnfn fast_length(float2); +float __ovld __cnfn fast_length(float3); +float __ovld __cnfn fast_length(float4); /** * Returns a vector in the same direction as p but with a @@ -11200,201 +11197,195 @@ half __ovld __cnfn fast_length(half4 p); * less than sqrt(FLT_MIN) may be flushed to zero * before proceeding with the calculation. */ -float __ovld __cnfn fast_normalize(float p); -float2 __ovld __cnfn fast_normalize(float2 p); -float3 __ovld __cnfn fast_normalize(float3 p); -float4 __ovld __cnfn fast_normalize(float4 p); -#ifdef cl_khr_fp16 -half __ovld __cnfn fast_normalize(half p); -half2 __ovld __cnfn fast_normalize(half2 p); -half3 __ovld __cnfn fast_normalize(half3 p); -half4 __ovld __cnfn fast_normalize(half4 p); -#endif //cl_khr_fp16 +float __ovld __cnfn fast_normalize(float); +float2 __ovld __cnfn fast_normalize(float2); +float3 __ovld __cnfn fast_normalize(float3); +float4 __ovld __cnfn fast_normalize(float4); // OpenCL v1.1 s6.11.6, v1.2 s6.12.6, v2.0 s6.13.6 - Relational Functions /** - * intn isequal (floatn x, floatn y) + * intn isequal (floatn, floatn ) * Returns the component-wise compare of x == y. */ -int __ovld __cnfn isequal(float x, float y); -int2 __ovld __cnfn isequal(float2 x, float2 y); -int3 __ovld __cnfn isequal(float3 x, float3 y); -int4 __ovld __cnfn isequal(float4 x, float4 y); -int8 __ovld __cnfn isequal(float8 x, float8 y); -int16 __ovld __cnfn isequal(float16 x, float16 y); +int __ovld __cnfn isequal(float, float ); +int2 __ovld __cnfn isequal(float2, float2 ); +int3 __ovld __cnfn isequal(float3, float3 ); +int4 __ovld __cnfn isequal(float4, float4 ); +int8 __ovld __cnfn isequal(float8, float8 ); +int16 __ovld __cnfn isequal(float16, float16 ); #ifdef cl_khr_fp64 -int __ovld __cnfn isequal(double x, double y); -long2 __ovld __cnfn isequal(double2 x, double2 y); -long3 __ovld __cnfn isequal(double3 x, double3 y); -long4 __ovld __cnfn isequal(double4 x, double4 y); -long8 __ovld __cnfn isequal(double8 x, double8 y); -long16 __ovld __cnfn isequal(double16 x, double16 y); +int __ovld __cnfn isequal(double, double ); +long2 __ovld __cnfn isequal(double2, double2 ); +long3 __ovld __cnfn isequal(double3, double3 ); +long4 __ovld __cnfn isequal(double4, double4 ); +long8 __ovld __cnfn isequal(double8, double8 ); +long16 __ovld __cnfn isequal(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -int __ovld __cnfn isequal(half x, half y); -short2 __ovld __cnfn isequal(half2 x, half2 y); -short3 __ovld __cnfn isequal(half3 x, half3 y); -short4 __ovld __cnfn isequal(half4 x, half4 y); -short8 __ovld __cnfn isequal(half8 x, half8 y); -short16 __ovld __cnfn isequal(half16 x, half16 y); +int __ovld __cnfn isequal(half, half ); +short2 __ovld __cnfn isequal(half2, half2 ); +short3 __ovld __cnfn isequal(half3, half3 ); +short4 __ovld __cnfn isequal(half4, half4 ); +short8 __ovld __cnfn isequal(half8, half8 ); +short16 __ovld __cnfn isequal(half16, half16 ); #endif //cl_khr_fp16 /** * Returns the component-wise compare of x != y. */ -int __ovld __cnfn isnotequal(float x, float y); -int2 __ovld __cnfn isnotequal(float2 x, float2 y); -int3 __ovld __cnfn isnotequal(float3 x, float3 y); -int4 __ovld __cnfn isnotequal(float4 x, float4 y); -int8 __ovld __cnfn isnotequal(float8 x, float8 y); -int16 __ovld __cnfn isnotequal(float16 x, float16 y); +int __ovld __cnfn isnotequal(float, float ); +int2 __ovld __cnfn isnotequal(float2, float2 ); +int3 __ovld __cnfn isnotequal(float3, float3 ); +int4 __ovld __cnfn isnotequal(float4, float4 ); +int8 __ovld __cnfn isnotequal(float8, float8 ); +int16 __ovld __cnfn isnotequal(float16, float16 ); #ifdef cl_khr_fp64 -int __ovld __cnfn isnotequal(double x, double y); -long2 __ovld __cnfn isnotequal(double2 x, double2 y); -long3 __ovld __cnfn isnotequal(double3 x, double3 y); -long4 __ovld __cnfn isnotequal(double4 x, double4 y); -long8 __ovld __cnfn isnotequal(double8 x, double8 y); -long16 __ovld __cnfn isnotequal(double16 x, double16 y); +int __ovld __cnfn isnotequal(double, double ); +long2 __ovld __cnfn isnotequal(double2, double2 ); +long3 __ovld __cnfn isnotequal(double3, double3 ); +long4 __ovld __cnfn isnotequal(double4, double4 ); +long8 __ovld __cnfn isnotequal(double8, double8 ); +long16 __ovld __cnfn isnotequal(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -int __ovld __cnfn isnotequal(half x, half y); -short2 __ovld __cnfn isnotequal(half2 x, half2 y); -short3 __ovld __cnfn isnotequal(half3 x, half3 y); -short4 __ovld __cnfn isnotequal(half4 x, half4 y); -short8 __ovld __cnfn isnotequal(half8 x, half8 y); -short16 __ovld __cnfn isnotequal(half16 x, half16 y); +int __ovld __cnfn isnotequal(half, half ); +short2 __ovld __cnfn isnotequal(half2, half2 ); +short3 __ovld __cnfn isnotequal(half3, half3 ); +short4 __ovld __cnfn isnotequal(half4, half4 ); +short8 __ovld __cnfn isnotequal(half8, half8 ); +short16 __ovld __cnfn isnotequal(half16, half16 ); #endif //cl_khr_fp16 /** * Returns the component-wise compare of x > y. */ -int __ovld __cnfn isgreater(float x, float y); -int2 __ovld __cnfn isgreater(float2 x, float2 y); -int3 __ovld __cnfn isgreater(float3 x, float3 y); -int4 __ovld __cnfn isgreater(float4 x, float4 y); -int8 __ovld __cnfn isgreater(float8 x, float8 y); -int16 __ovld __cnfn isgreater(float16 x, float16 y); +int __ovld __cnfn isgreater(float, float ); +int2 __ovld __cnfn isgreater(float2, float2 ); +int3 __ovld __cnfn isgreater(float3, float3 ); +int4 __ovld __cnfn isgreater(float4, float4 ); +int8 __ovld __cnfn isgreater(float8, float8 ); +int16 __ovld __cnfn isgreater(float16, float16 ); #ifdef cl_khr_fp64 -int __ovld __cnfn isgreater(double x, double y); -long2 __ovld __cnfn isgreater(double2 x, double2 y); -long3 __ovld __cnfn isgreater(double3 x, double3 y); -long4 __ovld __cnfn isgreater(double4 x, double4 y); -long8 __ovld __cnfn isgreater(double8 x, double8 y); -long16 __ovld __cnfn isgreater(double16 x, double16 y); +int __ovld __cnfn isgreater(double, double ); +long2 __ovld __cnfn isgreater(double2, double2 ); +long3 __ovld __cnfn isgreater(double3, double3 ); +long4 __ovld __cnfn isgreater(double4, double4 ); +long8 __ovld __cnfn isgreater(double8, double8 ); +long16 __ovld __cnfn isgreater(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -int __ovld __cnfn isgreater(half x, half y); -short2 __ovld __cnfn isgreater(half2 x, half2 y); -short3 __ovld __cnfn isgreater(half3 x, half3 y); -short4 __ovld __cnfn isgreater(half4 x, half4 y); -short8 __ovld __cnfn isgreater(half8 x, half8 y); -short16 __ovld __cnfn isgreater(half16 x, half16 y); +int __ovld __cnfn isgreater(half, half ); +short2 __ovld __cnfn isgreater(half2, half2 ); +short3 __ovld __cnfn isgreater(half3, half3 ); +short4 __ovld __cnfn isgreater(half4, half4 ); +short8 __ovld __cnfn isgreater(half8, half8 ); +short16 __ovld __cnfn isgreater(half16, half16 ); #endif //cl_khr_fp16 /** * Returns the component-wise compare of x >= y. */ -int __ovld __cnfn isgreaterequal(float x, float y); -int2 __ovld __cnfn isgreaterequal(float2 x, float2 y); -int3 __ovld __cnfn isgreaterequal(float3 x, float3 y); -int4 __ovld __cnfn isgreaterequal(float4 x, float4 y); -int8 __ovld __cnfn isgreaterequal(float8 x, float8 y); -int16 __ovld __cnfn isgreaterequal(float16 x, float16 y); +int __ovld __cnfn isgreaterequal(float, float ); +int2 __ovld __cnfn isgreaterequal(float2, float2 ); +int3 __ovld __cnfn isgreaterequal(float3, float3 ); +int4 __ovld __cnfn isgreaterequal(float4, float4 ); +int8 __ovld __cnfn isgreaterequal(float8, float8 ); +int16 __ovld __cnfn isgreaterequal(float16, float16 ); #ifdef cl_khr_fp64 -int __ovld __cnfn isgreaterequal(double x, double y); -long2 __ovld __cnfn isgreaterequal(double2 x, double2 y); -long3 __ovld __cnfn isgreaterequal(double3 x, double3 y); -long4 __ovld __cnfn isgreaterequal(double4 x, double4 y); -long8 __ovld __cnfn isgreaterequal(double8 x, double8 y); -long16 __ovld __cnfn isgreaterequal(double16 x, double16 y); +int __ovld __cnfn isgreaterequal(double, double ); +long2 __ovld __cnfn isgreaterequal(double2, double2 ); +long3 __ovld __cnfn isgreaterequal(double3, double3 ); +long4 __ovld __cnfn isgreaterequal(double4, double4 ); +long8 __ovld __cnfn isgreaterequal(double8, double8 ); +long16 __ovld __cnfn isgreaterequal(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -int __ovld __cnfn isgreaterequal(half x, half y); -short2 __ovld __cnfn isgreaterequal(half2 x, half2 y); -short3 __ovld __cnfn isgreaterequal(half3 x, half3 y); -short4 __ovld __cnfn isgreaterequal(half4 x, half4 y); -short8 __ovld __cnfn isgreaterequal(half8 x, half8 y); -short16 __ovld __cnfn isgreaterequal(half16 x, half16 y); +int __ovld __cnfn isgreaterequal(half, half ); +short2 __ovld __cnfn isgreaterequal(half2, half2 ); +short3 __ovld __cnfn isgreaterequal(half3, half3 ); +short4 __ovld __cnfn isgreaterequal(half4, half4 ); +short8 __ovld __cnfn isgreaterequal(half8, half8 ); +short16 __ovld __cnfn isgreaterequal(half16, half16 ); #endif //cl_khr_fp16 /** * Returns the component-wise compare of x < y. */ -int __ovld __cnfn isless(float x, float y); -int2 __ovld __cnfn isless(float2 x, float2 y); -int3 __ovld __cnfn isless(float3 x, float3 y); -int4 __ovld __cnfn isless(float4 x, float4 y); -int8 __ovld __cnfn isless(float8 x, float8 y); -int16 __ovld __cnfn isless(float16 x, float16 y); +int __ovld __cnfn isless(float, float ); +int2 __ovld __cnfn isless(float2, float2 ); +int3 __ovld __cnfn isless(float3, float3 ); +int4 __ovld __cnfn isless(float4, float4 ); +int8 __ovld __cnfn isless(float8, float8 ); +int16 __ovld __cnfn isless(float16, float16 ); #ifdef cl_khr_fp64 -int __ovld __cnfn isless(double x, double y); -long2 __ovld __cnfn isless(double2 x, double2 y); -long3 __ovld __cnfn isless(double3 x, double3 y); -long4 __ovld __cnfn isless(double4 x, double4 y); -long8 __ovld __cnfn isless(double8 x, double8 y); -long16 __ovld __cnfn isless(double16 x, double16 y); +int __ovld __cnfn isless(double, double ); +long2 __ovld __cnfn isless(double2, double2 ); +long3 __ovld __cnfn isless(double3, double3 ); +long4 __ovld __cnfn isless(double4, double4 ); +long8 __ovld __cnfn isless(double8, double8 ); +long16 __ovld __cnfn isless(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -int __ovld __cnfn isless(half x, half y); -short2 __ovld __cnfn isless(half2 x, half2 y); -short3 __ovld __cnfn isless(half3 x, half3 y); -short4 __ovld __cnfn isless(half4 x, half4 y); -short8 __ovld __cnfn isless(half8 x, half8 y); -short16 __ovld __cnfn isless(half16 x, half16 y); +int __ovld __cnfn isless(half, half ); +short2 __ovld __cnfn isless(half2, half2 ); +short3 __ovld __cnfn isless(half3, half3 ); +short4 __ovld __cnfn isless(half4, half4 ); +short8 __ovld __cnfn isless(half8, half8 ); +short16 __ovld __cnfn isless(half16, half16 ); #endif //cl_khr_fp16 /** * Returns the component-wise compare of x <= y. */ -int __ovld __cnfn islessequal(float x, float y); -int2 __ovld __cnfn islessequal(float2 x, float2 y); -int3 __ovld __cnfn islessequal(float3 x, float3 y); -int4 __ovld __cnfn islessequal(float4 x, float4 y); -int8 __ovld __cnfn islessequal(float8 x, float8 y); -int16 __ovld __cnfn islessequal(float16 x, float16 y); +int __ovld __cnfn islessequal(float, float ); +int2 __ovld __cnfn islessequal(float2, float2 ); +int3 __ovld __cnfn islessequal(float3, float3 ); +int4 __ovld __cnfn islessequal(float4, float4 ); +int8 __ovld __cnfn islessequal(float8, float8 ); +int16 __ovld __cnfn islessequal(float16, float16 ); #ifdef cl_khr_fp64 -int __ovld __cnfn islessequal(double x, double y); -long2 __ovld __cnfn islessequal(double2 x, double2 y); -long3 __ovld __cnfn islessequal(double3 x, double3 y); -long4 __ovld __cnfn islessequal(double4 x, double4 y); -long8 __ovld __cnfn islessequal(double8 x, double8 y); -long16 __ovld __cnfn islessequal(double16 x, double16 y); +int __ovld __cnfn islessequal(double, double ); +long2 __ovld __cnfn islessequal(double2, double2 ); +long3 __ovld __cnfn islessequal(double3, double3 ); +long4 __ovld __cnfn islessequal(double4, double4 ); +long8 __ovld __cnfn islessequal(double8, double8 ); +long16 __ovld __cnfn islessequal(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -int __ovld __cnfn islessequal(half x, half y); -short2 __ovld __cnfn islessequal(half2 x, half2 y); -short3 __ovld __cnfn islessequal(half3 x, half3 y); -short4 __ovld __cnfn islessequal(half4 x, half4 y); -short8 __ovld __cnfn islessequal(half8 x, half8 y); -short16 __ovld __cnfn islessequal(half16 x, half16 y); +int __ovld __cnfn islessequal(half, half ); +short2 __ovld __cnfn islessequal(half2, half2 ); +short3 __ovld __cnfn islessequal(half3, half3 ); +short4 __ovld __cnfn islessequal(half4, half4 ); +short8 __ovld __cnfn islessequal(half8, half8 ); +short16 __ovld __cnfn islessequal(half16, half16 ); #endif //cl_khr_fp16 /** * Returns the component-wise compare of - * (x < y) || (x > y) . + * (x < ) || (x > y) . */ -int __ovld __cnfn islessgreater(float x, float y); -int2 __ovld __cnfn islessgreater(float2 x, float2 y); -int3 __ovld __cnfn islessgreater(float3 x, float3 y); -int4 __ovld __cnfn islessgreater(float4 x, float4 y); -int8 __ovld __cnfn islessgreater(float8 x, float8 y); -int16 __ovld __cnfn islessgreater(float16 x, float16 y); +int __ovld __cnfn islessgreater(float, float ); +int2 __ovld __cnfn islessgreater(float2, float2 ); +int3 __ovld __cnfn islessgreater(float3, float3 ); +int4 __ovld __cnfn islessgreater(float4, float4 ); +int8 __ovld __cnfn islessgreater(float8, float8 ); +int16 __ovld __cnfn islessgreater(float16, float16 ); #ifdef cl_khr_fp64 -int __ovld __cnfn islessgreater(double x, double y); -long2 __ovld __cnfn islessgreater(double2 x, double2 y); -long3 __ovld __cnfn islessgreater(double3 x, double3 y); -long4 __ovld __cnfn islessgreater(double4 x, double4 y); -long8 __ovld __cnfn islessgreater(double8 x, double8 y); -long16 __ovld __cnfn islessgreater(double16 x, double16 y); +int __ovld __cnfn islessgreater(double, double ); +long2 __ovld __cnfn islessgreater(double2, double2 ); +long3 __ovld __cnfn islessgreater(double3, double3 ); +long4 __ovld __cnfn islessgreater(double4, double4 ); +long8 __ovld __cnfn islessgreater(double8, double8 ); +long16 __ovld __cnfn islessgreater(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -int __ovld __cnfn islessgreater(half x, half y); -short2 __ovld __cnfn islessgreater(half2 x, half2 y); -short3 __ovld __cnfn islessgreater(half3 x, half3 y); -short4 __ovld __cnfn islessgreater(half4 x, half4 y); -short8 __ovld __cnfn islessgreater(half8 x, half8 y); -short16 __ovld __cnfn islessgreater(half16 x, half16 y); +int __ovld __cnfn islessgreater(half, half ); +short2 __ovld __cnfn islessgreater(half2, half2 ); +short3 __ovld __cnfn islessgreater(half3, half3 ); +short4 __ovld __cnfn islessgreater(half4, half4 ); +short8 __ovld __cnfn islessgreater(half8, half8 ); +short16 __ovld __cnfn islessgreater(half16, half16 ); #endif //cl_khr_fp16 /** @@ -11503,58 +11494,58 @@ short16 __ovld __cnfn isnormal(half16); /** * Test if arguments are ordered. isordered() takes - * arguments x and y, and returns the result - * isequal(x, x) && isequal(y, y). + * arguments x and, and returns the result + * isequal(x, x) && isequal(y, ). */ -int __ovld __cnfn isordered(float x, float y); -int2 __ovld __cnfn isordered(float2 x, float2 y); -int3 __ovld __cnfn isordered(float3 x, float3 y); -int4 __ovld __cnfn isordered(float4 x, float4 y); -int8 __ovld __cnfn isordered(float8 x, float8 y); -int16 __ovld __cnfn isordered(float16 x, float16 y); +int __ovld __cnfn isordered(float, float ); +int2 __ovld __cnfn isordered(float2, float2 ); +int3 __ovld __cnfn isordered(float3, float3 ); +int4 __ovld __cnfn isordered(float4, float4 ); +int8 __ovld __cnfn isordered(float8, float8 ); +int16 __ovld __cnfn isordered(float16, float16 ); #ifdef cl_khr_fp64 -int __ovld __cnfn isordered(double x, double y); -long2 __ovld __cnfn isordered(double2 x, double2 y); -long3 __ovld __cnfn isordered(double3 x, double3 y); -long4 __ovld __cnfn isordered(double4 x, double4 y); -long8 __ovld __cnfn isordered(double8 x, double8 y); -long16 __ovld __cnfn isordered(double16 x, double16 y); +int __ovld __cnfn isordered(double, double ); +long2 __ovld __cnfn isordered(double2, double2 ); +long3 __ovld __cnfn isordered(double3, double3 ); +long4 __ovld __cnfn isordered(double4, double4 ); +long8 __ovld __cnfn isordered(double8, double8 ); +long16 __ovld __cnfn isordered(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -int __ovld __cnfn isordered(half x, half y); -short2 __ovld __cnfn isordered(half2 x, half2 y); -short3 __ovld __cnfn isordered(half3 x, half3 y); -short4 __ovld __cnfn isordered(half4 x, half4 y); -short8 __ovld __cnfn isordered(half8 x, half8 y); -short16 __ovld __cnfn isordered(half16 x, half16 y); +int __ovld __cnfn isordered(half, half ); +short2 __ovld __cnfn isordered(half2, half2 ); +short3 __ovld __cnfn isordered(half3, half3 ); +short4 __ovld __cnfn isordered(half4, half4 ); +short8 __ovld __cnfn isordered(half8, half8 ); +short16 __ovld __cnfn isordered(half16, half16 ); #endif //cl_khr_fp16 /** * Test if arguments are unordered. isunordered() - * takes arguments x and y, returning non-zero if x or y + * takes arguments x and, returning non-zero if x or y * is NaN, and zero otherwise. */ -int __ovld __cnfn isunordered(float x, float y); -int2 __ovld __cnfn isunordered(float2 x, float2 y); -int3 __ovld __cnfn isunordered(float3 x, float3 y); -int4 __ovld __cnfn isunordered(float4 x, float4 y); -int8 __ovld __cnfn isunordered(float8 x, float8 y); -int16 __ovld __cnfn isunordered(float16 x, float16 y); +int __ovld __cnfn isunordered(float, float ); +int2 __ovld __cnfn isunordered(float2, float2 ); +int3 __ovld __cnfn isunordered(float3, float3 ); +int4 __ovld __cnfn isunordered(float4, float4 ); +int8 __ovld __cnfn isunordered(float8, float8 ); +int16 __ovld __cnfn isunordered(float16, float16 ); #ifdef cl_khr_fp64 -int __ovld __cnfn isunordered(double x, double y); -long2 __ovld __cnfn isunordered(double2 x, double2 y); -long3 __ovld __cnfn isunordered(double3 x, double3 y); -long4 __ovld __cnfn isunordered(double4 x, double4 y); -long8 __ovld __cnfn isunordered(double8 x, double8 y); -long16 __ovld __cnfn isunordered(double16 x, double16 y); +int __ovld __cnfn isunordered(double, double ); +long2 __ovld __cnfn isunordered(double2, double2 ); +long3 __ovld __cnfn isunordered(double3, double3 ); +long4 __ovld __cnfn isunordered(double4, double4 ); +long8 __ovld __cnfn isunordered(double8, double8 ); +long16 __ovld __cnfn isunordered(double16, double16 ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -int __ovld __cnfn isunordered(half x, half y); -short2 __ovld __cnfn isunordered(half2 x, half2 y); -short3 __ovld __cnfn isunordered(half3 x, half3 y); -short4 __ovld __cnfn isunordered(half4 x, half4 y); -short8 __ovld __cnfn isunordered(half8 x, half8 y); -short16 __ovld __cnfn isunordered(half16 x, half16 y); +int __ovld __cnfn isunordered(half, half ); +short2 __ovld __cnfn isunordered(half2, half2 ); +short3 __ovld __cnfn isunordered(half3, half3 ); +short4 __ovld __cnfn isunordered(half4, half4 ); +short8 __ovld __cnfn isunordered(half8, half8 ); +short16 __ovld __cnfn isunordered(half16, half16 ); #endif //cl_khr_fp16 /** @@ -11650,75 +11641,75 @@ int __ovld __cnfn all(long16 x); * the corresponding bit of c is 0. Otherwise it is the * corresponding bit of b. */ -char __ovld __cnfn bitselect(char a, char b, char c); -uchar __ovld __cnfn bitselect(uchar a, uchar b, uchar c); -char2 __ovld __cnfn bitselect(char2 a, char2 b, char2 c); -uchar2 __ovld __cnfn bitselect(uchar2 a, uchar2 b, uchar2 c); -char3 __ovld __cnfn bitselect(char3 a, char3 b, char3 c); -uchar3 __ovld __cnfn bitselect(uchar3 a, uchar3 b, uchar3 c); -char4 __ovld __cnfn bitselect(char4 a, char4 b, char4 c); -uchar4 __ovld __cnfn bitselect(uchar4 a, uchar4 b, uchar4 c); -char8 __ovld __cnfn bitselect(char8 a, char8 b, char8 c); -uchar8 __ovld __cnfn bitselect(uchar8 a, uchar8 b, uchar8 c); -char16 __ovld __cnfn bitselect(char16 a, char16 b, char16 c); -uchar16 __ovld __cnfn bitselect(uchar16 a, uchar16 b, uchar16 c); -short __ovld __cnfn bitselect(short a, short b, short c); -ushort __ovld __cnfn bitselect(ushort a, ushort b, ushort c); -short2 __ovld __cnfn bitselect(short2 a, short2 b, short2 c); -ushort2 __ovld __cnfn bitselect(ushort2 a, ushort2 b, ushort2 c); -short3 __ovld __cnfn bitselect(short3 a, short3 b, short3 c); -ushort3 __ovld __cnfn bitselect(ushort3 a, ushort3 b, ushort3 c); -short4 __ovld __cnfn bitselect(short4 a, short4 b, short4 c); -ushort4 __ovld __cnfn bitselect(ushort4 a, ushort4 b, ushort4 c); -short8 __ovld __cnfn bitselect(short8 a, short8 b, short8 c); -ushort8 __ovld __cnfn bitselect(ushort8 a, ushort8 b, ushort8 c); -short16 __ovld __cnfn bitselect(short16 a, short16 b, short16 c); -ushort16 __ovld __cnfn bitselect(ushort16 a, ushort16 b, ushort16 c); -int __ovld __cnfn bitselect(int a, int b, int c); -uint __ovld __cnfn bitselect(uint a, uint b, uint c); -int2 __ovld __cnfn bitselect(int2 a, int2 b, int2 c); -uint2 __ovld __cnfn bitselect(uint2 a, uint2 b, uint2 c); -int3 __ovld __cnfn bitselect(int3 a, int3 b, int3 c); -uint3 __ovld __cnfn bitselect(uint3 a, uint3 b, uint3 c); -int4 __ovld __cnfn bitselect(int4 a, int4 b, int4 c); -uint4 __ovld __cnfn bitselect(uint4 a, uint4 b, uint4 c); -int8 __ovld __cnfn bitselect(int8 a, int8 b, int8 c); -uint8 __ovld __cnfn bitselect(uint8 a, uint8 b, uint8 c); -int16 __ovld __cnfn bitselect(int16 a, int16 b, int16 c); -uint16 __ovld __cnfn bitselect(uint16 a, uint16 b, uint16 c); -long __ovld __cnfn bitselect(long a, long b, long c); -ulong __ovld __cnfn bitselect(ulong a, ulong b, ulong c); -long2 __ovld __cnfn bitselect(long2 a, long2 b, long2 c); -ulong2 __ovld __cnfn bitselect(ulong2 a, ulong2 b, ulong2 c); -long3 __ovld __cnfn bitselect(long3 a, long3 b, long3 c); -ulong3 __ovld __cnfn bitselect(ulong3 a, ulong3 b, ulong3 c); -long4 __ovld __cnfn bitselect(long4 a, long4 b, long4 c); -ulong4 __ovld __cnfn bitselect(ulong4 a, ulong4 b, ulong4 c); -long8 __ovld __cnfn bitselect(long8 a, long8 b, long8 c); -ulong8 __ovld __cnfn bitselect(ulong8 a, ulong8 b, ulong8 c); -long16 __ovld __cnfn bitselect(long16 a, long16 b, long16 c); -ulong16 __ovld __cnfn bitselect(ulong16 a, ulong16 b, ulong16 c); -float __ovld __cnfn bitselect(float a, float b, float c); -float2 __ovld __cnfn bitselect(float2 a, float2 b, float2 c); -float3 __ovld __cnfn bitselect(float3 a, float3 b, float3 c); -float4 __ovld __cnfn bitselect(float4 a, float4 b, float4 c); -float8 __ovld __cnfn bitselect(float8 a, float8 b, float8 c); -float16 __ovld __cnfn bitselect(float16 a, float16 b, float16 c); +char __ovld __cnfn bitselect(char, char, char); +uchar __ovld __cnfn bitselect(uchar, uchar, uchar); +char2 __ovld __cnfn bitselect(char2, char2, char2); +uchar2 __ovld __cnfn bitselect(uchar2, uchar2, uchar2); +char3 __ovld __cnfn bitselect(char3, char3, char3); +uchar3 __ovld __cnfn bitselect(uchar3, uchar3, uchar3); +char4 __ovld __cnfn bitselect(char4, char4, char4); +uchar4 __ovld __cnfn bitselect(uchar4, uchar4, uchar4); +char8 __ovld __cnfn bitselect(char8, char8, char8); +uchar8 __ovld __cnfn bitselect(uchar8, uchar8, uchar8); +char16 __ovld __cnfn bitselect(char16, char16, char16); +uchar16 __ovld __cnfn bitselect(uchar16, uchar16, uchar16); +short __ovld __cnfn bitselect(short, short, short); +ushort __ovld __cnfn bitselect(ushort, ushort, ushort); +short2 __ovld __cnfn bitselect(short2, short2, short2); +ushort2 __ovld __cnfn bitselect(ushort2, ushort2, ushort2); +short3 __ovld __cnfn bitselect(short3, short3, short3); +ushort3 __ovld __cnfn bitselect(ushort3, ushort3, ushort3); +short4 __ovld __cnfn bitselect(short4, short4, short4); +ushort4 __ovld __cnfn bitselect(ushort4, ushort4, ushort4); +short8 __ovld __cnfn bitselect(short8, short8, short8); +ushort8 __ovld __cnfn bitselect(ushort8, ushort8, ushort8); +short16 __ovld __cnfn bitselect(short16, short16, short16); +ushort16 __ovld __cnfn bitselect(ushort16, ushort16, ushort16); +int __ovld __cnfn bitselect(int, int, int); +uint __ovld __cnfn bitselect(uint, uint, uint); +int2 __ovld __cnfn bitselect(int2, int2, int2); +uint2 __ovld __cnfn bitselect(uint2, uint2, uint2); +int3 __ovld __cnfn bitselect(int3, int3, int3); +uint3 __ovld __cnfn bitselect(uint3, uint3, uint3); +int4 __ovld __cnfn bitselect(int4, int4, int4); +uint4 __ovld __cnfn bitselect(uint4, uint4, uint4); +int8 __ovld __cnfn bitselect(int8, int8, int8); +uint8 __ovld __cnfn bitselect(uint8, uint8, uint8); +int16 __ovld __cnfn bitselect(int16, int16, int16); +uint16 __ovld __cnfn bitselect(uint16, uint16, uint16); +long __ovld __cnfn bitselect(long, long, long); +ulong __ovld __cnfn bitselect(ulong, ulong, ulong); +long2 __ovld __cnfn bitselect(long2, long2, long2); +ulong2 __ovld __cnfn bitselect(ulong2, ulong2, ulong2); +long3 __ovld __cnfn bitselect(long3, long3, long3); +ulong3 __ovld __cnfn bitselect(ulong3, ulong3, ulong3); +long4 __ovld __cnfn bitselect(long4, long4, long4); +ulong4 __ovld __cnfn bitselect(ulong4, ulong4, ulong4); +long8 __ovld __cnfn bitselect(long8, long8, long8); +ulong8 __ovld __cnfn bitselect(ulong8, ulong8, ulong8); +long16 __ovld __cnfn bitselect(long16, long16, long16); +ulong16 __ovld __cnfn bitselect(ulong16, ulong16, ulong16); +float __ovld __cnfn bitselect(float, float, float); +float2 __ovld __cnfn bitselect(float2, float2, float2); +float3 __ovld __cnfn bitselect(float3, float3, float3); +float4 __ovld __cnfn bitselect(float4, float4, float4); +float8 __ovld __cnfn bitselect(float8, float8, float8); +float16 __ovld __cnfn bitselect(float16, float16, float16); #ifdef cl_khr_fp64 -double __ovld __cnfn bitselect(double a, double b, double c); -double2 __ovld __cnfn bitselect(double2 a, double2 b, double2 c); -double3 __ovld __cnfn bitselect(double3 a, double3 b, double3 c); -double4 __ovld __cnfn bitselect(double4 a, double4 b, double4 c); -double8 __ovld __cnfn bitselect(double8 a, double8 b, double8 c); -double16 __ovld __cnfn bitselect(double16 a, double16 b, double16 c); +double __ovld __cnfn bitselect(double, double, double); +double2 __ovld __cnfn bitselect(double2, double2, double2); +double3 __ovld __cnfn bitselect(double3, double3, double3); +double4 __ovld __cnfn bitselect(double4, double4, double4); +double8 __ovld __cnfn bitselect(double8, double8, double8); +double16 __ovld __cnfn bitselect(double16, double16, double16); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn bitselect(half a, half b, half c); -half2 __ovld __cnfn bitselect(half2 a, half2 b, half2 c); -half3 __ovld __cnfn bitselect(half3 a, half3 b, half3 c); -half4 __ovld __cnfn bitselect(half4 a, half4 b, half4 c); -half8 __ovld __cnfn bitselect(half8 a, half8 b, half8 c); -half16 __ovld __cnfn bitselect(half16 a, half16 b, half16 c); +half __ovld __cnfn bitselect(half, half, half); +half2 __ovld __cnfn bitselect(half2, half2, half2); +half3 __ovld __cnfn bitselect(half3, half3, half3); +half4 __ovld __cnfn bitselect(half4, half4, half4); +half8 __ovld __cnfn bitselect(half8, half8, half8); +half16 __ovld __cnfn bitselect(half16, half16, half16); #endif //cl_khr_fp16 /** @@ -11728,149 +11719,149 @@ half16 __ovld __cnfn bitselect(half16 a, half16 b, half16 c); * b and a must have the same type. * c must have the same number of elements and bits as a. */ -char __ovld __cnfn select(char a, char b, char c); -uchar __ovld __cnfn select(uchar a, uchar b, char c); -char2 __ovld __cnfn select(char2 a, char2 b, char2 c); -uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, char2 c); -char3 __ovld __cnfn select(char3 a, char3 b, char3 c); -uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, char3 c); -char4 __ovld __cnfn select(char4 a, char4 b, char4 c); -uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, char4 c); -char8 __ovld __cnfn select(char8 a, char8 b, char8 c); -uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, char8 c); -char16 __ovld __cnfn select(char16 a, char16 b, char16 c); -uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, char16 c); - -short __ovld __cnfn select(short a, short b, short c); -ushort __ovld __cnfn select(ushort a, ushort b, short c); -short2 __ovld __cnfn select(short2 a, short2 b, short2 c); -ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, short2 c); -short3 __ovld __cnfn select(short3 a, short3 b, short3 c); -ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, short3 c); -short4 __ovld __cnfn select(short4 a, short4 b, short4 c); -ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, short4 c); -short8 __ovld __cnfn select(short8 a, short8 b, short8 c); -ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, short8 c); -short16 __ovld __cnfn select(short16 a, short16 b, short16 c); -ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, short16 c); - -int __ovld __cnfn select(int a, int b, int c); -uint __ovld __cnfn select(uint a, uint b, int c); -int2 __ovld __cnfn select(int2 a, int2 b, int2 c); -uint2 __ovld __cnfn select(uint2 a, uint2 b, int2 c); -int3 __ovld __cnfn select(int3 a, int3 b, int3 c); -uint3 __ovld __cnfn select(uint3 a, uint3 b, int3 c); -int4 __ovld __cnfn select(int4 a, int4 b, int4 c); -uint4 __ovld __cnfn select(uint4 a, uint4 b, int4 c); -int8 __ovld __cnfn select(int8 a, int8 b, int8 c); -uint8 __ovld __cnfn select(uint8 a, uint8 b, int8 c); -int16 __ovld __cnfn select(int16 a, int16 b, int16 c); -uint16 __ovld __cnfn select(uint16 a, uint16 b, int16 c); -float __ovld __cnfn select(float a, float b, int c); -float2 __ovld __cnfn select(float2 a, float2 b, int2 c); -float3 __ovld __cnfn select(float3 a, float3 b, int3 c); -float4 __ovld __cnfn select(float4 a, float4 b, int4 c); -float8 __ovld __cnfn select(float8 a, float8 b, int8 c); -float16 __ovld __cnfn select(float16 a, float16 b, int16 c); - -long __ovld __cnfn select(long a, long b, long c); -ulong __ovld __cnfn select(ulong a, ulong b, long c); -long2 __ovld __cnfn select(long2 a, long2 b, long2 c); -ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, long2 c); -long3 __ovld __cnfn select(long3 a, long3 b, long3 c); -ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, long3 c); -long4 __ovld __cnfn select(long4 a, long4 b, long4 c); -ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, long4 c); -long8 __ovld __cnfn select(long8 a, long8 b, long8 c); -ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, long8 c); -long16 __ovld __cnfn select(long16 a, long16 b, long16 c); -ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, long16 c); - -char __ovld __cnfn select(char a, char b, uchar c); -uchar __ovld __cnfn select(uchar a, uchar b, uchar c); -char2 __ovld __cnfn select(char2 a, char2 b, uchar2 c); -uchar2 __ovld __cnfn select(uchar2 a, uchar2 b, uchar2 c); -char3 __ovld __cnfn select(char3 a, char3 b, uchar3 c); -uchar3 __ovld __cnfn select(uchar3 a, uchar3 b, uchar3 c); -char4 __ovld __cnfn select(char4 a, char4 b, uchar4 c); -uchar4 __ovld __cnfn select(uchar4 a, uchar4 b, uchar4 c); -char8 __ovld __cnfn select(char8 a, char8 b, uchar8 c); -uchar8 __ovld __cnfn select(uchar8 a, uchar8 b, uchar8 c); -char16 __ovld __cnfn select(char16 a, char16 b, uchar16 c); -uchar16 __ovld __cnfn select(uchar16 a, uchar16 b, uchar16 c); - -short __ovld __cnfn select(short a, short b, ushort c); -ushort __ovld __cnfn select(ushort a, ushort b, ushort c); -short2 __ovld __cnfn select(short2 a, short2 b, ushort2 c); -ushort2 __ovld __cnfn select(ushort2 a, ushort2 b, ushort2 c); -short3 __ovld __cnfn select(short3 a, short3 b, ushort3 c); -ushort3 __ovld __cnfn select(ushort3 a, ushort3 b, ushort3 c); -short4 __ovld __cnfn select(short4 a, short4 b, ushort4 c); -ushort4 __ovld __cnfn select(ushort4 a, ushort4 b, ushort4 c); -short8 __ovld __cnfn select(short8 a, short8 b, ushort8 c); -ushort8 __ovld __cnfn select(ushort8 a, ushort8 b, ushort8 c); -short16 __ovld __cnfn select(short16 a, short16 b, ushort16 c); -ushort16 __ovld __cnfn select(ushort16 a, ushort16 b, ushort16 c); - -int __ovld __cnfn select(int a, int b, uint c); -uint __ovld __cnfn select(uint a, uint b, uint c); -int2 __ovld __cnfn select(int2 a, int2 b, uint2 c); -uint2 __ovld __cnfn select(uint2 a, uint2 b, uint2 c); -int3 __ovld __cnfn select(int3 a, int3 b, uint3 c); -uint3 __ovld __cnfn select(uint3 a, uint3 b, uint3 c); -int4 __ovld __cnfn select(int4 a, int4 b, uint4 c); -uint4 __ovld __cnfn select(uint4 a, uint4 b, uint4 c); -int8 __ovld __cnfn select(int8 a, int8 b, uint8 c); -uint8 __ovld __cnfn select(uint8 a, uint8 b, uint8 c); -int16 __ovld __cnfn select(int16 a, int16 b, uint16 c); -uint16 __ovld __cnfn select(uint16 a, uint16 b, uint16 c); -float __ovld __cnfn select(float a, float b, uint c); -float2 __ovld __cnfn select(float2 a, float2 b, uint2 c); -float3 __ovld __cnfn select(float3 a, float3 b, uint3 c); -float4 __ovld __cnfn select(float4 a, float4 b, uint4 c); -float8 __ovld __cnfn select(float8 a, float8 b, uint8 c); -float16 __ovld __cnfn select(float16 a, float16 b, uint16 c); - -long __ovld __cnfn select(long a, long b, ulong c); -ulong __ovld __cnfn select(ulong a, ulong b, ulong c); -long2 __ovld __cnfn select(long2 a, long2 b, ulong2 c); -ulong2 __ovld __cnfn select(ulong2 a, ulong2 b, ulong2 c); -long3 __ovld __cnfn select(long3 a, long3 b, ulong3 c); -ulong3 __ovld __cnfn select(ulong3 a, ulong3 b, ulong3 c); -long4 __ovld __cnfn select(long4 a, long4 b, ulong4 c); -ulong4 __ovld __cnfn select(ulong4 a, ulong4 b, ulong4 c); -long8 __ovld __cnfn select(long8 a, long8 b, ulong8 c); -ulong8 __ovld __cnfn select(ulong8 a, ulong8 b, ulong8 c); -long16 __ovld __cnfn select(long16 a, long16 b, ulong16 c); -ulong16 __ovld __cnfn select(ulong16 a, ulong16 b, ulong16 c); +char __ovld __cnfn select(char, char, char); +uchar __ovld __cnfn select(uchar, uchar, char); +char2 __ovld __cnfn select(char2, char2, char2); +uchar2 __ovld __cnfn select(uchar2, uchar2, char2); +char3 __ovld __cnfn select(char3, char3, char3); +uchar3 __ovld __cnfn select(uchar3, uchar3, char3); +char4 __ovld __cnfn select(char4, char4, char4); +uchar4 __ovld __cnfn select(uchar4, uchar4, char4); +char8 __ovld __cnfn select(char8, char8, char8); +uchar8 __ovld __cnfn select(uchar8, uchar8, char8); +char16 __ovld __cnfn select(char16, char16, char16); +uchar16 __ovld __cnfn select(uchar16, uchar16, char16); + +short __ovld __cnfn select(short, short, short); +ushort __ovld __cnfn select(ushort, ushort, short); +short2 __ovld __cnfn select(short2, short2, short2); +ushort2 __ovld __cnfn select(ushort2, ushort2, short2); +short3 __ovld __cnfn select(short3, short3, short3); +ushort3 __ovld __cnfn select(ushort3, ushort3, short3); +short4 __ovld __cnfn select(short4, short4, short4); +ushort4 __ovld __cnfn select(ushort4, ushort4, short4); +short8 __ovld __cnfn select(short8, short8, short8); +ushort8 __ovld __cnfn select(ushort8, ushort8, short8); +short16 __ovld __cnfn select(short16, short16, short16); +ushort16 __ovld __cnfn select(ushort16, ushort16, short16); + +int __ovld __cnfn select(int, int, int); +uint __ovld __cnfn select(uint, uint, int); +int2 __ovld __cnfn select(int2, int2, int2); +uint2 __ovld __cnfn select(uint2, uint2, int2); +int3 __ovld __cnfn select(int3, int3, int3); +uint3 __ovld __cnfn select(uint3, uint3, int3); +int4 __ovld __cnfn select(int4, int4, int4); +uint4 __ovld __cnfn select(uint4, uint4, int4); +int8 __ovld __cnfn select(int8, int8, int8); +uint8 __ovld __cnfn select(uint8, uint8, int8); +int16 __ovld __cnfn select(int16, int16, int16); +uint16 __ovld __cnfn select(uint16, uint16, int16); +float __ovld __cnfn select(float, float, int); +float2 __ovld __cnfn select(float2, float2, int2); +float3 __ovld __cnfn select(float3, float3, int3); +float4 __ovld __cnfn select(float4, float4, int4); +float8 __ovld __cnfn select(float8, float8, int8); +float16 __ovld __cnfn select(float16, float16, int16); + +long __ovld __cnfn select(long, long, long); +ulong __ovld __cnfn select(ulong, ulong, long); +long2 __ovld __cnfn select(long2, long2, long2); +ulong2 __ovld __cnfn select(ulong2, ulong2, long2); +long3 __ovld __cnfn select(long3, long3, long3); +ulong3 __ovld __cnfn select(ulong3, ulong3, long3); +long4 __ovld __cnfn select(long4, long4, long4); +ulong4 __ovld __cnfn select(ulong4, ulong4, long4); +long8 __ovld __cnfn select(long8, long8, long8); +ulong8 __ovld __cnfn select(ulong8, ulong8, long8); +long16 __ovld __cnfn select(long16, long16, long16); +ulong16 __ovld __cnfn select(ulong16, ulong16, long16); + +char __ovld __cnfn select(char, char, uchar); +uchar __ovld __cnfn select(uchar, uchar, uchar); +char2 __ovld __cnfn select(char2, char2, uchar2); +uchar2 __ovld __cnfn select(uchar2, uchar2, uchar2); +char3 __ovld __cnfn select(char3, char3, uchar3); +uchar3 __ovld __cnfn select(uchar3, uchar3, uchar3); +char4 __ovld __cnfn select(char4, char4, uchar4); +uchar4 __ovld __cnfn select(uchar4, uchar4, uchar4); +char8 __ovld __cnfn select(char8, char8, uchar8); +uchar8 __ovld __cnfn select(uchar8, uchar8, uchar8); +char16 __ovld __cnfn select(char16, char16, uchar16); +uchar16 __ovld __cnfn select(uchar16, uchar16, uchar16); + +short __ovld __cnfn select(short, short, ushort); +ushort __ovld __cnfn select(ushort, ushort, ushort); +short2 __ovld __cnfn select(short2, short2, ushort2); +ushort2 __ovld __cnfn select(ushort2, ushort2, ushort2); +short3 __ovld __cnfn select(short3, short3, ushort3); +ushort3 __ovld __cnfn select(ushort3, ushort3, ushort3); +short4 __ovld __cnfn select(short4, short4, ushort4); +ushort4 __ovld __cnfn select(ushort4, ushort4, ushort4); +short8 __ovld __cnfn select(short8, short8, ushort8); +ushort8 __ovld __cnfn select(ushort8, ushort8, ushort8); +short16 __ovld __cnfn select(short16, short16, ushort16); +ushort16 __ovld __cnfn select(ushort16, ushort16, ushort16); + +int __ovld __cnfn select(int, int, uint); +uint __ovld __cnfn select(uint, uint, uint); +int2 __ovld __cnfn select(int2, int2, uint2); +uint2 __ovld __cnfn select(uint2, uint2, uint2); +int3 __ovld __cnfn select(int3, int3, uint3); +uint3 __ovld __cnfn select(uint3, uint3, uint3); +int4 __ovld __cnfn select(int4, int4, uint4); +uint4 __ovld __cnfn select(uint4, uint4, uint4); +int8 __ovld __cnfn select(int8, int8, uint8); +uint8 __ovld __cnfn select(uint8, uint8, uint8); +int16 __ovld __cnfn select(int16, int16, uint16); +uint16 __ovld __cnfn select(uint16, uint16, uint16); +float __ovld __cnfn select(float, float, uint); +float2 __ovld __cnfn select(float2, float2, uint2); +float3 __ovld __cnfn select(float3, float3, uint3); +float4 __ovld __cnfn select(float4, float4, uint4); +float8 __ovld __cnfn select(float8, float8, uint8); +float16 __ovld __cnfn select(float16, float16, uint16); + +long __ovld __cnfn select(long, long, ulong); +ulong __ovld __cnfn select(ulong, ulong, ulong); +long2 __ovld __cnfn select(long2, long2, ulong2); +ulong2 __ovld __cnfn select(ulong2, ulong2, ulong2); +long3 __ovld __cnfn select(long3, long3, ulong3); +ulong3 __ovld __cnfn select(ulong3, ulong3, ulong3); +long4 __ovld __cnfn select(long4, long4, ulong4); +ulong4 __ovld __cnfn select(ulong4, ulong4, ulong4); +long8 __ovld __cnfn select(long8, long8, ulong8); +ulong8 __ovld __cnfn select(ulong8, ulong8, ulong8); +long16 __ovld __cnfn select(long16, long16, ulong16); +ulong16 __ovld __cnfn select(ulong16, ulong16, ulong16); #ifdef cl_khr_fp64 -double __ovld __cnfn select(double a, double b, long c); -double2 __ovld __cnfn select(double2 a, double2 b, long2 c); -double3 __ovld __cnfn select(double3 a, double3 b, long3 c); -double4 __ovld __cnfn select(double4 a, double4 b, long4 c); -double8 __ovld __cnfn select(double8 a, double8 b, long8 c); -double16 __ovld __cnfn select(double16 a, double16 b, long16 c); -double __ovld __cnfn select(double a, double b, ulong c); -double2 __ovld __cnfn select(double2 a, double2 b, ulong2 c); -double3 __ovld __cnfn select(double3 a, double3 b, ulong3 c); -double4 __ovld __cnfn select(double4 a, double4 b, ulong4 c); -double8 __ovld __cnfn select(double8 a, double8 b, ulong8 c); -double16 __ovld __cnfn select(double16 a, double16 b, ulong16 c); +double __ovld __cnfn select(double, double, long); +double2 __ovld __cnfn select(double2, double2, long2); +double3 __ovld __cnfn select(double3, double3, long3); +double4 __ovld __cnfn select(double4, double4, long4); +double8 __ovld __cnfn select(double8, double8, long8); +double16 __ovld __cnfn select(double16, double16, long16); +double __ovld __cnfn select(double, double, ulong); +double2 __ovld __cnfn select(double2, double2, ulong2); +double3 __ovld __cnfn select(double3, double3, ulong3); +double4 __ovld __cnfn select(double4, double4, ulong4); +double8 __ovld __cnfn select(double8, double8, ulong8); +double16 __ovld __cnfn select(double16, double16, ulong16); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld __cnfn select(half a, half b, short c); -half2 __ovld __cnfn select(half2 a, half2 b, short2 c); -half3 __ovld __cnfn select(half3 a, half3 b, short3 c); -half4 __ovld __cnfn select(half4 a, half4 b, short4 c); -half8 __ovld __cnfn select(half8 a, half8 b, short8 c); -half16 __ovld __cnfn select(half16 a, half16 b, short16 c); -half __ovld __cnfn select(half a, half b, ushort c); -half2 __ovld __cnfn select(half2 a, half2 b, ushort2 c); -half3 __ovld __cnfn select(half3 a, half3 b, ushort3 c); -half4 __ovld __cnfn select(half4 a, half4 b, ushort4 c); -half8 __ovld __cnfn select(half8 a, half8 b, ushort8 c); -half16 __ovld __cnfn select(half16 a, half16 b, ushort16 c); +half __ovld __cnfn select(half, half, short); +half2 __ovld __cnfn select(half2, half2, short2); +half3 __ovld __cnfn select(half3, half3, short3); +half4 __ovld __cnfn select(half4, half4, short4); +half8 __ovld __cnfn select(half8, half8, short8); +half16 __ovld __cnfn select(half16, half16, short16); +half __ovld __cnfn select(half, half, ushort); +half2 __ovld __cnfn select(half2, half2, ushort2); +half3 __ovld __cnfn select(half3, half3, ushort3); +half4 __ovld __cnfn select(half4, half4, ushort4); +half8 __ovld __cnfn select(half8, half8, ushort8); +half16 __ovld __cnfn select(half16, half16, ushort16); #endif //cl_khr_fp16 // OpenCL v1.1 s6.11.7, v1.2 s6.12.7, v2.0 s6.13.7 - Vector Data Load and Store Functions @@ -11891,543 +11882,539 @@ half16 __ovld __cnfn select(half16 a, half16 b, ushort16 c); * 64-bit aligned if gentype is long, ulong, double. */ -char2 __ovld vload2(size_t offset, const __constant char *p); -uchar2 __ovld vload2(size_t offset, const __constant uchar *p); -short2 __ovld vload2(size_t offset, const __constant short *p); -ushort2 __ovld vload2(size_t offset, const __constant ushort *p); -int2 __ovld vload2(size_t offset, const __constant int *p); -uint2 __ovld vload2(size_t offset, const __constant uint *p); -long2 __ovld vload2(size_t offset, const __constant long *p); -ulong2 __ovld vload2(size_t offset, const __constant ulong *p); -float2 __ovld vload2(size_t offset, const __constant float *p); -char3 __ovld vload3(size_t offset, const __constant char *p); -uchar3 __ovld vload3(size_t offset, const __constant uchar *p); -short3 __ovld vload3(size_t offset, const __constant short *p); -ushort3 __ovld vload3(size_t offset, const __constant ushort *p); -int3 __ovld vload3(size_t offset, const __constant int *p); -uint3 __ovld vload3(size_t offset, const __constant uint *p); -long3 __ovld vload3(size_t offset, const __constant long *p); -ulong3 __ovld vload3(size_t offset, const __constant ulong *p); -float3 __ovld vload3(size_t offset, const __constant float *p); -char4 __ovld vload4(size_t offset, const __constant char *p); -uchar4 __ovld vload4(size_t offset, const __constant uchar *p); -short4 __ovld vload4(size_t offset, const __constant short *p); -ushort4 __ovld vload4(size_t offset, const __constant ushort *p); -int4 __ovld vload4(size_t offset, const __constant int *p); -uint4 __ovld vload4(size_t offset, const __constant uint *p); -long4 __ovld vload4(size_t offset, const __constant long *p); -ulong4 __ovld vload4(size_t offset, const __constant ulong *p); -float4 __ovld vload4(size_t offset, const __constant float *p); -char8 __ovld vload8(size_t offset, const __constant char *p); -uchar8 __ovld vload8(size_t offset, const __constant uchar *p); -short8 __ovld vload8(size_t offset, const __constant short *p); -ushort8 __ovld vload8(size_t offset, const __constant ushort *p); -int8 __ovld vload8(size_t offset, const __constant int *p); -uint8 __ovld vload8(size_t offset, const __constant uint *p); -long8 __ovld vload8(size_t offset, const __constant long *p); -ulong8 __ovld vload8(size_t offset, const __constant ulong *p); -float8 __ovld vload8(size_t offset, const __constant float *p); -char16 __ovld vload16(size_t offset, const __constant char *p); -uchar16 __ovld vload16(size_t offset, const __constant uchar *p); -short16 __ovld vload16(size_t offset, const __constant short *p); -ushort16 __ovld vload16(size_t offset, const __constant ushort *p); -int16 __ovld vload16(size_t offset, const __constant int *p); -uint16 __ovld vload16(size_t offset, const __constant uint *p); -long16 __ovld vload16(size_t offset, const __constant long *p); -ulong16 __ovld vload16(size_t offset, const __constant ulong *p); -float16 __ovld vload16(size_t offset, const __constant float *p); +char2 __ovld __purefn vload2(size_t, const __constant char *); +uchar2 __ovld __purefn vload2(size_t, const __constant uchar *); +short2 __ovld __purefn vload2(size_t, const __constant short *); +ushort2 __ovld __purefn vload2(size_t, const __constant ushort *); +int2 __ovld __purefn vload2(size_t, const __constant int *); +uint2 __ovld __purefn vload2(size_t, const __constant uint *); +long2 __ovld __purefn vload2(size_t, const __constant long *); +ulong2 __ovld __purefn vload2(size_t, const __constant ulong *); +float2 __ovld __purefn vload2(size_t, const __constant float *); +char3 __ovld __purefn vload3(size_t, const __constant char *); +uchar3 __ovld __purefn vload3(size_t, const __constant uchar *); +short3 __ovld __purefn vload3(size_t, const __constant short *); +ushort3 __ovld __purefn vload3(size_t, const __constant ushort *); +int3 __ovld __purefn vload3(size_t, const __constant int *); +uint3 __ovld __purefn vload3(size_t, const __constant uint *); +long3 __ovld __purefn vload3(size_t, const __constant long *); +ulong3 __ovld __purefn vload3(size_t, const __constant ulong *); +float3 __ovld __purefn vload3(size_t, const __constant float *); +char4 __ovld __purefn vload4(size_t, const __constant char *); +uchar4 __ovld __purefn vload4(size_t, const __constant uchar *); +short4 __ovld __purefn vload4(size_t, const __constant short *); +ushort4 __ovld __purefn vload4(size_t, const __constant ushort *); +int4 __ovld __purefn vload4(size_t, const __constant int *); +uint4 __ovld __purefn vload4(size_t, const __constant uint *); +long4 __ovld __purefn vload4(size_t, const __constant long *); +ulong4 __ovld __purefn vload4(size_t, const __constant ulong *); +float4 __ovld __purefn vload4(size_t, const __constant float *); +char8 __ovld __purefn vload8(size_t, const __constant char *); +uchar8 __ovld __purefn vload8(size_t, const __constant uchar *); +short8 __ovld __purefn vload8(size_t, const __constant short *); +ushort8 __ovld __purefn vload8(size_t, const __constant ushort *); +int8 __ovld __purefn vload8(size_t, const __constant int *); +uint8 __ovld __purefn vload8(size_t, const __constant uint *); +long8 __ovld __purefn vload8(size_t, const __constant long *); +ulong8 __ovld __purefn vload8(size_t, const __constant ulong *); +float8 __ovld __purefn vload8(size_t, const __constant float *); +char16 __ovld __purefn vload16(size_t, const __constant char *); +uchar16 __ovld __purefn vload16(size_t, const __constant uchar *); +short16 __ovld __purefn vload16(size_t, const __constant short *); +ushort16 __ovld __purefn vload16(size_t, const __constant ushort *); +int16 __ovld __purefn vload16(size_t, const __constant int *); +uint16 __ovld __purefn vload16(size_t, const __constant uint *); +long16 __ovld __purefn vload16(size_t, const __constant long *); +ulong16 __ovld __purefn vload16(size_t, const __constant ulong *); +float16 __ovld __purefn vload16(size_t, const __constant float *); #ifdef cl_khr_fp64 -double2 __ovld vload2(size_t offset, const __constant double *p); -double3 __ovld vload3(size_t offset, const __constant double *p); -double4 __ovld vload4(size_t offset, const __constant double *p); -double8 __ovld vload8(size_t offset, const __constant double *p); -double16 __ovld vload16(size_t offset, const __constant double *p); +double2 __ovld __purefn vload2(size_t, const __constant double *); +double3 __ovld __purefn vload3(size_t, const __constant double *); +double4 __ovld __purefn vload4(size_t, const __constant double *); +double8 __ovld __purefn vload8(size_t, const __constant double *); +double16 __ovld __purefn vload16(size_t, const __constant double *); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld vload(size_t offset, const __constant half *p); -half2 __ovld vload2(size_t offset, const __constant half *p); -half3 __ovld vload3(size_t offset, const __constant half *p); -half4 __ovld vload4(size_t offset, const __constant half *p); -half8 __ovld vload8(size_t offset, const __constant half *p); -half16 __ovld vload16(size_t offset, const __constant half *p); +half2 __ovld __purefn vload2(size_t, const __constant half *); +half3 __ovld __purefn vload3(size_t, const __constant half *); +half4 __ovld __purefn vload4(size_t, const __constant half *); +half8 __ovld __purefn vload8(size_t, const __constant half *); +half16 __ovld __purefn vload16(size_t, const __constant half *); #endif //cl_khr_fp16 -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -char2 __ovld vload2(size_t offset, const char *p); -uchar2 __ovld vload2(size_t offset, const uchar *p); -short2 __ovld vload2(size_t offset, const short *p); -ushort2 __ovld vload2(size_t offset, const ushort *p); -int2 __ovld vload2(size_t offset, const int *p); -uint2 __ovld vload2(size_t offset, const uint *p); -long2 __ovld vload2(size_t offset, const long *p); -ulong2 __ovld vload2(size_t offset, const ulong *p); -float2 __ovld vload2(size_t offset, const float *p); -char3 __ovld vload3(size_t offset, const char *p); -uchar3 __ovld vload3(size_t offset, const uchar *p); -short3 __ovld vload3(size_t offset, const short *p); -ushort3 __ovld vload3(size_t offset, const ushort *p); -int3 __ovld vload3(size_t offset, const int *p); -uint3 __ovld vload3(size_t offset, const uint *p); -long3 __ovld vload3(size_t offset, const long *p); -ulong3 __ovld vload3(size_t offset, const ulong *p); -float3 __ovld vload3(size_t offset, const float *p); -char4 __ovld vload4(size_t offset, const char *p); -uchar4 __ovld vload4(size_t offset, const uchar *p); -short4 __ovld vload4(size_t offset, const short *p); -ushort4 __ovld vload4(size_t offset, const ushort *p); -int4 __ovld vload4(size_t offset, const int *p); -uint4 __ovld vload4(size_t offset, const uint *p); -long4 __ovld vload4(size_t offset, const long *p); -ulong4 __ovld vload4(size_t offset, const ulong *p); -float4 __ovld vload4(size_t offset, const float *p); -char8 __ovld vload8(size_t offset, const char *p); -uchar8 __ovld vload8(size_t offset, const uchar *p); -short8 __ovld vload8(size_t offset, const short *p); -ushort8 __ovld vload8(size_t offset, const ushort *p); -int8 __ovld vload8(size_t offset, const int *p); -uint8 __ovld vload8(size_t offset, const uint *p); -long8 __ovld vload8(size_t offset, const long *p); -ulong8 __ovld vload8(size_t offset, const ulong *p); -float8 __ovld vload8(size_t offset, const float *p); -char16 __ovld vload16(size_t offset, const char *p); -uchar16 __ovld vload16(size_t offset, const uchar *p); -short16 __ovld vload16(size_t offset, const short *p); -ushort16 __ovld vload16(size_t offset, const ushort *p); -int16 __ovld vload16(size_t offset, const int *p); -uint16 __ovld vload16(size_t offset, const uint *p); -long16 __ovld vload16(size_t offset, const long *p); -ulong16 __ovld vload16(size_t offset, const ulong *p); -float16 __ovld vload16(size_t offset, const float *p); +#if defined(__opencl_c_generic_address_space) +char2 __ovld __purefn vload2(size_t, const char *); +uchar2 __ovld __purefn vload2(size_t, const uchar *); +short2 __ovld __purefn vload2(size_t, const short *); +ushort2 __ovld __purefn vload2(size_t, const ushort *); +int2 __ovld __purefn vload2(size_t, const int *); +uint2 __ovld __purefn vload2(size_t, const uint *); +long2 __ovld __purefn vload2(size_t, const long *); +ulong2 __ovld __purefn vload2(size_t, const ulong *); +float2 __ovld __purefn vload2(size_t, const float *); +char3 __ovld __purefn vload3(size_t, const char *); +uchar3 __ovld __purefn vload3(size_t, const uchar *); +short3 __ovld __purefn vload3(size_t, const short *); +ushort3 __ovld __purefn vload3(size_t, const ushort *); +int3 __ovld __purefn vload3(size_t, const int *); +uint3 __ovld __purefn vload3(size_t, const uint *); +long3 __ovld __purefn vload3(size_t, const long *); +ulong3 __ovld __purefn vload3(size_t, const ulong *); +float3 __ovld __purefn vload3(size_t, const float *); +char4 __ovld __purefn vload4(size_t, const char *); +uchar4 __ovld __purefn vload4(size_t, const uchar *); +short4 __ovld __purefn vload4(size_t, const short *); +ushort4 __ovld __purefn vload4(size_t, const ushort *); +int4 __ovld __purefn vload4(size_t, const int *); +uint4 __ovld __purefn vload4(size_t, const uint *); +long4 __ovld __purefn vload4(size_t, const long *); +ulong4 __ovld __purefn vload4(size_t, const ulong *); +float4 __ovld __purefn vload4(size_t, const float *); +char8 __ovld __purefn vload8(size_t, const char *); +uchar8 __ovld __purefn vload8(size_t, const uchar *); +short8 __ovld __purefn vload8(size_t, const short *); +ushort8 __ovld __purefn vload8(size_t, const ushort *); +int8 __ovld __purefn vload8(size_t, const int *); +uint8 __ovld __purefn vload8(size_t, const uint *); +long8 __ovld __purefn vload8(size_t, const long *); +ulong8 __ovld __purefn vload8(size_t, const ulong *); +float8 __ovld __purefn vload8(size_t, const float *); +char16 __ovld __purefn vload16(size_t, const char *); +uchar16 __ovld __purefn vload16(size_t, const uchar *); +short16 __ovld __purefn vload16(size_t, const short *); +ushort16 __ovld __purefn vload16(size_t, const ushort *); +int16 __ovld __purefn vload16(size_t, const int *); +uint16 __ovld __purefn vload16(size_t, const uint *); +long16 __ovld __purefn vload16(size_t, const long *); +ulong16 __ovld __purefn vload16(size_t, const ulong *); +float16 __ovld __purefn vload16(size_t, const float *); #ifdef cl_khr_fp64 -double2 __ovld vload2(size_t offset, const double *p); -double3 __ovld vload3(size_t offset, const double *p); -double4 __ovld vload4(size_t offset, const double *p); -double8 __ovld vload8(size_t offset, const double *p); -double16 __ovld vload16(size_t offset, const double *p); +double2 __ovld __purefn vload2(size_t, const double *); +double3 __ovld __purefn vload3(size_t, const double *); +double4 __ovld __purefn vload4(size_t, const double *); +double8 __ovld __purefn vload8(size_t, const double *); +double16 __ovld __purefn vload16(size_t, const double *); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld vload(size_t offset, const half *p); -half2 __ovld vload2(size_t offset, const half *p); -half3 __ovld vload3(size_t offset, const half *p); -half4 __ovld vload4(size_t offset, const half *p); -half8 __ovld vload8(size_t offset, const half *p); -half16 __ovld vload16(size_t offset, const half *p); +half2 __ovld __purefn vload2(size_t, const half *); +half3 __ovld __purefn vload3(size_t, const half *); +half4 __ovld __purefn vload4(size_t, const half *); +half8 __ovld __purefn vload8(size_t, const half *); +half16 __ovld __purefn vload16(size_t, const half *); #endif //cl_khr_fp16 #else -char2 __ovld vload2(size_t offset, const __global char *p); -uchar2 __ovld vload2(size_t offset, const __global uchar *p); -short2 __ovld vload2(size_t offset, const __global short *p); -ushort2 __ovld vload2(size_t offset, const __global ushort *p); -int2 __ovld vload2(size_t offset, const __global int *p); -uint2 __ovld vload2(size_t offset, const __global uint *p); -long2 __ovld vload2(size_t offset, const __global long *p); -ulong2 __ovld vload2(size_t offset, const __global ulong *p); -float2 __ovld vload2(size_t offset, const __global float *p); -char3 __ovld vload3(size_t offset, const __global char *p); -uchar3 __ovld vload3(size_t offset, const __global uchar *p); -short3 __ovld vload3(size_t offset, const __global short *p); -ushort3 __ovld vload3(size_t offset, const __global ushort *p); -int3 __ovld vload3(size_t offset, const __global int *p); -uint3 __ovld vload3(size_t offset, const __global uint *p); -long3 __ovld vload3(size_t offset, const __global long *p); -ulong3 __ovld vload3(size_t offset, const __global ulong *p); -float3 __ovld vload3(size_t offset, const __global float *p); -char4 __ovld vload4(size_t offset, const __global char *p); -uchar4 __ovld vload4(size_t offset, const __global uchar *p); -short4 __ovld vload4(size_t offset, const __global short *p); -ushort4 __ovld vload4(size_t offset, const __global ushort *p); -int4 __ovld vload4(size_t offset, const __global int *p); -uint4 __ovld vload4(size_t offset, const __global uint *p); -long4 __ovld vload4(size_t offset, const __global long *p); -ulong4 __ovld vload4(size_t offset, const __global ulong *p); -float4 __ovld vload4(size_t offset, const __global float *p); -char8 __ovld vload8(size_t offset, const __global char *p); -uchar8 __ovld vload8(size_t offset, const __global uchar *p); -short8 __ovld vload8(size_t offset, const __global short *p); -ushort8 __ovld vload8(size_t offset, const __global ushort *p); -int8 __ovld vload8(size_t offset, const __global int *p); -uint8 __ovld vload8(size_t offset, const __global uint *p); -long8 __ovld vload8(size_t offset, const __global long *p); -ulong8 __ovld vload8(size_t offset, const __global ulong *p); -float8 __ovld vload8(size_t offset, const __global float *p); -char16 __ovld vload16(size_t offset, const __global char *p); -uchar16 __ovld vload16(size_t offset, const __global uchar *p); -short16 __ovld vload16(size_t offset, const __global short *p); -ushort16 __ovld vload16(size_t offset, const __global ushort *p); -int16 __ovld vload16(size_t offset, const __global int *p); -uint16 __ovld vload16(size_t offset, const __global uint *p); -long16 __ovld vload16(size_t offset, const __global long *p); -ulong16 __ovld vload16(size_t offset, const __global ulong *p); -float16 __ovld vload16(size_t offset, const __global float *p); -char2 __ovld vload2(size_t offset, const __local char *p); -uchar2 __ovld vload2(size_t offset, const __local uchar *p); -short2 __ovld vload2(size_t offset, const __local short *p); -ushort2 __ovld vload2(size_t offset, const __local ushort *p); -int2 __ovld vload2(size_t offset, const __local int *p); -uint2 __ovld vload2(size_t offset, const __local uint *p); -long2 __ovld vload2(size_t offset, const __local long *p); -ulong2 __ovld vload2(size_t offset, const __local ulong *p); -float2 __ovld vload2(size_t offset, const __local float *p); -char3 __ovld vload3(size_t offset, const __local char *p); -uchar3 __ovld vload3(size_t offset, const __local uchar *p); -short3 __ovld vload3(size_t offset, const __local short *p); -ushort3 __ovld vload3(size_t offset, const __local ushort *p); -int3 __ovld vload3(size_t offset, const __local int *p); -uint3 __ovld vload3(size_t offset, const __local uint *p); -long3 __ovld vload3(size_t offset, const __local long *p); -ulong3 __ovld vload3(size_t offset, const __local ulong *p); -float3 __ovld vload3(size_t offset, const __local float *p); -char4 __ovld vload4(size_t offset, const __local char *p); -uchar4 __ovld vload4(size_t offset, const __local uchar *p); -short4 __ovld vload4(size_t offset, const __local short *p); -ushort4 __ovld vload4(size_t offset, const __local ushort *p); -int4 __ovld vload4(size_t offset, const __local int *p); -uint4 __ovld vload4(size_t offset, const __local uint *p); -long4 __ovld vload4(size_t offset, const __local long *p); -ulong4 __ovld vload4(size_t offset, const __local ulong *p); -float4 __ovld vload4(size_t offset, const __local float *p); -char8 __ovld vload8(size_t offset, const __local char *p); -uchar8 __ovld vload8(size_t offset, const __local uchar *p); -short8 __ovld vload8(size_t offset, const __local short *p); -ushort8 __ovld vload8(size_t offset, const __local ushort *p); -int8 __ovld vload8(size_t offset, const __local int *p); -uint8 __ovld vload8(size_t offset, const __local uint *p); -long8 __ovld vload8(size_t offset, const __local long *p); -ulong8 __ovld vload8(size_t offset, const __local ulong *p); -float8 __ovld vload8(size_t offset, const __local float *p); -char16 __ovld vload16(size_t offset, const __local char *p); -uchar16 __ovld vload16(size_t offset, const __local uchar *p); -short16 __ovld vload16(size_t offset, const __local short *p); -ushort16 __ovld vload16(size_t offset, const __local ushort *p); -int16 __ovld vload16(size_t offset, const __local int *p); -uint16 __ovld vload16(size_t offset, const __local uint *p); -long16 __ovld vload16(size_t offset, const __local long *p); -ulong16 __ovld vload16(size_t offset, const __local ulong *p); -float16 __ovld vload16(size_t offset, const __local float *p); -char2 __ovld vload2(size_t offset, const __private char *p); -uchar2 __ovld vload2(size_t offset, const __private uchar *p); -short2 __ovld vload2(size_t offset, const __private short *p); -ushort2 __ovld vload2(size_t offset, const __private ushort *p); -int2 __ovld vload2(size_t offset, const __private int *p); -uint2 __ovld vload2(size_t offset, const __private uint *p); -long2 __ovld vload2(size_t offset, const __private long *p); -ulong2 __ovld vload2(size_t offset, const __private ulong *p); -float2 __ovld vload2(size_t offset, const __private float *p); -char3 __ovld vload3(size_t offset, const __private char *p); -uchar3 __ovld vload3(size_t offset, const __private uchar *p); -short3 __ovld vload3(size_t offset, const __private short *p); -ushort3 __ovld vload3(size_t offset, const __private ushort *p); -int3 __ovld vload3(size_t offset, const __private int *p); -uint3 __ovld vload3(size_t offset, const __private uint *p); -long3 __ovld vload3(size_t offset, const __private long *p); -ulong3 __ovld vload3(size_t offset, const __private ulong *p); -float3 __ovld vload3(size_t offset, const __private float *p); -char4 __ovld vload4(size_t offset, const __private char *p); -uchar4 __ovld vload4(size_t offset, const __private uchar *p); -short4 __ovld vload4(size_t offset, const __private short *p); -ushort4 __ovld vload4(size_t offset, const __private ushort *p); -int4 __ovld vload4(size_t offset, const __private int *p); -uint4 __ovld vload4(size_t offset, const __private uint *p); -long4 __ovld vload4(size_t offset, const __private long *p); -ulong4 __ovld vload4(size_t offset, const __private ulong *p); -float4 __ovld vload4(size_t offset, const __private float *p); -char8 __ovld vload8(size_t offset, const __private char *p); -uchar8 __ovld vload8(size_t offset, const __private uchar *p); -short8 __ovld vload8(size_t offset, const __private short *p); -ushort8 __ovld vload8(size_t offset, const __private ushort *p); -int8 __ovld vload8(size_t offset, const __private int *p); -uint8 __ovld vload8(size_t offset, const __private uint *p); -long8 __ovld vload8(size_t offset, const __private long *p); -ulong8 __ovld vload8(size_t offset, const __private ulong *p); -float8 __ovld vload8(size_t offset, const __private float *p); -char16 __ovld vload16(size_t offset, const __private char *p); -uchar16 __ovld vload16(size_t offset, const __private uchar *p); -short16 __ovld vload16(size_t offset, const __private short *p); -ushort16 __ovld vload16(size_t offset, const __private ushort *p); -int16 __ovld vload16(size_t offset, const __private int *p); -uint16 __ovld vload16(size_t offset, const __private uint *p); -long16 __ovld vload16(size_t offset, const __private long *p); -ulong16 __ovld vload16(size_t offset, const __private ulong *p); -float16 __ovld vload16(size_t offset, const __private float *p); +char2 __ovld __purefn vload2(size_t, const __global char *); +uchar2 __ovld __purefn vload2(size_t, const __global uchar *); +short2 __ovld __purefn vload2(size_t, const __global short *); +ushort2 __ovld __purefn vload2(size_t, const __global ushort *); +int2 __ovld __purefn vload2(size_t, const __global int *); +uint2 __ovld __purefn vload2(size_t, const __global uint *); +long2 __ovld __purefn vload2(size_t, const __global long *); +ulong2 __ovld __purefn vload2(size_t, const __global ulong *); +float2 __ovld __purefn vload2(size_t, const __global float *); +char3 __ovld __purefn vload3(size_t, const __global char *); +uchar3 __ovld __purefn vload3(size_t, const __global uchar *); +short3 __ovld __purefn vload3(size_t, const __global short *); +ushort3 __ovld __purefn vload3(size_t, const __global ushort *); +int3 __ovld __purefn vload3(size_t, const __global int *); +uint3 __ovld __purefn vload3(size_t, const __global uint *); +long3 __ovld __purefn vload3(size_t, const __global long *); +ulong3 __ovld __purefn vload3(size_t, const __global ulong *); +float3 __ovld __purefn vload3(size_t, const __global float *); +char4 __ovld __purefn vload4(size_t, const __global char *); +uchar4 __ovld __purefn vload4(size_t, const __global uchar *); +short4 __ovld __purefn vload4(size_t, const __global short *); +ushort4 __ovld __purefn vload4(size_t, const __global ushort *); +int4 __ovld __purefn vload4(size_t, const __global int *); +uint4 __ovld __purefn vload4(size_t, const __global uint *); +long4 __ovld __purefn vload4(size_t, const __global long *); +ulong4 __ovld __purefn vload4(size_t, const __global ulong *); +float4 __ovld __purefn vload4(size_t, const __global float *); +char8 __ovld __purefn vload8(size_t, const __global char *); +uchar8 __ovld __purefn vload8(size_t, const __global uchar *); +short8 __ovld __purefn vload8(size_t, const __global short *); +ushort8 __ovld __purefn vload8(size_t, const __global ushort *); +int8 __ovld __purefn vload8(size_t, const __global int *); +uint8 __ovld __purefn vload8(size_t, const __global uint *); +long8 __ovld __purefn vload8(size_t, const __global long *); +ulong8 __ovld __purefn vload8(size_t, const __global ulong *); +float8 __ovld __purefn vload8(size_t, const __global float *); +char16 __ovld __purefn vload16(size_t, const __global char *); +uchar16 __ovld __purefn vload16(size_t, const __global uchar *); +short16 __ovld __purefn vload16(size_t, const __global short *); +ushort16 __ovld __purefn vload16(size_t, const __global ushort *); +int16 __ovld __purefn vload16(size_t, const __global int *); +uint16 __ovld __purefn vload16(size_t, const __global uint *); +long16 __ovld __purefn vload16(size_t, const __global long *); +ulong16 __ovld __purefn vload16(size_t, const __global ulong *); +float16 __ovld __purefn vload16(size_t, const __global float *); +char2 __ovld __purefn vload2(size_t, const __local char *); +uchar2 __ovld __purefn vload2(size_t, const __local uchar *); +short2 __ovld __purefn vload2(size_t, const __local short *); +ushort2 __ovld __purefn vload2(size_t, const __local ushort *); +int2 __ovld __purefn vload2(size_t, const __local int *); +uint2 __ovld __purefn vload2(size_t, const __local uint *); +long2 __ovld __purefn vload2(size_t, const __local long *); +ulong2 __ovld __purefn vload2(size_t, const __local ulong *); +float2 __ovld __purefn vload2(size_t, const __local float *); +char3 __ovld __purefn vload3(size_t, const __local char *); +uchar3 __ovld __purefn vload3(size_t, const __local uchar *); +short3 __ovld __purefn vload3(size_t, const __local short *); +ushort3 __ovld __purefn vload3(size_t, const __local ushort *); +int3 __ovld __purefn vload3(size_t, const __local int *); +uint3 __ovld __purefn vload3(size_t, const __local uint *); +long3 __ovld __purefn vload3(size_t, const __local long *); +ulong3 __ovld __purefn vload3(size_t, const __local ulong *); +float3 __ovld __purefn vload3(size_t, const __local float *); +char4 __ovld __purefn vload4(size_t, const __local char *); +uchar4 __ovld __purefn vload4(size_t, const __local uchar *); +short4 __ovld __purefn vload4(size_t, const __local short *); +ushort4 __ovld __purefn vload4(size_t, const __local ushort *); +int4 __ovld __purefn vload4(size_t, const __local int *); +uint4 __ovld __purefn vload4(size_t, const __local uint *); +long4 __ovld __purefn vload4(size_t, const __local long *); +ulong4 __ovld __purefn vload4(size_t, const __local ulong *); +float4 __ovld __purefn vload4(size_t, const __local float *); +char8 __ovld __purefn vload8(size_t, const __local char *); +uchar8 __ovld __purefn vload8(size_t, const __local uchar *); +short8 __ovld __purefn vload8(size_t, const __local short *); +ushort8 __ovld __purefn vload8(size_t, const __local ushort *); +int8 __ovld __purefn vload8(size_t, const __local int *); +uint8 __ovld __purefn vload8(size_t, const __local uint *); +long8 __ovld __purefn vload8(size_t, const __local long *); +ulong8 __ovld __purefn vload8(size_t, const __local ulong *); +float8 __ovld __purefn vload8(size_t, const __local float *); +char16 __ovld __purefn vload16(size_t, const __local char *); +uchar16 __ovld __purefn vload16(size_t, const __local uchar *); +short16 __ovld __purefn vload16(size_t, const __local short *); +ushort16 __ovld __purefn vload16(size_t, const __local ushort *); +int16 __ovld __purefn vload16(size_t, const __local int *); +uint16 __ovld __purefn vload16(size_t, const __local uint *); +long16 __ovld __purefn vload16(size_t, const __local long *); +ulong16 __ovld __purefn vload16(size_t, const __local ulong *); +float16 __ovld __purefn vload16(size_t, const __local float *); +char2 __ovld __purefn vload2(size_t, const __private char *); +uchar2 __ovld __purefn vload2(size_t, const __private uchar *); +short2 __ovld __purefn vload2(size_t, const __private short *); +ushort2 __ovld __purefn vload2(size_t, const __private ushort *); +int2 __ovld __purefn vload2(size_t, const __private int *); +uint2 __ovld __purefn vload2(size_t, const __private uint *); +long2 __ovld __purefn vload2(size_t, const __private long *); +ulong2 __ovld __purefn vload2(size_t, const __private ulong *); +float2 __ovld __purefn vload2(size_t, const __private float *); +char3 __ovld __purefn vload3(size_t, const __private char *); +uchar3 __ovld __purefn vload3(size_t, const __private uchar *); +short3 __ovld __purefn vload3(size_t, const __private short *); +ushort3 __ovld __purefn vload3(size_t, const __private ushort *); +int3 __ovld __purefn vload3(size_t, const __private int *); +uint3 __ovld __purefn vload3(size_t, const __private uint *); +long3 __ovld __purefn vload3(size_t, const __private long *); +ulong3 __ovld __purefn vload3(size_t, const __private ulong *); +float3 __ovld __purefn vload3(size_t, const __private float *); +char4 __ovld __purefn vload4(size_t, const __private char *); +uchar4 __ovld __purefn vload4(size_t, const __private uchar *); +short4 __ovld __purefn vload4(size_t, const __private short *); +ushort4 __ovld __purefn vload4(size_t, const __private ushort *); +int4 __ovld __purefn vload4(size_t, const __private int *); +uint4 __ovld __purefn vload4(size_t, const __private uint *); +long4 __ovld __purefn vload4(size_t, const __private long *); +ulong4 __ovld __purefn vload4(size_t, const __private ulong *); +float4 __ovld __purefn vload4(size_t, const __private float *); +char8 __ovld __purefn vload8(size_t, const __private char *); +uchar8 __ovld __purefn vload8(size_t, const __private uchar *); +short8 __ovld __purefn vload8(size_t, const __private short *); +ushort8 __ovld __purefn vload8(size_t, const __private ushort *); +int8 __ovld __purefn vload8(size_t, const __private int *); +uint8 __ovld __purefn vload8(size_t, const __private uint *); +long8 __ovld __purefn vload8(size_t, const __private long *); +ulong8 __ovld __purefn vload8(size_t, const __private ulong *); +float8 __ovld __purefn vload8(size_t, const __private float *); +char16 __ovld __purefn vload16(size_t, const __private char *); +uchar16 __ovld __purefn vload16(size_t, const __private uchar *); +short16 __ovld __purefn vload16(size_t, const __private short *); +ushort16 __ovld __purefn vload16(size_t, const __private ushort *); +int16 __ovld __purefn vload16(size_t, const __private int *); +uint16 __ovld __purefn vload16(size_t, const __private uint *); +long16 __ovld __purefn vload16(size_t, const __private long *); +ulong16 __ovld __purefn vload16(size_t, const __private ulong *); +float16 __ovld __purefn vload16(size_t, const __private float *); #ifdef cl_khr_fp64 -double2 __ovld vload2(size_t offset, const __global double *p); -double3 __ovld vload3(size_t offset, const __global double *p); -double4 __ovld vload4(size_t offset, const __global double *p); -double8 __ovld vload8(size_t offset, const __global double *p); -double16 __ovld vload16(size_t offset, const __global double *p); -double2 __ovld vload2(size_t offset, const __local double *p); -double3 __ovld vload3(size_t offset, const __local double *p); -double4 __ovld vload4(size_t offset, const __local double *p); -double8 __ovld vload8(size_t offset, const __local double *p); -double16 __ovld vload16(size_t offset, const __local double *p); -double2 __ovld vload2(size_t offset, const __private double *p); -double3 __ovld vload3(size_t offset, const __private double *p); -double4 __ovld vload4(size_t offset, const __private double *p); -double8 __ovld vload8(size_t offset, const __private double *p); -double16 __ovld vload16(size_t offset, const __private double *p); +double2 __ovld __purefn vload2(size_t, const __global double *); +double3 __ovld __purefn vload3(size_t, const __global double *); +double4 __ovld __purefn vload4(size_t, const __global double *); +double8 __ovld __purefn vload8(size_t, const __global double *); +double16 __ovld __purefn vload16(size_t, const __global double *); +double2 __ovld __purefn vload2(size_t, const __local double *); +double3 __ovld __purefn vload3(size_t, const __local double *); +double4 __ovld __purefn vload4(size_t, const __local double *); +double8 __ovld __purefn vload8(size_t, const __local double *); +double16 __ovld __purefn vload16(size_t, const __local double *); +double2 __ovld __purefn vload2(size_t, const __private double *); +double3 __ovld __purefn vload3(size_t, const __private double *); +double4 __ovld __purefn vload4(size_t, const __private double *); +double8 __ovld __purefn vload8(size_t, const __private double *); +double16 __ovld __purefn vload16(size_t, const __private double *); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half __ovld vload(size_t offset, const __global half *p); -half2 __ovld vload2(size_t offset, const __global half *p); -half3 __ovld vload3(size_t offset, const __global half *p); -half4 __ovld vload4(size_t offset, const __global half *p); -half8 __ovld vload8(size_t offset, const __global half *p); -half16 __ovld vload16(size_t offset, const __global half *p); -half __ovld vload(size_t offset, const __local half *p); -half2 __ovld vload2(size_t offset, const __local half *p); -half3 __ovld vload3(size_t offset, const __local half *p); -half4 __ovld vload4(size_t offset, const __local half *p); -half8 __ovld vload8(size_t offset, const __local half *p); -half16 __ovld vload16(size_t offset, const __local half *p); -half __ovld vload(size_t offset, const __private half *p); -half2 __ovld vload2(size_t offset, const __private half *p); -half3 __ovld vload3(size_t offset, const __private half *p); -half4 __ovld vload4(size_t offset, const __private half *p); -half8 __ovld vload8(size_t offset, const __private half *p); -half16 __ovld vload16(size_t offset, const __private half *p); +half2 __ovld __purefn vload2(size_t, const __global half *); +half3 __ovld __purefn vload3(size_t, const __global half *); +half4 __ovld __purefn vload4(size_t, const __global half *); +half8 __ovld __purefn vload8(size_t, const __global half *); +half16 __ovld __purefn vload16(size_t, const __global half *); +half2 __ovld __purefn vload2(size_t, const __local half *); +half3 __ovld __purefn vload3(size_t, const __local half *); +half4 __ovld __purefn vload4(size_t, const __local half *); +half8 __ovld __purefn vload8(size_t, const __local half *); +half16 __ovld __purefn vload16(size_t, const __local half *); +half2 __ovld __purefn vload2(size_t, const __private half *); +half3 __ovld __purefn vload3(size_t, const __private half *); +half4 __ovld __purefn vload4(size_t, const __private half *); +half8 __ovld __purefn vload8(size_t, const __private half *); +half16 __ovld __purefn vload16(size_t, const __private half *); #endif //cl_khr_fp16 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -void __ovld vstore2(char2 data, size_t offset, char *p); -void __ovld vstore2(uchar2 data, size_t offset, uchar *p); -void __ovld vstore2(short2 data, size_t offset, short *p); -void __ovld vstore2(ushort2 data, size_t offset, ushort *p); -void __ovld vstore2(int2 data, size_t offset, int *p); -void __ovld vstore2(uint2 data, size_t offset, uint *p); -void __ovld vstore2(long2 data, size_t offset, long *p); -void __ovld vstore2(ulong2 data, size_t offset, ulong *p); -void __ovld vstore2(float2 data, size_t offset, float *p); -void __ovld vstore3(char3 data, size_t offset, char *p); -void __ovld vstore3(uchar3 data, size_t offset, uchar *p); -void __ovld vstore3(short3 data, size_t offset, short *p); -void __ovld vstore3(ushort3 data, size_t offset, ushort *p); -void __ovld vstore3(int3 data, size_t offset, int *p); -void __ovld vstore3(uint3 data, size_t offset, uint *p); -void __ovld vstore3(long3 data, size_t offset, long *p); -void __ovld vstore3(ulong3 data, size_t offset, ulong *p); -void __ovld vstore3(float3 data, size_t offset, float *p); -void __ovld vstore4(char4 data, size_t offset, char *p); -void __ovld vstore4(uchar4 data, size_t offset, uchar *p); -void __ovld vstore4(short4 data, size_t offset, short *p); -void __ovld vstore4(ushort4 data, size_t offset, ushort *p); -void __ovld vstore4(int4 data, size_t offset, int *p); -void __ovld vstore4(uint4 data, size_t offset, uint *p); -void __ovld vstore4(long4 data, size_t offset, long *p); -void __ovld vstore4(ulong4 data, size_t offset, ulong *p); -void __ovld vstore4(float4 data, size_t offset, float *p); -void __ovld vstore8(char8 data, size_t offset, char *p); -void __ovld vstore8(uchar8 data, size_t offset, uchar *p); -void __ovld vstore8(short8 data, size_t offset, short *p); -void __ovld vstore8(ushort8 data, size_t offset, ushort *p); -void __ovld vstore8(int8 data, size_t offset, int *p); -void __ovld vstore8(uint8 data, size_t offset, uint *p); -void __ovld vstore8(long8 data, size_t offset, long *p); -void __ovld vstore8(ulong8 data, size_t offset, ulong *p); -void __ovld vstore8(float8 data, size_t offset, float *p); -void __ovld vstore16(char16 data, size_t offset, char *p); -void __ovld vstore16(uchar16 data, size_t offset, uchar *p); -void __ovld vstore16(short16 data, size_t offset, short *p); -void __ovld vstore16(ushort16 data, size_t offset, ushort *p); -void __ovld vstore16(int16 data, size_t offset, int *p); -void __ovld vstore16(uint16 data, size_t offset, uint *p); -void __ovld vstore16(long16 data, size_t offset, long *p); -void __ovld vstore16(ulong16 data, size_t offset, ulong *p); -void __ovld vstore16(float16 data, size_t offset, float *p); +#endif //defined(__opencl_c_generic_address_space) + +#if defined(__opencl_c_generic_address_space) +void __ovld vstore2(char2 data, size_t, char *); +void __ovld vstore2(uchar2 data, size_t, uchar *); +void __ovld vstore2(short2 data, size_t, short *); +void __ovld vstore2(ushort2 data, size_t, ushort *); +void __ovld vstore2(int2 data, size_t, int *); +void __ovld vstore2(uint2 data, size_t, uint *); +void __ovld vstore2(long2 data, size_t, long *); +void __ovld vstore2(ulong2 data, size_t, ulong *); +void __ovld vstore2(float2 data, size_t, float *); +void __ovld vstore3(char3 data, size_t, char *); +void __ovld vstore3(uchar3 data, size_t, uchar *); +void __ovld vstore3(short3 data, size_t, short *); +void __ovld vstore3(ushort3 data, size_t, ushort *); +void __ovld vstore3(int3 data, size_t, int *); +void __ovld vstore3(uint3 data, size_t, uint *); +void __ovld vstore3(long3 data, size_t, long *); +void __ovld vstore3(ulong3 data, size_t, ulong *); +void __ovld vstore3(float3 data, size_t, float *); +void __ovld vstore4(char4 data, size_t, char *); +void __ovld vstore4(uchar4 data, size_t, uchar *); +void __ovld vstore4(short4 data, size_t, short *); +void __ovld vstore4(ushort4 data, size_t, ushort *); +void __ovld vstore4(int4 data, size_t, int *); +void __ovld vstore4(uint4 data, size_t, uint *); +void __ovld vstore4(long4 data, size_t, long *); +void __ovld vstore4(ulong4 data, size_t, ulong *); +void __ovld vstore4(float4 data, size_t, float *); +void __ovld vstore8(char8 data, size_t, char *); +void __ovld vstore8(uchar8 data, size_t, uchar *); +void __ovld vstore8(short8 data, size_t, short *); +void __ovld vstore8(ushort8 data, size_t, ushort *); +void __ovld vstore8(int8 data, size_t, int *); +void __ovld vstore8(uint8 data, size_t, uint *); +void __ovld vstore8(long8 data, size_t, long *); +void __ovld vstore8(ulong8 data, size_t, ulong *); +void __ovld vstore8(float8 data, size_t, float *); +void __ovld vstore16(char16 data, size_t, char *); +void __ovld vstore16(uchar16 data, size_t, uchar *); +void __ovld vstore16(short16 data, size_t, short *); +void __ovld vstore16(ushort16 data, size_t, ushort *); +void __ovld vstore16(int16 data, size_t, int *); +void __ovld vstore16(uint16 data, size_t, uint *); +void __ovld vstore16(long16 data, size_t, long *); +void __ovld vstore16(ulong16 data, size_t, ulong *); +void __ovld vstore16(float16 data, size_t, float *); #ifdef cl_khr_fp64 -void __ovld vstore2(double2 data, size_t offset, double *p); -void __ovld vstore3(double3 data, size_t offset, double *p); -void __ovld vstore4(double4 data, size_t offset, double *p); -void __ovld vstore8(double8 data, size_t offset, double *p); -void __ovld vstore16(double16 data, size_t offset, double *p); +void __ovld vstore2(double2 data, size_t, double *); +void __ovld vstore3(double3 data, size_t, double *); +void __ovld vstore4(double4 data, size_t, double *); +void __ovld vstore8(double8 data, size_t, double *); +void __ovld vstore16(double16 data, size_t, double *); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -void __ovld vstore(half data, size_t offset, half *p); -void __ovld vstore2(half2 data, size_t offset, half *p); -void __ovld vstore3(half3 data, size_t offset, half *p); -void __ovld vstore4(half4 data, size_t offset, half *p); -void __ovld vstore8(half8 data, size_t offset, half *p); -void __ovld vstore16(half16 data, size_t offset, half *p); + +void __ovld vstore(half, size_t, half *); +void __ovld vstore2(half2, size_t, half *); +void __ovld vstore3(half3, size_t, half *); +void __ovld vstore4(half4, size_t, half *); +void __ovld vstore8(half8, size_t, half *); +void __ovld vstore16(half16, size_t, half *); #endif //cl_khr_fp16 #else -void __ovld vstore2(char2 data, size_t offset, __global char *p); -void __ovld vstore2(uchar2 data, size_t offset, __global uchar *p); -void __ovld vstore2(short2 data, size_t offset, __global short *p); -void __ovld vstore2(ushort2 data, size_t offset, __global ushort *p); -void __ovld vstore2(int2 data, size_t offset, __global int *p); -void __ovld vstore2(uint2 data, size_t offset, __global uint *p); -void __ovld vstore2(long2 data, size_t offset, __global long *p); -void __ovld vstore2(ulong2 data, size_t offset, __global ulong *p); -void __ovld vstore2(float2 data, size_t offset, __global float *p); -void __ovld vstore3(char3 data, size_t offset, __global char *p); -void __ovld vstore3(uchar3 data, size_t offset, __global uchar *p); -void __ovld vstore3(short3 data, size_t offset, __global short *p); -void __ovld vstore3(ushort3 data, size_t offset, __global ushort *p); -void __ovld vstore3(int3 data, size_t offset, __global int *p); -void __ovld vstore3(uint3 data, size_t offset, __global uint *p); -void __ovld vstore3(long3 data, size_t offset, __global long *p); -void __ovld vstore3(ulong3 data, size_t offset, __global ulong *p); -void __ovld vstore3(float3 data, size_t offset, __global float *p); -void __ovld vstore4(char4 data, size_t offset, __global char *p); -void __ovld vstore4(uchar4 data, size_t offset, __global uchar *p); -void __ovld vstore4(short4 data, size_t offset, __global short *p); -void __ovld vstore4(ushort4 data, size_t offset, __global ushort *p); -void __ovld vstore4(int4 data, size_t offset, __global int *p); -void __ovld vstore4(uint4 data, size_t offset, __global uint *p); -void __ovld vstore4(long4 data, size_t offset, __global long *p); -void __ovld vstore4(ulong4 data, size_t offset, __global ulong *p); -void __ovld vstore4(float4 data, size_t offset, __global float *p); -void __ovld vstore8(char8 data, size_t offset, __global char *p); -void __ovld vstore8(uchar8 data, size_t offset, __global uchar *p); -void __ovld vstore8(short8 data, size_t offset, __global short *p); -void __ovld vstore8(ushort8 data, size_t offset, __global ushort *p); -void __ovld vstore8(int8 data, size_t offset, __global int *p); -void __ovld vstore8(uint8 data, size_t offset, __global uint *p); -void __ovld vstore8(long8 data, size_t offset, __global long *p); -void __ovld vstore8(ulong8 data, size_t offset, __global ulong *p); -void __ovld vstore8(float8 data, size_t offset, __global float *p); -void __ovld vstore16(char16 data, size_t offset, __global char *p); -void __ovld vstore16(uchar16 data, size_t offset, __global uchar *p); -void __ovld vstore16(short16 data, size_t offset, __global short *p); -void __ovld vstore16(ushort16 data, size_t offset, __global ushort *p); -void __ovld vstore16(int16 data, size_t offset, __global int *p); -void __ovld vstore16(uint16 data, size_t offset, __global uint *p); -void __ovld vstore16(long16 data, size_t offset, __global long *p); -void __ovld vstore16(ulong16 data, size_t offset, __global ulong *p); -void __ovld vstore16(float16 data, size_t offset, __global float *p); -void __ovld vstore2(char2 data, size_t offset, __local char *p); -void __ovld vstore2(uchar2 data, size_t offset, __local uchar *p); -void __ovld vstore2(short2 data, size_t offset, __local short *p); -void __ovld vstore2(ushort2 data, size_t offset, __local ushort *p); -void __ovld vstore2(int2 data, size_t offset, __local int *p); -void __ovld vstore2(uint2 data, size_t offset, __local uint *p); -void __ovld vstore2(long2 data, size_t offset, __local long *p); -void __ovld vstore2(ulong2 data, size_t offset, __local ulong *p); -void __ovld vstore2(float2 data, size_t offset, __local float *p); -void __ovld vstore3(char3 data, size_t offset, __local char *p); -void __ovld vstore3(uchar3 data, size_t offset, __local uchar *p); -void __ovld vstore3(short3 data, size_t offset, __local short *p); -void __ovld vstore3(ushort3 data, size_t offset, __local ushort *p); -void __ovld vstore3(int3 data, size_t offset, __local int *p); -void __ovld vstore3(uint3 data, size_t offset, __local uint *p); -void __ovld vstore3(long3 data, size_t offset, __local long *p); -void __ovld vstore3(ulong3 data, size_t offset, __local ulong *p); -void __ovld vstore3(float3 data, size_t offset, __local float *p); -void __ovld vstore4(char4 data, size_t offset, __local char *p); -void __ovld vstore4(uchar4 data, size_t offset, __local uchar *p); -void __ovld vstore4(short4 data, size_t offset, __local short *p); -void __ovld vstore4(ushort4 data, size_t offset, __local ushort *p); -void __ovld vstore4(int4 data, size_t offset, __local int *p); -void __ovld vstore4(uint4 data, size_t offset, __local uint *p); -void __ovld vstore4(long4 data, size_t offset, __local long *p); -void __ovld vstore4(ulong4 data, size_t offset, __local ulong *p); -void __ovld vstore4(float4 data, size_t offset, __local float *p); -void __ovld vstore8(char8 data, size_t offset, __local char *p); -void __ovld vstore8(uchar8 data, size_t offset, __local uchar *p); -void __ovld vstore8(short8 data, size_t offset, __local short *p); -void __ovld vstore8(ushort8 data, size_t offset, __local ushort *p); -void __ovld vstore8(int8 data, size_t offset, __local int *p); -void __ovld vstore8(uint8 data, size_t offset, __local uint *p); -void __ovld vstore8(long8 data, size_t offset, __local long *p); -void __ovld vstore8(ulong8 data, size_t offset, __local ulong *p); -void __ovld vstore8(float8 data, size_t offset, __local float *p); -void __ovld vstore16(char16 data, size_t offset, __local char *p); -void __ovld vstore16(uchar16 data, size_t offset, __local uchar *p); -void __ovld vstore16(short16 data, size_t offset, __local short *p); -void __ovld vstore16(ushort16 data, size_t offset, __local ushort *p); -void __ovld vstore16(int16 data, size_t offset, __local int *p); -void __ovld vstore16(uint16 data, size_t offset, __local uint *p); -void __ovld vstore16(long16 data, size_t offset, __local long *p); -void __ovld vstore16(ulong16 data, size_t offset, __local ulong *p); -void __ovld vstore16(float16 data, size_t offset, __local float *p); -void __ovld vstore2(char2 data, size_t offset, __private char *p); -void __ovld vstore2(uchar2 data, size_t offset, __private uchar *p); -void __ovld vstore2(short2 data, size_t offset, __private short *p); -void __ovld vstore2(ushort2 data, size_t offset, __private ushort *p); -void __ovld vstore2(int2 data, size_t offset, __private int *p); -void __ovld vstore2(uint2 data, size_t offset, __private uint *p); -void __ovld vstore2(long2 data, size_t offset, __private long *p); -void __ovld vstore2(ulong2 data, size_t offset, __private ulong *p); -void __ovld vstore2(float2 data, size_t offset, __private float *p); -void __ovld vstore3(char3 data, size_t offset, __private char *p); -void __ovld vstore3(uchar3 data, size_t offset, __private uchar *p); -void __ovld vstore3(short3 data, size_t offset, __private short *p); -void __ovld vstore3(ushort3 data, size_t offset, __private ushort *p); -void __ovld vstore3(int3 data, size_t offset, __private int *p); -void __ovld vstore3(uint3 data, size_t offset, __private uint *p); -void __ovld vstore3(long3 data, size_t offset, __private long *p); -void __ovld vstore3(ulong3 data, size_t offset, __private ulong *p); -void __ovld vstore3(float3 data, size_t offset, __private float *p); -void __ovld vstore4(char4 data, size_t offset, __private char *p); -void __ovld vstore4(uchar4 data, size_t offset, __private uchar *p); -void __ovld vstore4(short4 data, size_t offset, __private short *p); -void __ovld vstore4(ushort4 data, size_t offset, __private ushort *p); -void __ovld vstore4(int4 data, size_t offset, __private int *p); -void __ovld vstore4(uint4 data, size_t offset, __private uint *p); -void __ovld vstore4(long4 data, size_t offset, __private long *p); -void __ovld vstore4(ulong4 data, size_t offset, __private ulong *p); -void __ovld vstore4(float4 data, size_t offset, __private float *p); -void __ovld vstore8(char8 data, size_t offset, __private char *p); -void __ovld vstore8(uchar8 data, size_t offset, __private uchar *p); -void __ovld vstore8(short8 data, size_t offset, __private short *p); -void __ovld vstore8(ushort8 data, size_t offset, __private ushort *p); -void __ovld vstore8(int8 data, size_t offset, __private int *p); -void __ovld vstore8(uint8 data, size_t offset, __private uint *p); -void __ovld vstore8(long8 data, size_t offset, __private long *p); -void __ovld vstore8(ulong8 data, size_t offset, __private ulong *p); -void __ovld vstore8(float8 data, size_t offset, __private float *p); -void __ovld vstore16(char16 data, size_t offset, __private char *p); -void __ovld vstore16(uchar16 data, size_t offset, __private uchar *p); -void __ovld vstore16(short16 data, size_t offset, __private short *p); -void __ovld vstore16(ushort16 data, size_t offset, __private ushort *p); -void __ovld vstore16(int16 data, size_t offset, __private int *p); -void __ovld vstore16(uint16 data, size_t offset, __private uint *p); -void __ovld vstore16(long16 data, size_t offset, __private long *p); -void __ovld vstore16(ulong16 data, size_t offset, __private ulong *p); -void __ovld vstore16(float16 data, size_t offset, __private float *p); +void __ovld vstore2(char2 data, size_t, __global char *); +void __ovld vstore2(uchar2 data, size_t, __global uchar *); +void __ovld vstore2(short2 data, size_t, __global short *); +void __ovld vstore2(ushort2 data, size_t, __global ushort *); +void __ovld vstore2(int2 data, size_t, __global int *); +void __ovld vstore2(uint2 data, size_t, __global uint *); +void __ovld vstore2(long2 data, size_t, __global long *); +void __ovld vstore2(ulong2 data, size_t, __global ulong *); +void __ovld vstore2(float2 data, size_t, __global float *); +void __ovld vstore3(char3 data, size_t, __global char *); +void __ovld vstore3(uchar3 data, size_t, __global uchar *); +void __ovld vstore3(short3 data, size_t, __global short *); +void __ovld vstore3(ushort3 data, size_t, __global ushort *); +void __ovld vstore3(int3 data, size_t, __global int *); +void __ovld vstore3(uint3 data, size_t, __global uint *); +void __ovld vstore3(long3 data, size_t, __global long *); +void __ovld vstore3(ulong3 data, size_t, __global ulong *); +void __ovld vstore3(float3 data, size_t, __global float *); +void __ovld vstore4(char4 data, size_t, __global char *); +void __ovld vstore4(uchar4 data, size_t, __global uchar *); +void __ovld vstore4(short4 data, size_t, __global short *); +void __ovld vstore4(ushort4 data, size_t, __global ushort *); +void __ovld vstore4(int4 data, size_t, __global int *); +void __ovld vstore4(uint4 data, size_t, __global uint *); +void __ovld vstore4(long4 data, size_t, __global long *); +void __ovld vstore4(ulong4 data, size_t, __global ulong *); +void __ovld vstore4(float4 data, size_t, __global float *); +void __ovld vstore8(char8 data, size_t, __global char *); +void __ovld vstore8(uchar8 data, size_t, __global uchar *); +void __ovld vstore8(short8 data, size_t, __global short *); +void __ovld vstore8(ushort8 data, size_t, __global ushort *); +void __ovld vstore8(int8 data, size_t, __global int *); +void __ovld vstore8(uint8 data, size_t, __global uint *); +void __ovld vstore8(long8 data, size_t, __global long *); +void __ovld vstore8(ulong8 data, size_t, __global ulong *); +void __ovld vstore8(float8 data, size_t, __global float *); +void __ovld vstore16(char16 data, size_t, __global char *); +void __ovld vstore16(uchar16 data, size_t, __global uchar *); +void __ovld vstore16(short16 data, size_t, __global short *); +void __ovld vstore16(ushort16 data, size_t, __global ushort *); +void __ovld vstore16(int16 data, size_t, __global int *); +void __ovld vstore16(uint16 data, size_t, __global uint *); +void __ovld vstore16(long16 data, size_t, __global long *); +void __ovld vstore16(ulong16 data, size_t, __global ulong *); +void __ovld vstore16(float16 data, size_t, __global float *); +void __ovld vstore2(char2 data, size_t, __local char *); +void __ovld vstore2(uchar2 data, size_t, __local uchar *); +void __ovld vstore2(short2 data, size_t, __local short *); +void __ovld vstore2(ushort2 data, size_t, __local ushort *); +void __ovld vstore2(int2 data, size_t, __local int *); +void __ovld vstore2(uint2 data, size_t, __local uint *); +void __ovld vstore2(long2 data, size_t, __local long *); +void __ovld vstore2(ulong2 data, size_t, __local ulong *); +void __ovld vstore2(float2 data, size_t, __local float *); +void __ovld vstore3(char3 data, size_t, __local char *); +void __ovld vstore3(uchar3 data, size_t, __local uchar *); +void __ovld vstore3(short3 data, size_t, __local short *); +void __ovld vstore3(ushort3 data, size_t, __local ushort *); +void __ovld vstore3(int3 data, size_t, __local int *); +void __ovld vstore3(uint3 data, size_t, __local uint *); +void __ovld vstore3(long3 data, size_t, __local long *); +void __ovld vstore3(ulong3 data, size_t, __local ulong *); +void __ovld vstore3(float3 data, size_t, __local float *); +void __ovld vstore4(char4 data, size_t, __local char *); +void __ovld vstore4(uchar4 data, size_t, __local uchar *); +void __ovld vstore4(short4 data, size_t, __local short *); +void __ovld vstore4(ushort4 data, size_t, __local ushort *); +void __ovld vstore4(int4 data, size_t, __local int *); +void __ovld vstore4(uint4 data, size_t, __local uint *); +void __ovld vstore4(long4 data, size_t, __local long *); +void __ovld vstore4(ulong4 data, size_t, __local ulong *); +void __ovld vstore4(float4 data, size_t, __local float *); +void __ovld vstore8(char8 data, size_t, __local char *); +void __ovld vstore8(uchar8 data, size_t, __local uchar *); +void __ovld vstore8(short8 data, size_t, __local short *); +void __ovld vstore8(ushort8 data, size_t, __local ushort *); +void __ovld vstore8(int8 data, size_t, __local int *); +void __ovld vstore8(uint8 data, size_t, __local uint *); +void __ovld vstore8(long8 data, size_t, __local long *); +void __ovld vstore8(ulong8 data, size_t, __local ulong *); +void __ovld vstore8(float8 data, size_t, __local float *); +void __ovld vstore16(char16 data, size_t, __local char *); +void __ovld vstore16(uchar16 data, size_t, __local uchar *); +void __ovld vstore16(short16 data, size_t, __local short *); +void __ovld vstore16(ushort16 data, size_t, __local ushort *); +void __ovld vstore16(int16 data, size_t, __local int *); +void __ovld vstore16(uint16 data, size_t, __local uint *); +void __ovld vstore16(long16 data, size_t, __local long *); +void __ovld vstore16(ulong16 data, size_t, __local ulong *); +void __ovld vstore16(float16 data, size_t, __local float *); +void __ovld vstore2(char2 data, size_t, __private char *); +void __ovld vstore2(uchar2 data, size_t, __private uchar *); +void __ovld vstore2(short2 data, size_t, __private short *); +void __ovld vstore2(ushort2 data, size_t, __private ushort *); +void __ovld vstore2(int2 data, size_t, __private int *); +void __ovld vstore2(uint2 data, size_t, __private uint *); +void __ovld vstore2(long2 data, size_t, __private long *); +void __ovld vstore2(ulong2 data, size_t, __private ulong *); +void __ovld vstore2(float2 data, size_t, __private float *); +void __ovld vstore3(char3 data, size_t, __private char *); +void __ovld vstore3(uchar3 data, size_t, __private uchar *); +void __ovld vstore3(short3 data, size_t, __private short *); +void __ovld vstore3(ushort3 data, size_t, __private ushort *); +void __ovld vstore3(int3 data, size_t, __private int *); +void __ovld vstore3(uint3 data, size_t, __private uint *); +void __ovld vstore3(long3 data, size_t, __private long *); +void __ovld vstore3(ulong3 data, size_t, __private ulong *); +void __ovld vstore3(float3 data, size_t, __private float *); +void __ovld vstore4(char4 data, size_t, __private char *); +void __ovld vstore4(uchar4 data, size_t, __private uchar *); +void __ovld vstore4(short4 data, size_t, __private short *); +void __ovld vstore4(ushort4 data, size_t, __private ushort *); +void __ovld vstore4(int4 data, size_t, __private int *); +void __ovld vstore4(uint4 data, size_t, __private uint *); +void __ovld vstore4(long4 data, size_t, __private long *); +void __ovld vstore4(ulong4 data, size_t, __private ulong *); +void __ovld vstore4(float4 data, size_t, __private float *); +void __ovld vstore8(char8 data, size_t, __private char *); +void __ovld vstore8(uchar8 data, size_t, __private uchar *); +void __ovld vstore8(short8 data, size_t, __private short *); +void __ovld vstore8(ushort8 data, size_t, __private ushort *); +void __ovld vstore8(int8 data, size_t, __private int *); +void __ovld vstore8(uint8 data, size_t, __private uint *); +void __ovld vstore8(long8 data, size_t, __private long *); +void __ovld vstore8(ulong8 data, size_t, __private ulong *); +void __ovld vstore8(float8 data, size_t, __private float *); +void __ovld vstore16(char16 data, size_t, __private char *); +void __ovld vstore16(uchar16 data, size_t, __private uchar *); +void __ovld vstore16(short16 data, size_t, __private short *); +void __ovld vstore16(ushort16 data, size_t, __private ushort *); +void __ovld vstore16(int16 data, size_t, __private int *); +void __ovld vstore16(uint16 data, size_t, __private uint *); +void __ovld vstore16(long16 data, size_t, __private long *); +void __ovld vstore16(ulong16 data, size_t, __private ulong *); +void __ovld vstore16(float16 data, size_t, __private float *); #ifdef cl_khr_fp64 -void __ovld vstore2(double2 data, size_t offset, __global double *p); -void __ovld vstore3(double3 data, size_t offset, __global double *p); -void __ovld vstore4(double4 data, size_t offset, __global double *p); -void __ovld vstore8(double8 data, size_t offset, __global double *p); -void __ovld vstore16(double16 data, size_t offset, __global double *p); -void __ovld vstore2(double2 data, size_t offset, __local double *p); -void __ovld vstore3(double3 data, size_t offset, __local double *p); -void __ovld vstore4(double4 data, size_t offset, __local double *p); -void __ovld vstore8(double8 data, size_t offset, __local double *p); -void __ovld vstore16(double16 data, size_t offset, __local double *p); -void __ovld vstore2(double2 data, size_t offset, __private double *p); -void __ovld vstore3(double3 data, size_t offset, __private double *p); -void __ovld vstore4(double4 data, size_t offset, __private double *p); -void __ovld vstore8(double8 data, size_t offset, __private double *p); -void __ovld vstore16(double16 data, size_t offset, __private double *p); +void __ovld vstore2(double2 data, size_t, __global double *); +void __ovld vstore3(double3 data, size_t, __global double *); +void __ovld vstore4(double4 data, size_t, __global double *); +void __ovld vstore8(double8 data, size_t, __global double *); +void __ovld vstore16(double16 data, size_t, __global double *); +void __ovld vstore2(double2 data, size_t, __local double *); +void __ovld vstore3(double3 data, size_t, __local double *); +void __ovld vstore4(double4 data, size_t, __local double *); +void __ovld vstore8(double8 data, size_t, __local double *); +void __ovld vstore16(double16 data, size_t, __local double *); +void __ovld vstore2(double2 data, size_t, __private double *); +void __ovld vstore3(double3 data, size_t, __private double *); +void __ovld vstore4(double4 data, size_t, __private double *); +void __ovld vstore8(double8 data, size_t, __private double *); +void __ovld vstore16(double16 data, size_t, __private double *); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -void __ovld vstore(half data, size_t offset, __global half *p); -void __ovld vstore2(half2 data, size_t offset, __global half *p); -void __ovld vstore3(half3 data, size_t offset, __global half *p); -void __ovld vstore4(half4 data, size_t offset, __global half *p); -void __ovld vstore8(half8 data, size_t offset, __global half *p); -void __ovld vstore16(half16 data, size_t offset, __global half *p); -void __ovld vstore(half data, size_t offset, __local half *p); -void __ovld vstore2(half2 data, size_t offset, __local half *p); -void __ovld vstore3(half3 data, size_t offset, __local half *p); -void __ovld vstore4(half4 data, size_t offset, __local half *p); -void __ovld vstore8(half8 data, size_t offset, __local half *p); -void __ovld vstore16(half16 data, size_t offset, __local half *p); -void __ovld vstore(half data, size_t offset, __private half *p); -void __ovld vstore2(half2 data, size_t offset, __private half *p); -void __ovld vstore3(half3 data, size_t offset, __private half *p); -void __ovld vstore4(half4 data, size_t offset, __private half *p); -void __ovld vstore8(half8 data, size_t offset, __private half *p); -void __ovld vstore16(half16 data, size_t offset, __private half *p); +void __ovld vstore(half, size_t, __global half *); +void __ovld vstore2(half2, size_t, __global half *); +void __ovld vstore3(half3, size_t, __global half *); +void __ovld vstore4(half4, size_t, __global half *); +void __ovld vstore8(half8, size_t, __global half *); +void __ovld vstore16(half16, size_t, __global half *); +void __ovld vstore(half, size_t, __local half *); +void __ovld vstore2(half2, size_t, __local half *); +void __ovld vstore3(half3, size_t, __local half *); +void __ovld vstore4(half4, size_t, __local half *); +void __ovld vstore8(half8, size_t, __local half *); +void __ovld vstore16(half16, size_t, __local half *); +void __ovld vstore(half, size_t, __private half *); +void __ovld vstore2(half2, size_t, __private half *); +void __ovld vstore3(half3, size_t, __private half *); +void __ovld vstore4(half4, size_t, __private half *); +void __ovld vstore8(half8, size_t, __private half *); +void __ovld vstore16(half16, size_t, __private half *); #endif //cl_khr_fp16 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_generic_address_space) /** * Read sizeof (half) bytes of data from address @@ -12437,14 +12424,14 @@ void __ovld vstore16(half16 data, size_t offset, __private half *p); * The read address computed as (p + offset) * must be 16-bit aligned. */ -float __ovld vload_half(size_t offset, const __constant half *p); -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -float __ovld vload_half(size_t offset, const half *p); +float __ovld __purefn vload_half(size_t, const __constant half *); +#if defined(__opencl_c_generic_address_space) +float __ovld __purefn vload_half(size_t, const half *); #else -float __ovld vload_half(size_t offset, const __global half *p); -float __ovld vload_half(size_t offset, const __local half *p); -float __ovld vload_half(size_t offset, const __private half *p); -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +float __ovld __purefn vload_half(size_t, const __global half *); +float __ovld __purefn vload_half(size_t, const __local half *); +float __ovld __purefn vload_half(size_t, const __private half *); +#endif //defined(__opencl_c_generic_address_space) /** * Read sizeof (halfn) bytes of data from address @@ -12454,34 +12441,34 @@ float __ovld vload_half(size_t offset, const __private half *p); * value is returned. The read address computed * as (p + (offset * n)) must be 16-bit aligned. */ -float2 __ovld vload_half2(size_t offset, const __constant half *p); -float3 __ovld vload_half3(size_t offset, const __constant half *p); -float4 __ovld vload_half4(size_t offset, const __constant half *p); -float8 __ovld vload_half8(size_t offset, const __constant half *p); -float16 __ovld vload_half16(size_t offset, const __constant half *p); -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -float2 __ovld vload_half2(size_t offset, const half *p); -float3 __ovld vload_half3(size_t offset, const half *p); -float4 __ovld vload_half4(size_t offset, const half *p); -float8 __ovld vload_half8(size_t offset, const half *p); -float16 __ovld vload_half16(size_t offset, const half *p); +float2 __ovld __purefn vload_half2(size_t, const __constant half *); +float3 __ovld __purefn vload_half3(size_t, const __constant half *); +float4 __ovld __purefn vload_half4(size_t, const __constant half *); +float8 __ovld __purefn vload_half8(size_t, const __constant half *); +float16 __ovld __purefn vload_half16(size_t, const __constant half *); +#if defined(__opencl_c_generic_address_space) +float2 __ovld __purefn vload_half2(size_t, const half *); +float3 __ovld __purefn vload_half3(size_t, const half *); +float4 __ovld __purefn vload_half4(size_t, const half *); +float8 __ovld __purefn vload_half8(size_t, const half *); +float16 __ovld __purefn vload_half16(size_t, const half *); #else -float2 __ovld vload_half2(size_t offset, const __global half *p); -float3 __ovld vload_half3(size_t offset, const __global half *p); -float4 __ovld vload_half4(size_t offset, const __global half *p); -float8 __ovld vload_half8(size_t offset, const __global half *p); -float16 __ovld vload_half16(size_t offset, const __global half *p); -float2 __ovld vload_half2(size_t offset, const __local half *p); -float3 __ovld vload_half3(size_t offset, const __local half *p); -float4 __ovld vload_half4(size_t offset, const __local half *p); -float8 __ovld vload_half8(size_t offset, const __local half *p); -float16 __ovld vload_half16(size_t offset, const __local half *p); -float2 __ovld vload_half2(size_t offset, const __private half *p); -float3 __ovld vload_half3(size_t offset, const __private half *p); -float4 __ovld vload_half4(size_t offset, const __private half *p); -float8 __ovld vload_half8(size_t offset, const __private half *p); -float16 __ovld vload_half16(size_t offset, const __private half *p); -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +float2 __ovld __purefn vload_half2(size_t, const __global half *); +float3 __ovld __purefn vload_half3(size_t, const __global half *); +float4 __ovld __purefn vload_half4(size_t, const __global half *); +float8 __ovld __purefn vload_half8(size_t, const __global half *); +float16 __ovld __purefn vload_half16(size_t, const __global half *); +float2 __ovld __purefn vload_half2(size_t, const __local half *); +float3 __ovld __purefn vload_half3(size_t, const __local half *); +float4 __ovld __purefn vload_half4(size_t, const __local half *); +float8 __ovld __purefn vload_half8(size_t, const __local half *); +float16 __ovld __purefn vload_half16(size_t, const __local half *); +float2 __ovld __purefn vload_half2(size_t, const __private half *); +float3 __ovld __purefn vload_half3(size_t, const __private half *); +float4 __ovld __purefn vload_half4(size_t, const __private half *); +float8 __ovld __purefn vload_half8(size_t, const __private half *); +float16 __ovld __purefn vload_half16(size_t, const __private half *); +#endif //defined(__opencl_c_generic_address_space) /** * The float value given by data is first @@ -12494,53 +12481,53 @@ float16 __ovld vload_half16(size_t offset, const __private half *p); * The default current rounding mode is round to * nearest even. */ -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -void __ovld vstore_half(float data, size_t offset, half *p); -void __ovld vstore_half_rte(float data, size_t offset, half *p); -void __ovld vstore_half_rtz(float data, size_t offset, half *p); -void __ovld vstore_half_rtp(float data, size_t offset, half *p); -void __ovld vstore_half_rtn(float data, size_t offset, half *p); +#if defined(__opencl_c_generic_address_space) +void __ovld vstore_half(float data, size_t, half *); +void __ovld vstore_half_rte(float data, size_t, half *); +void __ovld vstore_half_rtz(float data, size_t, half *); +void __ovld vstore_half_rtp(float data, size_t, half *); +void __ovld vstore_half_rtn(float data, size_t, half *); #ifdef cl_khr_fp64 -void __ovld vstore_half(double data, size_t offset, half *p); -void __ovld vstore_half_rte(double data, size_t offset, half *p); -void __ovld vstore_half_rtz(double data, size_t offset, half *p); -void __ovld vstore_half_rtp(double data, size_t offset, half *p); -void __ovld vstore_half_rtn(double data, size_t offset, half *p); +void __ovld vstore_half(double data, size_t, half *); +void __ovld vstore_half_rte(double data, size_t, half *); +void __ovld vstore_half_rtz(double data, size_t, half *); +void __ovld vstore_half_rtp(double data, size_t, half *); +void __ovld vstore_half_rtn(double data, size_t, half *); #endif //cl_khr_fp64 #else -void __ovld vstore_half(float data, size_t offset, __global half *p); -void __ovld vstore_half_rte(float data, size_t offset, __global half *p); -void __ovld vstore_half_rtz(float data, size_t offset, __global half *p); -void __ovld vstore_half_rtp(float data, size_t offset, __global half *p); -void __ovld vstore_half_rtn(float data, size_t offset, __global half *p); -void __ovld vstore_half(float data, size_t offset, __local half *p); -void __ovld vstore_half_rte(float data, size_t offset, __local half *p); -void __ovld vstore_half_rtz(float data, size_t offset, __local half *p); -void __ovld vstore_half_rtp(float data, size_t offset, __local half *p); -void __ovld vstore_half_rtn(float data, size_t offset, __local half *p); -void __ovld vstore_half(float data, size_t offset, __private half *p); -void __ovld vstore_half_rte(float data, size_t offset, __private half *p); -void __ovld vstore_half_rtz(float data, size_t offset, __private half *p); -void __ovld vstore_half_rtp(float data, size_t offset, __private half *p); -void __ovld vstore_half_rtn(float data, size_t offset, __private half *p); +void __ovld vstore_half(float data, size_t, __global half *); +void __ovld vstore_half_rte(float data, size_t, __global half *); +void __ovld vstore_half_rtz(float data, size_t, __global half *); +void __ovld vstore_half_rtp(float data, size_t, __global half *); +void __ovld vstore_half_rtn(float data, size_t, __global half *); +void __ovld vstore_half(float data, size_t, __local half *); +void __ovld vstore_half_rte(float data, size_t, __local half *); +void __ovld vstore_half_rtz(float data, size_t, __local half *); +void __ovld vstore_half_rtp(float data, size_t, __local half *); +void __ovld vstore_half_rtn(float data, size_t, __local half *); +void __ovld vstore_half(float data, size_t, __private half *); +void __ovld vstore_half_rte(float data, size_t, __private half *); +void __ovld vstore_half_rtz(float data, size_t, __private half *); +void __ovld vstore_half_rtp(float data, size_t, __private half *); +void __ovld vstore_half_rtn(float data, size_t, __private half *); #ifdef cl_khr_fp64 -void __ovld vstore_half(double data, size_t offset, __global half *p); -void __ovld vstore_half_rte(double data, size_t offset, __global half *p); -void __ovld vstore_half_rtz(double data, size_t offset, __global half *p); -void __ovld vstore_half_rtp(double data, size_t offset, __global half *p); -void __ovld vstore_half_rtn(double data, size_t offset, __global half *p); -void __ovld vstore_half(double data, size_t offset, __local half *p); -void __ovld vstore_half_rte(double data, size_t offset, __local half *p); -void __ovld vstore_half_rtz(double data, size_t offset, __local half *p); -void __ovld vstore_half_rtp(double data, size_t offset, __local half *p); -void __ovld vstore_half_rtn(double data, size_t offset, __local half *p); -void __ovld vstore_half(double data, size_t offset, __private half *p); -void __ovld vstore_half_rte(double data, size_t offset, __private half *p); -void __ovld vstore_half_rtz(double data, size_t offset, __private half *p); -void __ovld vstore_half_rtp(double data, size_t offset, __private half *p); -void __ovld vstore_half_rtn(double data, size_t offset, __private half *p); +void __ovld vstore_half(double data, size_t, __global half *); +void __ovld vstore_half_rte(double data, size_t, __global half *); +void __ovld vstore_half_rtz(double data, size_t, __global half *); +void __ovld vstore_half_rtp(double data, size_t, __global half *); +void __ovld vstore_half_rtn(double data, size_t, __global half *); +void __ovld vstore_half(double data, size_t, __local half *); +void __ovld vstore_half_rte(double data, size_t, __local half *); +void __ovld vstore_half_rtz(double data, size_t, __local half *); +void __ovld vstore_half_rtp(double data, size_t, __local half *); +void __ovld vstore_half_rtn(double data, size_t, __local half *); +void __ovld vstore_half(double data, size_t, __private half *); +void __ovld vstore_half_rte(double data, size_t, __private half *); +void __ovld vstore_half_rtz(double data, size_t, __private half *); +void __ovld vstore_half_rtp(double data, size_t, __private half *); +void __ovld vstore_half_rtn(double data, size_t, __private half *); #endif //cl_khr_fp64 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_generic_address_space) /** * The floatn value given by data is converted to @@ -12553,213 +12540,213 @@ void __ovld vstore_half_rtn(double data, size_t offset, __private half *p); * The default current rounding mode is round to * nearest even. */ -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -void __ovld vstore_half2(float2 data, size_t offset, half *p); -void __ovld vstore_half3(float3 data, size_t offset, half *p); -void __ovld vstore_half4(float4 data, size_t offset, half *p); -void __ovld vstore_half8(float8 data, size_t offset, half *p); -void __ovld vstore_half16(float16 data, size_t offset, half *p); -void __ovld vstore_half2_rte(float2 data, size_t offset, half *p); -void __ovld vstore_half3_rte(float3 data, size_t offset, half *p); -void __ovld vstore_half4_rte(float4 data, size_t offset, half *p); -void __ovld vstore_half8_rte(float8 data, size_t offset, half *p); -void __ovld vstore_half16_rte(float16 data, size_t offset, half *p); -void __ovld vstore_half2_rtz(float2 data, size_t offset, half *p); -void __ovld vstore_half3_rtz(float3 data, size_t offset, half *p); -void __ovld vstore_half4_rtz(float4 data, size_t offset, half *p); -void __ovld vstore_half8_rtz(float8 data, size_t offset, half *p); -void __ovld vstore_half16_rtz(float16 data, size_t offset, half *p); -void __ovld vstore_half2_rtp(float2 data, size_t offset, half *p); -void __ovld vstore_half3_rtp(float3 data, size_t offset, half *p); -void __ovld vstore_half4_rtp(float4 data, size_t offset, half *p); -void __ovld vstore_half8_rtp(float8 data, size_t offset, half *p); -void __ovld vstore_half16_rtp(float16 data, size_t offset, half *p); -void __ovld vstore_half2_rtn(float2 data, size_t offset, half *p); -void __ovld vstore_half3_rtn(float3 data, size_t offset, half *p); -void __ovld vstore_half4_rtn(float4 data, size_t offset, half *p); -void __ovld vstore_half8_rtn(float8 data, size_t offset, half *p); -void __ovld vstore_half16_rtn(float16 data, size_t offset, half *p); +#if defined(__opencl_c_generic_address_space) +void __ovld vstore_half2(float2 data, size_t, half *); +void __ovld vstore_half3(float3 data, size_t, half *); +void __ovld vstore_half4(float4 data, size_t, half *); +void __ovld vstore_half8(float8 data, size_t, half *); +void __ovld vstore_half16(float16 data, size_t, half *); +void __ovld vstore_half2_rte(float2 data, size_t, half *); +void __ovld vstore_half3_rte(float3 data, size_t, half *); +void __ovld vstore_half4_rte(float4 data, size_t, half *); +void __ovld vstore_half8_rte(float8 data, size_t, half *); +void __ovld vstore_half16_rte(float16 data, size_t, half *); +void __ovld vstore_half2_rtz(float2 data, size_t, half *); +void __ovld vstore_half3_rtz(float3 data, size_t, half *); +void __ovld vstore_half4_rtz(float4 data, size_t, half *); +void __ovld vstore_half8_rtz(float8 data, size_t, half *); +void __ovld vstore_half16_rtz(float16 data, size_t, half *); +void __ovld vstore_half2_rtp(float2 data, size_t, half *); +void __ovld vstore_half3_rtp(float3 data, size_t, half *); +void __ovld vstore_half4_rtp(float4 data, size_t, half *); +void __ovld vstore_half8_rtp(float8 data, size_t, half *); +void __ovld vstore_half16_rtp(float16 data, size_t, half *); +void __ovld vstore_half2_rtn(float2 data, size_t, half *); +void __ovld vstore_half3_rtn(float3 data, size_t, half *); +void __ovld vstore_half4_rtn(float4 data, size_t, half *); +void __ovld vstore_half8_rtn(float8 data, size_t, half *); +void __ovld vstore_half16_rtn(float16 data, size_t, half *); #ifdef cl_khr_fp64 -void __ovld vstore_half2(double2 data, size_t offset, half *p); -void __ovld vstore_half3(double3 data, size_t offset, half *p); -void __ovld vstore_half4(double4 data, size_t offset, half *p); -void __ovld vstore_half8(double8 data, size_t offset, half *p); -void __ovld vstore_half16(double16 data, size_t offset, half *p); -void __ovld vstore_half2_rte(double2 data, size_t offset, half *p); -void __ovld vstore_half3_rte(double3 data, size_t offset, half *p); -void __ovld vstore_half4_rte(double4 data, size_t offset, half *p); -void __ovld vstore_half8_rte(double8 data, size_t offset, half *p); -void __ovld vstore_half16_rte(double16 data, size_t offset, half *p); -void __ovld vstore_half2_rtz(double2 data, size_t offset, half *p); -void __ovld vstore_half3_rtz(double3 data, size_t offset, half *p); -void __ovld vstore_half4_rtz(double4 data, size_t offset, half *p); -void __ovld vstore_half8_rtz(double8 data, size_t offset, half *p); -void __ovld vstore_half16_rtz(double16 data, size_t offset, half *p); -void __ovld vstore_half2_rtp(double2 data, size_t offset, half *p); -void __ovld vstore_half3_rtp(double3 data, size_t offset, half *p); -void __ovld vstore_half4_rtp(double4 data, size_t offset, half *p); -void __ovld vstore_half8_rtp(double8 data, size_t offset, half *p); -void __ovld vstore_half16_rtp(double16 data, size_t offset, half *p); -void __ovld vstore_half2_rtn(double2 data, size_t offset, half *p); -void __ovld vstore_half3_rtn(double3 data, size_t offset, half *p); -void __ovld vstore_half4_rtn(double4 data, size_t offset, half *p); -void __ovld vstore_half8_rtn(double8 data, size_t offset, half *p); -void __ovld vstore_half16_rtn(double16 data, size_t offset, half *p); +void __ovld vstore_half2(double2 data, size_t, half *); +void __ovld vstore_half3(double3 data, size_t, half *); +void __ovld vstore_half4(double4 data, size_t, half *); +void __ovld vstore_half8(double8 data, size_t, half *); +void __ovld vstore_half16(double16 data, size_t, half *); +void __ovld vstore_half2_rte(double2 data, size_t, half *); +void __ovld vstore_half3_rte(double3 data, size_t, half *); +void __ovld vstore_half4_rte(double4 data, size_t, half *); +void __ovld vstore_half8_rte(double8 data, size_t, half *); +void __ovld vstore_half16_rte(double16 data, size_t, half *); +void __ovld vstore_half2_rtz(double2 data, size_t, half *); +void __ovld vstore_half3_rtz(double3 data, size_t, half *); +void __ovld vstore_half4_rtz(double4 data, size_t, half *); +void __ovld vstore_half8_rtz(double8 data, size_t, half *); +void __ovld vstore_half16_rtz(double16 data, size_t, half *); +void __ovld vstore_half2_rtp(double2 data, size_t, half *); +void __ovld vstore_half3_rtp(double3 data, size_t, half *); +void __ovld vstore_half4_rtp(double4 data, size_t, half *); +void __ovld vstore_half8_rtp(double8 data, size_t, half *); +void __ovld vstore_half16_rtp(double16 data, size_t, half *); +void __ovld vstore_half2_rtn(double2 data, size_t, half *); +void __ovld vstore_half3_rtn(double3 data, size_t, half *); +void __ovld vstore_half4_rtn(double4 data, size_t, half *); +void __ovld vstore_half8_rtn(double8 data, size_t, half *); +void __ovld vstore_half16_rtn(double16 data, size_t, half *); #endif //cl_khr_fp64 #else -void __ovld vstore_half2(float2 data, size_t offset, __global half *p); -void __ovld vstore_half3(float3 data, size_t offset, __global half *p); -void __ovld vstore_half4(float4 data, size_t offset, __global half *p); -void __ovld vstore_half8(float8 data, size_t offset, __global half *p); -void __ovld vstore_half16(float16 data, size_t offset, __global half *p); -void __ovld vstore_half2_rte(float2 data, size_t offset, __global half *p); -void __ovld vstore_half3_rte(float3 data, size_t offset, __global half *p); -void __ovld vstore_half4_rte(float4 data, size_t offset, __global half *p); -void __ovld vstore_half8_rte(float8 data, size_t offset, __global half *p); -void __ovld vstore_half16_rte(float16 data, size_t offset, __global half *p); -void __ovld vstore_half2_rtz(float2 data, size_t offset, __global half *p); -void __ovld vstore_half3_rtz(float3 data, size_t offset, __global half *p); -void __ovld vstore_half4_rtz(float4 data, size_t offset, __global half *p); -void __ovld vstore_half8_rtz(float8 data, size_t offset, __global half *p); -void __ovld vstore_half16_rtz(float16 data, size_t offset, __global half *p); -void __ovld vstore_half2_rtp(float2 data, size_t offset, __global half *p); -void __ovld vstore_half3_rtp(float3 data, size_t offset, __global half *p); -void __ovld vstore_half4_rtp(float4 data, size_t offset, __global half *p); -void __ovld vstore_half8_rtp(float8 data, size_t offset, __global half *p); -void __ovld vstore_half16_rtp(float16 data, size_t offset, __global half *p); -void __ovld vstore_half2_rtn(float2 data, size_t offset, __global half *p); -void __ovld vstore_half3_rtn(float3 data, size_t offset, __global half *p); -void __ovld vstore_half4_rtn(float4 data, size_t offset, __global half *p); -void __ovld vstore_half8_rtn(float8 data, size_t offset, __global half *p); -void __ovld vstore_half16_rtn(float16 data, size_t offset, __global half *p); -void __ovld vstore_half2(float2 data, size_t offset, __local half *p); -void __ovld vstore_half3(float3 data, size_t offset, __local half *p); -void __ovld vstore_half4(float4 data, size_t offset, __local half *p); -void __ovld vstore_half8(float8 data, size_t offset, __local half *p); -void __ovld vstore_half16(float16 data, size_t offset, __local half *p); -void __ovld vstore_half2_rte(float2 data, size_t offset, __local half *p); -void __ovld vstore_half3_rte(float3 data, size_t offset, __local half *p); -void __ovld vstore_half4_rte(float4 data, size_t offset, __local half *p); -void __ovld vstore_half8_rte(float8 data, size_t offset, __local half *p); -void __ovld vstore_half16_rte(float16 data, size_t offset, __local half *p); -void __ovld vstore_half2_rtz(float2 data, size_t offset, __local half *p); -void __ovld vstore_half3_rtz(float3 data, size_t offset, __local half *p); -void __ovld vstore_half4_rtz(float4 data, size_t offset, __local half *p); -void __ovld vstore_half8_rtz(float8 data, size_t offset, __local half *p); -void __ovld vstore_half16_rtz(float16 data, size_t offset, __local half *p); -void __ovld vstore_half2_rtp(float2 data, size_t offset, __local half *p); -void __ovld vstore_half3_rtp(float3 data, size_t offset, __local half *p); -void __ovld vstore_half4_rtp(float4 data, size_t offset, __local half *p); -void __ovld vstore_half8_rtp(float8 data, size_t offset, __local half *p); -void __ovld vstore_half16_rtp(float16 data, size_t offset, __local half *p); -void __ovld vstore_half2_rtn(float2 data, size_t offset, __local half *p); -void __ovld vstore_half3_rtn(float3 data, size_t offset, __local half *p); -void __ovld vstore_half4_rtn(float4 data, size_t offset, __local half *p); -void __ovld vstore_half8_rtn(float8 data, size_t offset, __local half *p); -void __ovld vstore_half16_rtn(float16 data, size_t offset, __local half *p); -void __ovld vstore_half2(float2 data, size_t offset, __private half *p); -void __ovld vstore_half3(float3 data, size_t offset, __private half *p); -void __ovld vstore_half4(float4 data, size_t offset, __private half *p); -void __ovld vstore_half8(float8 data, size_t offset, __private half *p); -void __ovld vstore_half16(float16 data, size_t offset, __private half *p); -void __ovld vstore_half2_rte(float2 data, size_t offset, __private half *p); -void __ovld vstore_half3_rte(float3 data, size_t offset, __private half *p); -void __ovld vstore_half4_rte(float4 data, size_t offset, __private half *p); -void __ovld vstore_half8_rte(float8 data, size_t offset, __private half *p); -void __ovld vstore_half16_rte(float16 data, size_t offset, __private half *p); -void __ovld vstore_half2_rtz(float2 data, size_t offset, __private half *p); -void __ovld vstore_half3_rtz(float3 data, size_t offset, __private half *p); -void __ovld vstore_half4_rtz(float4 data, size_t offset, __private half *p); -void __ovld vstore_half8_rtz(float8 data, size_t offset, __private half *p); -void __ovld vstore_half16_rtz(float16 data, size_t offset, __private half *p); -void __ovld vstore_half2_rtp(float2 data, size_t offset, __private half *p); -void __ovld vstore_half3_rtp(float3 data, size_t offset, __private half *p); -void __ovld vstore_half4_rtp(float4 data, size_t offset, __private half *p); -void __ovld vstore_half8_rtp(float8 data, size_t offset, __private half *p); -void __ovld vstore_half16_rtp(float16 data, size_t offset, __private half *p); -void __ovld vstore_half2_rtn(float2 data, size_t offset, __private half *p); -void __ovld vstore_half3_rtn(float3 data, size_t offset, __private half *p); -void __ovld vstore_half4_rtn(float4 data, size_t offset, __private half *p); -void __ovld vstore_half8_rtn(float8 data, size_t offset, __private half *p); -void __ovld vstore_half16_rtn(float16 data, size_t offset, __private half *p); +void __ovld vstore_half2(float2 data, size_t, __global half *); +void __ovld vstore_half3(float3 data, size_t, __global half *); +void __ovld vstore_half4(float4 data, size_t, __global half *); +void __ovld vstore_half8(float8 data, size_t, __global half *); +void __ovld vstore_half16(float16 data, size_t, __global half *); +void __ovld vstore_half2_rte(float2 data, size_t, __global half *); +void __ovld vstore_half3_rte(float3 data, size_t, __global half *); +void __ovld vstore_half4_rte(float4 data, size_t, __global half *); +void __ovld vstore_half8_rte(float8 data, size_t, __global half *); +void __ovld vstore_half16_rte(float16 data, size_t, __global half *); +void __ovld vstore_half2_rtz(float2 data, size_t, __global half *); +void __ovld vstore_half3_rtz(float3 data, size_t, __global half *); +void __ovld vstore_half4_rtz(float4 data, size_t, __global half *); +void __ovld vstore_half8_rtz(float8 data, size_t, __global half *); +void __ovld vstore_half16_rtz(float16 data, size_t, __global half *); +void __ovld vstore_half2_rtp(float2 data, size_t, __global half *); +void __ovld vstore_half3_rtp(float3 data, size_t, __global half *); +void __ovld vstore_half4_rtp(float4 data, size_t, __global half *); +void __ovld vstore_half8_rtp(float8 data, size_t, __global half *); +void __ovld vstore_half16_rtp(float16 data, size_t, __global half *); +void __ovld vstore_half2_rtn(float2 data, size_t, __global half *); +void __ovld vstore_half3_rtn(float3 data, size_t, __global half *); +void __ovld vstore_half4_rtn(float4 data, size_t, __global half *); +void __ovld vstore_half8_rtn(float8 data, size_t, __global half *); +void __ovld vstore_half16_rtn(float16 data, size_t, __global half *); +void __ovld vstore_half2(float2 data, size_t, __local half *); +void __ovld vstore_half3(float3 data, size_t, __local half *); +void __ovld vstore_half4(float4 data, size_t, __local half *); +void __ovld vstore_half8(float8 data, size_t, __local half *); +void __ovld vstore_half16(float16 data, size_t, __local half *); +void __ovld vstore_half2_rte(float2 data, size_t, __local half *); +void __ovld vstore_half3_rte(float3 data, size_t, __local half *); +void __ovld vstore_half4_rte(float4 data, size_t, __local half *); +void __ovld vstore_half8_rte(float8 data, size_t, __local half *); +void __ovld vstore_half16_rte(float16 data, size_t, __local half *); +void __ovld vstore_half2_rtz(float2 data, size_t, __local half *); +void __ovld vstore_half3_rtz(float3 data, size_t, __local half *); +void __ovld vstore_half4_rtz(float4 data, size_t, __local half *); +void __ovld vstore_half8_rtz(float8 data, size_t, __local half *); +void __ovld vstore_half16_rtz(float16 data, size_t, __local half *); +void __ovld vstore_half2_rtp(float2 data, size_t, __local half *); +void __ovld vstore_half3_rtp(float3 data, size_t, __local half *); +void __ovld vstore_half4_rtp(float4 data, size_t, __local half *); +void __ovld vstore_half8_rtp(float8 data, size_t, __local half *); +void __ovld vstore_half16_rtp(float16 data, size_t, __local half *); +void __ovld vstore_half2_rtn(float2 data, size_t, __local half *); +void __ovld vstore_half3_rtn(float3 data, size_t, __local half *); +void __ovld vstore_half4_rtn(float4 data, size_t, __local half *); +void __ovld vstore_half8_rtn(float8 data, size_t, __local half *); +void __ovld vstore_half16_rtn(float16 data, size_t, __local half *); +void __ovld vstore_half2(float2 data, size_t, __private half *); +void __ovld vstore_half3(float3 data, size_t, __private half *); +void __ovld vstore_half4(float4 data, size_t, __private half *); +void __ovld vstore_half8(float8 data, size_t, __private half *); +void __ovld vstore_half16(float16 data, size_t, __private half *); +void __ovld vstore_half2_rte(float2 data, size_t, __private half *); +void __ovld vstore_half3_rte(float3 data, size_t, __private half *); +void __ovld vstore_half4_rte(float4 data, size_t, __private half *); +void __ovld vstore_half8_rte(float8 data, size_t, __private half *); +void __ovld vstore_half16_rte(float16 data, size_t, __private half *); +void __ovld vstore_half2_rtz(float2 data, size_t, __private half *); +void __ovld vstore_half3_rtz(float3 data, size_t, __private half *); +void __ovld vstore_half4_rtz(float4 data, size_t, __private half *); +void __ovld vstore_half8_rtz(float8 data, size_t, __private half *); +void __ovld vstore_half16_rtz(float16 data, size_t, __private half *); +void __ovld vstore_half2_rtp(float2 data, size_t, __private half *); +void __ovld vstore_half3_rtp(float3 data, size_t, __private half *); +void __ovld vstore_half4_rtp(float4 data, size_t, __private half *); +void __ovld vstore_half8_rtp(float8 data, size_t, __private half *); +void __ovld vstore_half16_rtp(float16 data, size_t, __private half *); +void __ovld vstore_half2_rtn(float2 data, size_t, __private half *); +void __ovld vstore_half3_rtn(float3 data, size_t, __private half *); +void __ovld vstore_half4_rtn(float4 data, size_t, __private half *); +void __ovld vstore_half8_rtn(float8 data, size_t, __private half *); +void __ovld vstore_half16_rtn(float16 data, size_t, __private half *); #ifdef cl_khr_fp64 -void __ovld vstore_half2(double2 data, size_t offset, __global half *p); -void __ovld vstore_half3(double3 data, size_t offset, __global half *p); -void __ovld vstore_half4(double4 data, size_t offset, __global half *p); -void __ovld vstore_half8(double8 data, size_t offset, __global half *p); -void __ovld vstore_half16(double16 data, size_t offset, __global half *p); -void __ovld vstore_half2_rte(double2 data, size_t offset, __global half *p); -void __ovld vstore_half3_rte(double3 data, size_t offset, __global half *p); -void __ovld vstore_half4_rte(double4 data, size_t offset, __global half *p); -void __ovld vstore_half8_rte(double8 data, size_t offset, __global half *p); -void __ovld vstore_half16_rte(double16 data, size_t offset, __global half *p); -void __ovld vstore_half2_rtz(double2 data, size_t offset, __global half *p); -void __ovld vstore_half3_rtz(double3 data, size_t offset, __global half *p); -void __ovld vstore_half4_rtz(double4 data, size_t offset, __global half *p); -void __ovld vstore_half8_rtz(double8 data, size_t offset, __global half *p); -void __ovld vstore_half16_rtz(double16 data, size_t offset, __global half *p); -void __ovld vstore_half2_rtp(double2 data, size_t offset, __global half *p); -void __ovld vstore_half3_rtp(double3 data, size_t offset, __global half *p); -void __ovld vstore_half4_rtp(double4 data, size_t offset, __global half *p); -void __ovld vstore_half8_rtp(double8 data, size_t offset, __global half *p); -void __ovld vstore_half16_rtp(double16 data, size_t offset, __global half *p); -void __ovld vstore_half2_rtn(double2 data, size_t offset, __global half *p); -void __ovld vstore_half3_rtn(double3 data, size_t offset, __global half *p); -void __ovld vstore_half4_rtn(double4 data, size_t offset, __global half *p); -void __ovld vstore_half8_rtn(double8 data, size_t offset, __global half *p); -void __ovld vstore_half16_rtn(double16 data, size_t offset, __global half *p); -void __ovld vstore_half2(double2 data, size_t offset, __local half *p); -void __ovld vstore_half3(double3 data, size_t offset, __local half *p); -void __ovld vstore_half4(double4 data, size_t offset, __local half *p); -void __ovld vstore_half8(double8 data, size_t offset, __local half *p); -void __ovld vstore_half16(double16 data, size_t offset, __local half *p); -void __ovld vstore_half2_rte(double2 data, size_t offset, __local half *p); -void __ovld vstore_half3_rte(double3 data, size_t offset, __local half *p); -void __ovld vstore_half4_rte(double4 data, size_t offset, __local half *p); -void __ovld vstore_half8_rte(double8 data, size_t offset, __local half *p); -void __ovld vstore_half16_rte(double16 data, size_t offset, __local half *p); -void __ovld vstore_half2_rtz(double2 data, size_t offset, __local half *p); -void __ovld vstore_half3_rtz(double3 data, size_t offset, __local half *p); -void __ovld vstore_half4_rtz(double4 data, size_t offset, __local half *p); -void __ovld vstore_half8_rtz(double8 data, size_t offset, __local half *p); -void __ovld vstore_half16_rtz(double16 data, size_t offset, __local half *p); -void __ovld vstore_half2_rtp(double2 data, size_t offset, __local half *p); -void __ovld vstore_half3_rtp(double3 data, size_t offset, __local half *p); -void __ovld vstore_half4_rtp(double4 data, size_t offset, __local half *p); -void __ovld vstore_half8_rtp(double8 data, size_t offset, __local half *p); -void __ovld vstore_half16_rtp(double16 data, size_t offset, __local half *p); -void __ovld vstore_half2_rtn(double2 data, size_t offset, __local half *p); -void __ovld vstore_half3_rtn(double3 data, size_t offset, __local half *p); -void __ovld vstore_half4_rtn(double4 data, size_t offset, __local half *p); -void __ovld vstore_half8_rtn(double8 data, size_t offset, __local half *p); -void __ovld vstore_half16_rtn(double16 data, size_t offset, __local half *p); -void __ovld vstore_half2(double2 data, size_t offset, __private half *p); -void __ovld vstore_half3(double3 data, size_t offset, __private half *p); -void __ovld vstore_half4(double4 data, size_t offset, __private half *p); -void __ovld vstore_half8(double8 data, size_t offset, __private half *p); -void __ovld vstore_half16(double16 data, size_t offset, __private half *p); -void __ovld vstore_half2_rte(double2 data, size_t offset, __private half *p); -void __ovld vstore_half3_rte(double3 data, size_t offset, __private half *p); -void __ovld vstore_half4_rte(double4 data, size_t offset, __private half *p); -void __ovld vstore_half8_rte(double8 data, size_t offset, __private half *p); -void __ovld vstore_half16_rte(double16 data, size_t offset, __private half *p); -void __ovld vstore_half2_rtz(double2 data, size_t offset, __private half *p); -void __ovld vstore_half3_rtz(double3 data, size_t offset, __private half *p); -void __ovld vstore_half4_rtz(double4 data, size_t offset, __private half *p); -void __ovld vstore_half8_rtz(double8 data, size_t offset, __private half *p); -void __ovld vstore_half16_rtz(double16 data, size_t offset, __private half *p); -void __ovld vstore_half2_rtp(double2 data, size_t offset, __private half *p); -void __ovld vstore_half3_rtp(double3 data, size_t offset, __private half *p); -void __ovld vstore_half4_rtp(double4 data, size_t offset, __private half *p); -void __ovld vstore_half8_rtp(double8 data, size_t offset, __private half *p); -void __ovld vstore_half16_rtp(double16 data, size_t offset, __private half *p); -void __ovld vstore_half2_rtn(double2 data, size_t offset, __private half *p); -void __ovld vstore_half3_rtn(double3 data, size_t offset, __private half *p); -void __ovld vstore_half4_rtn(double4 data, size_t offset, __private half *p); -void __ovld vstore_half8_rtn(double8 data, size_t offset, __private half *p); -void __ovld vstore_half16_rtn(double16 data, size_t offset, __private half *p); +void __ovld vstore_half2(double2 data, size_t, __global half *); +void __ovld vstore_half3(double3 data, size_t, __global half *); +void __ovld vstore_half4(double4 data, size_t, __global half *); +void __ovld vstore_half8(double8 data, size_t, __global half *); +void __ovld vstore_half16(double16 data, size_t, __global half *); +void __ovld vstore_half2_rte(double2 data, size_t, __global half *); +void __ovld vstore_half3_rte(double3 data, size_t, __global half *); +void __ovld vstore_half4_rte(double4 data, size_t, __global half *); +void __ovld vstore_half8_rte(double8 data, size_t, __global half *); +void __ovld vstore_half16_rte(double16 data, size_t, __global half *); +void __ovld vstore_half2_rtz(double2 data, size_t, __global half *); +void __ovld vstore_half3_rtz(double3 data, size_t, __global half *); +void __ovld vstore_half4_rtz(double4 data, size_t, __global half *); +void __ovld vstore_half8_rtz(double8 data, size_t, __global half *); +void __ovld vstore_half16_rtz(double16 data, size_t, __global half *); +void __ovld vstore_half2_rtp(double2 data, size_t, __global half *); +void __ovld vstore_half3_rtp(double3 data, size_t, __global half *); +void __ovld vstore_half4_rtp(double4 data, size_t, __global half *); +void __ovld vstore_half8_rtp(double8 data, size_t, __global half *); +void __ovld vstore_half16_rtp(double16 data, size_t, __global half *); +void __ovld vstore_half2_rtn(double2 data, size_t, __global half *); +void __ovld vstore_half3_rtn(double3 data, size_t, __global half *); +void __ovld vstore_half4_rtn(double4 data, size_t, __global half *); +void __ovld vstore_half8_rtn(double8 data, size_t, __global half *); +void __ovld vstore_half16_rtn(double16 data, size_t, __global half *); +void __ovld vstore_half2(double2 data, size_t, __local half *); +void __ovld vstore_half3(double3 data, size_t, __local half *); +void __ovld vstore_half4(double4 data, size_t, __local half *); +void __ovld vstore_half8(double8 data, size_t, __local half *); +void __ovld vstore_half16(double16 data, size_t, __local half *); +void __ovld vstore_half2_rte(double2 data, size_t, __local half *); +void __ovld vstore_half3_rte(double3 data, size_t, __local half *); +void __ovld vstore_half4_rte(double4 data, size_t, __local half *); +void __ovld vstore_half8_rte(double8 data, size_t, __local half *); +void __ovld vstore_half16_rte(double16 data, size_t, __local half *); +void __ovld vstore_half2_rtz(double2 data, size_t, __local half *); +void __ovld vstore_half3_rtz(double3 data, size_t, __local half *); +void __ovld vstore_half4_rtz(double4 data, size_t, __local half *); +void __ovld vstore_half8_rtz(double8 data, size_t, __local half *); +void __ovld vstore_half16_rtz(double16 data, size_t, __local half *); +void __ovld vstore_half2_rtp(double2 data, size_t, __local half *); +void __ovld vstore_half3_rtp(double3 data, size_t, __local half *); +void __ovld vstore_half4_rtp(double4 data, size_t, __local half *); +void __ovld vstore_half8_rtp(double8 data, size_t, __local half *); +void __ovld vstore_half16_rtp(double16 data, size_t, __local half *); +void __ovld vstore_half2_rtn(double2 data, size_t, __local half *); +void __ovld vstore_half3_rtn(double3 data, size_t, __local half *); +void __ovld vstore_half4_rtn(double4 data, size_t, __local half *); +void __ovld vstore_half8_rtn(double8 data, size_t, __local half *); +void __ovld vstore_half16_rtn(double16 data, size_t, __local half *); +void __ovld vstore_half2(double2 data, size_t, __private half *); +void __ovld vstore_half3(double3 data, size_t, __private half *); +void __ovld vstore_half4(double4 data, size_t, __private half *); +void __ovld vstore_half8(double8 data, size_t, __private half *); +void __ovld vstore_half16(double16 data, size_t, __private half *); +void __ovld vstore_half2_rte(double2 data, size_t, __private half *); +void __ovld vstore_half3_rte(double3 data, size_t, __private half *); +void __ovld vstore_half4_rte(double4 data, size_t, __private half *); +void __ovld vstore_half8_rte(double8 data, size_t, __private half *); +void __ovld vstore_half16_rte(double16 data, size_t, __private half *); +void __ovld vstore_half2_rtz(double2 data, size_t, __private half *); +void __ovld vstore_half3_rtz(double3 data, size_t, __private half *); +void __ovld vstore_half4_rtz(double4 data, size_t, __private half *); +void __ovld vstore_half8_rtz(double8 data, size_t, __private half *); +void __ovld vstore_half16_rtz(double16 data, size_t, __private half *); +void __ovld vstore_half2_rtp(double2 data, size_t, __private half *); +void __ovld vstore_half3_rtp(double3 data, size_t, __private half *); +void __ovld vstore_half4_rtp(double4 data, size_t, __private half *); +void __ovld vstore_half8_rtp(double8 data, size_t, __private half *); +void __ovld vstore_half16_rtp(double16 data, size_t, __private half *); +void __ovld vstore_half2_rtn(double2 data, size_t, __private half *); +void __ovld vstore_half3_rtn(double3 data, size_t, __private half *); +void __ovld vstore_half4_rtn(double4 data, size_t, __private half *); +void __ovld vstore_half8_rtn(double8 data, size_t, __private half *); +void __ovld vstore_half16_rtn(double16 data, size_t, __private half *); #endif //cl_khr_fp64 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_generic_address_space) /** * For n = 1, 2, 4, 8 and 16 read sizeof (halfn) @@ -12774,39 +12761,39 @@ void __ovld vstore_half16_rtn(double16 data, size_t offset, __private half *p); * The address computed as (p + (offset * 4)) * must be aligned to sizeof (half) * 4 bytes. */ -float __ovld vloada_half(size_t offset, const __constant half *p); -float2 __ovld vloada_half2(size_t offset, const __constant half *p); -float3 __ovld vloada_half3(size_t offset, const __constant half *p); -float4 __ovld vloada_half4(size_t offset, const __constant half *p); -float8 __ovld vloada_half8(size_t offset, const __constant half *p); -float16 __ovld vloada_half16(size_t offset, const __constant half *p); -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -float __ovld vloada_half(size_t offset, const half *p); -float2 __ovld vloada_half2(size_t offset, const half *p); -float3 __ovld vloada_half3(size_t offset, const half *p); -float4 __ovld vloada_half4(size_t offset, const half *p); -float8 __ovld vloada_half8(size_t offset, const half *p); -float16 __ovld vloada_half16(size_t offset, const half *p); +float __ovld __purefn vloada_half(size_t, const __constant half *); +float2 __ovld __purefn vloada_half2(size_t, const __constant half *); +float3 __ovld __purefn vloada_half3(size_t, const __constant half *); +float4 __ovld __purefn vloada_half4(size_t, const __constant half *); +float8 __ovld __purefn vloada_half8(size_t, const __constant half *); +float16 __ovld __purefn vloada_half16(size_t, const __constant half *); +#if defined(__opencl_c_generic_address_space) +float __ovld __purefn vloada_half(size_t, const half *); +float2 __ovld __purefn vloada_half2(size_t, const half *); +float3 __ovld __purefn vloada_half3(size_t, const half *); +float4 __ovld __purefn vloada_half4(size_t, const half *); +float8 __ovld __purefn vloada_half8(size_t, const half *); +float16 __ovld __purefn vloada_half16(size_t, const half *); #else -float __ovld vloada_half(size_t offset, const __global half *p); -float2 __ovld vloada_half2(size_t offset, const __global half *p); -float3 __ovld vloada_half3(size_t offset, const __global half *p); -float4 __ovld vloada_half4(size_t offset, const __global half *p); -float8 __ovld vloada_half8(size_t offset, const __global half *p); -float16 __ovld vloada_half16(size_t offset, const __global half *p); -float __ovld vloada_half(size_t offset, const __local half *p); -float2 __ovld vloada_half2(size_t offset, const __local half *p); -float3 __ovld vloada_half3(size_t offset, const __local half *p); -float4 __ovld vloada_half4(size_t offset, const __local half *p); -float8 __ovld vloada_half8(size_t offset, const __local half *p); -float16 __ovld vloada_half16(size_t offset, const __local half *p); -float __ovld vloada_half(size_t offset, const __private half *p); -float2 __ovld vloada_half2(size_t offset, const __private half *p); -float3 __ovld vloada_half3(size_t offset, const __private half *p); -float4 __ovld vloada_half4(size_t offset, const __private half *p); -float8 __ovld vloada_half8(size_t offset, const __private half *p); -float16 __ovld vloada_half16(size_t offset, const __private half *p); -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +float __ovld __purefn vloada_half(size_t, const __global half *); +float2 __ovld __purefn vloada_half2(size_t, const __global half *); +float3 __ovld __purefn vloada_half3(size_t, const __global half *); +float4 __ovld __purefn vloada_half4(size_t, const __global half *); +float8 __ovld __purefn vloada_half8(size_t, const __global half *); +float16 __ovld __purefn vloada_half16(size_t, const __global half *); +float __ovld __purefn vloada_half(size_t, const __local half *); +float2 __ovld __purefn vloada_half2(size_t, const __local half *); +float3 __ovld __purefn vloada_half3(size_t, const __local half *); +float4 __ovld __purefn vloada_half4(size_t, const __local half *); +float8 __ovld __purefn vloada_half8(size_t, const __local half *); +float16 __ovld __purefn vloada_half16(size_t, const __local half *); +float __ovld __purefn vloada_half(size_t, const __private half *); +float2 __ovld __purefn vloada_half2(size_t, const __private half *); +float3 __ovld __purefn vloada_half3(size_t, const __private half *); +float4 __ovld __purefn vloada_half4(size_t, const __private half *); +float8 __ovld __purefn vloada_half8(size_t, const __private half *); +float16 __ovld __purefn vloada_half16(size_t, const __private half *); +#endif //defined(__opencl_c_generic_address_space) /** * The floatn value given by data is converted to @@ -12824,292 +12811,292 @@ float16 __ovld vloada_half16(size_t offset, const __private half *p); * mode. The default current rounding mode is * round to nearest even. */ -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -void __ovld vstorea_half(float data, size_t offset, half *p); -void __ovld vstorea_half2(float2 data, size_t offset, half *p); -void __ovld vstorea_half3(float3 data, size_t offset, half *p); -void __ovld vstorea_half4(float4 data, size_t offset, half *p); -void __ovld vstorea_half8(float8 data, size_t offset, half *p); -void __ovld vstorea_half16(float16 data, size_t offset, half *p); - -void __ovld vstorea_half_rte(float data, size_t offset, half *p); -void __ovld vstorea_half2_rte(float2 data, size_t offset, half *p); -void __ovld vstorea_half3_rte(float3 data, size_t offset, half *p); -void __ovld vstorea_half4_rte(float4 data, size_t offset, half *p); -void __ovld vstorea_half8_rte(float8 data, size_t offset, half *p); -void __ovld vstorea_half16_rte(float16 data, size_t offset, half *p); - -void __ovld vstorea_half_rtz(float data, size_t offset, half *p); -void __ovld vstorea_half2_rtz(float2 data, size_t offset, half *p); -void __ovld vstorea_half3_rtz(float3 data, size_t offset, half *p); -void __ovld vstorea_half4_rtz(float4 data, size_t offset, half *p); -void __ovld vstorea_half8_rtz(float8 data, size_t offset, half *p); -void __ovld vstorea_half16_rtz(float16 data, size_t offset, half *p); - -void __ovld vstorea_half_rtp(float data, size_t offset, half *p); -void __ovld vstorea_half2_rtp(float2 data, size_t offset, half *p); -void __ovld vstorea_half3_rtp(float3 data, size_t offset, half *p); -void __ovld vstorea_half4_rtp(float4 data, size_t offset, half *p); -void __ovld vstorea_half8_rtp(float8 data, size_t offset, half *p); -void __ovld vstorea_half16_rtp(float16 data, size_t offset, half *p); - -void __ovld vstorea_half_rtn(float data, size_t offset, half *p); -void __ovld vstorea_half2_rtn(float2 data, size_t offset, half *p); -void __ovld vstorea_half3_rtn(float3 data, size_t offset, half *p); -void __ovld vstorea_half4_rtn(float4 data, size_t offset, half *p); -void __ovld vstorea_half8_rtn(float8 data, size_t offset, half *p); -void __ovld vstorea_half16_rtn(float16 data, size_t offset, half *p); +#if defined(__opencl_c_generic_address_space) +void __ovld vstorea_half(float data, size_t, half *); +void __ovld vstorea_half2(float2 data, size_t, half *); +void __ovld vstorea_half3(float3 data, size_t, half *); +void __ovld vstorea_half4(float4 data, size_t, half *); +void __ovld vstorea_half8(float8 data, size_t, half *); +void __ovld vstorea_half16(float16 data, size_t, half *); + +void __ovld vstorea_half_rte(float data, size_t, half *); +void __ovld vstorea_half2_rte(float2 data, size_t, half *); +void __ovld vstorea_half3_rte(float3 data, size_t, half *); +void __ovld vstorea_half4_rte(float4 data, size_t, half *); +void __ovld vstorea_half8_rte(float8 data, size_t, half *); +void __ovld vstorea_half16_rte(float16 data, size_t, half *); + +void __ovld vstorea_half_rtz(float data, size_t, half *); +void __ovld vstorea_half2_rtz(float2 data, size_t, half *); +void __ovld vstorea_half3_rtz(float3 data, size_t, half *); +void __ovld vstorea_half4_rtz(float4 data, size_t, half *); +void __ovld vstorea_half8_rtz(float8 data, size_t, half *); +void __ovld vstorea_half16_rtz(float16 data, size_t, half *); + +void __ovld vstorea_half_rtp(float data, size_t, half *); +void __ovld vstorea_half2_rtp(float2 data, size_t, half *); +void __ovld vstorea_half3_rtp(float3 data, size_t, half *); +void __ovld vstorea_half4_rtp(float4 data, size_t, half *); +void __ovld vstorea_half8_rtp(float8 data, size_t, half *); +void __ovld vstorea_half16_rtp(float16 data, size_t, half *); + +void __ovld vstorea_half_rtn(float data, size_t, half *); +void __ovld vstorea_half2_rtn(float2 data, size_t, half *); +void __ovld vstorea_half3_rtn(float3 data, size_t, half *); +void __ovld vstorea_half4_rtn(float4 data, size_t, half *); +void __ovld vstorea_half8_rtn(float8 data, size_t, half *); +void __ovld vstorea_half16_rtn(float16 data, size_t, half *); #ifdef cl_khr_fp64 -void __ovld vstorea_half(double data, size_t offset, half *p); -void __ovld vstorea_half2(double2 data, size_t offset, half *p); -void __ovld vstorea_half3(double3 data, size_t offset, half *p); -void __ovld vstorea_half4(double4 data, size_t offset, half *p); -void __ovld vstorea_half8(double8 data, size_t offset, half *p); -void __ovld vstorea_half16(double16 data, size_t offset, half *p); - -void __ovld vstorea_half_rte(double data, size_t offset, half *p); -void __ovld vstorea_half2_rte(double2 data, size_t offset, half *p); -void __ovld vstorea_half3_rte(double3 data, size_t offset, half *p); -void __ovld vstorea_half4_rte(double4 data, size_t offset, half *p); -void __ovld vstorea_half8_rte(double8 data, size_t offset, half *p); -void __ovld vstorea_half16_rte(double16 data, size_t offset, half *p); - -void __ovld vstorea_half_rtz(double data, size_t offset, half *p); -void __ovld vstorea_half2_rtz(double2 data, size_t offset, half *p); -void __ovld vstorea_half3_rtz(double3 data, size_t offset, half *p); -void __ovld vstorea_half4_rtz(double4 data, size_t offset, half *p); -void __ovld vstorea_half8_rtz(double8 data, size_t offset, half *p); -void __ovld vstorea_half16_rtz(double16 data, size_t offset, half *p); - -void __ovld vstorea_half_rtp(double data, size_t offset, half *p); -void __ovld vstorea_half2_rtp(double2 data, size_t offset, half *p); -void __ovld vstorea_half3_rtp(double3 data, size_t offset, half *p); -void __ovld vstorea_half4_rtp(double4 data, size_t offset, half *p); -void __ovld vstorea_half8_rtp(double8 data, size_t offset, half *p); -void __ovld vstorea_half16_rtp(double16 data, size_t offset, half *p); - -void __ovld vstorea_half_rtn(double data, size_t offset, half *p); -void __ovld vstorea_half2_rtn(double2 data, size_t offset, half *p); -void __ovld vstorea_half3_rtn(double3 data, size_t offset, half *p); -void __ovld vstorea_half4_rtn(double4 data, size_t offset, half *p); -void __ovld vstorea_half8_rtn(double8 data, size_t offset, half *p); -void __ovld vstorea_half16_rtn(double16 data, size_t offset, half *p); +void __ovld vstorea_half(double data, size_t, half *); +void __ovld vstorea_half2(double2 data, size_t, half *); +void __ovld vstorea_half3(double3 data, size_t, half *); +void __ovld vstorea_half4(double4 data, size_t, half *); +void __ovld vstorea_half8(double8 data, size_t, half *); +void __ovld vstorea_half16(double16 data, size_t, half *); + +void __ovld vstorea_half_rte(double data, size_t, half *); +void __ovld vstorea_half2_rte(double2 data, size_t, half *); +void __ovld vstorea_half3_rte(double3 data, size_t, half *); +void __ovld vstorea_half4_rte(double4 data, size_t, half *); +void __ovld vstorea_half8_rte(double8 data, size_t, half *); +void __ovld vstorea_half16_rte(double16 data, size_t, half *); + +void __ovld vstorea_half_rtz(double data, size_t, half *); +void __ovld vstorea_half2_rtz(double2 data, size_t, half *); +void __ovld vstorea_half3_rtz(double3 data, size_t, half *); +void __ovld vstorea_half4_rtz(double4 data, size_t, half *); +void __ovld vstorea_half8_rtz(double8 data, size_t, half *); +void __ovld vstorea_half16_rtz(double16 data, size_t, half *); + +void __ovld vstorea_half_rtp(double data, size_t, half *); +void __ovld vstorea_half2_rtp(double2 data, size_t, half *); +void __ovld vstorea_half3_rtp(double3 data, size_t, half *); +void __ovld vstorea_half4_rtp(double4 data, size_t, half *); +void __ovld vstorea_half8_rtp(double8 data, size_t, half *); +void __ovld vstorea_half16_rtp(double16 data, size_t, half *); + +void __ovld vstorea_half_rtn(double data, size_t, half *); +void __ovld vstorea_half2_rtn(double2 data, size_t, half *); +void __ovld vstorea_half3_rtn(double3 data, size_t, half *); +void __ovld vstorea_half4_rtn(double4 data, size_t, half *); +void __ovld vstorea_half8_rtn(double8 data, size_t, half *); +void __ovld vstorea_half16_rtn(double16 data, size_t, half *); #endif //cl_khr_fp64 #else -void __ovld vstorea_half(float data, size_t offset, __global half *p); -void __ovld vstorea_half2(float2 data, size_t offset, __global half *p); -void __ovld vstorea_half3(float3 data, size_t offset, __global half *p); -void __ovld vstorea_half4(float4 data, size_t offset, __global half *p); -void __ovld vstorea_half8(float8 data, size_t offset, __global half *p); -void __ovld vstorea_half16(float16 data, size_t offset, __global half *p); - -void __ovld vstorea_half_rte(float data, size_t offset, __global half *p); -void __ovld vstorea_half2_rte(float2 data, size_t offset, __global half *p); -void __ovld vstorea_half3_rte(float3 data, size_t offset, __global half *p); -void __ovld vstorea_half4_rte(float4 data, size_t offset, __global half *p); -void __ovld vstorea_half8_rte(float8 data, size_t offset, __global half *p); -void __ovld vstorea_half16_rte(float16 data, size_t offset, __global half *p); - -void __ovld vstorea_half_rtz(float data, size_t offset, __global half *p); -void __ovld vstorea_half2_rtz(float2 data, size_t offset, __global half *p); -void __ovld vstorea_half3_rtz(float3 data, size_t offset, __global half *p); -void __ovld vstorea_half4_rtz(float4 data, size_t offset, __global half *p); -void __ovld vstorea_half8_rtz(float8 data, size_t offset, __global half *p); -void __ovld vstorea_half16_rtz(float16 data, size_t offset, __global half *p); - -void __ovld vstorea_half_rtp(float data, size_t offset, __global half *p); -void __ovld vstorea_half2_rtp(float2 data, size_t offset, __global half *p); -void __ovld vstorea_half3_rtp(float3 data, size_t offset, __global half *p); -void __ovld vstorea_half4_rtp(float4 data, size_t offset, __global half *p); -void __ovld vstorea_half8_rtp(float8 data, size_t offset, __global half *p); -void __ovld vstorea_half16_rtp(float16 data, size_t offset, __global half *p); - -void __ovld vstorea_half_rtn(float data, size_t offset, __global half *p); -void __ovld vstorea_half2_rtn(float2 data, size_t offset, __global half *p); -void __ovld vstorea_half3_rtn(float3 data, size_t offset, __global half *p); -void __ovld vstorea_half4_rtn(float4 data, size_t offset, __global half *p); -void __ovld vstorea_half8_rtn(float8 data, size_t offset, __global half *p); -void __ovld vstorea_half16_rtn(float16 data, size_t offset, __global half *p); - -void __ovld vstorea_half(float data, size_t offset, __local half *p); -void __ovld vstorea_half2(float2 data, size_t offset, __local half *p); -void __ovld vstorea_half3(float3 data, size_t offset, __local half *p); -void __ovld vstorea_half4(float4 data, size_t offset, __local half *p); -void __ovld vstorea_half8(float8 data, size_t offset, __local half *p); -void __ovld vstorea_half16(float16 data, size_t offset, __local half *p); - -void __ovld vstorea_half_rte(float data, size_t offset, __local half *p); -void __ovld vstorea_half2_rte(float2 data, size_t offset, __local half *p); -void __ovld vstorea_half3_rte(float3 data, size_t offset, __local half *p); -void __ovld vstorea_half4_rte(float4 data, size_t offset, __local half *p); -void __ovld vstorea_half8_rte(float8 data, size_t offset, __local half *p); -void __ovld vstorea_half16_rte(float16 data, size_t offset, __local half *p); - -void __ovld vstorea_half_rtz(float data, size_t offset, __local half *p); -void __ovld vstorea_half2_rtz(float2 data, size_t offset, __local half *p); -void __ovld vstorea_half3_rtz(float3 data, size_t offset, __local half *p); -void __ovld vstorea_half4_rtz(float4 data, size_t offset, __local half *p); -void __ovld vstorea_half8_rtz(float8 data, size_t offset, __local half *p); -void __ovld vstorea_half16_rtz(float16 data, size_t offset, __local half *p); - -void __ovld vstorea_half_rtp(float data, size_t offset, __local half *p); -void __ovld vstorea_half2_rtp(float2 data, size_t offset, __local half *p); -void __ovld vstorea_half3_rtp(float3 data, size_t offset, __local half *p); -void __ovld vstorea_half4_rtp(float4 data, size_t offset, __local half *p); -void __ovld vstorea_half8_rtp(float8 data, size_t offset, __local half *p); -void __ovld vstorea_half16_rtp(float16 data, size_t offset, __local half *p); - -void __ovld vstorea_half_rtn(float data, size_t offset, __local half *p); -void __ovld vstorea_half2_rtn(float2 data, size_t offset, __local half *p); -void __ovld vstorea_half3_rtn(float3 data, size_t offset, __local half *p); -void __ovld vstorea_half4_rtn(float4 data, size_t offset, __local half *p); -void __ovld vstorea_half8_rtn(float8 data, size_t offset, __local half *p); -void __ovld vstorea_half16_rtn(float16 data, size_t offset, __local half *p); - -void __ovld vstorea_half(float data, size_t offset, __private half *p); -void __ovld vstorea_half2(float2 data, size_t offset, __private half *p); -void __ovld vstorea_half3(float3 data, size_t offset, __private half *p); -void __ovld vstorea_half4(float4 data, size_t offset, __private half *p); -void __ovld vstorea_half8(float8 data, size_t offset, __private half *p); -void __ovld vstorea_half16(float16 data, size_t offset, __private half *p); - -void __ovld vstorea_half_rte(float data, size_t offset, __private half *p); -void __ovld vstorea_half2_rte(float2 data, size_t offset, __private half *p); -void __ovld vstorea_half3_rte(float3 data, size_t offset, __private half *p); -void __ovld vstorea_half4_rte(float4 data, size_t offset, __private half *p); -void __ovld vstorea_half8_rte(float8 data, size_t offset, __private half *p); -void __ovld vstorea_half16_rte(float16 data, size_t offset, __private half *p); - -void __ovld vstorea_half_rtz(float data, size_t offset, __private half *p); -void __ovld vstorea_half2_rtz(float2 data, size_t offset, __private half *p); -void __ovld vstorea_half3_rtz(float3 data, size_t offset, __private half *p); -void __ovld vstorea_half4_rtz(float4 data, size_t offset, __private half *p); -void __ovld vstorea_half8_rtz(float8 data, size_t offset, __private half *p); -void __ovld vstorea_half16_rtz(float16 data, size_t offset, __private half *p); - -void __ovld vstorea_half_rtp(float data, size_t offset, __private half *p); -void __ovld vstorea_half2_rtp(float2 data, size_t offset, __private half *p); -void __ovld vstorea_half3_rtp(float3 data, size_t offset, __private half *p); -void __ovld vstorea_half4_rtp(float4 data, size_t offset, __private half *p); -void __ovld vstorea_half8_rtp(float8 data, size_t offset, __private half *p); -void __ovld vstorea_half16_rtp(float16 data, size_t offset, __private half *p); - -void __ovld vstorea_half_rtn(float data, size_t offset, __private half *p); -void __ovld vstorea_half2_rtn(float2 data, size_t offset, __private half *p); -void __ovld vstorea_half3_rtn(float3 data, size_t offset, __private half *p); -void __ovld vstorea_half4_rtn(float4 data, size_t offset, __private half *p); -void __ovld vstorea_half8_rtn(float8 data, size_t offset, __private half *p); -void __ovld vstorea_half16_rtn(float16 data, size_t offset, __private half *p); +void __ovld vstorea_half(float data, size_t, __global half *); +void __ovld vstorea_half2(float2 data, size_t, __global half *); +void __ovld vstorea_half3(float3 data, size_t, __global half *); +void __ovld vstorea_half4(float4 data, size_t, __global half *); +void __ovld vstorea_half8(float8 data, size_t, __global half *); +void __ovld vstorea_half16(float16 data, size_t, __global half *); + +void __ovld vstorea_half_rte(float data, size_t, __global half *); +void __ovld vstorea_half2_rte(float2 data, size_t, __global half *); +void __ovld vstorea_half3_rte(float3 data, size_t, __global half *); +void __ovld vstorea_half4_rte(float4 data, size_t, __global half *); +void __ovld vstorea_half8_rte(float8 data, size_t, __global half *); +void __ovld vstorea_half16_rte(float16 data, size_t, __global half *); + +void __ovld vstorea_half_rtz(float data, size_t, __global half *); +void __ovld vstorea_half2_rtz(float2 data, size_t, __global half *); +void __ovld vstorea_half3_rtz(float3 data, size_t, __global half *); +void __ovld vstorea_half4_rtz(float4 data, size_t, __global half *); +void __ovld vstorea_half8_rtz(float8 data, size_t, __global half *); +void __ovld vstorea_half16_rtz(float16 data, size_t, __global half *); + +void __ovld vstorea_half_rtp(float data, size_t, __global half *); +void __ovld vstorea_half2_rtp(float2 data, size_t, __global half *); +void __ovld vstorea_half3_rtp(float3 data, size_t, __global half *); +void __ovld vstorea_half4_rtp(float4 data, size_t, __global half *); +void __ovld vstorea_half8_rtp(float8 data, size_t, __global half *); +void __ovld vstorea_half16_rtp(float16 data, size_t, __global half *); + +void __ovld vstorea_half_rtn(float data, size_t, __global half *); +void __ovld vstorea_half2_rtn(float2 data, size_t, __global half *); +void __ovld vstorea_half3_rtn(float3 data, size_t, __global half *); +void __ovld vstorea_half4_rtn(float4 data, size_t, __global half *); +void __ovld vstorea_half8_rtn(float8 data, size_t, __global half *); +void __ovld vstorea_half16_rtn(float16 data, size_t, __global half *); + +void __ovld vstorea_half(float data, size_t, __local half *); +void __ovld vstorea_half2(float2 data, size_t, __local half *); +void __ovld vstorea_half3(float3 data, size_t, __local half *); +void __ovld vstorea_half4(float4 data, size_t, __local half *); +void __ovld vstorea_half8(float8 data, size_t, __local half *); +void __ovld vstorea_half16(float16 data, size_t, __local half *); + +void __ovld vstorea_half_rte(float data, size_t, __local half *); +void __ovld vstorea_half2_rte(float2 data, size_t, __local half *); +void __ovld vstorea_half3_rte(float3 data, size_t, __local half *); +void __ovld vstorea_half4_rte(float4 data, size_t, __local half *); +void __ovld vstorea_half8_rte(float8 data, size_t, __local half *); +void __ovld vstorea_half16_rte(float16 data, size_t, __local half *); + +void __ovld vstorea_half_rtz(float data, size_t, __local half *); +void __ovld vstorea_half2_rtz(float2 data, size_t, __local half *); +void __ovld vstorea_half3_rtz(float3 data, size_t, __local half *); +void __ovld vstorea_half4_rtz(float4 data, size_t, __local half *); +void __ovld vstorea_half8_rtz(float8 data, size_t, __local half *); +void __ovld vstorea_half16_rtz(float16 data, size_t, __local half *); + +void __ovld vstorea_half_rtp(float data, size_t, __local half *); +void __ovld vstorea_half2_rtp(float2 data, size_t, __local half *); +void __ovld vstorea_half3_rtp(float3 data, size_t, __local half *); +void __ovld vstorea_half4_rtp(float4 data, size_t, __local half *); +void __ovld vstorea_half8_rtp(float8 data, size_t, __local half *); +void __ovld vstorea_half16_rtp(float16 data, size_t, __local half *); + +void __ovld vstorea_half_rtn(float data, size_t, __local half *); +void __ovld vstorea_half2_rtn(float2 data, size_t, __local half *); +void __ovld vstorea_half3_rtn(float3 data, size_t, __local half *); +void __ovld vstorea_half4_rtn(float4 data, size_t, __local half *); +void __ovld vstorea_half8_rtn(float8 data, size_t, __local half *); +void __ovld vstorea_half16_rtn(float16 data, size_t, __local half *); + +void __ovld vstorea_half(float data, size_t, __private half *); +void __ovld vstorea_half2(float2 data, size_t, __private half *); +void __ovld vstorea_half3(float3 data, size_t, __private half *); +void __ovld vstorea_half4(float4 data, size_t, __private half *); +void __ovld vstorea_half8(float8 data, size_t, __private half *); +void __ovld vstorea_half16(float16 data, size_t, __private half *); + +void __ovld vstorea_half_rte(float data, size_t, __private half *); +void __ovld vstorea_half2_rte(float2 data, size_t, __private half *); +void __ovld vstorea_half3_rte(float3 data, size_t, __private half *); +void __ovld vstorea_half4_rte(float4 data, size_t, __private half *); +void __ovld vstorea_half8_rte(float8 data, size_t, __private half *); +void __ovld vstorea_half16_rte(float16 data, size_t, __private half *); + +void __ovld vstorea_half_rtz(float data, size_t, __private half *); +void __ovld vstorea_half2_rtz(float2 data, size_t, __private half *); +void __ovld vstorea_half3_rtz(float3 data, size_t, __private half *); +void __ovld vstorea_half4_rtz(float4 data, size_t, __private half *); +void __ovld vstorea_half8_rtz(float8 data, size_t, __private half *); +void __ovld vstorea_half16_rtz(float16 data, size_t, __private half *); + +void __ovld vstorea_half_rtp(float data, size_t, __private half *); +void __ovld vstorea_half2_rtp(float2 data, size_t, __private half *); +void __ovld vstorea_half3_rtp(float3 data, size_t, __private half *); +void __ovld vstorea_half4_rtp(float4 data, size_t, __private half *); +void __ovld vstorea_half8_rtp(float8 data, size_t, __private half *); +void __ovld vstorea_half16_rtp(float16 data, size_t, __private half *); + +void __ovld vstorea_half_rtn(float data, size_t, __private half *); +void __ovld vstorea_half2_rtn(float2 data, size_t, __private half *); +void __ovld vstorea_half3_rtn(float3 data, size_t, __private half *); +void __ovld vstorea_half4_rtn(float4 data, size_t, __private half *); +void __ovld vstorea_half8_rtn(float8 data, size_t, __private half *); +void __ovld vstorea_half16_rtn(float16 data, size_t, __private half *); #ifdef cl_khr_fp64 -void __ovld vstorea_half(double data, size_t offset, __global half *p); -void __ovld vstorea_half2(double2 data, size_t offset, __global half *p); -void __ovld vstorea_half3(double3 data, size_t offset, __global half *p); -void __ovld vstorea_half4(double4 data, size_t offset, __global half *p); -void __ovld vstorea_half8(double8 data, size_t offset, __global half *p); -void __ovld vstorea_half16(double16 data, size_t offset, __global half *p); - -void __ovld vstorea_half_rte(double data, size_t offset, __global half *p); -void __ovld vstorea_half2_rte(double2 data, size_t offset, __global half *p); -void __ovld vstorea_half3_rte(double3 data, size_t offset, __global half *p); -void __ovld vstorea_half4_rte(double4 data, size_t offset, __global half *p); -void __ovld vstorea_half8_rte(double8 data, size_t offset, __global half *p); -void __ovld vstorea_half16_rte(double16 data, size_t offset, __global half *p); - -void __ovld vstorea_half_rtz(double data, size_t offset, __global half *p); -void __ovld vstorea_half2_rtz(double2 data, size_t offset, __global half *p); -void __ovld vstorea_half3_rtz(double3 data, size_t offset, __global half *p); -void __ovld vstorea_half4_rtz(double4 data, size_t offset, __global half *p); -void __ovld vstorea_half8_rtz(double8 data, size_t offset, __global half *p); -void __ovld vstorea_half16_rtz(double16 data, size_t offset, __global half *p); - -void __ovld vstorea_half_rtp(double data, size_t offset, __global half *p); -void __ovld vstorea_half2_rtp(double2 data, size_t offset, __global half *p); -void __ovld vstorea_half3_rtp(double3 data, size_t offset, __global half *p); -void __ovld vstorea_half4_rtp(double4 data, size_t offset, __global half *p); -void __ovld vstorea_half8_rtp(double8 data, size_t offset, __global half *p); -void __ovld vstorea_half16_rtp(double16 data, size_t offset, __global half *p); - -void __ovld vstorea_half_rtn(double data, size_t offset, __global half *p); -void __ovld vstorea_half2_rtn(double2 data, size_t offset, __global half *p); -void __ovld vstorea_half3_rtn(double3 data, size_t offset, __global half *p); -void __ovld vstorea_half4_rtn(double4 data, size_t offset, __global half *p); -void __ovld vstorea_half8_rtn(double8 data, size_t offset, __global half *p); -void __ovld vstorea_half16_rtn(double16 data, size_t offset, __global half *p); - -void __ovld vstorea_half(double data, size_t offset, __local half *p); -void __ovld vstorea_half2(double2 data, size_t offset, __local half *p); -void __ovld vstorea_half3(double3 data, size_t offset, __local half *p); -void __ovld vstorea_half4(double4 data, size_t offset, __local half *p); -void __ovld vstorea_half8(double8 data, size_t offset, __local half *p); -void __ovld vstorea_half16(double16 data, size_t offset, __local half *p); - -void __ovld vstorea_half_rte(double data, size_t offset, __local half *p); -void __ovld vstorea_half2_rte(double2 data, size_t offset, __local half *p); -void __ovld vstorea_half3_rte(double3 data, size_t offset, __local half *p); -void __ovld vstorea_half4_rte(double4 data, size_t offset, __local half *p); -void __ovld vstorea_half8_rte(double8 data, size_t offset, __local half *p); -void __ovld vstorea_half16_rte(double16 data, size_t offset, __local half *p); - -void __ovld vstorea_half_rtz(double data, size_t offset, __local half *p); -void __ovld vstorea_half2_rtz(double2 data, size_t offset, __local half *p); -void __ovld vstorea_half3_rtz(double3 data, size_t offset, __local half *p); -void __ovld vstorea_half4_rtz(double4 data, size_t offset, __local half *p); -void __ovld vstorea_half8_rtz(double8 data, size_t offset, __local half *p); -void __ovld vstorea_half16_rtz(double16 data, size_t offset, __local half *p); - -void __ovld vstorea_half_rtp(double data, size_t offset, __local half *p); -void __ovld vstorea_half2_rtp(double2 data, size_t offset, __local half *p); -void __ovld vstorea_half3_rtp(double3 data, size_t offset, __local half *p); -void __ovld vstorea_half4_rtp(double4 data, size_t offset, __local half *p); -void __ovld vstorea_half8_rtp(double8 data, size_t offset, __local half *p); -void __ovld vstorea_half16_rtp(double16 data, size_t offset, __local half *p); - -void __ovld vstorea_half_rtn(double data, size_t offset, __local half *p); -void __ovld vstorea_half2_rtn(double2 data, size_t offset, __local half *p); -void __ovld vstorea_half3_rtn(double3 data, size_t offset, __local half *p); -void __ovld vstorea_half4_rtn(double4 data, size_t offset, __local half *p); -void __ovld vstorea_half8_rtn(double8 data, size_t offset, __local half *p); -void __ovld vstorea_half16_rtn(double16 data, size_t offset, __local half *p); - -void __ovld vstorea_half(double data, size_t offset, __private half *p); -void __ovld vstorea_half2(double2 data, size_t offset, __private half *p); -void __ovld vstorea_half3(double3 data, size_t offset, __private half *p); -void __ovld vstorea_half4(double4 data, size_t offset, __private half *p); -void __ovld vstorea_half8(double8 data, size_t offset, __private half *p); -void __ovld vstorea_half16(double16 data, size_t offset, __private half *p); - -void __ovld vstorea_half_rte(double data, size_t offset, __private half *p); -void __ovld vstorea_half2_rte(double2 data, size_t offset, __private half *p); -void __ovld vstorea_half3_rte(double3 data, size_t offset, __private half *p); -void __ovld vstorea_half4_rte(double4 data, size_t offset, __private half *p); -void __ovld vstorea_half8_rte(double8 data, size_t offset, __private half *p); -void __ovld vstorea_half16_rte(double16 data, size_t offset, __private half *p); - -void __ovld vstorea_half_rtz(double data, size_t offset, __private half *p); -void __ovld vstorea_half2_rtz(double2 data, size_t offset, __private half *p); -void __ovld vstorea_half3_rtz(double3 data, size_t offset, __private half *p); -void __ovld vstorea_half4_rtz(double4 data, size_t offset, __private half *p); -void __ovld vstorea_half8_rtz(double8 data, size_t offset, __private half *p); -void __ovld vstorea_half16_rtz(double16 data, size_t offset, __private half *p); - -void __ovld vstorea_half_rtp(double data, size_t offset, __private half *p); -void __ovld vstorea_half2_rtp(double2 data, size_t offset, __private half *p); -void __ovld vstorea_half3_rtp(double3 data, size_t offset, __private half *p); -void __ovld vstorea_half4_rtp(double4 data, size_t offset, __private half *p); -void __ovld vstorea_half8_rtp(double8 data, size_t offset, __private half *p); -void __ovld vstorea_half16_rtp(double16 data, size_t offset, __private half *p); - -void __ovld vstorea_half_rtn(double data, size_t offset, __private half *p); -void __ovld vstorea_half2_rtn(double2 data,size_t offset, __private half *p); -void __ovld vstorea_half3_rtn(double3 data,size_t offset, __private half *p); -void __ovld vstorea_half4_rtn(double4 data,size_t offset, __private half *p); -void __ovld vstorea_half8_rtn(double8 data,size_t offset, __private half *p); -void __ovld vstorea_half16_rtn(double16 data,size_t offset, __private half *p); +void __ovld vstorea_half(double data, size_t, __global half *); +void __ovld vstorea_half2(double2 data, size_t, __global half *); +void __ovld vstorea_half3(double3 data, size_t, __global half *); +void __ovld vstorea_half4(double4 data, size_t, __global half *); +void __ovld vstorea_half8(double8 data, size_t, __global half *); +void __ovld vstorea_half16(double16 data, size_t, __global half *); + +void __ovld vstorea_half_rte(double data, size_t, __global half *); +void __ovld vstorea_half2_rte(double2 data, size_t, __global half *); +void __ovld vstorea_half3_rte(double3 data, size_t, __global half *); +void __ovld vstorea_half4_rte(double4 data, size_t, __global half *); +void __ovld vstorea_half8_rte(double8 data, size_t, __global half *); +void __ovld vstorea_half16_rte(double16 data, size_t, __global half *); + +void __ovld vstorea_half_rtz(double data, size_t, __global half *); +void __ovld vstorea_half2_rtz(double2 data, size_t, __global half *); +void __ovld vstorea_half3_rtz(double3 data, size_t, __global half *); +void __ovld vstorea_half4_rtz(double4 data, size_t, __global half *); +void __ovld vstorea_half8_rtz(double8 data, size_t, __global half *); +void __ovld vstorea_half16_rtz(double16 data, size_t, __global half *); + +void __ovld vstorea_half_rtp(double data, size_t, __global half *); +void __ovld vstorea_half2_rtp(double2 data, size_t, __global half *); +void __ovld vstorea_half3_rtp(double3 data, size_t, __global half *); +void __ovld vstorea_half4_rtp(double4 data, size_t, __global half *); +void __ovld vstorea_half8_rtp(double8 data, size_t, __global half *); +void __ovld vstorea_half16_rtp(double16 data, size_t, __global half *); + +void __ovld vstorea_half_rtn(double data, size_t, __global half *); +void __ovld vstorea_half2_rtn(double2 data, size_t, __global half *); +void __ovld vstorea_half3_rtn(double3 data, size_t, __global half *); +void __ovld vstorea_half4_rtn(double4 data, size_t, __global half *); +void __ovld vstorea_half8_rtn(double8 data, size_t, __global half *); +void __ovld vstorea_half16_rtn(double16 data, size_t, __global half *); + +void __ovld vstorea_half(double data, size_t, __local half *); +void __ovld vstorea_half2(double2 data, size_t, __local half *); +void __ovld vstorea_half3(double3 data, size_t, __local half *); +void __ovld vstorea_half4(double4 data, size_t, __local half *); +void __ovld vstorea_half8(double8 data, size_t, __local half *); +void __ovld vstorea_half16(double16 data, size_t, __local half *); + +void __ovld vstorea_half_rte(double data, size_t, __local half *); +void __ovld vstorea_half2_rte(double2 data, size_t, __local half *); +void __ovld vstorea_half3_rte(double3 data, size_t, __local half *); +void __ovld vstorea_half4_rte(double4 data, size_t, __local half *); +void __ovld vstorea_half8_rte(double8 data, size_t, __local half *); +void __ovld vstorea_half16_rte(double16 data, size_t, __local half *); + +void __ovld vstorea_half_rtz(double data, size_t, __local half *); +void __ovld vstorea_half2_rtz(double2 data, size_t, __local half *); +void __ovld vstorea_half3_rtz(double3 data, size_t, __local half *); +void __ovld vstorea_half4_rtz(double4 data, size_t, __local half *); +void __ovld vstorea_half8_rtz(double8 data, size_t, __local half *); +void __ovld vstorea_half16_rtz(double16 data, size_t, __local half *); + +void __ovld vstorea_half_rtp(double data, size_t, __local half *); +void __ovld vstorea_half2_rtp(double2 data, size_t, __local half *); +void __ovld vstorea_half3_rtp(double3 data, size_t, __local half *); +void __ovld vstorea_half4_rtp(double4 data, size_t, __local half *); +void __ovld vstorea_half8_rtp(double8 data, size_t, __local half *); +void __ovld vstorea_half16_rtp(double16 data, size_t, __local half *); + +void __ovld vstorea_half_rtn(double data, size_t, __local half *); +void __ovld vstorea_half2_rtn(double2 data, size_t, __local half *); +void __ovld vstorea_half3_rtn(double3 data, size_t, __local half *); +void __ovld vstorea_half4_rtn(double4 data, size_t, __local half *); +void __ovld vstorea_half8_rtn(double8 data, size_t, __local half *); +void __ovld vstorea_half16_rtn(double16 data, size_t, __local half *); + +void __ovld vstorea_half(double data, size_t, __private half *); +void __ovld vstorea_half2(double2 data, size_t, __private half *); +void __ovld vstorea_half3(double3 data, size_t, __private half *); +void __ovld vstorea_half4(double4 data, size_t, __private half *); +void __ovld vstorea_half8(double8 data, size_t, __private half *); +void __ovld vstorea_half16(double16 data, size_t, __private half *); + +void __ovld vstorea_half_rte(double data, size_t, __private half *); +void __ovld vstorea_half2_rte(double2 data, size_t, __private half *); +void __ovld vstorea_half3_rte(double3 data, size_t, __private half *); +void __ovld vstorea_half4_rte(double4 data, size_t, __private half *); +void __ovld vstorea_half8_rte(double8 data, size_t, __private half *); +void __ovld vstorea_half16_rte(double16 data, size_t, __private half *); + +void __ovld vstorea_half_rtz(double data, size_t, __private half *); +void __ovld vstorea_half2_rtz(double2 data, size_t, __private half *); +void __ovld vstorea_half3_rtz(double3 data, size_t, __private half *); +void __ovld vstorea_half4_rtz(double4 data, size_t, __private half *); +void __ovld vstorea_half8_rtz(double8 data, size_t, __private half *); +void __ovld vstorea_half16_rtz(double16 data, size_t, __private half *); + +void __ovld vstorea_half_rtp(double data, size_t, __private half *); +void __ovld vstorea_half2_rtp(double2 data, size_t, __private half *); +void __ovld vstorea_half3_rtp(double3 data, size_t, __private half *); +void __ovld vstorea_half4_rtp(double4 data, size_t, __private half *); +void __ovld vstorea_half8_rtp(double8 data, size_t, __private half *); +void __ovld vstorea_half16_rtp(double16 data, size_t, __private half *); + +void __ovld vstorea_half_rtn(double data, size_t, __private half *); +void __ovld vstorea_half2_rtn(double2 data,size_t, __private half *); +void __ovld vstorea_half3_rtn(double3 data,size_t, __private half *); +void __ovld vstorea_half4_rtn(double4 data,size_t, __private half *); +void __ovld vstorea_half8_rtn(double8 data,size_t, __private half *); +void __ovld vstorea_half16_rtn(double16 data,size_t, __private half *); #endif //cl_khr_fp64 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_generic_address_space) // OpenCL v1.1 s6.11.8, v1.2 s6.12.8, v2.0 s6.13.8 - Synchronization Functions @@ -13143,11 +13130,11 @@ void __ovld vstorea_half16_rtn(double16 data,size_t offset, __private half *p); * image objects and then want to read the updated data. */ -void __ovld __conv barrier(cl_mem_fence_flags flags); +void __ovld __conv barrier(cl_mem_fence_flags); #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -void __ovld __conv work_group_barrier(cl_mem_fence_flags flags, memory_scope scope); -void __ovld __conv work_group_barrier(cl_mem_fence_flags flags); +void __ovld __conv work_group_barrier(cl_mem_fence_flags, memory_scope); +void __ovld __conv work_group_barrier(cl_mem_fence_flags); #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) // OpenCL v1.1 s6.11.9, v1.2 s6.12.9 - Explicit Memory Fence Functions @@ -13165,7 +13152,7 @@ void __ovld __conv work_group_barrier(cl_mem_fence_flags flags); * CLK_LOCAL_MEM_FENCE * CLK_GLOBAL_MEM_FENCE. */ -void __ovld mem_fence(cl_mem_fence_flags flags); +void __ovld mem_fence(cl_mem_fence_flags); /** * Read memory barrier that orders only @@ -13177,7 +13164,7 @@ void __ovld mem_fence(cl_mem_fence_flags flags); * CLK_LOCAL_MEM_FENCE * CLK_GLOBAL_MEM_FENCE. */ -void __ovld read_mem_fence(cl_mem_fence_flags flags); +void __ovld read_mem_fence(cl_mem_fence_flags); /** * Write memory barrier that orders only @@ -13189,11 +13176,11 @@ void __ovld read_mem_fence(cl_mem_fence_flags flags); * CLK_LOCAL_MEM_FENCE * CLK_GLOBAL_MEM_FENCE. */ -void __ovld write_mem_fence(cl_mem_fence_flags flags); +void __ovld write_mem_fence(cl_mem_fence_flags); // OpenCL v2.0 s6.13.9 - Address Space Qualifier Functions -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#if defined(__opencl_c_generic_address_space) cl_mem_fence_flags __ovld get_fence(const void *ptr); cl_mem_fence_flags __ovld get_fence(void *ptr); @@ -13204,7 +13191,7 @@ cl_mem_fence_flags __ovld get_fence(void *ptr); * where gentype is builtin type or user defined type. */ -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_generic_address_space) // OpenCL v1.1 s6.11.10, v1.2 s6.12.10, v2.0 s6.13.10 - Async Copies from Global to Local Memory, Local to Global Memory, and Prefetch @@ -13235,141 +13222,141 @@ cl_mem_fence_flags __ovld get_fence(void *ptr); * synchronization of source data such as using a * barrier before performing the copy. */ -event_t __ovld async_work_group_copy(__local char *dst, const __global char *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uchar *dst, const __global uchar *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local short *dst, const __global short *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ushort *dst, const __global ushort *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local int *dst, const __global int *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uint *dst, const __global uint *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local long *dst, const __global long *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ulong *dst, const __global ulong *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local float *dst, const __global float *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local char2 *dst, const __global char2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uchar2 *dst, const __global uchar2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local short2 *dst, const __global short2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ushort2 *dst, const __global ushort2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local int2 *dst, const __global int2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uint2 *dst, const __global uint2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local long2 *dst, const __global long2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ulong2 *dst, const __global ulong2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local float2 *dst, const __global float2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local char3 *dst, const __global char3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uchar3 *dst, const __global uchar3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local short3 *dst, const __global short3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ushort3 *dst, const __global ushort3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local int3 *dst, const __global int3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uint3 *dst, const __global uint3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local long3 *dst, const __global long3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ulong3 *dst, const __global ulong3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local float3 *dst, const __global float3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local char4 *dst, const __global char4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uchar4 *dst, const __global uchar4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local short4 *dst, const __global short4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ushort4 *dst, const __global ushort4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local int4 *dst, const __global int4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uint4 *dst, const __global uint4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local long4 *dst, const __global long4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ulong4 *dst, const __global ulong4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local float4 *dst, const __global float4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local char8 *dst, const __global char8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uchar8 *dst, const __global uchar8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local short8 *dst, const __global short8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ushort8 *dst, const __global ushort8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local int8 *dst, const __global int8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uint8 *dst, const __global uint8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local long8 *dst, const __global long8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ulong8 *dst, const __global ulong8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local float8 *dst, const __global float8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local char16 *dst, const __global char16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uchar16 *dst, const __global uchar16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local short16 *dst, const __global short16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ushort16 *dst, const __global ushort16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local int16 *dst, const __global int16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local uint16 *dst, const __global uint16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local long16 *dst, const __global long16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local ulong16 *dst, const __global ulong16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local float16 *dst, const __global float16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global char *dst, const __local char *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uchar *dst, const __local uchar *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global short *dst, const __local short *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ushort *dst, const __local ushort *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global int *dst, const __local int *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uint *dst, const __local uint *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global long *dst, const __local long *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ulong *dst, const __local ulong *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global float *dst, const __local float *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global char2 *dst, const __local char2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uchar2 *dst, const __local uchar2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global short2 *dst, const __local short2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ushort2 *dst, const __local ushort2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global int2 *dst, const __local int2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uint2 *dst, const __local uint2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global long2 *dst, const __local long2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ulong2 *dst, const __local ulong2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global float2 *dst, const __local float2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global char3 *dst, const __local char3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uchar3 *dst, const __local uchar3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global short3 *dst, const __local short3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ushort3 *dst, const __local ushort3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global int3 *dst, const __local int3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uint3 *dst, const __local uint3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global long3 *dst, const __local long3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ulong3 *dst, const __local ulong3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global float3 *dst, const __local float3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global char4 *dst, const __local char4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uchar4 *dst, const __local uchar4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global short4 *dst, const __local short4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ushort4 *dst, const __local ushort4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global int4 *dst, const __local int4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uint4 *dst, const __local uint4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global long4 *dst, const __local long4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ulong4 *dst, const __local ulong4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global float4 *dst, const __local float4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global char8 *dst, const __local char8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uchar8 *dst, const __local uchar8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global short8 *dst, const __local short8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ushort8 *dst, const __local ushort8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global int8 *dst, const __local int8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uint8 *dst, const __local uint8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global long8 *dst, const __local long8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ulong8 *dst, const __local ulong8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global float8 *dst, const __local float8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global char16 *dst, const __local char16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uchar16 *dst, const __local uchar16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global short16 *dst, const __local short16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ushort16 *dst, const __local ushort16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global int16 *dst, const __local int16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global uint16 *dst, const __local uint16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global long16 *dst, const __local long16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global ulong16 *dst, const __local ulong16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global float16 *dst, const __local float16 *src, size_t num_elements, event_t event); +event_t __ovld async_work_group_copy(__local char *, const __global char *, size_t, event_t); +event_t __ovld async_work_group_copy(__local uchar *, const __global uchar *, size_t, event_t); +event_t __ovld async_work_group_copy(__local short *, const __global short *, size_t, event_t); +event_t __ovld async_work_group_copy(__local ushort *, const __global ushort *, size_t, event_t); +event_t __ovld async_work_group_copy(__local int *, const __global int *, size_t, event_t); +event_t __ovld async_work_group_copy(__local uint *, const __global uint *, size_t, event_t); +event_t __ovld async_work_group_copy(__local long *, const __global long *, size_t, event_t); +event_t __ovld async_work_group_copy(__local ulong *, const __global ulong *, size_t, event_t); +event_t __ovld async_work_group_copy(__local float *, const __global float *, size_t, event_t); +event_t __ovld async_work_group_copy(__local char2 *, const __global char2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local uchar2 *, const __global uchar2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local short2 *, const __global short2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local ushort2 *, const __global ushort2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local int2 *, const __global int2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local uint2 *, const __global uint2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local long2 *, const __global long2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local ulong2 *, const __global ulong2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local float2 *, const __global float2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local char3 *, const __global char3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local uchar3 *, const __global uchar3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local short3 *, const __global short3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local ushort3 *, const __global ushort3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local int3 *, const __global int3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local uint3 *, const __global uint3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local long3 *, const __global long3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local ulong3 *, const __global ulong3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local float3 *, const __global float3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local char4 *, const __global char4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local uchar4 *, const __global uchar4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local short4 *, const __global short4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local ushort4 *, const __global ushort4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local int4 *, const __global int4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local uint4 *, const __global uint4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local long4 *, const __global long4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local ulong4 *, const __global ulong4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local float4 *, const __global float4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local char8 *, const __global char8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local uchar8 *, const __global uchar8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local short8 *, const __global short8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local ushort8 *, const __global ushort8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local int8 *, const __global int8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local uint8 *, const __global uint8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local long8 *, const __global long8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local ulong8 *, const __global ulong8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local float8 *, const __global float8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local char16 *, const __global char16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local uchar16 *, const __global uchar16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local short16 *, const __global short16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local ushort16 *, const __global ushort16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local int16 *, const __global int16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local uint16 *, const __global uint16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local long16 *, const __global long16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local ulong16 *, const __global ulong16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local float16 *, const __global float16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global char *, const __local char *, size_t, event_t); +event_t __ovld async_work_group_copy(__global uchar *, const __local uchar *, size_t, event_t); +event_t __ovld async_work_group_copy(__global short *, const __local short *, size_t, event_t); +event_t __ovld async_work_group_copy(__global ushort *, const __local ushort *, size_t, event_t); +event_t __ovld async_work_group_copy(__global int *, const __local int *, size_t, event_t); +event_t __ovld async_work_group_copy(__global uint *, const __local uint *, size_t, event_t); +event_t __ovld async_work_group_copy(__global long *, const __local long *, size_t, event_t); +event_t __ovld async_work_group_copy(__global ulong *, const __local ulong *, size_t, event_t); +event_t __ovld async_work_group_copy(__global float *, const __local float *, size_t, event_t); +event_t __ovld async_work_group_copy(__global char2 *, const __local char2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global uchar2 *, const __local uchar2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global short2 *, const __local short2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global ushort2 *, const __local ushort2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global int2 *, const __local int2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global uint2 *, const __local uint2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global long2 *, const __local long2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global ulong2 *, const __local ulong2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global float2 *, const __local float2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global char3 *, const __local char3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global uchar3 *, const __local uchar3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global short3 *, const __local short3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global ushort3 *, const __local ushort3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global int3 *, const __local int3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global uint3 *, const __local uint3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global long3 *, const __local long3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global ulong3 *, const __local ulong3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global float3 *, const __local float3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global char4 *, const __local char4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global uchar4 *, const __local uchar4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global short4 *, const __local short4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global ushort4 *, const __local ushort4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global int4 *, const __local int4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global uint4 *, const __local uint4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global long4 *, const __local long4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global ulong4 *, const __local ulong4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global float4 *, const __local float4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global char8 *, const __local char8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global uchar8 *, const __local uchar8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global short8 *, const __local short8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global ushort8 *, const __local ushort8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global int8 *, const __local int8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global uint8 *, const __local uint8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global long8 *, const __local long8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global ulong8 *, const __local ulong8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global float8 *, const __local float8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global char16 *, const __local char16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global uchar16 *, const __local uchar16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global short16 *, const __local short16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global ushort16 *, const __local ushort16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global int16 *, const __local int16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global uint16 *, const __local uint16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global long16 *, const __local long16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global ulong16 *, const __local ulong16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global float16 *, const __local float16 *, size_t, event_t); #ifdef cl_khr_fp64 -event_t __ovld async_work_group_copy(__local double *dst, const __global double *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local double2 *dst, const __global double2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local double3 *dst, const __global double3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local double4 *dst, const __global double4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local double8 *dst, const __global double8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local double16 *dst, const __global double16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global double *dst, const __local double *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global double2 *dst, const __local double2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global double3 *dst, const __local double3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global double4 *dst, const __local double4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global double8 *dst, const __local double8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global double16 *dst, const __local double16 *src, size_t num_elements, event_t event); +event_t __ovld async_work_group_copy(__local double *, const __global double *, size_t, event_t); +event_t __ovld async_work_group_copy(__local double2 *, const __global double2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local double3 *, const __global double3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local double4 *, const __global double4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local double8 *, const __global double8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local double16 *, const __global double16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global double *, const __local double *, size_t, event_t); +event_t __ovld async_work_group_copy(__global double2 *, const __local double2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global double3 *, const __local double3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global double4 *, const __local double4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global double8 *, const __local double8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global double16 *, const __local double16 *, size_t, event_t); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -event_t __ovld async_work_group_copy(__local half *dst, const __global half *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local half2 *dst, const __global half2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local half3 *dst, const __global half3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local half4 *dst, const __global half4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local half8 *dst, const __global half8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__local half16 *dst, const __global half16 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global half *dst, const __local half *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global half2 *dst, const __local half2 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global half3 *dst, const __local half3 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global half4 *dst, const __local half4 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global half8 *dst, const __local half8 *src, size_t num_elements, event_t event); -event_t __ovld async_work_group_copy(__global half16 *dst, const __local half16 *src, size_t num_elements, event_t event); +event_t __ovld async_work_group_copy(__local half *, const __global half *, size_t, event_t); +event_t __ovld async_work_group_copy(__local half2 *, const __global half2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local half3 *, const __global half3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local half4 *, const __global half4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local half8 *, const __global half8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__local half16 *, const __global half16 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global half *, const __local half *, size_t, event_t); +event_t __ovld async_work_group_copy(__global half2 *, const __local half2 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global half3 *, const __local half3 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global half4 *, const __local half4 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global half8 *, const __local half8 *, size_t, event_t); +event_t __ovld async_work_group_copy(__global half16 *, const __local half16 *, size_t, event_t); #endif //cl_khr_fp16 /** @@ -13398,141 +13385,141 @@ event_t __ovld async_work_group_copy(__global half16 *dst, const __local half16 * synchronization of source data such as using a * barrier before performing the copy. */ -event_t __ovld async_work_group_strided_copy(__local char *dst, const __global char *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uchar *dst, const __global uchar *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local short *dst, const __global short *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ushort *dst, const __global ushort *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local int *dst, const __global int *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uint *dst, const __global uint *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local long *dst, const __global long *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ulong *dst, const __global ulong *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local float *dst, const __global float *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local char2 *dst, const __global char2 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uchar2 *dst, const __global uchar2 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local short2 *dst, const __global short2 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ushort2 *dst, const __global ushort2 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local int2 *dst, const __global int2 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uint2 *dst, const __global uint2 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local long2 *dst, const __global long2 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ulong2 *dst, const __global ulong2 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local float2 *dst, const __global float2 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local char3 *dst, const __global char3 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uchar3 *dst, const __global uchar3 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local short3 *dst, const __global short3 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ushort3 *dst, const __global ushort3 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local int3 *dst, const __global int3 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uint3 *dst, const __global uint3 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local long3 *dst, const __global long3 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ulong3 *dst, const __global ulong3 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local float3 *dst, const __global float3 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local char4 *dst, const __global char4 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uchar4 *dst, const __global uchar4 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local short4 *dst, const __global short4 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ushort4 *dst, const __global ushort4 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local int4 *dst, const __global int4 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uint4 *dst, const __global uint4 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local long4 *dst, const __global long4 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ulong4 *dst, const __global ulong4 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local float4 *dst, const __global float4 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local char8 *dst, const __global char8 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uchar8 *dst, const __global uchar8 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local short8 *dst, const __global short8 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ushort8 *dst, const __global ushort8 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local int8 *dst, const __global int8 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uint8 *dst, const __global uint8 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local long8 *dst, const __global long8 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ulong8 *dst, const __global ulong8 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local float8 *dst, const __global float8 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local char16 *dst, const __global char16 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uchar16 *dst, const __global uchar16 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local short16 *dst, const __global short16 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ushort16 *dst, const __global ushort16 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local int16 *dst, const __global int16 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local uint16 *dst, const __global uint16 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local long16 *dst, const __global long16 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local ulong16 *dst, const __global ulong16 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local float16 *dst, const __global float16 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global char *dst, const __local char *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uchar *dst, const __local uchar *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global short *dst, const __local short *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ushort *dst, const __local ushort *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global int *dst, const __local int *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uint *dst, const __local uint *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global long *dst, const __local long *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ulong *dst, const __local ulong *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global float *dst, const __local float *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global char2 *dst, const __local char2 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uchar2 *dst, const __local uchar2 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global short2 *dst, const __local short2 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ushort2 *dst, const __local ushort2 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global int2 *dst, const __local int2 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uint2 *dst, const __local uint2 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global long2 *dst, const __local long2 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ulong2 *dst, const __local ulong2 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global float2 *dst, const __local float2 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global char3 *dst, const __local char3 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uchar3 *dst, const __local uchar3 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global short3 *dst, const __local short3 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ushort3 *dst, const __local ushort3 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global int3 *dst, const __local int3 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uint3 *dst, const __local uint3 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global long3 *dst, const __local long3 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ulong3 *dst, const __local ulong3 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global float3 *dst, const __local float3 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global char4 *dst, const __local char4 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uchar4 *dst, const __local uchar4 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global short4 *dst, const __local short4 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ushort4 *dst, const __local ushort4 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global int4 *dst, const __local int4 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uint4 *dst, const __local uint4 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global long4 *dst, const __local long4 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ulong4 *dst, const __local ulong4 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global float4 *dst, const __local float4 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global char8 *dst, const __local char8 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uchar8 *dst, const __local uchar8 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global short8 *dst, const __local short8 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ushort8 *dst, const __local ushort8 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global int8 *dst, const __local int8 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uint8 *dst, const __local uint8 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global long8 *dst, const __local long8 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ulong8 *dst, const __local ulong8 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global float8 *dst, const __local float8 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global char16 *dst, const __local char16 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uchar16 *dst, const __local uchar16 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global short16 *dst, const __local short16 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ushort16 *dst, const __local ushort16 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global int16 *dst, const __local int16 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global uint16 *dst, const __local uint16 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global long16 *dst, const __local long16 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global ulong16 *dst, const __local ulong16 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global float16 *dst, const __local float16 *src, size_t num_elements, size_t dst_stride, event_t event); +event_t __ovld async_work_group_strided_copy(__local char *, const __global char *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local uchar *, const __global uchar *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local short *, const __global short *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local ushort *, const __global ushort *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local int *, const __global int *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local uint *, const __global uint *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local long *, const __global long *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local ulong *, const __global ulong *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local float *, const __global float *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local char2 *, const __global char2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local uchar2 *, const __global uchar2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local short2 *, const __global short2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local ushort2 *, const __global ushort2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local int2 *, const __global int2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local uint2 *, const __global uint2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local long2 *, const __global long2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local ulong2 *, const __global ulong2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local float2 *, const __global float2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local char3 *, const __global char3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local uchar3 *, const __global uchar3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local short3 *, const __global short3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local ushort3 *, const __global ushort3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local int3 *, const __global int3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local uint3 *, const __global uint3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local long3 *, const __global long3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local ulong3 *, const __global ulong3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local float3 *, const __global float3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local char4 *, const __global char4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local uchar4 *, const __global uchar4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local short4 *, const __global short4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local ushort4 *, const __global ushort4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local int4 *, const __global int4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local uint4 *, const __global uint4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local long4 *, const __global long4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local ulong4 *, const __global ulong4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local float4 *, const __global float4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local char8 *, const __global char8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local uchar8 *, const __global uchar8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local short8 *, const __global short8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local ushort8 *, const __global ushort8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local int8 *, const __global int8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local uint8 *, const __global uint8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local long8 *, const __global long8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local ulong8 *, const __global ulong8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local float8 *, const __global float8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local char16 *, const __global char16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local uchar16 *, const __global uchar16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local short16 *, const __global short16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local ushort16 *, const __global ushort16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local int16 *, const __global int16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local uint16 *, const __global uint16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local long16 *, const __global long16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local ulong16 *, const __global ulong16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local float16 *, const __global float16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global char *, const __local char *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global uchar *, const __local uchar *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global short *, const __local short *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global ushort *, const __local ushort *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global int *, const __local int *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global uint *, const __local uint *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global long *, const __local long *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global ulong *, const __local ulong *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global float *, const __local float *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global char2 *, const __local char2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global uchar2 *, const __local uchar2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global short2 *, const __local short2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global ushort2 *, const __local ushort2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global int2 *, const __local int2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global uint2 *, const __local uint2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global long2 *, const __local long2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global ulong2 *, const __local ulong2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global float2 *, const __local float2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global char3 *, const __local char3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global uchar3 *, const __local uchar3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global short3 *, const __local short3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global ushort3 *, const __local ushort3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global int3 *, const __local int3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global uint3 *, const __local uint3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global long3 *, const __local long3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global ulong3 *, const __local ulong3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global float3 *, const __local float3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global char4 *, const __local char4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global uchar4 *, const __local uchar4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global short4 *, const __local short4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global ushort4 *, const __local ushort4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global int4 *, const __local int4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global uint4 *, const __local uint4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global long4 *, const __local long4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global ulong4 *, const __local ulong4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global float4 *, const __local float4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global char8 *, const __local char8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global uchar8 *, const __local uchar8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global short8 *, const __local short8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global ushort8 *, const __local ushort8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global int8 *, const __local int8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global uint8 *, const __local uint8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global long8 *, const __local long8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global ulong8 *, const __local ulong8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global float8 *, const __local float8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global char16 *, const __local char16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global uchar16 *, const __local uchar16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global short16 *, const __local short16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global ushort16 *, const __local ushort16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global int16 *, const __local int16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global uint16 *, const __local uint16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global long16 *, const __local long16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global ulong16 *, const __local ulong16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global float16 *, const __local float16 *, size_t, size_t, event_t); #ifdef cl_khr_fp64 -event_t __ovld async_work_group_strided_copy(__local double *dst, const __global double *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local double2 *dst, const __global double2 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local double3 *dst, const __global double3 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local double4 *dst, const __global double4 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local double8 *dst, const __global double8 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local double16 *dst, const __global double16 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global double *dst, const __local double *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global double2 *dst, const __local double2 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global double3 *dst, const __local double3 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global double4 *dst, const __local double4 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global double8 *dst, const __local double8 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global double16 *dst, const __local double16 *src, size_t num_elements, size_t dst_stride, event_t event); +event_t __ovld async_work_group_strided_copy(__local double *, const __global double *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local double2 *, const __global double2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local double3 *, const __global double3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local double4 *, const __global double4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local double8 *, const __global double8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local double16 *, const __global double16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global double *, const __local double *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global double2 *, const __local double2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global double3 *, const __local double3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global double4 *, const __local double4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global double8 *, const __local double8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global double16 *, const __local double16 *, size_t, size_t, event_t); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -event_t __ovld async_work_group_strided_copy(__local half *dst, const __global half *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local half2 *dst, const __global half2 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local half3 *dst, const __global half3 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local half4 *dst, const __global half4 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local half8 *dst, const __global half8 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__local half16 *dst, const __global half16 *src, size_t num_elements, size_t src_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global half *dst, const __local half *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global half2 *dst, const __local half2 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global half3 *dst, const __local half3 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global half4 *dst, const __local half4 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global half8 *dst, const __local half8 *src, size_t num_elements, size_t dst_stride, event_t event); -event_t __ovld async_work_group_strided_copy(__global half16 *dst, const __local half16 *src, size_t num_elements, size_t dst_stride, event_t event); +event_t __ovld async_work_group_strided_copy(__local half *, const __global half *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local half2 *, const __global half2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local half3 *, const __global half3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local half4 *, const __global half4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local half8 *, const __global half8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__local half16 *, const __global half16 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global half *, const __local half *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global half2 *, const __local half2 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global half3 *, const __local half3 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global half4 *, const __local half4 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global half8 *, const __local half8 *, size_t, size_t, event_t); +event_t __ovld async_work_group_strided_copy(__global half16 *, const __local half16 *, size_t, size_t, event_t); #endif //cl_khr_fp16 /** @@ -13546,7 +13533,7 @@ event_t __ovld async_work_group_strided_copy(__global half16 *dst, const __local * the same num_events and event objects specified * in event_list; otherwise the results are undefined. */ -void __ovld wait_group_events(int num_events, event_t *event_list); +void __ovld wait_group_events(int, event_t *); /** * Prefetch num_elements * sizeof(gentype) @@ -13555,75 +13542,75 @@ void __ovld wait_group_events(int num_events, event_t *event_list); * and does not affect the functional * behavior of the kernel. */ -void __ovld prefetch(const __global char *p, size_t num_elements); -void __ovld prefetch(const __global uchar *p, size_t num_elements); -void __ovld prefetch(const __global short *p, size_t num_elements); -void __ovld prefetch(const __global ushort *p, size_t num_elements); -void __ovld prefetch(const __global int *p, size_t num_elements); -void __ovld prefetch(const __global uint *p, size_t num_elements); -void __ovld prefetch(const __global long *p, size_t num_elements); -void __ovld prefetch(const __global ulong *p, size_t num_elements); -void __ovld prefetch(const __global float *p, size_t num_elements); -void __ovld prefetch(const __global char2 *p, size_t num_elements); -void __ovld prefetch(const __global uchar2 *p, size_t num_elements); -void __ovld prefetch(const __global short2 *p, size_t num_elements); -void __ovld prefetch(const __global ushort2 *p, size_t num_elements); -void __ovld prefetch(const __global int2 *p, size_t num_elements); -void __ovld prefetch(const __global uint2 *p, size_t num_elements); -void __ovld prefetch(const __global long2 *p, size_t num_elements); -void __ovld prefetch(const __global ulong2 *p, size_t num_elements); -void __ovld prefetch(const __global float2 *p, size_t num_elements); -void __ovld prefetch(const __global char3 *p, size_t num_elements); -void __ovld prefetch(const __global uchar3 *p, size_t num_elements); -void __ovld prefetch(const __global short3 *p, size_t num_elements); -void __ovld prefetch(const __global ushort3 *p, size_t num_elements); -void __ovld prefetch(const __global int3 *p, size_t num_elements); -void __ovld prefetch(const __global uint3 *p, size_t num_elements); -void __ovld prefetch(const __global long3 *p, size_t num_elements); -void __ovld prefetch(const __global ulong3 *p, size_t num_elements); -void __ovld prefetch(const __global float3 *p, size_t num_elements); -void __ovld prefetch(const __global char4 *p, size_t num_elements); -void __ovld prefetch(const __global uchar4 *p, size_t num_elements); -void __ovld prefetch(const __global short4 *p, size_t num_elements); -void __ovld prefetch(const __global ushort4 *p, size_t num_elements); -void __ovld prefetch(const __global int4 *p, size_t num_elements); -void __ovld prefetch(const __global uint4 *p, size_t num_elements); -void __ovld prefetch(const __global long4 *p, size_t num_elements); -void __ovld prefetch(const __global ulong4 *p, size_t num_elements); -void __ovld prefetch(const __global float4 *p, size_t num_elements); -void __ovld prefetch(const __global char8 *p, size_t num_elements); -void __ovld prefetch(const __global uchar8 *p, size_t num_elements); -void __ovld prefetch(const __global short8 *p, size_t num_elements); -void __ovld prefetch(const __global ushort8 *p, size_t num_elements); -void __ovld prefetch(const __global int8 *p, size_t num_elements); -void __ovld prefetch(const __global uint8 *p, size_t num_elements); -void __ovld prefetch(const __global long8 *p, size_t num_elements); -void __ovld prefetch(const __global ulong8 *p, size_t num_elements); -void __ovld prefetch(const __global float8 *p, size_t num_elements); -void __ovld prefetch(const __global char16 *p, size_t num_elements); -void __ovld prefetch(const __global uchar16 *p, size_t num_elements); -void __ovld prefetch(const __global short16 *p, size_t num_elements); -void __ovld prefetch(const __global ushort16 *p, size_t num_elements); -void __ovld prefetch(const __global int16 *p, size_t num_elements); -void __ovld prefetch(const __global uint16 *p, size_t num_elements); -void __ovld prefetch(const __global long16 *p, size_t num_elements); -void __ovld prefetch(const __global ulong16 *p, size_t num_elements); -void __ovld prefetch(const __global float16 *p, size_t num_elements); +void __ovld prefetch(const __global char *, size_t); +void __ovld prefetch(const __global uchar *, size_t); +void __ovld prefetch(const __global short *, size_t); +void __ovld prefetch(const __global ushort *, size_t); +void __ovld prefetch(const __global int *, size_t); +void __ovld prefetch(const __global uint *, size_t); +void __ovld prefetch(const __global long *, size_t); +void __ovld prefetch(const __global ulong *, size_t); +void __ovld prefetch(const __global float *, size_t); +void __ovld prefetch(const __global char2 *, size_t); +void __ovld prefetch(const __global uchar2 *, size_t); +void __ovld prefetch(const __global short2 *, size_t); +void __ovld prefetch(const __global ushort2 *, size_t); +void __ovld prefetch(const __global int2 *, size_t); +void __ovld prefetch(const __global uint2 *, size_t); +void __ovld prefetch(const __global long2 *, size_t); +void __ovld prefetch(const __global ulong2 *, size_t); +void __ovld prefetch(const __global float2 *, size_t); +void __ovld prefetch(const __global char3 *, size_t); +void __ovld prefetch(const __global uchar3 *, size_t); +void __ovld prefetch(const __global short3 *, size_t); +void __ovld prefetch(const __global ushort3 *, size_t); +void __ovld prefetch(const __global int3 *, size_t); +void __ovld prefetch(const __global uint3 *, size_t); +void __ovld prefetch(const __global long3 *, size_t); +void __ovld prefetch(const __global ulong3 *, size_t); +void __ovld prefetch(const __global float3 *, size_t); +void __ovld prefetch(const __global char4 *, size_t); +void __ovld prefetch(const __global uchar4 *, size_t); +void __ovld prefetch(const __global short4 *, size_t); +void __ovld prefetch(const __global ushort4 *, size_t); +void __ovld prefetch(const __global int4 *, size_t); +void __ovld prefetch(const __global uint4 *, size_t); +void __ovld prefetch(const __global long4 *, size_t); +void __ovld prefetch(const __global ulong4 *, size_t); +void __ovld prefetch(const __global float4 *, size_t); +void __ovld prefetch(const __global char8 *, size_t); +void __ovld prefetch(const __global uchar8 *, size_t); +void __ovld prefetch(const __global short8 *, size_t); +void __ovld prefetch(const __global ushort8 *, size_t); +void __ovld prefetch(const __global int8 *, size_t); +void __ovld prefetch(const __global uint8 *, size_t); +void __ovld prefetch(const __global long8 *, size_t); +void __ovld prefetch(const __global ulong8 *, size_t); +void __ovld prefetch(const __global float8 *, size_t); +void __ovld prefetch(const __global char16 *, size_t); +void __ovld prefetch(const __global uchar16 *, size_t); +void __ovld prefetch(const __global short16 *, size_t); +void __ovld prefetch(const __global ushort16 *, size_t); +void __ovld prefetch(const __global int16 *, size_t); +void __ovld prefetch(const __global uint16 *, size_t); +void __ovld prefetch(const __global long16 *, size_t); +void __ovld prefetch(const __global ulong16 *, size_t); +void __ovld prefetch(const __global float16 *, size_t); #ifdef cl_khr_fp64 -void __ovld prefetch(const __global double *p, size_t num_elements); -void __ovld prefetch(const __global double2 *p, size_t num_elements); -void __ovld prefetch(const __global double3 *p, size_t num_elements); -void __ovld prefetch(const __global double4 *p, size_t num_elements); -void __ovld prefetch(const __global double8 *p, size_t num_elements); -void __ovld prefetch(const __global double16 *p, size_t num_elements); +void __ovld prefetch(const __global double *, size_t); +void __ovld prefetch(const __global double2 *, size_t); +void __ovld prefetch(const __global double3 *, size_t); +void __ovld prefetch(const __global double4 *, size_t); +void __ovld prefetch(const __global double8 *, size_t); +void __ovld prefetch(const __global double16 *, size_t); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -void __ovld prefetch(const __global half *p, size_t num_elements); -void __ovld prefetch(const __global half2 *p, size_t num_elements); -void __ovld prefetch(const __global half3 *p, size_t num_elements); -void __ovld prefetch(const __global half4 *p, size_t num_elements); -void __ovld prefetch(const __global half8 *p, size_t num_elements); -void __ovld prefetch(const __global half16 *p, size_t num_elements); +void __ovld prefetch(const __global half *, size_t); +void __ovld prefetch(const __global half2 *, size_t); +void __ovld prefetch(const __global half3 *, size_t); +void __ovld prefetch(const __global half4 *, size_t); +void __ovld prefetch(const __global half8 *, size_t); +void __ovld prefetch(const __global half16 *, size_t); #endif // cl_khr_fp16 // OpenCL v1.1 s6.11.1, v1.2 s6.12.11 - Atomic Functions @@ -13638,29 +13625,29 @@ void __ovld prefetch(const __global half16 *p, size_t num_elements); * (old + val) and store result at location * pointed by p. The function returns old. */ -int __ovld atomic_add(volatile __global int *p, int val); -unsigned int __ovld atomic_add(volatile __global unsigned int *p, unsigned int val); -int __ovld atomic_add(volatile __local int *p, int val); -unsigned int __ovld atomic_add(volatile __local unsigned int *p, unsigned int val); +int __ovld atomic_add(volatile __global int *, int); +uint __ovld atomic_add(volatile __global uint *, uint); +int __ovld atomic_add(volatile __local int *, int); +uint __ovld atomic_add(volatile __local uint *, uint); #ifdef __OPENCL_CPP_VERSION__ -int __ovld atomic_add(volatile int *p, int val); -unsigned int __ovld atomic_add(volatile unsigned int *p, unsigned int val); +int __ovld atomic_add(volatile int *, int); +uint __ovld atomic_add(volatile uint *, uint); #endif #if defined(cl_khr_global_int32_base_atomics) -int __ovld atom_add(volatile __global int *p, int val); -unsigned int __ovld atom_add(volatile __global unsigned int *p, unsigned int val); +int __ovld atom_add(volatile __global int *, int); +uint __ovld atom_add(volatile __global uint *, uint); #endif #if defined(cl_khr_local_int32_base_atomics) -int __ovld atom_add(volatile __local int *p, int val); -unsigned int __ovld atom_add(volatile __local unsigned int *p, unsigned int val); +int __ovld atom_add(volatile __local int *, int); +uint __ovld atom_add(volatile __local uint *, uint); #endif #if defined(cl_khr_int64_base_atomics) -long __ovld atom_add(volatile __global long *p, long val); -unsigned long __ovld atom_add(volatile __global unsigned long *p, unsigned long val); -long __ovld atom_add(volatile __local long *p, long val); -unsigned long __ovld atom_add(volatile __local unsigned long *p, unsigned long val); +long __ovld atom_add(volatile __global long *, long); +ulong __ovld atom_add(volatile __global ulong *, ulong); +long __ovld atom_add(volatile __local long *, long); +ulong __ovld atom_add(volatile __local ulong *, ulong); #endif /** @@ -13668,29 +13655,29 @@ unsigned long __ovld atom_add(volatile __local unsigned long *p, unsigned long v * Compute (old - val) and store result at location pointed by p. The function * returns old. */ -int __ovld atomic_sub(volatile __global int *p, int val); -unsigned int __ovld atomic_sub(volatile __global unsigned int *p, unsigned int val); -int __ovld atomic_sub(volatile __local int *p, int val); -unsigned int __ovld atomic_sub(volatile __local unsigned int *p, unsigned int val); +int __ovld atomic_sub(volatile __global int *, int); +uint __ovld atomic_sub(volatile __global uint *, uint); +int __ovld atomic_sub(volatile __local int *, int); +uint __ovld atomic_sub(volatile __local uint *, uint); #ifdef __OPENCL_CPP_VERSION__ -int __ovld atomic_sub(volatile int *p, int val); -unsigned int __ovld atomic_sub(volatile unsigned int *p, unsigned int val); +int __ovld atomic_sub(volatile int *, int); +uint __ovld atomic_sub(volatile uint *, uint); #endif #if defined(cl_khr_global_int32_base_atomics) -int __ovld atom_sub(volatile __global int *p, int val); -unsigned int __ovld atom_sub(volatile __global unsigned int *p, unsigned int val); +int __ovld atom_sub(volatile __global int *, int); +uint __ovld atom_sub(volatile __global uint *, uint); #endif #if defined(cl_khr_local_int32_base_atomics) -int __ovld atom_sub(volatile __local int *p, int val); -unsigned int __ovld atom_sub(volatile __local unsigned int *p, unsigned int val); +int __ovld atom_sub(volatile __local int *, int); +uint __ovld atom_sub(volatile __local uint *, uint); #endif #if defined(cl_khr_int64_base_atomics) -long __ovld atom_sub(volatile __global long *p, long val); -unsigned long __ovld atom_sub(volatile __global unsigned long *p, unsigned long val); -long __ovld atom_sub(volatile __local long *p, long val); -unsigned long __ovld atom_sub(volatile __local unsigned long *p, unsigned long val); +long __ovld atom_sub(volatile __global long *, long); +ulong __ovld atom_sub(volatile __global ulong *, ulong); +long __ovld atom_sub(volatile __local long *, long); +ulong __ovld atom_sub(volatile __local ulong *, ulong); #endif /** @@ -13698,32 +13685,32 @@ unsigned long __ovld atom_sub(volatile __local unsigned long *p, unsigned long v * with new value given by val. Returns old * value. */ -int __ovld atomic_xchg(volatile __global int *p, int val); -unsigned int __ovld atomic_xchg(volatile __global unsigned int *p, unsigned int val); -int __ovld atomic_xchg(volatile __local int *p, int val); -unsigned int __ovld atomic_xchg(volatile __local unsigned int *p, unsigned int val); -float __ovld atomic_xchg(volatile __global float *p, float val); -float __ovld atomic_xchg(volatile __local float *p, float val); +int __ovld atomic_xchg(volatile __global int *, int); +uint __ovld atomic_xchg(volatile __global uint *, uint); +int __ovld atomic_xchg(volatile __local int *, int); +uint __ovld atomic_xchg(volatile __local uint *, uint); +float __ovld atomic_xchg(volatile __global float *, float); +float __ovld atomic_xchg(volatile __local float *, float); #ifdef __OPENCL_CPP_VERSION__ -int __ovld atomic_xchg(volatile int *p, int val); -unsigned int __ovld atomic_xchg(volatile unsigned int *p, unsigned int val); -float __ovld atomic_xchg(volatile float *p, float val); +int __ovld atomic_xchg(volatile int *, int); +uint __ovld atomic_xchg(volatile uint *, uint); +float __ovld atomic_xchg(volatile float *, float); #endif #if defined(cl_khr_global_int32_base_atomics) -int __ovld atom_xchg(volatile __global int *p, int val); -unsigned int __ovld atom_xchg(volatile __global unsigned int *p, unsigned int val); +int __ovld atom_xchg(volatile __global int *, int); +uint __ovld atom_xchg(volatile __global uint *, uint); #endif #if defined(cl_khr_local_int32_base_atomics) -int __ovld atom_xchg(volatile __local int *p, int val); -unsigned int __ovld atom_xchg(volatile __local unsigned int *p, unsigned int val); +int __ovld atom_xchg(volatile __local int *, int); +uint __ovld atom_xchg(volatile __local uint *, uint); #endif #if defined(cl_khr_int64_base_atomics) -long __ovld atom_xchg(volatile __global long *p, long val); -long __ovld atom_xchg(volatile __local long *p, long val); -unsigned long __ovld atom_xchg(volatile __global unsigned long *p, unsigned long val); -unsigned long __ovld atom_xchg(volatile __local unsigned long *p, unsigned long val); +long __ovld atom_xchg(volatile __global long *, long); +long __ovld atom_xchg(volatile __local long *, long); +ulong __ovld atom_xchg(volatile __global ulong *, ulong); +ulong __ovld atom_xchg(volatile __local ulong *, ulong); #endif /** @@ -13732,29 +13719,29 @@ unsigned long __ovld atom_xchg(volatile __local unsigned long *p, unsigned long * (old + 1) and store result at location * pointed by p. The function returns old. */ -int __ovld atomic_inc(volatile __global int *p); -unsigned int __ovld atomic_inc(volatile __global unsigned int *p); -int __ovld atomic_inc(volatile __local int *p); -unsigned int __ovld atomic_inc(volatile __local unsigned int *p); +int __ovld atomic_inc(volatile __global int *); +uint __ovld atomic_inc(volatile __global uint *); +int __ovld atomic_inc(volatile __local int *); +uint __ovld atomic_inc(volatile __local uint *); #ifdef __OPENCL_CPP_VERSION__ -int __ovld atomic_inc(volatile int *p); -unsigned int __ovld atomic_inc(volatile unsigned int *p); +int __ovld atomic_inc(volatile int *); +uint __ovld atomic_inc(volatile uint *); #endif #if defined(cl_khr_global_int32_base_atomics) -int __ovld atom_inc(volatile __global int *p); -unsigned int __ovld atom_inc(volatile __global unsigned int *p); +int __ovld atom_inc(volatile __global int *); +uint __ovld atom_inc(volatile __global uint *); #endif #if defined(cl_khr_local_int32_base_atomics) -int __ovld atom_inc(volatile __local int *p); -unsigned int __ovld atom_inc(volatile __local unsigned int *p); +int __ovld atom_inc(volatile __local int *); +uint __ovld atom_inc(volatile __local uint *); #endif #if defined(cl_khr_int64_base_atomics) -long __ovld atom_inc(volatile __global long *p); -unsigned long __ovld atom_inc(volatile __global unsigned long *p); -long __ovld atom_inc(volatile __local long *p); -unsigned long __ovld atom_inc(volatile __local unsigned long *p); +long __ovld atom_inc(volatile __global long *); +ulong __ovld atom_inc(volatile __global ulong *); +long __ovld atom_inc(volatile __local long *); +ulong __ovld atom_inc(volatile __local ulong *); #endif /** @@ -13763,29 +13750,29 @@ unsigned long __ovld atom_inc(volatile __local unsigned long *p); * (old - 1) and store result at location * pointed by p. The function returns old. */ -int __ovld atomic_dec(volatile __global int *p); -unsigned int __ovld atomic_dec(volatile __global unsigned int *p); -int __ovld atomic_dec(volatile __local int *p); -unsigned int __ovld atomic_dec(volatile __local unsigned int *p); +int __ovld atomic_dec(volatile __global int *); +uint __ovld atomic_dec(volatile __global uint *); +int __ovld atomic_dec(volatile __local int *); +uint __ovld atomic_dec(volatile __local uint *); #ifdef __OPENCL_CPP_VERSION__ -int __ovld atomic_dec(volatile int *p); -unsigned int __ovld atomic_dec(volatile unsigned int *p); +int __ovld atomic_dec(volatile int *); +uint __ovld atomic_dec(volatile uint *); #endif #if defined(cl_khr_global_int32_base_atomics) -int __ovld atom_dec(volatile __global int *p); -unsigned int __ovld atom_dec(volatile __global unsigned int *p); +int __ovld atom_dec(volatile __global int *); +uint __ovld atom_dec(volatile __global uint *); #endif #if defined(cl_khr_local_int32_base_atomics) -int __ovld atom_dec(volatile __local int *p); -unsigned int __ovld atom_dec(volatile __local unsigned int *p); +int __ovld atom_dec(volatile __local int *); +uint __ovld atom_dec(volatile __local uint *); #endif #if defined(cl_khr_int64_base_atomics) -long __ovld atom_dec(volatile __global long *p); -unsigned long __ovld atom_dec(volatile __global unsigned long *p); -long __ovld atom_dec(volatile __local long *p); -unsigned long __ovld atom_dec(volatile __local unsigned long *p); +long __ovld atom_dec(volatile __global long *); +ulong __ovld atom_dec(volatile __global ulong *); +long __ovld atom_dec(volatile __local long *); +ulong __ovld atom_dec(volatile __local ulong *); #endif /** @@ -13795,29 +13782,29 @@ unsigned long __ovld atom_dec(volatile __local unsigned long *p); * location pointed by p. The function * returns old. */ -int __ovld atomic_cmpxchg(volatile __global int *p, int cmp, int val); -unsigned int __ovld atomic_cmpxchg(volatile __global unsigned int *p, unsigned int cmp, unsigned int val); -int __ovld atomic_cmpxchg(volatile __local int *p, int cmp, int val); -unsigned int __ovld atomic_cmpxchg(volatile __local unsigned int *p, unsigned int cmp, unsigned int val); +int __ovld atomic_cmpxchg(volatile __global int *, int, int); +uint __ovld atomic_cmpxchg(volatile __global uint *, uint, uint); +int __ovld atomic_cmpxchg(volatile __local int *, int, int); +uint __ovld atomic_cmpxchg(volatile __local uint *, uint, uint); #ifdef __OPENCL_CPP_VERSION__ -int __ovld atomic_cmpxchg(volatile int *p, int cmp, int val); -unsigned int __ovld atomic_cmpxchg(volatile unsigned int *p, unsigned int cmp, unsigned int val); +int __ovld atomic_cmpxchg(volatile int *, int, int); +uint __ovld atomic_cmpxchg(volatile uint *, uint, uint); #endif #if defined(cl_khr_global_int32_base_atomics) -int __ovld atom_cmpxchg(volatile __global int *p, int cmp, int val); -unsigned int __ovld atom_cmpxchg(volatile __global unsigned int *p, unsigned int cmp, unsigned int val); +int __ovld atom_cmpxchg(volatile __global int *, int, int); +uint __ovld atom_cmpxchg(volatile __global uint *, uint, uint); #endif #if defined(cl_khr_local_int32_base_atomics) -int __ovld atom_cmpxchg(volatile __local int *p, int cmp, int val); -unsigned int __ovld atom_cmpxchg(volatile __local unsigned int *p, unsigned int cmp, unsigned int val); +int __ovld atom_cmpxchg(volatile __local int *, int, int); +uint __ovld atom_cmpxchg(volatile __local uint *, uint, uint); #endif #if defined(cl_khr_int64_base_atomics) -long __ovld atom_cmpxchg(volatile __global long *p, long cmp, long val); -unsigned long __ovld atom_cmpxchg(volatile __global unsigned long *p, unsigned long cmp, unsigned long val); -long __ovld atom_cmpxchg(volatile __local long *p, long cmp, long val); -unsigned long __ovld atom_cmpxchg(volatile __local unsigned long *p, unsigned long cmp, unsigned long val); +long __ovld atom_cmpxchg(volatile __global long *, long, long); +ulong __ovld atom_cmpxchg(volatile __global ulong *, ulong, ulong); +long __ovld atom_cmpxchg(volatile __local long *, long, long); +ulong __ovld atom_cmpxchg(volatile __local ulong *, ulong, ulong); #endif /** @@ -13827,29 +13814,29 @@ unsigned long __ovld atom_cmpxchg(volatile __local unsigned long *p, unsigned lo * location pointed by p. The function * returns old. */ -int __ovld atomic_min(volatile __global int *p, int val); -unsigned int __ovld atomic_min(volatile __global unsigned int *p, unsigned int val); -int __ovld atomic_min(volatile __local int *p, int val); -unsigned int __ovld atomic_min(volatile __local unsigned int *p, unsigned int val); +int __ovld atomic_min(volatile __global int *, int); +uint __ovld atomic_min(volatile __global uint *, uint); +int __ovld atomic_min(volatile __local int *, int); +uint __ovld atomic_min(volatile __local uint *, uint); #ifdef __OPENCL_CPP_VERSION__ -int __ovld atomic_min(volatile int *p, int val); -unsigned int __ovld atomic_min(volatile unsigned int *p, unsigned int val); +int __ovld atomic_min(volatile int *, int); +uint __ovld atomic_min(volatile uint *, uint); #endif #if defined(cl_khr_global_int32_extended_atomics) -int __ovld atom_min(volatile __global int *p, int val); -unsigned int __ovld atom_min(volatile __global unsigned int *p, unsigned int val); +int __ovld atom_min(volatile __global int *, int); +uint __ovld atom_min(volatile __global uint *, uint); #endif #if defined(cl_khr_local_int32_extended_atomics) -int __ovld atom_min(volatile __local int *p, int val); -unsigned int __ovld atom_min(volatile __local unsigned int *p, unsigned int val); +int __ovld atom_min(volatile __local int *, int); +uint __ovld atom_min(volatile __local uint *, uint); #endif #if defined(cl_khr_int64_extended_atomics) -long __ovld atom_min(volatile __global long *p, long val); -unsigned long __ovld atom_min(volatile __global unsigned long *p, unsigned long val); -long __ovld atom_min(volatile __local long *p, long val); -unsigned long __ovld atom_min(volatile __local unsigned long *p, unsigned long val); +long __ovld atom_min(volatile __global long *, long); +ulong __ovld atom_min(volatile __global ulong *, ulong); +long __ovld atom_min(volatile __local long *, long); +ulong __ovld atom_min(volatile __local ulong *, ulong); #endif /** @@ -13859,29 +13846,29 @@ unsigned long __ovld atom_min(volatile __local unsigned long *p, unsigned long v * location pointed by p. The function * returns old. */ -int __ovld atomic_max(volatile __global int *p, int val); -unsigned int __ovld atomic_max(volatile __global unsigned int *p, unsigned int val); -int __ovld atomic_max(volatile __local int *p, int val); -unsigned int __ovld atomic_max(volatile __local unsigned int *p, unsigned int val); +int __ovld atomic_max(volatile __global int *, int); +uint __ovld atomic_max(volatile __global uint *, uint); +int __ovld atomic_max(volatile __local int *, int); +uint __ovld atomic_max(volatile __local uint *, uint); #ifdef __OPENCL_CPP_VERSION__ -int __ovld atomic_max(volatile int *p, int val); -unsigned int __ovld atomic_max(volatile unsigned int *p, unsigned int val); +int __ovld atomic_max(volatile int *, int); +uint __ovld atomic_max(volatile uint *, uint); #endif #if defined(cl_khr_global_int32_extended_atomics) -int __ovld atom_max(volatile __global int *p, int val); -unsigned int __ovld atom_max(volatile __global unsigned int *p, unsigned int val); +int __ovld atom_max(volatile __global int *, int); +uint __ovld atom_max(volatile __global uint *, uint); #endif #if defined(cl_khr_local_int32_extended_atomics) -int __ovld atom_max(volatile __local int *p, int val); -unsigned int __ovld atom_max(volatile __local unsigned int *p, unsigned int val); +int __ovld atom_max(volatile __local int *, int); +uint __ovld atom_max(volatile __local uint *, uint); #endif #if defined(cl_khr_int64_extended_atomics) -long __ovld atom_max(volatile __global long *p, long val); -unsigned long __ovld atom_max(volatile __global unsigned long *p, unsigned long val); -long __ovld atom_max(volatile __local long *p, long val); -unsigned long __ovld atom_max(volatile __local unsigned long *p, unsigned long val); +long __ovld atom_max(volatile __global long *, long); +ulong __ovld atom_max(volatile __global ulong *, ulong); +long __ovld atom_max(volatile __local long *, long); +ulong __ovld atom_max(volatile __local ulong *, ulong); #endif /** @@ -13890,29 +13877,29 @@ unsigned long __ovld atom_max(volatile __local unsigned long *p, unsigned long v * (old & val) and store result at location * pointed by p. The function returns old. */ -int __ovld atomic_and(volatile __global int *p, int val); -unsigned int __ovld atomic_and(volatile __global unsigned int *p, unsigned int val); -int __ovld atomic_and(volatile __local int *p, int val); -unsigned int __ovld atomic_and(volatile __local unsigned int *p, unsigned int val); +int __ovld atomic_and(volatile __global int *, int); +uint __ovld atomic_and(volatile __global uint *, uint); +int __ovld atomic_and(volatile __local int *, int); +uint __ovld atomic_and(volatile __local uint *, uint); #ifdef __OPENCL_CPP_VERSION__ -int __ovld atomic_and(volatile int *p, int val); -unsigned int __ovld atomic_and(volatile unsigned int *p, unsigned int val); +int __ovld atomic_and(volatile int *, int); +uint __ovld atomic_and(volatile uint *, uint); #endif #if defined(cl_khr_global_int32_extended_atomics) -int __ovld atom_and(volatile __global int *p, int val); -unsigned int __ovld atom_and(volatile __global unsigned int *p, unsigned int val); +int __ovld atom_and(volatile __global int *, int); +uint __ovld atom_and(volatile __global uint *, uint); #endif #if defined(cl_khr_local_int32_extended_atomics) -int __ovld atom_and(volatile __local int *p, int val); -unsigned int __ovld atom_and(volatile __local unsigned int *p, unsigned int val); +int __ovld atom_and(volatile __local int *, int); +uint __ovld atom_and(volatile __local uint *, uint); #endif #if defined(cl_khr_int64_extended_atomics) -long __ovld atom_and(volatile __global long *p, long val); -unsigned long __ovld atom_and(volatile __global unsigned long *p, unsigned long val); -long __ovld atom_and(volatile __local long *p, long val); -unsigned long __ovld atom_and(volatile __local unsigned long *p, unsigned long val); +long __ovld atom_and(volatile __global long *, long); +ulong __ovld atom_and(volatile __global ulong *, ulong); +long __ovld atom_and(volatile __local long *, long); +ulong __ovld atom_and(volatile __local ulong *, ulong); #endif /** @@ -13921,29 +13908,29 @@ unsigned long __ovld atom_and(volatile __local unsigned long *p, unsigned long v * (old | val) and store result at location * pointed by p. The function returns old. */ -int __ovld atomic_or(volatile __global int *p, int val); -unsigned int __ovld atomic_or(volatile __global unsigned int *p, unsigned int val); -int __ovld atomic_or(volatile __local int *p, int val); -unsigned int __ovld atomic_or(volatile __local unsigned int *p, unsigned int val); +int __ovld atomic_or(volatile __global int *, int); +uint __ovld atomic_or(volatile __global uint *, uint); +int __ovld atomic_or(volatile __local int *, int); +uint __ovld atomic_or(volatile __local uint *, uint); #ifdef __OPENCL_CPP_VERSION__ -int __ovld atomic_or(volatile int *p, int val); -unsigned int __ovld atomic_or(volatile unsigned int *p, unsigned int val); +int __ovld atomic_or(volatile int *, int); +uint __ovld atomic_or(volatile uint *, uint); #endif #if defined(cl_khr_global_int32_extended_atomics) -int __ovld atom_or(volatile __global int *p, int val); -unsigned int __ovld atom_or(volatile __global unsigned int *p, unsigned int val); +int __ovld atom_or(volatile __global int *, int); +uint __ovld atom_or(volatile __global uint *, uint); #endif #if defined(cl_khr_local_int32_extended_atomics) -int __ovld atom_or(volatile __local int *p, int val); -unsigned int __ovld atom_or(volatile __local unsigned int *p, unsigned int val); +int __ovld atom_or(volatile __local int *, int); +uint __ovld atom_or(volatile __local uint *, uint); #endif #if defined(cl_khr_int64_extended_atomics) -long __ovld atom_or(volatile __global long *p, long val); -unsigned long __ovld atom_or(volatile __global unsigned long *p, unsigned long val); -long __ovld atom_or(volatile __local long *p, long val); -unsigned long __ovld atom_or(volatile __local unsigned long *p, unsigned long val); +long __ovld atom_or(volatile __global long *, long); +ulong __ovld atom_or(volatile __global ulong *, ulong); +long __ovld atom_or(volatile __local long *, long); +ulong __ovld atom_or(volatile __local ulong *, ulong); #endif /** @@ -13952,29 +13939,29 @@ unsigned long __ovld atom_or(volatile __local unsigned long *p, unsigned long va * (old ^ val) and store result at location * pointed by p. The function returns old. */ -int __ovld atomic_xor(volatile __global int *p, int val); -unsigned int __ovld atomic_xor(volatile __global unsigned int *p, unsigned int val); -int __ovld atomic_xor(volatile __local int *p, int val); -unsigned int __ovld atomic_xor(volatile __local unsigned int *p, unsigned int val); +int __ovld atomic_xor(volatile __global int *, int); +uint __ovld atomic_xor(volatile __global uint *, uint); +int __ovld atomic_xor(volatile __local int *, int); +uint __ovld atomic_xor(volatile __local uint *, uint); #ifdef __OPENCL_CPP_VERSION__ -int __ovld atomic_xor(volatile int *p, int val); -unsigned int __ovld atomic_xor(volatile unsigned int *p, unsigned int val); +int __ovld atomic_xor(volatile int *, int); +uint __ovld atomic_xor(volatile uint *, uint); #endif #if defined(cl_khr_global_int32_extended_atomics) -int __ovld atom_xor(volatile __global int *p, int val); -unsigned int __ovld atom_xor(volatile __global unsigned int *p, unsigned int val); +int __ovld atom_xor(volatile __global int *, int); +uint __ovld atom_xor(volatile __global uint *, uint); #endif #if defined(cl_khr_local_int32_extended_atomics) -int __ovld atom_xor(volatile __local int *p, int val); -unsigned int __ovld atom_xor(volatile __local unsigned int *p, unsigned int val); +int __ovld atom_xor(volatile __local int *, int); +uint __ovld atom_xor(volatile __local uint *, uint); #endif #if defined(cl_khr_int64_extended_atomics) -long __ovld atom_xor(volatile __global long *p, long val); -unsigned long __ovld atom_xor(volatile __global unsigned long *p, unsigned long val); -long __ovld atom_xor(volatile __local long *p, long val); -unsigned long __ovld atom_xor(volatile __local unsigned long *p, unsigned long val); +long __ovld atom_xor(volatile __global long *, long); +ulong __ovld atom_xor(volatile __global ulong *, ulong); +long __ovld atom_xor(volatile __local long *, long); +ulong __ovld atom_xor(volatile __local ulong *, ulong); #endif #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) @@ -13993,273 +13980,1342 @@ unsigned long __ovld atom_xor(volatile __local unsigned long *p, unsigned long v #endif // atomic_init() -void __ovld atomic_init(volatile atomic_int *object, int value); -void __ovld atomic_init(volatile atomic_uint *object, uint value); -void __ovld atomic_init(volatile atomic_float *object, float value); +#if defined(__opencl_c_generic_address_space) +void __ovld atomic_init(volatile atomic_int *, int); +void __ovld atomic_init(volatile atomic_uint *, uint); +void __ovld atomic_init(volatile atomic_float *, float); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +void __ovld atomic_init(volatile atomic_long *, long); +void __ovld atomic_init(volatile atomic_ulong *, ulong); +#ifdef cl_khr_fp64 +void __ovld atomic_init(volatile atomic_double *, double); +#endif //cl_khr_fp64 +#endif +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +void __ovld atomic_init(volatile __global atomic_int *, int); +void __ovld atomic_init(volatile __local atomic_int *, int); +void __ovld atomic_init(volatile __global atomic_uint *, uint); +void __ovld atomic_init(volatile __local atomic_uint *, uint); +void __ovld atomic_init(volatile __global atomic_float *, float); +void __ovld atomic_init(volatile __local atomic_float *, float); #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) -void __ovld atomic_init(volatile atomic_long *object, long value); -void __ovld atomic_init(volatile atomic_ulong *object, ulong value); +void __ovld atomic_init(volatile __global atomic_long *, long); +void __ovld atomic_init(volatile __local atomic_long *, long); +void __ovld atomic_init(volatile __global atomic_ulong *, ulong); +void __ovld atomic_init(volatile __local atomic_ulong *, ulong); #ifdef cl_khr_fp64 -void __ovld atomic_init(volatile atomic_double *object, double value); +void __ovld atomic_init(volatile __global atomic_double *, double); +void __ovld atomic_init(volatile __local atomic_double *, double); #endif //cl_khr_fp64 #endif +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) // atomic_work_item_fence() -void __ovld atomic_work_item_fence(cl_mem_fence_flags flags, memory_order order, memory_scope scope); +void __ovld atomic_work_item_fence(cl_mem_fence_flags, memory_order, memory_scope); // atomic_fetch() +// OpenCL v2.0 s6.13.11.7.5: +// add/sub: atomic type argument can be uintptr_t/intptr_t, value type argument can be ptrdiff_t. -int __ovld atomic_fetch_add(volatile atomic_int *object, int operand); -int __ovld atomic_fetch_add_explicit(volatile atomic_int *object, int operand, memory_order order); -int __ovld atomic_fetch_add_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope); -uint __ovld atomic_fetch_add(volatile atomic_uint *object, uint operand); -uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *object, uint operand, memory_order order); -uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope); -int __ovld atomic_fetch_sub(volatile atomic_int *object, int operand); -int __ovld atomic_fetch_sub_explicit(volatile atomic_int *object, int operand, memory_order order); -int __ovld atomic_fetch_sub_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope); -uint __ovld atomic_fetch_sub(volatile atomic_uint *object, uint operand); -uint __ovld atomic_fetch_sub_explicit(volatile atomic_uint *object, uint operand, memory_order order); -uint __ovld atomic_fetch_sub_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope); -int __ovld atomic_fetch_or(volatile atomic_int *object, int operand); -int __ovld atomic_fetch_or_explicit(volatile atomic_int *object, int operand, memory_order order); -int __ovld atomic_fetch_or_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope); -uint __ovld atomic_fetch_or(volatile atomic_uint *object, uint operand); -uint __ovld atomic_fetch_or_explicit(volatile atomic_uint *object, uint operand, memory_order order); -uint __ovld atomic_fetch_or_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope); -int __ovld atomic_fetch_xor(volatile atomic_int *object, int operand); -int __ovld atomic_fetch_xor_explicit(volatile atomic_int *object, int operand, memory_order order); -int __ovld atomic_fetch_xor_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope); -uint __ovld atomic_fetch_xor(volatile atomic_uint *object, uint operand); -uint __ovld atomic_fetch_xor_explicit(volatile atomic_uint *object, uint operand, memory_order order); -uint __ovld atomic_fetch_xor_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope); -int __ovld atomic_fetch_and(volatile atomic_int *object, int operand); -int __ovld atomic_fetch_and_explicit(volatile atomic_int *object, int operand, memory_order order); -int __ovld atomic_fetch_and_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope); -uint __ovld atomic_fetch_and(volatile atomic_uint *object, uint operand); -uint __ovld atomic_fetch_and_explicit(volatile atomic_uint *object, uint operand, memory_order order); -uint __ovld atomic_fetch_and_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope); -int __ovld atomic_fetch_min(volatile atomic_int *object, int operand); -int __ovld atomic_fetch_min_explicit(volatile atomic_int *object, int operand, memory_order order); -int __ovld atomic_fetch_min_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope); -uint __ovld atomic_fetch_min(volatile atomic_uint *object, uint operand); -uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, uint operand, memory_order order); -uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope); -int __ovld atomic_fetch_max(volatile atomic_int *object, int operand); -int __ovld atomic_fetch_max_explicit(volatile atomic_int *object, int operand, memory_order order); -int __ovld atomic_fetch_max_explicit(volatile atomic_int *object, int operand, memory_order order, memory_scope scope); -uint __ovld atomic_fetch_max(volatile atomic_uint *object, uint operand); -uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, uint operand, memory_order order); -uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *object, uint operand, memory_order order, memory_scope scope); - +#if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device) +#if defined(__opencl_c_generic_address_space) +int __ovld atomic_fetch_add(volatile atomic_int *, int); +uint __ovld atomic_fetch_add(volatile atomic_uint *, uint); +int __ovld atomic_fetch_sub(volatile atomic_int *, int); +uint __ovld atomic_fetch_sub(volatile atomic_uint *, uint); +int __ovld atomic_fetch_or(volatile atomic_int *, int); +uint __ovld atomic_fetch_or(volatile atomic_uint *, uint); +int __ovld atomic_fetch_xor(volatile atomic_int *, int); +uint __ovld atomic_fetch_xor(volatile atomic_uint *, uint); +int __ovld atomic_fetch_and(volatile atomic_int *, int); +uint __ovld atomic_fetch_and(volatile atomic_uint *, uint); +int __ovld atomic_fetch_min(volatile atomic_int *, int); +uint __ovld atomic_fetch_min(volatile atomic_uint *, uint); +int __ovld atomic_fetch_max(volatile atomic_int *, int); +uint __ovld atomic_fetch_max(volatile atomic_uint *, uint); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +long __ovld atomic_fetch_add(volatile atomic_long *, long); +ulong __ovld atomic_fetch_add(volatile atomic_ulong *, ulong); +long __ovld atomic_fetch_sub(volatile atomic_long *, long); +ulong __ovld atomic_fetch_sub(volatile atomic_ulong *, ulong); +long __ovld atomic_fetch_or(volatile atomic_long *, long); +ulong __ovld atomic_fetch_or(volatile atomic_ulong *, ulong); +long __ovld atomic_fetch_xor(volatile atomic_long *, long); +ulong __ovld atomic_fetch_xor(volatile atomic_ulong *, ulong); +long __ovld atomic_fetch_and(volatile atomic_long *, long); +ulong __ovld atomic_fetch_and(volatile atomic_ulong *, ulong); +long __ovld atomic_fetch_min(volatile atomic_long *, long); +ulong __ovld atomic_fetch_min(volatile atomic_ulong *, ulong); +long __ovld atomic_fetch_max(volatile atomic_long *, long); +ulong __ovld atomic_fetch_max(volatile atomic_ulong *, ulong); +uintptr_t __ovld atomic_fetch_add(volatile atomic_uintptr_t *, ptrdiff_t); +uintptr_t __ovld atomic_fetch_sub(volatile atomic_uintptr_t *, ptrdiff_t); +#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +int __ovld atomic_fetch_add(volatile __global atomic_int *, int); +int __ovld atomic_fetch_add(volatile __local atomic_int *, int); +uint __ovld atomic_fetch_add(volatile __global atomic_uint *, uint); +uint __ovld atomic_fetch_add(volatile __local atomic_uint *, uint); +int __ovld atomic_fetch_sub(volatile __global atomic_int *, int); +int __ovld atomic_fetch_sub(volatile __local atomic_int *, int); +uint __ovld atomic_fetch_sub(volatile __global atomic_uint *, uint); +uint __ovld atomic_fetch_sub(volatile __local atomic_uint *, uint); +int __ovld atomic_fetch_or(volatile __global atomic_int *, int); +int __ovld atomic_fetch_or(volatile __local atomic_int *, int); +uint __ovld atomic_fetch_or(volatile __global atomic_uint *, uint); +uint __ovld atomic_fetch_or(volatile __local atomic_uint *, uint); +int __ovld atomic_fetch_xor(volatile __global atomic_int *, int); +int __ovld atomic_fetch_xor(volatile __local atomic_int *, int); +uint __ovld atomic_fetch_xor(volatile __global atomic_uint *, uint); +uint __ovld atomic_fetch_xor(volatile __local atomic_uint *, uint); +int __ovld atomic_fetch_and(volatile __global atomic_int *, int); +int __ovld atomic_fetch_and(volatile __local atomic_int *, int); +uint __ovld atomic_fetch_and(volatile __global atomic_uint *, uint); +uint __ovld atomic_fetch_and(volatile __local atomic_uint *, uint); +int __ovld atomic_fetch_min(volatile __global atomic_int *, int); +int __ovld atomic_fetch_min(volatile __local atomic_int *, int); +uint __ovld atomic_fetch_min(volatile __global atomic_uint *, uint); +uint __ovld atomic_fetch_min(volatile __local atomic_uint *, uint); +int __ovld atomic_fetch_max(volatile __global atomic_int *, int); +int __ovld atomic_fetch_max(volatile __local atomic_int *, int); +uint __ovld atomic_fetch_max(volatile __global atomic_uint *, uint); +uint __ovld atomic_fetch_max(volatile __local atomic_uint *, uint); #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) -long __ovld atomic_fetch_add(volatile atomic_long *object, long operand); -long __ovld atomic_fetch_add_explicit(volatile atomic_long *object, long operand, memory_order order); -long __ovld atomic_fetch_add_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope); -ulong __ovld atomic_fetch_add(volatile atomic_ulong *object, ulong operand); -ulong __ovld atomic_fetch_add_explicit(volatile atomic_ulong *object, ulong operand, memory_order order); -ulong __ovld atomic_fetch_add_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope); -long __ovld atomic_fetch_sub(volatile atomic_long *object, long operand); -long __ovld atomic_fetch_sub_explicit(volatile atomic_long *object, long operand, memory_order order); -long __ovld atomic_fetch_sub_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope); -ulong __ovld atomic_fetch_sub(volatile atomic_ulong *object, ulong operand); -ulong __ovld atomic_fetch_sub_explicit(volatile atomic_ulong *object, ulong operand, memory_order order); -ulong __ovld atomic_fetch_sub_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope); -long __ovld atomic_fetch_or(volatile atomic_long *object, long operand); -long __ovld atomic_fetch_or_explicit(volatile atomic_long *object, long operand, memory_order order); -long __ovld atomic_fetch_or_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope); -ulong __ovld atomic_fetch_or(volatile atomic_ulong *object, ulong operand); -ulong __ovld atomic_fetch_or_explicit(volatile atomic_ulong *object, ulong operand, memory_order order); -ulong __ovld atomic_fetch_or_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope); -long __ovld atomic_fetch_xor(volatile atomic_long *object, long operand); -long __ovld atomic_fetch_xor_explicit(volatile atomic_long *object, long operand, memory_order order); -long __ovld atomic_fetch_xor_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope); -ulong __ovld atomic_fetch_xor(volatile atomic_ulong *object, ulong operand); -ulong __ovld atomic_fetch_xor_explicit(volatile atomic_ulong *object, ulong operand, memory_order order); -ulong __ovld atomic_fetch_xor_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope); -long __ovld atomic_fetch_and(volatile atomic_long *object, long operand); -long __ovld atomic_fetch_and_explicit(volatile atomic_long *object, long operand, memory_order order); -long __ovld atomic_fetch_and_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope); -ulong __ovld atomic_fetch_and(volatile atomic_ulong *object, ulong operand); -ulong __ovld atomic_fetch_and_explicit(volatile atomic_ulong *object, ulong operand, memory_order order); -ulong __ovld atomic_fetch_and_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope); -long __ovld atomic_fetch_min(volatile atomic_long *object, long operand); -long __ovld atomic_fetch_min_explicit(volatile atomic_long *object, long operand, memory_order order); -long __ovld atomic_fetch_min_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope); -ulong __ovld atomic_fetch_min(volatile atomic_ulong *object, ulong operand); -ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, ulong operand, memory_order order); -ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope); -long __ovld atomic_fetch_max(volatile atomic_long *object, long operand); -long __ovld atomic_fetch_max_explicit(volatile atomic_long *object, long operand, memory_order order); -long __ovld atomic_fetch_max_explicit(volatile atomic_long *object, long operand, memory_order order, memory_scope scope); -ulong __ovld atomic_fetch_max(volatile atomic_ulong *object, ulong operand); -ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, ulong operand, memory_order order); -ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *object, ulong operand, memory_order order, memory_scope scope); +long __ovld atomic_fetch_add(volatile __global atomic_long *, long); +long __ovld atomic_fetch_add(volatile __local atomic_long *, long); +ulong __ovld atomic_fetch_add(volatile __global atomic_ulong *, ulong); +ulong __ovld atomic_fetch_add(volatile __local atomic_ulong *, ulong); +uintptr_t __ovld atomic_fetch_add(volatile __global atomic_uintptr_t *, ptrdiff_t); +uintptr_t __ovld atomic_fetch_add(volatile __local atomic_uintptr_t *, ptrdiff_t); +long __ovld atomic_fetch_sub(volatile __global atomic_long *, long); +long __ovld atomic_fetch_sub(volatile __local atomic_long *, long); +ulong __ovld atomic_fetch_sub(volatile __global atomic_ulong *, ulong); +ulong __ovld atomic_fetch_sub(volatile __local atomic_ulong *, ulong); +uintptr_t __ovld atomic_fetch_sub(volatile __global atomic_uintptr_t *, ptrdiff_t); +uintptr_t __ovld atomic_fetch_sub(volatile __local atomic_uintptr_t *, ptrdiff_t); +long __ovld atomic_fetch_or(volatile __global atomic_long *, long); +long __ovld atomic_fetch_or(volatile __local atomic_long *, long); +ulong __ovld atomic_fetch_or(volatile __global atomic_ulong *, ulong); +ulong __ovld atomic_fetch_or(volatile __local atomic_ulong *, ulong); +uintptr_t __ovld atomic_fetch_or(volatile __global atomic_uintptr_t *, intptr_t); +uintptr_t __ovld atomic_fetch_or(volatile __local atomic_uintptr_t *, intptr_t); +intptr_t __ovld atomic_fetch_or(volatile __global atomic_intptr_t *, uintptr_t); +intptr_t __ovld atomic_fetch_or(volatile __local atomic_intptr_t *, uintptr_t); +long __ovld atomic_fetch_xor(volatile __global atomic_long *, long); +long __ovld atomic_fetch_xor(volatile __local atomic_long *, long); +ulong __ovld atomic_fetch_xor(volatile __global atomic_ulong *, ulong); +ulong __ovld atomic_fetch_xor(volatile __local atomic_ulong *, ulong); +uintptr_t __ovld atomic_fetch_xor(volatile __global atomic_uintptr_t *, intptr_t); +uintptr_t __ovld atomic_fetch_xor(volatile __local atomic_uintptr_t *, intptr_t); +intptr_t __ovld atomic_fetch_xor(volatile __global atomic_intptr_t *, uintptr_t); +intptr_t __ovld atomic_fetch_xor(volatile __local atomic_intptr_t *, uintptr_t); +long __ovld atomic_fetch_and(volatile __global atomic_long *, long); +long __ovld atomic_fetch_and(volatile __local atomic_long *, long); +ulong __ovld atomic_fetch_and(volatile __global atomic_ulong *, ulong); +ulong __ovld atomic_fetch_and(volatile __local atomic_ulong *, ulong); +uintptr_t __ovld atomic_fetch_and(volatile __global atomic_uintptr_t *, intptr_t); +uintptr_t __ovld atomic_fetch_and(volatile __local atomic_uintptr_t *, intptr_t); +intptr_t __ovld atomic_fetch_and(volatile __global atomic_intptr_t *, uintptr_t); +intptr_t __ovld atomic_fetch_and(volatile __local atomic_intptr_t *, uintptr_t); +long __ovld atomic_fetch_min(volatile __global atomic_long *, long); +long __ovld atomic_fetch_min(volatile __local atomic_long *, long); +ulong __ovld atomic_fetch_min(volatile __global atomic_ulong *, ulong); +ulong __ovld atomic_fetch_min(volatile __local atomic_ulong *, ulong); +uintptr_t __ovld atomic_fetch_min(volatile __global atomic_uintptr_t *, intptr_t); +uintptr_t __ovld atomic_fetch_min(volatile __local atomic_uintptr_t *, intptr_t); +intptr_t __ovld atomic_fetch_min(volatile __global atomic_intptr_t *, uintptr_t); +intptr_t __ovld atomic_fetch_min(volatile __local atomic_intptr_t *, uintptr_t); +long __ovld atomic_fetch_max(volatile __global atomic_long *, long); +long __ovld atomic_fetch_max(volatile __local atomic_long *, long); +ulong __ovld atomic_fetch_max(volatile __global atomic_ulong *, ulong); +ulong __ovld atomic_fetch_max(volatile __local atomic_ulong *, ulong); +uintptr_t __ovld atomic_fetch_max(volatile __global atomic_uintptr_t *, uintptr_t); +uintptr_t __ovld atomic_fetch_max(volatile __local atomic_uintptr_t *, uintptr_t); #endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +#endif -// OpenCL v2.0 s6.13.11.7.5: -// add/sub: atomic type argument can be uintptr_t/intptr_t, value type argument can be ptrdiff_t. +#if defined(__opencl_c_atomic_scope_device) +#if defined(__opencl_c_generic_address_space) +int __ovld atomic_fetch_add_explicit(volatile atomic_int *, int, memory_order); +uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *, uint, memory_order); +int __ovld atomic_fetch_sub_explicit(volatile atomic_int *, int, memory_order); +uint __ovld atomic_fetch_sub_explicit(volatile atomic_uint *, uint, memory_order); +int __ovld atomic_fetch_or_explicit(volatile atomic_int *, int, memory_order); +uint __ovld atomic_fetch_or_explicit(volatile atomic_uint *, uint, memory_order); +int __ovld atomic_fetch_xor_explicit(volatile atomic_int *, int, memory_order); +uint __ovld atomic_fetch_xor_explicit(volatile atomic_uint *, uint, memory_order); +int __ovld atomic_fetch_and_explicit(volatile atomic_int *, int, memory_order); +uint __ovld atomic_fetch_and_explicit(volatile atomic_uint *, uint, memory_order); +int __ovld atomic_fetch_min_explicit(volatile atomic_int *, int, memory_order); +uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *, uint, memory_order); +int __ovld atomic_fetch_max_explicit(volatile atomic_int *, int, memory_order); +uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *, uint, memory_order); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +long __ovld atomic_fetch_add_explicit(volatile atomic_long *, long, memory_order); +ulong __ovld atomic_fetch_add_explicit(volatile atomic_ulong *, ulong, memory_order); +long __ovld atomic_fetch_sub_explicit(volatile atomic_long *, long, memory_order); +ulong __ovld atomic_fetch_sub_explicit(volatile atomic_ulong *, ulong, memory_order); +long __ovld atomic_fetch_or_explicit(volatile atomic_long *, long, memory_order); +ulong __ovld atomic_fetch_or_explicit(volatile atomic_ulong *, ulong, memory_order); +long __ovld atomic_fetch_xor_explicit(volatile atomic_long *, long, memory_order); +ulong __ovld atomic_fetch_xor_explicit(volatile atomic_ulong *, ulong, memory_order); +long __ovld atomic_fetch_and_explicit(volatile atomic_long *, long, memory_order); +ulong __ovld atomic_fetch_and_explicit(volatile atomic_ulong *, ulong, memory_order); +long __ovld atomic_fetch_min_explicit(volatile atomic_long *, long, memory_order); +ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *, ulong, memory_order); +long __ovld atomic_fetch_max_explicit(volatile atomic_long *, long, memory_order); +ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *, ulong, memory_order); +uintptr_t __ovld atomic_fetch_add_explicit(volatile atomic_uintptr_t *, ptrdiff_t, memory_order); +uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *, ptrdiff_t, memory_order); +#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +int __ovld atomic_fetch_add_explicit(volatile __global atomic_int *, int, memory_order); +int __ovld atomic_fetch_add_explicit(volatile __local atomic_int *, int, memory_order); +uint __ovld atomic_fetch_add_explicit(volatile __global atomic_uint *, uint, memory_order); +uint __ovld atomic_fetch_add_explicit(volatile __local atomic_uint *, uint, memory_order); +int __ovld atomic_fetch_sub_explicit(volatile __global atomic_int *, int, memory_order); +int __ovld atomic_fetch_sub_explicit(volatile __local atomic_int *, int, memory_order); +uint __ovld atomic_fetch_sub_explicit(volatile __global atomic_uint *, uint, memory_order); +uint __ovld atomic_fetch_sub_explicit(volatile __local atomic_uint *, uint, memory_order); +int __ovld atomic_fetch_or_explicit(volatile __global atomic_int *, int, memory_order); +int __ovld atomic_fetch_or_explicit(volatile __local atomic_int *, int, memory_order); +uint __ovld atomic_fetch_or_explicit(volatile __global atomic_uint *, uint, memory_order); +uint __ovld atomic_fetch_or_explicit(volatile __local atomic_uint *, uint, memory_order); +int __ovld atomic_fetch_xor_explicit(volatile __global atomic_int *, int, memory_order); +int __ovld atomic_fetch_xor_explicit(volatile __local atomic_int *, int, memory_order); +uint __ovld atomic_fetch_xor_explicit(volatile __global atomic_uint *, uint, memory_order); +uint __ovld atomic_fetch_xor_explicit(volatile __local atomic_uint *, uint, memory_order); +int __ovld atomic_fetch_and_explicit(volatile __global atomic_int *, int, memory_order); +int __ovld atomic_fetch_and_explicit(volatile __local atomic_int *, int, memory_order); +uint __ovld atomic_fetch_and_explicit(volatile __global atomic_uint *, uint, memory_order); +uint __ovld atomic_fetch_and_explicit(volatile __local atomic_uint *, uint, memory_order); +int __ovld atomic_fetch_min_explicit(volatile __global atomic_int *, int, memory_order); +int __ovld atomic_fetch_min_explicit(volatile __local atomic_int *, int, memory_order); +uint __ovld atomic_fetch_min_explicit(volatile __global atomic_uint *, uint, memory_order); +uint __ovld atomic_fetch_min_explicit(volatile __local atomic_uint *, uint, memory_order); +int __ovld atomic_fetch_max_explicit(volatile __global atomic_int *, int, memory_order); +int __ovld atomic_fetch_max_explicit(volatile __local atomic_int *, int, memory_order); +uint __ovld atomic_fetch_max_explicit(volatile __global atomic_uint *, uint, memory_order); +uint __ovld atomic_fetch_max_explicit(volatile __local atomic_uint *, uint, memory_order); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +long __ovld atomic_fetch_add_explicit(volatile __global atomic_long *, long, memory_order); +long __ovld atomic_fetch_add_explicit(volatile __local atomic_long *, long, memory_order); +ulong __ovld atomic_fetch_add_explicit(volatile __global atomic_ulong *, ulong, memory_order); +ulong __ovld atomic_fetch_add_explicit(volatile __local atomic_ulong *, ulong, memory_order); +uintptr_t __ovld atomic_fetch_add_explicit(volatile __global atomic_uintptr_t *, ptrdiff_t, memory_order); +uintptr_t __ovld atomic_fetch_add_explicit(volatile __local atomic_uintptr_t *, ptrdiff_t, memory_order); +long __ovld atomic_fetch_sub_explicit(volatile __global atomic_long *, long, memory_order); +long __ovld atomic_fetch_sub_explicit(volatile __local atomic_long *, long, memory_order); +ulong __ovld atomic_fetch_sub_explicit(volatile __global atomic_ulong *, ulong, memory_order); +ulong __ovld atomic_fetch_sub_explicit(volatile __local atomic_ulong *, ulong, memory_order); +uintptr_t __ovld atomic_fetch_sub_explicit(volatile __global atomic_uintptr_t *, ptrdiff_t, memory_order); +uintptr_t __ovld atomic_fetch_sub_explicit(volatile __local atomic_uintptr_t *, ptrdiff_t, memory_order); +long __ovld atomic_fetch_or_explicit(volatile __global atomic_long *, long, memory_order); +long __ovld atomic_fetch_or_explicit(volatile __local atomic_long *, long, memory_order); +ulong __ovld atomic_fetch_or_explicit(volatile __global atomic_ulong *, ulong, memory_order); +ulong __ovld atomic_fetch_or_explicit(volatile __local atomic_ulong *, ulong, memory_order); +uintptr_t __ovld atomic_fetch_or_explicit(volatile __global atomic_uintptr_t *, intptr_t, memory_order); +uintptr_t __ovld atomic_fetch_or_explicit(volatile __local atomic_uintptr_t *, intptr_t, memory_order); +intptr_t __ovld atomic_fetch_or_explicit(volatile __global atomic_intptr_t *, uintptr_t, memory_order); +intptr_t __ovld atomic_fetch_or_explicit(volatile __local atomic_intptr_t *, uintptr_t, memory_order); +long __ovld atomic_fetch_xor_explicit(volatile __global atomic_long *, long, memory_order); +long __ovld atomic_fetch_xor_explicit(volatile __local atomic_long *, long, memory_order); +ulong __ovld atomic_fetch_xor_explicit(volatile __global atomic_ulong *, ulong, memory_order); +ulong __ovld atomic_fetch_xor_explicit(volatile __local atomic_ulong *, ulong, memory_order); +uintptr_t __ovld atomic_fetch_xor_explicit(volatile __global atomic_uintptr_t *, intptr_t, memory_order); +uintptr_t __ovld atomic_fetch_xor_explicit(volatile __local atomic_uintptr_t *, intptr_t, memory_order); +intptr_t __ovld atomic_fetch_xor_explicit(volatile __global atomic_intptr_t *, uintptr_t, memory_order); +intptr_t __ovld atomic_fetch_xor_explicit(volatile __local atomic_intptr_t *, uintptr_t, memory_order); +long __ovld atomic_fetch_and_explicit(volatile __global atomic_long *, long, memory_order); +long __ovld atomic_fetch_and_explicit(volatile __local atomic_long *, long, memory_order); +ulong __ovld atomic_fetch_and_explicit(volatile __global atomic_ulong *, ulong, memory_order); +ulong __ovld atomic_fetch_and_explicit(volatile __local atomic_ulong *, ulong, memory_order); +uintptr_t __ovld atomic_fetch_and_explicit(volatile __global atomic_uintptr_t *, intptr_t, memory_order); +uintptr_t __ovld atomic_fetch_and_explicit(volatile __local atomic_uintptr_t *, intptr_t, memory_order); +intptr_t __ovld atomic_fetch_and_explicit(volatile __global atomic_intptr_t *, uintptr_t, memory_order); +intptr_t __ovld atomic_fetch_and_explicit(volatile __local atomic_intptr_t *, uintptr_t, memory_order); +long __ovld atomic_fetch_min_explicit(volatile __global atomic_long *, long, memory_order); +long __ovld atomic_fetch_min_explicit(volatile __local atomic_long *, long, memory_order); +ulong __ovld atomic_fetch_min_explicit(volatile __global atomic_ulong *, ulong, memory_order); +ulong __ovld atomic_fetch_min_explicit(volatile __local atomic_ulong *, ulong, memory_order); +uintptr_t __ovld atomic_fetch_min_explicit(volatile __global atomic_uintptr_t *, intptr_t, memory_order); +uintptr_t __ovld atomic_fetch_min_explicit(volatile __local atomic_uintptr_t *, intptr_t, memory_order); +intptr_t __ovld atomic_fetch_min_explicit(volatile __global atomic_intptr_t *, uintptr_t, memory_order); +intptr_t __ovld atomic_fetch_min_explicit(volatile __local atomic_intptr_t *, uintptr_t, memory_order); +long __ovld atomic_fetch_max_explicit(volatile __global atomic_long *, long, memory_order); +long __ovld atomic_fetch_max_explicit(volatile __local atomic_long *, long, memory_order); +ulong __ovld atomic_fetch_max_explicit(volatile __global atomic_ulong *, ulong, memory_order); +ulong __ovld atomic_fetch_max_explicit(volatile __local atomic_ulong *, ulong, memory_order); +uintptr_t __ovld atomic_fetch_max_explicit(volatile __global atomic_uintptr_t *, uintptr_t, memory_order); +uintptr_t __ovld atomic_fetch_max_explicit(volatile __local atomic_uintptr_t *, uintptr_t, memory_order); +#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +#endif +#if defined(__opencl_c_generic_address_space) +int __ovld atomic_fetch_add_explicit(volatile atomic_int *, int, memory_order, memory_scope); +uint __ovld atomic_fetch_add_explicit(volatile atomic_uint *, uint, memory_order, memory_scope); +int __ovld atomic_fetch_sub_explicit(volatile atomic_int *, int, memory_order, memory_scope); +uint __ovld atomic_fetch_sub_explicit(volatile atomic_uint *, uint, memory_order, memory_scope); +int __ovld atomic_fetch_or_explicit(volatile atomic_int *, int, memory_order, memory_scope); +uint __ovld atomic_fetch_or_explicit(volatile atomic_uint *, uint, memory_order, memory_scope); +int __ovld atomic_fetch_xor_explicit(volatile atomic_int *, int, memory_order, memory_scope); +uint __ovld atomic_fetch_xor_explicit(volatile atomic_uint *, uint, memory_order, memory_scope); +int __ovld atomic_fetch_and_explicit(volatile atomic_int *, int, memory_order, memory_scope); +uint __ovld atomic_fetch_and_explicit(volatile atomic_uint *, uint, memory_order, memory_scope); +int __ovld atomic_fetch_min_explicit(volatile atomic_int *, int, memory_order, memory_scope); +uint __ovld atomic_fetch_min_explicit(volatile atomic_uint *, uint, memory_order, memory_scope); +int __ovld atomic_fetch_max_explicit(volatile atomic_int *, int, memory_order, memory_scope); +uint __ovld atomic_fetch_max_explicit(volatile atomic_uint *, uint, memory_order, memory_scope); #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) -uintptr_t __ovld atomic_fetch_add(volatile atomic_uintptr_t *object, ptrdiff_t operand); -uintptr_t __ovld atomic_fetch_add_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order); -uintptr_t __ovld atomic_fetch_add_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope); -uintptr_t __ovld atomic_fetch_sub(volatile atomic_uintptr_t *object, ptrdiff_t operand); -uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order); -uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *object, ptrdiff_t operand, memory_order order, memory_scope scope); +long __ovld atomic_fetch_add_explicit(volatile atomic_long *, long, memory_order, memory_scope); +ulong __ovld atomic_fetch_add_explicit(volatile atomic_ulong *, ulong, memory_order, memory_scope); +long __ovld atomic_fetch_sub_explicit(volatile atomic_long *, long, memory_order, memory_scope); +ulong __ovld atomic_fetch_sub_explicit(volatile atomic_ulong *, ulong, memory_order, memory_scope); +long __ovld atomic_fetch_or_explicit(volatile atomic_long *, long, memory_order, memory_scope); +ulong __ovld atomic_fetch_or_explicit(volatile atomic_ulong *, ulong, memory_order, memory_scope); +long __ovld atomic_fetch_xor_explicit(volatile atomic_long *, long, memory_order, memory_scope); +ulong __ovld atomic_fetch_xor_explicit(volatile atomic_ulong *, ulong, memory_order, memory_scope); +long __ovld atomic_fetch_and_explicit(volatile atomic_long *, long, memory_order, memory_scope); +ulong __ovld atomic_fetch_and_explicit(volatile atomic_ulong *, ulong, memory_order, memory_scope); +long __ovld atomic_fetch_min_explicit(volatile atomic_long *, long, memory_order, memory_scope); +ulong __ovld atomic_fetch_min_explicit(volatile atomic_ulong *, ulong, memory_order, memory_scope); +long __ovld atomic_fetch_max_explicit(volatile atomic_long *, long, memory_order, memory_scope); +ulong __ovld atomic_fetch_max_explicit(volatile atomic_ulong *, ulong, memory_order, memory_scope); +uintptr_t __ovld atomic_fetch_add_explicit(volatile atomic_uintptr_t *, ptrdiff_t, memory_order, memory_scope); +uintptr_t __ovld atomic_fetch_sub_explicit(volatile atomic_uintptr_t *, ptrdiff_t, memory_order, memory_scope); #endif +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +int __ovld atomic_fetch_add_explicit(volatile __global atomic_int *, int, memory_order, memory_scope); +int __ovld atomic_fetch_add_explicit(volatile __local atomic_int *, int, memory_order, memory_scope); +uint __ovld atomic_fetch_add_explicit(volatile __global atomic_uint *, uint, memory_order, memory_scope); +uint __ovld atomic_fetch_add_explicit(volatile __local atomic_uint *, uint, memory_order, memory_scope); +int __ovld atomic_fetch_sub_explicit(volatile __global atomic_int *, int, memory_order, memory_scope); +int __ovld atomic_fetch_sub_explicit(volatile __local atomic_int *, int, memory_order, memory_scope); +uint __ovld atomic_fetch_sub_explicit(volatile __global atomic_uint *, uint, memory_order, memory_scope); +uint __ovld atomic_fetch_sub_explicit(volatile __local atomic_uint *, uint, memory_order, memory_scope); +int __ovld atomic_fetch_or_explicit(volatile __global atomic_int *, int, memory_order, memory_scope); +int __ovld atomic_fetch_or_explicit(volatile __local atomic_int *, int, memory_order, memory_scope); +uint __ovld atomic_fetch_or_explicit(volatile __global atomic_uint *, uint, memory_order, memory_scope); +uint __ovld atomic_fetch_or_explicit(volatile __local atomic_uint *, uint, memory_order, memory_scope); +int __ovld atomic_fetch_xor_explicit(volatile __global atomic_int *, int, memory_order, memory_scope); +int __ovld atomic_fetch_xor_explicit(volatile __local atomic_int *, int, memory_order, memory_scope); +uint __ovld atomic_fetch_xor_explicit(volatile __global atomic_uint *, uint, memory_order, memory_scope); +uint __ovld atomic_fetch_xor_explicit(volatile __local atomic_uint *, uint, memory_order, memory_scope); +int __ovld atomic_fetch_and_explicit(volatile __global atomic_int *, int, memory_order, memory_scope); +int __ovld atomic_fetch_and_explicit(volatile __local atomic_int *, int, memory_order, memory_scope); +uint __ovld atomic_fetch_and_explicit(volatile __global atomic_uint *, uint, memory_order, memory_scope); +uint __ovld atomic_fetch_and_explicit(volatile __local atomic_uint *, uint, memory_order, memory_scope); +int __ovld atomic_fetch_min_explicit(volatile __global atomic_int *, int, memory_order, memory_scope); +int __ovld atomic_fetch_min_explicit(volatile __local atomic_int *, int, memory_order, memory_scope); +uint __ovld atomic_fetch_min_explicit(volatile __global atomic_uint *, uint, memory_order, memory_scope); +uint __ovld atomic_fetch_min_explicit(volatile __local atomic_uint *, uint, memory_order, memory_scope); +int __ovld atomic_fetch_max_explicit(volatile __global atomic_int *, int, memory_order, memory_scope); +int __ovld atomic_fetch_max_explicit(volatile __local atomic_int *, int, memory_order, memory_scope); +uint __ovld atomic_fetch_max_explicit(volatile __global atomic_uint *, uint, memory_order, memory_scope); +uint __ovld atomic_fetch_max_explicit(volatile __local atomic_uint *, uint, memory_order, memory_scope); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +long __ovld atomic_fetch_add_explicit(volatile __global atomic_long *, long, memory_order, memory_scope); +long __ovld atomic_fetch_add_explicit(volatile __local atomic_long *, long, memory_order, memory_scope); +uintptr_t __ovld atomic_fetch_add_explicit(volatile __global atomic_uintptr_t *, ptrdiff_t, memory_order, memory_scope); +uintptr_t __ovld atomic_fetch_add_explicit(volatile __local atomic_uintptr_t *, ptrdiff_t, memory_order, memory_scope); +ulong __ovld atomic_fetch_add_explicit(volatile __global atomic_ulong *, ulong, memory_order, memory_scope); +ulong __ovld atomic_fetch_add_explicit(volatile __local atomic_ulong *, ulong, memory_order, memory_scope); +long __ovld atomic_fetch_sub_explicit(volatile __global atomic_long *, long, memory_order, memory_scope); +long __ovld atomic_fetch_sub_explicit(volatile __local atomic_long *, long, memory_order, memory_scope); +ulong __ovld atomic_fetch_sub_explicit(volatile __global atomic_ulong *, ulong, memory_order, memory_scope); +ulong __ovld atomic_fetch_sub_explicit(volatile __local atomic_ulong *, ulong, memory_order, memory_scope); +uintptr_t __ovld atomic_fetch_sub_explicit(volatile __global atomic_uintptr_t *, ptrdiff_t, memory_order, memory_scope); +uintptr_t __ovld atomic_fetch_sub_explicit(volatile __local atomic_uintptr_t *, ptrdiff_t, memory_order, memory_scope); +long __ovld atomic_fetch_or_explicit(volatile __global atomic_long *, long, memory_order, memory_scope); +long __ovld atomic_fetch_or_explicit(volatile __local atomic_long *, long, memory_order, memory_scope); +ulong __ovld atomic_fetch_or_explicit(volatile __global atomic_ulong *, ulong, memory_order, memory_scope); +ulong __ovld atomic_fetch_or_explicit(volatile __local atomic_ulong *, ulong, memory_order, memory_scope); +uintptr_t __ovld atomic_fetch_or_explicit(volatile __global atomic_uintptr_t *, intptr_t, memory_order, memory_scope); +uintptr_t __ovld atomic_fetch_or_explicit(volatile __local atomic_uintptr_t *, intptr_t, memory_order, memory_scope); +intptr_t __ovld atomic_fetch_or_explicit(volatile __global atomic_intptr_t *, uintptr_t, memory_order, memory_scope); +intptr_t __ovld atomic_fetch_or_explicit(volatile __local atomic_intptr_t *, uintptr_t, memory_order, memory_scope); +long __ovld atomic_fetch_xor_explicit(volatile __global atomic_long *, long, memory_order, memory_scope); +long __ovld atomic_fetch_xor_explicit(volatile __local atomic_long *, long, memory_order, memory_scope); +ulong __ovld atomic_fetch_xor_explicit(volatile __global atomic_ulong *, ulong, memory_order, memory_scope); +ulong __ovld atomic_fetch_xor_explicit(volatile __local atomic_ulong *, ulong, memory_order, memory_scope); +uintptr_t __ovld atomic_fetch_xor_explicit(volatile __global atomic_uintptr_t *, intptr_t, memory_order, memory_scope); +uintptr_t __ovld atomic_fetch_xor_explicit(volatile __local atomic_uintptr_t *, intptr_t, memory_order, memory_scope); +intptr_t __ovld atomic_fetch_xor_explicit(volatile __global atomic_intptr_t *, uintptr_t, memory_order, memory_scope); +intptr_t __ovld atomic_fetch_xor_explicit(volatile __local atomic_intptr_t *, uintptr_t, memory_order, memory_scope); +long __ovld atomic_fetch_and_explicit(volatile __global atomic_long *, long, memory_order, memory_scope); +long __ovld atomic_fetch_and_explicit(volatile __local atomic_long *, long, memory_order, memory_scope); +ulong __ovld atomic_fetch_and_explicit(volatile __global atomic_ulong *, ulong, memory_order, memory_scope); +ulong __ovld atomic_fetch_and_explicit(volatile __local atomic_ulong *, ulong, memory_order, memory_scope); +uintptr_t __ovld atomic_fetch_and_explicit(volatile __global atomic_uintptr_t *, intptr_t, memory_order, memory_scope); +uintptr_t __ovld atomic_fetch_and_explicit(volatile __local atomic_uintptr_t *, intptr_t, memory_order, memory_scope); +intptr_t __ovld atomic_fetch_and_explicit(volatile __global atomic_intptr_t *, uintptr_t, memory_order, memory_scope); +intptr_t __ovld atomic_fetch_and_explicit(volatile __local atomic_intptr_t *, uintptr_t, memory_order, memory_scope); +long __ovld atomic_fetch_min_explicit(volatile __global atomic_long *, long, memory_order, memory_scope); +long __ovld atomic_fetch_min_explicit(volatile __local atomic_long *, long, memory_order, memory_scope); +ulong __ovld atomic_fetch_min_explicit(volatile __global atomic_ulong *, ulong, memory_order, memory_scope); +ulong __ovld atomic_fetch_min_explicit(volatile __local atomic_ulong *, ulong, memory_order, memory_scope); +uintptr_t __ovld atomic_fetch_min_explicit(volatile __global atomic_uintptr_t *, intptr_t, memory_order, memory_scope); +uintptr_t __ovld atomic_fetch_min_explicit(volatile __local atomic_uintptr_t *, intptr_t, memory_order, memory_scope); +intptr_t __ovld atomic_fetch_min_explicit(volatile __global atomic_intptr_t *, uintptr_t, memory_order, memory_scope); +intptr_t __ovld atomic_fetch_min_explicit(volatile __local atomic_intptr_t *, uintptr_t, memory_order, memory_scope); +long __ovld atomic_fetch_max_explicit(volatile __global atomic_long *, long, memory_order, memory_scope); +long __ovld atomic_fetch_max_explicit(volatile __local atomic_long *, long, memory_order, memory_scope); +ulong __ovld atomic_fetch_max_explicit(volatile __global atomic_ulong *, ulong, memory_order, memory_scope); +ulong __ovld atomic_fetch_max_explicit(volatile __local atomic_ulong *, ulong, memory_order, memory_scope); +uintptr_t __ovld atomic_fetch_max_explicit(volatile __global atomic_uintptr_t *, uintptr_t, memory_order, memory_scope); +uintptr_t __ovld atomic_fetch_max_explicit(volatile __local atomic_uintptr_t *, uintptr_t, memory_order, memory_scope); +#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) + +// The functionality added by cl_ext_float_atomics extension +#if defined(cl_ext_float_atomics) + +#if defined(__opencl_c_ext_fp16_global_atomic_load_store) +void __ovld atomic_store(volatile __global atomic_half *, half); +void __ovld atomic_store_explicit(volatile __global atomic_half *, + half, memory_order); +void __ovld atomic_store_explicit(volatile __global atomic_half *, + half, memory_order, memory_scope); +half __ovld atomic_load(volatile __global atomic_half *); +half __ovld atomic_load_explicit(volatile __global atomic_half *, + memory_order); +half __ovld atomic_load_explicit(volatile __global atomic_half *, + memory_order, memory_scope); +half __ovld atomic_exchange(volatile __global atomic_half *, half); +half __ovld atomic_exchange_explicit(volatile __global atomic_half *, + half, memory_order); +half __ovld atomic_exchange_explicit(volatile __global atomic_half *, + half, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp16_global_atomic_load_store) + +#if defined(__opencl_c_ext_fp16_local_atomic_load_store) +void __ovld atomic_store(volatile __local atomic_half *, half); +void __ovld atomic_store_explicit(volatile __local atomic_half *, + half, memory_order); +void __ovld atomic_store_explicit(volatile __local atomic_half *, + half, memory_order, memory_scope); +half __ovld atomic_load(volatile __local atomic_half *); +half __ovld atomic_load_explicit(volatile __local atomic_half *, + memory_order); +half __ovld atomic_load_explicit(volatile __local atomic_half *, + memory_order, memory_scope); +half __ovld atomic_exchange(volatile __local atomic_half *, half); +half __ovld atomic_exchange_explicit(volatile __local atomic_half *, + half, memory_order); +half __ovld atomic_exchange_explicit(volatile __local atomic_half *, + half, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp16_local_atomic_load_store) + +#if defined(__opencl_c_ext_fp16_global_atomic_load_store) && \ + defined(__opencl_c_ext_fp16_local_atomic_load_store) +void __ovld atomic_store(volatile atomic_half *, half); +void __ovld atomic_store_explicit(volatile atomic_half *, half, + memory_order); +void __ovld atomic_store_explicit(volatile atomic_half *, half, + memory_order, memory_scope); +half __ovld atomic_load(volatile atomic_half *); +half __ovld atomic_load_explicit(volatile atomic_half *, + memory_order); +half __ovld atomic_load_explicit(volatile atomic_half *, + memory_order, memory_scope); +half __ovld atomic_exchange(volatile atomic_half *, half); +half __ovld atomic_exchange_explicit(volatile atomic_half *, half, + memory_order); +half __ovld atomic_exchange_explicit(volatile atomic_half *, half, + memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp16_global_atomic_load_store) && + // defined(__opencl_c_ext_fp16_local_atomic_load_store) + +#if defined(__opencl_c_ext_fp16_global_atomic_min_max) +half __ovld atomic_fetch_min(volatile __global atomic_half *, half); +half __ovld atomic_fetch_max(volatile __global atomic_half *, half); +half __ovld atomic_fetch_min_explicit(volatile __global atomic_half *, + half, memory_order); +half __ovld atomic_fetch_max_explicit(volatile __global atomic_half *, + half, memory_order); +half __ovld atomic_fetch_min_explicit(volatile __global atomic_half *, + half, memory_order, memory_scope); +half __ovld atomic_fetch_max_explicit(volatile __global atomic_half *, + half, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp16_global_atomic_min_max) + +#if defined(__opencl_c_ext_fp16_local_atomic_min_max) +half __ovld atomic_fetch_min(volatile __local atomic_half *, half); +half __ovld atomic_fetch_max(volatile __local atomic_half *, half); +half __ovld atomic_fetch_min_explicit(volatile __local atomic_half *, + half, memory_order); +half __ovld atomic_fetch_max_explicit(volatile __local atomic_half *, + half, memory_order); +half __ovld atomic_fetch_min_explicit(volatile __local atomic_half *, + half, memory_order, memory_scope); +half __ovld atomic_fetch_max_explicit(volatile __local atomic_half *, + half, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp16_local_atomic_min_max) + +#if defined(__opencl_c_ext_fp16_global_atomic_min_max) && \ + defined(__opencl_c_ext_fp16_local_atomic_min_max) +half __ovld atomic_fetch_min(volatile atomic_half *, half); +half __ovld atomic_fetch_max(volatile atomic_half *, half); +half __ovld atomic_fetch_min_explicit(volatile atomic_half *, + half, memory_order); +half __ovld atomic_fetch_max_explicit(volatile atomic_half *, + half, memory_order); +half __ovld atomic_fetch_min_explicit(volatile atomic_half *, + half, memory_order, memory_scope); +half __ovld atomic_fetch_max_explicit(volatile atomic_half *, + half, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp16_global_atomic_min_max) && \ + defined(__opencl_c_ext_fp16_local_atomic_min_max) + +#if defined(__opencl_c_ext_fp32_global_atomic_min_max) +float __ovld atomic_fetch_min(volatile __global atomic_float *, float); +float __ovld atomic_fetch_max(volatile __global atomic_float *, float); +float __ovld atomic_fetch_min_explicit(volatile __global atomic_float *, + float, memory_order); +float __ovld atomic_fetch_max_explicit(volatile __global atomic_float *, + float, memory_order); +float __ovld atomic_fetch_min_explicit(volatile __global atomic_float *, + float, memory_order, memory_scope); +float __ovld atomic_fetch_max_explicit(volatile __global atomic_float *, + float, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp32_global_atomic_min_max) + +#if defined(__opencl_c_ext_fp32_local_atomic_min_max) +float __ovld atomic_fetch_min(volatile __local atomic_float *, float); +float __ovld atomic_fetch_max(volatile __local atomic_float *, float); +float __ovld atomic_fetch_min_explicit(volatile __local atomic_float *, + float, memory_order); +float __ovld atomic_fetch_max_explicit(volatile __local atomic_float *, + float, memory_order); +float __ovld atomic_fetch_min_explicit(volatile __local atomic_float *, + float, memory_order, memory_scope); +float __ovld atomic_fetch_max_explicit(volatile __local atomic_float *, + float, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp32_local_atomic_min_max) + +#if defined(__opencl_c_ext_fp32_global_atomic_min_max) && \ + defined(__opencl_c_ext_fp32_local_atomic_min_max) +float __ovld atomic_fetch_min(volatile atomic_float *, float); +float __ovld atomic_fetch_max(volatile atomic_float *, float); +float __ovld atomic_fetch_min_explicit(volatile atomic_float *, + float, memory_order); +float __ovld atomic_fetch_max_explicit(volatile atomic_float *, + float, memory_order); +float __ovld atomic_fetch_min_explicit(volatile atomic_float *, + float, memory_order, memory_scope); +float __ovld atomic_fetch_max_explicit(volatile atomic_float *, + float, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp32_global_atomic_min_max) && \ + defined(__opencl_c_ext_fp32_local_atomic_min_max) + +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#if defined(__opencl_c_ext_fp64_global_atomic_min_max) +double __ovld atomic_fetch_min(volatile __global atomic_double *, double); +double __ovld atomic_fetch_max(volatile __global atomic_double *, double); +double __ovld atomic_fetch_min_explicit(volatile __global atomic_double *, + double, memory_order); +double __ovld atomic_fetch_max_explicit(volatile __global atomic_double *, + double, memory_order); +double __ovld atomic_fetch_min_explicit(volatile __global atomic_double *, + double, memory_order, memory_scope); +double __ovld atomic_fetch_max_explicit(volatile __global atomic_double *, + double, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp64_global_atomic_min_max) + +#if defined(__opencl_c_ext_fp64_local_atomic_min_max) +double __ovld atomic_fetch_min(volatile __local atomic_double *, double); +double __ovld atomic_fetch_max(volatile __local atomic_double *, double); +double __ovld atomic_fetch_min_explicit(volatile __local atomic_double *, + double, memory_order); +double __ovld atomic_fetch_max_explicit(volatile __local atomic_double *, + double, memory_order); +double __ovld atomic_fetch_min_explicit(volatile __local atomic_double *, + double, memory_order, memory_scope); +double __ovld atomic_fetch_max_explicit(volatile __local atomic_double *, + double, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp64_local_atomic_min_max) + +#if defined(__opencl_c_ext_fp64_global_atomic_min_max) && \ + defined(__opencl_c_ext_fp64_local_atomic_min_max) +double __ovld atomic_fetch_min(volatile atomic_double *, double); +double __ovld atomic_fetch_max(volatile atomic_double *, double); +double __ovld atomic_fetch_min_explicit(volatile atomic_double *, + double, memory_order); +double __ovld atomic_fetch_max_explicit(volatile atomic_double *, + double, memory_order); +double __ovld atomic_fetch_min_explicit(volatile atomic_double *, + double, memory_order, memory_scope); +double __ovld atomic_fetch_max_explicit(volatile atomic_double *, + double, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp64_global_atomic_min_max) && \ + defined(__opencl_c_ext_fp64_local_atomic_min_max) +#endif // defined(cl_khr_int64_base_atomics) && \ + defined(cl_khr_int64_extended_atomics) + +#if defined(__opencl_c_ext_fp16_global_atomic_add) +half __ovld atomic_fetch_add(volatile __global atomic_half *, half); +half __ovld atomic_fetch_sub(volatile __global atomic_half *, half); +half __ovld atomic_fetch_add_explicit(volatile __global atomic_half *, + half, memory_order); +half __ovld atomic_fetch_sub_explicit(volatile __global atomic_half *, + half, memory_order); +half __ovld atomic_fetch_add_explicit(volatile __global atomic_half *, + half, memory_order, memory_scope); +half __ovld atomic_fetch_sub_explicit(volatile __global atomic_half *, + half, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp16_global_atomic_add) + +#if defined(__opencl_c_ext_fp16_local_atomic_add) +half __ovld atomic_fetch_add(volatile __local atomic_half *, half); +half __ovld atomic_fetch_sub(volatile __local atomic_half *, half); +half __ovld atomic_fetch_add_explicit(volatile __local atomic_half *, + half, memory_order); +half __ovld atomic_fetch_sub_explicit(volatile __local atomic_half *, + half, memory_order); +half __ovld atomic_fetch_add_explicit(volatile __local atomic_half *, + half, memory_order, memory_scope); +half __ovld atomic_fetch_sub_explicit(volatile __local atomic_half *, + half, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp16_local_atomic_add) + +#if defined(__opencl_c_ext_fp16_global_atomic_add) && \ + defined(__opencl_c_ext_fp16_local_atomic_add) +half __ovld atomic_fetch_add(volatile atomic_half *, half); +half __ovld atomic_fetch_sub(volatile atomic_half *, half); +half __ovld atomic_fetch_add_explicit(volatile atomic_half *, + half, memory_order); +half __ovld atomic_fetch_sub_explicit(volatile atomic_half *, + half, memory_order); +half __ovld atomic_fetch_add_explicit(volatile atomic_half *, + half, memory_order, memory_scope); +half __ovld atomic_fetch_sub_explicit(volatile atomic_half *, + half, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp16_global_atomic_add) && \ + defined(__opencl_c_ext_fp16_local_atomic_add) + +#if defined(__opencl_c_ext_fp32_global_atomic_add) +float __ovld atomic_fetch_add(volatile __global atomic_float *, float); +float __ovld atomic_fetch_sub(volatile __global atomic_float *, float); +float __ovld atomic_fetch_add_explicit(volatile __global atomic_float *, + float, memory_order); +float __ovld atomic_fetch_sub_explicit(volatile __global atomic_float *, + float, memory_order); +float __ovld atomic_fetch_add_explicit(volatile __global atomic_float *, + float, memory_order, memory_scope); +float __ovld atomic_fetch_sub_explicit(volatile __global atomic_float *, + float, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp32_global_atomic_add) + +#if defined(__opencl_c_ext_fp32_local_atomic_add) +float __ovld atomic_fetch_add(volatile __local atomic_float *, float); +float __ovld atomic_fetch_sub(volatile __local atomic_float *, float); +float __ovld atomic_fetch_add_explicit(volatile __local atomic_float *, + float, memory_order); +float __ovld atomic_fetch_sub_explicit(volatile __local atomic_float *, + float, memory_order); +float __ovld atomic_fetch_add_explicit(volatile __local atomic_float *, + float, memory_order, memory_scope); +float __ovld atomic_fetch_sub_explicit(volatile __local atomic_float *, + float, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp32_local_atomic_add) + +#if defined(__opencl_c_ext_fp32_global_atomic_add) && \ + defined(__opencl_c_ext_fp32_local_atomic_add) +float __ovld atomic_fetch_add(volatile atomic_float *, float); +float __ovld atomic_fetch_sub(volatile atomic_float *, float); +float __ovld atomic_fetch_add_explicit(volatile atomic_float *, + float, memory_order); +float __ovld atomic_fetch_sub_explicit(volatile atomic_float *, + float, memory_order); +float __ovld atomic_fetch_add_explicit(volatile atomic_float *, + float, memory_order, memory_scope); +float __ovld atomic_fetch_sub_explicit(volatile atomic_float *, + float, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp32_global_atomic_add) && \ + defined(__opencl_c_ext_fp32_local_atomic_add) + +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#if defined(__opencl_c_ext_fp64_global_atomic_add) +double __ovld atomic_fetch_add(volatile __global atomic_double *, double); +double __ovld atomic_fetch_sub(volatile __global atomic_double *, double); +double __ovld atomic_fetch_add_explicit(volatile __global atomic_double *, + double, memory_order); +double __ovld atomic_fetch_sub_explicit(volatile __global atomic_double *, + double, memory_order); +double __ovld atomic_fetch_add_explicit(volatile __global atomic_double *, + double, memory_order, memory_scope); +double __ovld atomic_fetch_sub_explicit(volatile __global atomic_double *, + double, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp64_global_atomic_add) + +#if defined(__opencl_c_ext_fp64_local_atomic_add) +double __ovld atomic_fetch_add(volatile __local atomic_double *, double); +double __ovld atomic_fetch_sub(volatile __local atomic_double *, double); +double __ovld atomic_fetch_add_explicit(volatile __local atomic_double *, + double, memory_order); +double __ovld atomic_fetch_sub_explicit(volatile __local atomic_double *, + double, memory_order); +double __ovld atomic_fetch_add_explicit(volatile __local atomic_double *, + double, memory_order, memory_scope); +double __ovld atomic_fetch_sub_explicit(volatile __local atomic_double *, + double, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp64_local_atomic_add) + +#if defined(__opencl_c_ext_fp64_global_atomic_add) && \ + defined(__opencl_c_ext_fp64_local_atomic_add) +double __ovld atomic_fetch_add(volatile atomic_double *, double); +double __ovld atomic_fetch_sub(volatile atomic_double *, double); +double __ovld atomic_fetch_add_explicit(volatile atomic_double *, + double, memory_order); +double __ovld atomic_fetch_sub_explicit(volatile atomic_double *, + double, memory_order); +double __ovld atomic_fetch_add_explicit(volatile atomic_double *, + double, memory_order, memory_scope); +double __ovld atomic_fetch_sub_explicit(volatile atomic_double *, + double, memory_order, memory_scope); +#endif // defined(__opencl_c_ext_fp64_global_atomic_add) && \ + defined(__opencl_c_ext_fp64_local_atomic_add) +#endif // defined(cl_khr_int64_base_atomics) && \ + defined(cl_khr_int64_extended_atomics) + +#endif // cl_ext_float_atomics // atomic_store() -void __ovld atomic_store(volatile atomic_int *object, int desired); -void __ovld atomic_store_explicit(volatile atomic_int *object, int desired, memory_order order); -void __ovld atomic_store_explicit(volatile atomic_int *object, int desired, memory_order order, memory_scope scope); -void __ovld atomic_store(volatile atomic_uint *object, uint desired); -void __ovld atomic_store_explicit(volatile atomic_uint *object, uint desired, memory_order order); -void __ovld atomic_store_explicit(volatile atomic_uint *object, uint desired, memory_order order, memory_scope scope); -void __ovld atomic_store(volatile atomic_float *object, float desired); -void __ovld atomic_store_explicit(volatile atomic_float *object, float desired, memory_order order); -void __ovld atomic_store_explicit(volatile atomic_float *object, float desired, memory_order order, memory_scope scope); +#if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device) +#if defined(__opencl_c_generic_address_space) +void __ovld atomic_store(volatile atomic_int *, int); +void __ovld atomic_store(volatile atomic_uint *, uint); +void __ovld atomic_store(volatile atomic_float *, float); + #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) #ifdef cl_khr_fp64 -void __ovld atomic_store(volatile atomic_double *object, double desired); -void __ovld atomic_store_explicit(volatile atomic_double *object, double desired, memory_order order); -void __ovld atomic_store_explicit(volatile atomic_double *object, double desired, memory_order order, memory_scope scope); +void __ovld atomic_store(volatile atomic_double *, double); #endif //cl_khr_fp64 -void __ovld atomic_store(volatile atomic_long *object, long desired); -void __ovld atomic_store_explicit(volatile atomic_long *object, long desired, memory_order order); -void __ovld atomic_store_explicit(volatile atomic_long *object, long desired, memory_order order, memory_scope scope); -void __ovld atomic_store(volatile atomic_ulong *object, ulong desired); -void __ovld atomic_store_explicit(volatile atomic_ulong *object, ulong desired, memory_order order); -void __ovld atomic_store_explicit(volatile atomic_ulong *object, ulong desired, memory_order order, memory_scope scope); +void __ovld atomic_store(volatile atomic_long *, long); +void __ovld atomic_store(volatile atomic_ulong *, ulong); +#endif +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +void __ovld atomic_store(volatile __global atomic_int *, int); +void __ovld atomic_store(volatile __local atomic_int *, int); +void __ovld atomic_store(volatile __global atomic_uint *, uint); +void __ovld atomic_store(volatile __local atomic_uint *, uint); +void __ovld atomic_store(volatile __global atomic_float *, float); +void __ovld atomic_store(volatile __local atomic_float *, float); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +void __ovld atomic_store(volatile __global atomic_double *, double); +void __ovld atomic_store(volatile __local atomic_double *, double); +#endif //cl_khr_fp64 +void __ovld atomic_store(volatile __global atomic_long *, long); +void __ovld atomic_store(volatile __local atomic_long *, long); +void __ovld atomic_store(volatile __global atomic_ulong *, ulong); +void __ovld atomic_store(volatile __local atomic_ulong *, ulong); +#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +#endif + +#if defined(__opencl_c_atomic_scope_device) +#if defined(__opencl_c_generic_address_space) +void __ovld atomic_store_explicit(volatile atomic_int *, int, memory_order); +void __ovld atomic_store_explicit(volatile atomic_uint *, uint, memory_order); +void __ovld atomic_store_explicit(volatile atomic_float *, float, memory_order); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +void __ovld atomic_store_explicit(volatile atomic_double *, double, memory_order); +#endif //cl_khr_fp64 +void __ovld atomic_store_explicit(volatile atomic_long *, long, memory_order); +void __ovld atomic_store_explicit(volatile atomic_ulong *, ulong, memory_order); +#endif +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +void __ovld atomic_store_explicit(volatile __global atomic_int *, int, memory_order); +void __ovld atomic_store_explicit(volatile __local atomic_int *, int, memory_order); +void __ovld atomic_store_explicit(volatile __global atomic_uint *, uint, memory_order); +void __ovld atomic_store_explicit(volatile __local atomic_uint *, uint, memory_order); +void __ovld atomic_store_explicit(volatile __global atomic_float *, float, memory_order); +void __ovld atomic_store_explicit(volatile __local atomic_float *, float, memory_order); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +void __ovld atomic_store_explicit(volatile __global atomic_double *, double, memory_order); +void __ovld atomic_store_explicit(volatile __local atomic_double *, double, memory_order); +#endif +void __ovld atomic_store_explicit(volatile __global atomic_long *, long, memory_order); +void __ovld atomic_store_explicit(volatile __local atomic_long *, long, memory_order); +void __ovld atomic_store_explicit(volatile __global atomic_ulong *, ulong, memory_order); +void __ovld atomic_store_explicit(volatile __local atomic_ulong *, ulong, memory_order); +#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) #endif +#if defined(__opencl_c_generic_address_space) +void __ovld atomic_store_explicit(volatile atomic_int *, int, memory_order, memory_scope); +void __ovld atomic_store_explicit(volatile atomic_uint *, uint, memory_order, memory_scope); +void __ovld atomic_store_explicit(volatile atomic_float *, float, memory_order, memory_scope); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +void __ovld atomic_store_explicit(volatile atomic_double *, double, memory_order, memory_scope); +#endif //cl_khr_fp64 +void __ovld atomic_store_explicit(volatile atomic_long *, long, memory_order, memory_scope); +void __ovld atomic_store_explicit(volatile atomic_ulong *, ulong, memory_order, memory_scope); +#endif +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +void __ovld atomic_store_explicit(volatile __global atomic_int *, int, memory_order, memory_scope); +void __ovld atomic_store_explicit(volatile __local atomic_int *, int, memory_order, memory_scope); +void __ovld atomic_store_explicit(volatile __global atomic_uint *, uint, memory_order, memory_scope); +void __ovld atomic_store_explicit(volatile __local atomic_uint *, uint, memory_order, memory_scope); +void __ovld atomic_store_explicit(volatile __global atomic_float *, float, memory_order, memory_scope); +void __ovld atomic_store_explicit(volatile __local atomic_float *, float, memory_order, memory_scope); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +void __ovld atomic_store_explicit(volatile __global atomic_double *, double, memory_order, memory_scope); +void __ovld atomic_store_explicit(volatile __local atomic_double *, double, memory_order, memory_scope); +#endif //cl_khr_fp64 +void __ovld atomic_store_explicit(volatile __global atomic_long *, long, memory_order, memory_scope); +void __ovld atomic_store_explicit(volatile __local atomic_long *, long, memory_order, memory_scope); +void __ovld atomic_store_explicit(volatile __global atomic_ulong *, ulong, memory_order, memory_scope); +void __ovld atomic_store_explicit(volatile __local atomic_ulong *, ulong, memory_order, memory_scope); +#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) + // atomic_load() +#if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device) +#if defined(__opencl_c_generic_address_space) +int __ovld atomic_load(volatile atomic_int *); +uint __ovld atomic_load(volatile atomic_uint *); +float __ovld atomic_load(volatile atomic_float *); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +double __ovld atomic_load(volatile atomic_double *); +#endif //cl_khr_fp64 +long __ovld atomic_load(volatile atomic_long *); +ulong __ovld atomic_load(volatile atomic_ulong *); +#endif +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +int __ovld atomic_load(volatile __global atomic_int *); +int __ovld atomic_load(volatile __local atomic_int *); +uint __ovld atomic_load(volatile __global atomic_uint *); +uint __ovld atomic_load(volatile __local atomic_uint *); +float __ovld atomic_load(volatile __global atomic_float *); +float __ovld atomic_load(volatile __local atomic_float *); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +double __ovld atomic_load(volatile __global atomic_double *); +double __ovld atomic_load(volatile __local atomic_double *); +#endif //cl_khr_fp64 +long __ovld atomic_load(volatile __global atomic_long *); +long __ovld atomic_load(volatile __local atomic_long *); +ulong __ovld atomic_load(volatile __global atomic_ulong *); +ulong __ovld atomic_load(volatile __local atomic_ulong *); +#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +#endif -int __ovld atomic_load(volatile atomic_int *object); -int __ovld atomic_load_explicit(volatile atomic_int *object, memory_order order); -int __ovld atomic_load_explicit(volatile atomic_int *object, memory_order order, memory_scope scope); -uint __ovld atomic_load(volatile atomic_uint *object); -uint __ovld atomic_load_explicit(volatile atomic_uint *object, memory_order order); -uint __ovld atomic_load_explicit(volatile atomic_uint *object, memory_order order, memory_scope scope); -float __ovld atomic_load(volatile atomic_float *object); -float __ovld atomic_load_explicit(volatile atomic_float *object, memory_order order); -float __ovld atomic_load_explicit(volatile atomic_float *object, memory_order order, memory_scope scope); +#if defined(__opencl_c_atomic_scope_device) +#if defined(__opencl_c_generic_address_space) +int __ovld atomic_load_explicit(volatile atomic_int *, memory_order); +uint __ovld atomic_load_explicit(volatile atomic_uint *, memory_order); +float __ovld atomic_load_explicit(volatile atomic_float *, memory_order); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +double __ovld atomic_load_explicit(volatile atomic_double *, memory_order); +#endif //cl_khr_fp64 +long __ovld atomic_load_explicit(volatile atomic_long *, memory_order); +ulong __ovld atomic_load_explicit(volatile atomic_ulong *, memory_order); +#endif +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +int __ovld atomic_load_explicit(volatile __global atomic_int *, memory_order); +int __ovld atomic_load_explicit(volatile __local atomic_int *, memory_order); +uint __ovld atomic_load_explicit(volatile __global atomic_uint *, memory_order); +uint __ovld atomic_load_explicit(volatile __local atomic_uint *, memory_order); +float __ovld atomic_load_explicit(volatile __global atomic_float *, memory_order); +float __ovld atomic_load_explicit(volatile __local atomic_float *, memory_order); #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) #ifdef cl_khr_fp64 -double __ovld atomic_load(volatile atomic_double *object); -double __ovld atomic_load_explicit(volatile atomic_double *object, memory_order order); -double __ovld atomic_load_explicit(volatile atomic_double *object, memory_order order, memory_scope scope); +double __ovld atomic_load_explicit(volatile __global atomic_double *, memory_order); +double __ovld atomic_load_explicit(volatile __local atomic_double *, memory_order); #endif //cl_khr_fp64 -long __ovld atomic_load(volatile atomic_long *object); -long __ovld atomic_load_explicit(volatile atomic_long *object, memory_order order); -long __ovld atomic_load_explicit(volatile atomic_long *object, memory_order order, memory_scope scope); -ulong __ovld atomic_load(volatile atomic_ulong *object); -ulong __ovld atomic_load_explicit(volatile atomic_ulong *object, memory_order order); -ulong __ovld atomic_load_explicit(volatile atomic_ulong *object, memory_order order, memory_scope scope); +long __ovld atomic_load_explicit(volatile __global atomic_long *, memory_order); +long __ovld atomic_load_explicit(volatile __local atomic_long *, memory_order); +ulong __ovld atomic_load_explicit(volatile __global atomic_ulong *, memory_order); +ulong __ovld atomic_load_explicit(volatile __local atomic_ulong *, memory_order); +#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) #endif +#if defined(__opencl_c_generic_address_space) +int __ovld atomic_load_explicit(volatile atomic_int *, memory_order, memory_scope); +uint __ovld atomic_load_explicit(volatile atomic_uint *, memory_order, memory_scope); +float __ovld atomic_load_explicit(volatile atomic_float *, memory_order, memory_scope); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +double __ovld atomic_load_explicit(volatile atomic_double *, memory_order, memory_scope); +#endif //cl_khr_fp64 +long __ovld atomic_load_explicit(volatile atomic_long *, memory_order, memory_scope); +ulong __ovld atomic_load_explicit(volatile atomic_ulong *, memory_order, memory_scope); +#endif +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +int __ovld atomic_load_explicit(volatile __global atomic_int *, memory_order, memory_scope); +int __ovld atomic_load_explicit(volatile __local atomic_int *, memory_order, memory_scope); +uint __ovld atomic_load_explicit(volatile __global atomic_uint *, memory_order, memory_scope); +uint __ovld atomic_load_explicit(volatile __local atomic_uint *, memory_order, memory_scope); +float __ovld atomic_load_explicit(volatile __global atomic_float *, memory_order, memory_scope); +float __ovld atomic_load_explicit(volatile __local atomic_float *, memory_order, memory_scope); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +double __ovld atomic_load_explicit(volatile __global atomic_double *, memory_order, memory_scope); +double __ovld atomic_load_explicit(volatile __local atomic_double *, memory_order, memory_scope); +#endif +long __ovld atomic_load_explicit(volatile __global atomic_long *, memory_order, memory_scope); +long __ovld atomic_load_explicit(volatile __local atomic_long *, memory_order, memory_scope); +ulong __ovld atomic_load_explicit(volatile __global atomic_ulong *, memory_order, memory_scope); +ulong __ovld atomic_load_explicit(volatile __local atomic_ulong *, memory_order, memory_scope); +#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) + // atomic_exchange() -int __ovld atomic_exchange(volatile atomic_int *object, int desired); -int __ovld atomic_exchange_explicit(volatile atomic_int *object, int desired, memory_order order); -int __ovld atomic_exchange_explicit(volatile atomic_int *object, int desired, memory_order order, memory_scope scope); -uint __ovld atomic_exchange(volatile atomic_uint *object, uint desired); -uint __ovld atomic_exchange_explicit(volatile atomic_uint *object, uint desired, memory_order order); -uint __ovld atomic_exchange_explicit(volatile atomic_uint *object, uint desired, memory_order order, memory_scope scope); -float __ovld atomic_exchange(volatile atomic_float *object, float desired); -float __ovld atomic_exchange_explicit(volatile atomic_float *object, float desired, memory_order order); -float __ovld atomic_exchange_explicit(volatile atomic_float *object, float desired, memory_order order, memory_scope scope); +#if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device) +#if defined(__opencl_c_generic_address_space) +int __ovld atomic_exchange(volatile atomic_int *, int); +uint __ovld atomic_exchange(volatile atomic_uint *, uint); +float __ovld atomic_exchange(volatile atomic_float *, float); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +double __ovld atomic_exchange(volatile atomic_double *, double); +#endif //cl_khr_fp64 +long __ovld atomic_exchange(volatile atomic_long *, long); +ulong __ovld atomic_exchange(volatile atomic_ulong *, ulong); +#endif +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +int __ovld atomic_exchange(volatile __global atomic_int *, int); +int __ovld atomic_exchange(volatile __local atomic_int *, int); +uint __ovld atomic_exchange(volatile __global atomic_uint *, uint); +uint __ovld atomic_exchange(volatile __local atomic_uint *, uint); +float __ovld atomic_exchange(volatile __global atomic_float *, float); +float __ovld atomic_exchange(volatile __local atomic_float *, float); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +double __ovld atomic_exchange(volatile __global atomic_double *, double); +double __ovld atomic_exchange(volatile __local atomic_double *, double); +#endif //cl_khr_fp64 +long __ovld atomic_exchange(volatile __global atomic_long *, long); +long __ovld atomic_exchange(volatile __local atomic_long *, long); +ulong __ovld atomic_exchange(volatile __global atomic_ulong *, ulong); +ulong __ovld atomic_exchange(volatile __local atomic_ulong *, ulong); +#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +#endif + +#if defined(__opencl_c_atomic_scope_device) +#if defined(__opencl_c_generic_address_space) +int __ovld atomic_exchange_explicit(volatile atomic_int *, int, memory_order); +uint __ovld atomic_exchange_explicit(volatile atomic_uint *, uint, memory_order); +float __ovld atomic_exchange_explicit(volatile atomic_float *, float, memory_order); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +double __ovld atomic_exchange_explicit(volatile atomic_double *, double, memory_order); +#endif //cl_khr_fp64 +long __ovld atomic_exchange_explicit(volatile atomic_long *, long, memory_order); +ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *, ulong, memory_order); +#endif +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +int __ovld atomic_exchange_explicit(volatile __global atomic_int *, int, memory_order); +int __ovld atomic_exchange_explicit(volatile __local atomic_int *, int, memory_order); +uint __ovld atomic_exchange_explicit(volatile __global atomic_uint *, uint, memory_order); +uint __ovld atomic_exchange_explicit(volatile __local atomic_uint *, uint, memory_order); +float __ovld atomic_exchange_explicit(volatile __global atomic_float *, float, memory_order); +float __ovld atomic_exchange_explicit(volatile __local atomic_float *, float, memory_order); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +double __ovld atomic_exchange_explicit(volatile __global atomic_double *, double, memory_order); +double __ovld atomic_exchange_explicit(volatile __local atomic_double *, double, memory_order); +#endif //cl_khr_fp64 +long __ovld atomic_exchange_explicit(volatile __global atomic_long *, long, memory_order); +long __ovld atomic_exchange_explicit(volatile __local atomic_long *, long, memory_order); +ulong __ovld atomic_exchange_explicit(volatile __global atomic_ulong *, ulong, memory_order); +ulong __ovld atomic_exchange_explicit(volatile __local atomic_ulong *, ulong, memory_order); +#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics)wi +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +#endif + +#if defined(__opencl_c_generic_address_space) +int __ovld atomic_exchange_explicit(volatile atomic_int *, int, memory_order, memory_scope); +uint __ovld atomic_exchange_explicit(volatile atomic_uint *, uint, memory_order, memory_scope); +float __ovld atomic_exchange_explicit(volatile atomic_float *, float, memory_order, memory_scope); #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) #ifdef cl_khr_fp64 -double __ovld atomic_exchange(volatile atomic_double *object, double desired); -double __ovld atomic_exchange_explicit(volatile atomic_double *object, double desired, memory_order order); -double __ovld atomic_exchange_explicit(volatile atomic_double *object, double desired, memory_order order, memory_scope scope); +double __ovld atomic_exchange_explicit(volatile atomic_double *, double, memory_order, memory_scope); #endif //cl_khr_fp64 -long __ovld atomic_exchange(volatile atomic_long *object, long desired); -long __ovld atomic_exchange_explicit(volatile atomic_long *object, long desired, memory_order order); -long __ovld atomic_exchange_explicit(volatile atomic_long *object, long desired, memory_order order, memory_scope scope); -ulong __ovld atomic_exchange(volatile atomic_ulong *object, ulong desired); -ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *object, ulong desired, memory_order order); -ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *object, ulong desired, memory_order order, memory_scope scope); +long __ovld atomic_exchange_explicit(volatile atomic_long *, long, memory_order, memory_scope); +ulong __ovld atomic_exchange_explicit(volatile atomic_ulong *, ulong, memory_order, memory_scope); #endif +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +int __ovld atomic_exchange_explicit(volatile __global atomic_int *, int, memory_order, memory_scope); +int __ovld atomic_exchange_explicit(volatile __local atomic_int *, int, memory_order, memory_scope); +uint __ovld atomic_exchange_explicit(volatile __global atomic_uint *, uint, memory_order, memory_scope); +uint __ovld atomic_exchange_explicit(volatile __local atomic_uint *, uint, memory_order, memory_scope); +float __ovld atomic_exchange_explicit(volatile __global atomic_float *, float, memory_order, memory_scope); +float __ovld atomic_exchange_explicit(volatile __local atomic_float *, float, memory_order, memory_scope); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +double __ovld atomic_exchange_explicit(volatile __global atomic_double *, double, memory_order, memory_scope); +double __ovld atomic_exchange_explicit(volatile __local atomic_double *, double, memory_order, memory_scope); +#endif //cl_khr_fp64 +long __ovld atomic_exchange_explicit(volatile __global atomic_long *, long, memory_order, memory_scope); +long __ovld atomic_exchange_explicit(volatile __local atomic_long *, long, memory_order, memory_scope); +ulong __ovld atomic_exchange_explicit(volatile __global atomic_ulong *, ulong, memory_order, memory_scope); +ulong __ovld atomic_exchange_explicit(volatile __local atomic_ulong *, ulong, memory_order, memory_scope); +#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) // atomic_compare_exchange_strong() and atomic_compare_exchange_weak() +#if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device) +#if defined(__opencl_c_generic_address_space) +bool __ovld atomic_compare_exchange_strong(volatile atomic_int *, int *, int); +bool __ovld atomic_compare_exchange_strong(volatile atomic_uint *, uint *, uint); +bool __ovld atomic_compare_exchange_weak(volatile atomic_int *, int *, int); +bool __ovld atomic_compare_exchange_weak(volatile atomic_uint *, uint *, uint); +bool __ovld atomic_compare_exchange_strong(volatile atomic_float *, float *, float); +bool __ovld atomic_compare_exchange_weak(volatile atomic_float *, float *, float); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +bool __ovld atomic_compare_exchange_strong(volatile atomic_double *, double *, double); +bool __ovld atomic_compare_exchange_weak(volatile atomic_double *, double *, double); +#endif //cl_khr_fp64 +bool __ovld atomic_compare_exchange_strong(volatile atomic_long *, long *, long); +bool __ovld atomic_compare_exchange_weak(volatile atomic_long *, long *, long); +bool __ovld atomic_compare_exchange_strong(volatile atomic_ulong *, ulong *, ulong); +bool __ovld atomic_compare_exchange_weak(volatile atomic_ulong *, ulong *, ulong); +#endif +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_int *, __global int *, int); +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_int *, __local int *, int); +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_int *, __private int *, int); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_int *, __global int *, int); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_int *, __local int *, int); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_int *, __private int *, int); +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_uint *, __global uint *, uint); +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_uint *, __local uint *, uint); +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_uint *, __private uint *, uint); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_uint *, __global uint *, uint); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_uint *, __local uint *, uint); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_uint *, __private uint *, uint); +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_float *, __global float *, float); +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_float *, __local float *, float); +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_float *, __private float *, float); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_float *, __global float *, float); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_float *, __local float *, float); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_float *, __private float *, float); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_int *, __global int *, int); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_int *, __local int *, int); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_int *, __private int *, int); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_int *, __global int *, int); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_int *, __local int *, int); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_int *, __private int *, int); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_uint *, __global uint *, uint); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_uint *, __local uint *, uint); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_uint *, __private uint *, uint); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_uint *, __global uint *, uint); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_uint *, __local uint *, uint); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_uint *, __private uint *, uint); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_float *, __global float *, float); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_float *, __local float *, float); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_float *, __private float *, float); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_float *, __global float *, float); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_float *, __local float *, float); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_float *, __private float *, float); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_double *, __global double *, double); +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_double *, __local double *, double); +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_double *, __private double *, double); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_double *, __global double *, double); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_double *, __local double *, double); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_double *, __private double *, double); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_double *, __global double *, double); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_double *, __local double *, double); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_double *, __private double *, double); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_double *, __global double *, double); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_double *, __local double *, double); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_double *, __private double *, double); +#endif //cl_khr_fp64 +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_long *, __global long *, long); +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_long *, __local long *, long); +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_long *, __private long *, long); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_long *, __global long *, long); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_long *, __local long *, long); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_long *, __private long *, long); +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_ulong *, __global ulong *, ulong); +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_ulong *, __local ulong *, ulong); +bool __ovld atomic_compare_exchange_strong(volatile __global atomic_ulong *, __private ulong *, ulong); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_ulong *, __global ulong *, ulong); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_ulong *, __local ulong *, ulong); +bool __ovld atomic_compare_exchange_strong(volatile __local atomic_ulong *, __private ulong *, ulong); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_long *, __global long *, long); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_long *, __local long *, long); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_long *, __private long *, long); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_long *, __global long *, long); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_long *, __local long *, long); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_long *, __private long *, long); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_ulong *, __global ulong *, ulong); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_ulong *, __local ulong *, ulong); +bool __ovld atomic_compare_exchange_weak(volatile __global atomic_ulong *, __private ulong *, ulong); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_ulong *, __global ulong *, ulong); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_ulong *, __local ulong *, ulong); +bool __ovld atomic_compare_exchange_weak(volatile __local atomic_ulong *, __private ulong *, ulong); +#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +#endif -bool __ovld atomic_compare_exchange_strong(volatile atomic_int *object, int *expected, int desired); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *object, int *expected, - int desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *object, int *expected, - int desired, memory_order success, memory_order failure, memory_scope scope); -bool __ovld atomic_compare_exchange_strong(volatile atomic_uint *object, uint *expected, uint desired); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_uint *object, uint *expected, - uint desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_uint *object, uint *expected, - uint desired, memory_order success, memory_order failure, memory_scope scope); -bool __ovld atomic_compare_exchange_weak(volatile atomic_int *object, int *expected, int desired); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_int *object, int *expected, - int desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_int *object, int *expected, - int desired, memory_order success, memory_order failure, memory_scope scope); -bool __ovld atomic_compare_exchange_weak(volatile atomic_uint *object, uint *expected, uint desired); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_uint *object, uint *expected, - uint desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_uint *object, uint *expected, - uint desired, memory_order success, memory_order failure, memory_scope scope); -bool __ovld atomic_compare_exchange_strong(volatile atomic_float *object, float *expected, float desired); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_float *object, float *expected, - float desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_float *object, float *expected, - float desired, memory_order success, memory_order failure, memory_scope scope); -bool __ovld atomic_compare_exchange_weak(volatile atomic_float *object, float *expected, float desired); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_float *object, float *expected, - float desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_float *object, float *expected, - float desired, memory_order success, memory_order failure, memory_scope scope); +#if defined(__opencl_c_atomic_scope_device) +#if defined(__opencl_c_generic_address_space) +bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *, int *, int, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_uint *, uint *, uint, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_int *, int *, int, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_uint *, uint *, uint, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_float *, float *, float, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_float *, float *, float, memory_order, memory_order); #if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) #ifdef cl_khr_fp64 -bool __ovld atomic_compare_exchange_strong(volatile atomic_double *object, double *expected, double desired); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_double *object, double *expected, - double desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_double *object, double *expected, - double desired, memory_order success, memory_order failure, memory_scope scope); -bool __ovld atomic_compare_exchange_weak(volatile atomic_double *object, double *expected, double desired); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_double *object, double *expected, - double desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_double *object, double *expected, - double desired, memory_order success, memory_order failure, memory_scope scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_double *, double *, double, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_double *, double *, double, memory_order, memory_order); #endif //cl_khr_fp64 -bool __ovld atomic_compare_exchange_strong(volatile atomic_long *object, long *expected, long desired); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_long *object, long *expected, - long desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_long *object, long *expected, - long desired, memory_order success, memory_order failure, memory_scope scope); -bool __ovld atomic_compare_exchange_weak(volatile atomic_long *object, long *expected, long desired); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_long *object, long *expected, - long desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_long *object, long *expected, - long desired, memory_order success, memory_order failure, memory_scope scope); -bool __ovld atomic_compare_exchange_strong(volatile atomic_ulong *object, ulong *expected, ulong desired); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_ulong *object, ulong *expected, - ulong desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_ulong *object, ulong *expected, - ulong desired, memory_order success, memory_order failure, memory_scope scope); -bool __ovld atomic_compare_exchange_weak(volatile atomic_ulong *object, ulong *expected, ulong desired); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_ulong *object, ulong *expected, - ulong desired, memory_order success, memory_order failure); -bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_ulong *object, ulong *expected, - ulong desired, memory_order success, memory_order failure, memory_scope scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_long *, long *, long, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_long *, long *, long, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_ulong *, ulong *, ulong, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_ulong *, ulong *, ulong, memory_order, memory_order); #endif +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *, __global int *, int, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *, __local int *, int, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *, __private int *, int, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *, __global int *, int, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *, __local int *, int, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *, __private int *, int, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *, __global uint *, uint, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *, __local uint *, uint, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *, __private uint *, uint, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *, __global uint *, uint, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *, __local uint *, uint, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *, __private uint *, uint, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *, __global float *, float, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *, __local float *, float, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *, __private float *, float, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *, __global float *, float, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *, __local float *, float, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *, __private float *, float, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *, __global int *, int, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *, __local int *, int, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *, __private int *, int, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *, __global int *, int, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *, __local int *, int, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *, __private int *, int, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *, __global uint *, uint, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *, __local uint *, uint, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *, __private uint *, uint, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *, __global uint *, uint, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *, __local uint *, uint, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *, __private uint *, uint, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *, __global float *, float, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *, __local float *, float, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *, __private float *, float, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *, __global float *, float, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *, __local float *, float, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *, __private float *, float, memory_order, memory_order); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *, __global double *, double, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *, __local double *, double, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *, __private double *, double, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *, __global double *, double, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *, __local double *, double, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *, __private double *, double, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *, __global double *, double, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *, __local double *, double, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *, __private double *, double, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *, __global double *, double, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *, __local double *, double, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *, __private double *, double, memory_order, memory_order); +#endif //cl_khr_fp64 +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *, __global long *, long, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *, __local long *, long, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *, __private long *, long, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *, __global long *, long, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *, __local long *, long, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *, __private long *, long, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *, __global ulong *, ulong, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *, __local ulong *, ulong, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *, __private ulong *, ulong, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *, __global ulong *, ulong, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *, __local ulong *, ulong, memory_order, memory_order); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *, __private ulong *, ulong, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *, __global long *, long, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *, __local long *, long, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *, __private long *, long, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *, __global long *, long, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *, __local long *, long, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *, __private long *, long, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *, __global ulong *, ulong, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *, __local ulong *, ulong, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *, __private ulong *, ulong, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *, __global ulong *, ulong, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *, __local ulong *, ulong, memory_order, memory_order); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *, __private ulong *, ulong, memory_order, memory_order); +#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +#endif //defined(__opencl_c_atomic_scope_device) + +#if defined(__opencl_c_generic_address_space) +bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_int *, int *, int, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_uint *, uint *, uint, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_int *, int *, int, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_uint *, uint *, uint, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_float *, float *, float, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_float *, float *, float, memory_order, memory_order, memory_scope); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_double *, double *, double, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_double *, double *, double, memory_order, memory_order, memory_scope); +#endif //cl_khr_fp64 +bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_long *, long *, long, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_long *, long *, long, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile atomic_ulong *, ulong *, ulong, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile atomic_ulong *, ulong *, ulong, memory_order, memory_order, memory_scope); +#endif +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *, __global int *, int, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *, __local int *, int, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_int *, __private int *, int, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *, __global int *, int, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *, __local int *, int, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_int *, __private int *, int, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *, __global uint *, uint, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *, __local uint *, uint, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_uint *, __private uint *, uint, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *, __global uint *, uint, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *, __local uint *, uint, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_uint *, __private uint *, uint, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *, __global float *, float, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *, __local float *, float, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_float *, __private float *, float, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *, __global float *, float, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *, __local float *, float, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_float *, __private float *, float, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *, __global int *, int, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *, __local int *, int, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_int *, __private int *, int, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *, __global int *, int, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *, __local int *, int, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_int *, __private int *, int, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *, __global uint *, uint, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *, __local uint *, uint, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_uint *, __private uint *, uint, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *, __global uint *, uint, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *, __local uint *, uint, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_uint *, __private uint *, uint, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *, __global float *, float, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *, __local float *, float, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_float *, __private float *, float, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *, __global float *, float, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *, __local float *, float, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_float *, __private float *, float, memory_order, memory_order, memory_scope); +#if defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#ifdef cl_khr_fp64 +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *, __global double *, double, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *, __local double *, double, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_double *, __private double *, double, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *, __global double *, double, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *, __local double *, double, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_double *, __private double *, double, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *, __global double *, double, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *, __local double *, double, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_double *, __private double *, double, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *, __global double *, double, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *, __local double *, double, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_double *, __private double *, double, memory_order, memory_order, memory_scope); +#endif //cl_khr_fp64 +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *, __global long *, long, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *, __local long *, long, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_long *, __private long *, long, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *, __global long *, long, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *, __local long *, long, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_long *, __private long *, long, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *, __global ulong *, ulong, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *, __local ulong *, ulong, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __global atomic_ulong *, __private ulong *, ulong, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *, __global ulong *, ulong, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *, __local ulong *, ulong, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_strong_explicit(volatile __local atomic_ulong *, __private ulong *, ulong, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *, __global long *, long, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *, __local long *, long, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_long *, __private long *, long, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *, __global long *, long, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *, __local long *, long, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_long *, __private long *, long, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *, __global ulong *, ulong, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *, __local ulong *, ulong, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __global atomic_ulong *, __private ulong *, ulong, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *, __global ulong *, ulong, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *, __local ulong *, ulong, memory_order, memory_order, memory_scope); +bool __ovld atomic_compare_exchange_weak_explicit(volatile __local atomic_ulong *, __private ulong *, ulong, memory_order, memory_order, memory_scope); +#endif //defined(cl_khr_int64_base_atomics) && defined(cl_khr_int64_extended_atomics) +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) // atomic_flag_test_and_set() and atomic_flag_clear() +#if defined(__opencl_c_atomic_order_seq_cst) && defined(__opencl_c_atomic_scope_device) +#if defined(__opencl_c_generic_address_space) +bool __ovld atomic_flag_test_and_set(volatile atomic_flag *); +void __ovld atomic_flag_clear(volatile atomic_flag *); +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +bool __ovld atomic_flag_test_and_set(volatile __global atomic_flag *); +bool __ovld atomic_flag_test_and_set(volatile __local atomic_flag *); +void __ovld atomic_flag_clear(volatile __global atomic_flag *); +void __ovld atomic_flag_clear(volatile __local atomic_flag *); +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +#endif -bool __ovld atomic_flag_test_and_set(volatile atomic_flag *object); -bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order); -bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *object, memory_order order, memory_scope scope); -void __ovld atomic_flag_clear(volatile atomic_flag *object); -void __ovld atomic_flag_clear_explicit(volatile atomic_flag *object, memory_order order); -void __ovld atomic_flag_clear_explicit(volatile atomic_flag *object, memory_order order, memory_scope scope); +#if defined(__opencl_c_atomic_scope_device) +#if defined(__opencl_c_generic_address_space) +bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *, memory_order); +void __ovld atomic_flag_clear_explicit(volatile atomic_flag *, memory_order); +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +bool __ovld atomic_flag_test_and_set_explicit(volatile __global atomic_flag *, memory_order); +bool __ovld atomic_flag_test_and_set_explicit(volatile __local atomic_flag *, memory_order); +void __ovld atomic_flag_clear_explicit(volatile __global atomic_flag *, memory_order); +void __ovld atomic_flag_clear_explicit(volatile __local atomic_flag *, memory_order); +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +#endif +#if defined(__opencl_c_generic_address_space) +bool __ovld atomic_flag_test_and_set_explicit(volatile atomic_flag *, memory_order, memory_scope); +void __ovld atomic_flag_clear_explicit(volatile atomic_flag *, memory_order, memory_scope); +#endif //defined(__opencl_c_generic_address_space) +#if (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) +bool __ovld atomic_flag_test_and_set_explicit(volatile __global atomic_flag *, memory_order, memory_scope); +bool __ovld atomic_flag_test_and_set_explicit(volatile __local atomic_flag *, memory_order, memory_scope); +void __ovld atomic_flag_clear_explicit(volatile __global atomic_flag *, memory_order, memory_scope); +void __ovld atomic_flag_clear_explicit(volatile __local atomic_flag *, memory_order, memory_scope); +#endif // (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 || __OPENCL_CPP_VERSION__ >= 202100) #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) // OpenCL v1.1 s6.11.12, v1.2 s6.12.12, v2.0 s6.13.12 - Miscellaneous Vector Functions @@ -14306,452 +15362,452 @@ void __ovld atomic_flag_clear_explicit(volatile atomic_flag *object, memory_orde * short8 b; * b = shuffle(a, mask); <- not valid */ -char2 __ovld __cnfn shuffle(char2 x, uchar2 mask); -char2 __ovld __cnfn shuffle(char4 x, uchar2 mask); -char2 __ovld __cnfn shuffle(char8 x, uchar2 mask); -char2 __ovld __cnfn shuffle(char16 x, uchar2 mask); - -uchar2 __ovld __cnfn shuffle(uchar2 x, uchar2 mask); -uchar2 __ovld __cnfn shuffle(uchar4 x, uchar2 mask); -uchar2 __ovld __cnfn shuffle(uchar8 x, uchar2 mask); -uchar2 __ovld __cnfn shuffle(uchar16 x, uchar2 mask); - -short2 __ovld __cnfn shuffle(short2 x, ushort2 mask); -short2 __ovld __cnfn shuffle(short4 x, ushort2 mask); -short2 __ovld __cnfn shuffle(short8 x, ushort2 mask); -short2 __ovld __cnfn shuffle(short16 x, ushort2 mask); - -ushort2 __ovld __cnfn shuffle(ushort2 x, ushort2 mask); -ushort2 __ovld __cnfn shuffle(ushort4 x, ushort2 mask); -ushort2 __ovld __cnfn shuffle(ushort8 x, ushort2 mask); -ushort2 __ovld __cnfn shuffle(ushort16 x, ushort2 mask); - -int2 __ovld __cnfn shuffle(int2 x, uint2 mask); -int2 __ovld __cnfn shuffle(int4 x, uint2 mask); -int2 __ovld __cnfn shuffle(int8 x, uint2 mask); -int2 __ovld __cnfn shuffle(int16 x, uint2 mask); - -uint2 __ovld __cnfn shuffle(uint2 x, uint2 mask); -uint2 __ovld __cnfn shuffle(uint4 x, uint2 mask); -uint2 __ovld __cnfn shuffle(uint8 x, uint2 mask); -uint2 __ovld __cnfn shuffle(uint16 x, uint2 mask); - -long2 __ovld __cnfn shuffle(long2 x, ulong2 mask); -long2 __ovld __cnfn shuffle(long4 x, ulong2 mask); -long2 __ovld __cnfn shuffle(long8 x, ulong2 mask); -long2 __ovld __cnfn shuffle(long16 x, ulong2 mask); - -ulong2 __ovld __cnfn shuffle(ulong2 x, ulong2 mask); -ulong2 __ovld __cnfn shuffle(ulong4 x, ulong2 mask); -ulong2 __ovld __cnfn shuffle(ulong8 x, ulong2 mask); -ulong2 __ovld __cnfn shuffle(ulong16 x, ulong2 mask); - -float2 __ovld __cnfn shuffle(float2 x, uint2 mask); -float2 __ovld __cnfn shuffle(float4 x, uint2 mask); -float2 __ovld __cnfn shuffle(float8 x, uint2 mask); -float2 __ovld __cnfn shuffle(float16 x, uint2 mask); - -char4 __ovld __cnfn shuffle(char2 x, uchar4 mask); -char4 __ovld __cnfn shuffle(char4 x, uchar4 mask); -char4 __ovld __cnfn shuffle(char8 x, uchar4 mask); -char4 __ovld __cnfn shuffle(char16 x, uchar4 mask); - -uchar4 __ovld __cnfn shuffle(uchar2 x, uchar4 mask); -uchar4 __ovld __cnfn shuffle(uchar4 x, uchar4 mask); -uchar4 __ovld __cnfn shuffle(uchar8 x, uchar4 mask); -uchar4 __ovld __cnfn shuffle(uchar16 x, uchar4 mask); - -short4 __ovld __cnfn shuffle(short2 x, ushort4 mask); -short4 __ovld __cnfn shuffle(short4 x, ushort4 mask); -short4 __ovld __cnfn shuffle(short8 x, ushort4 mask); -short4 __ovld __cnfn shuffle(short16 x, ushort4 mask); - -ushort4 __ovld __cnfn shuffle(ushort2 x, ushort4 mask); -ushort4 __ovld __cnfn shuffle(ushort4 x, ushort4 mask); -ushort4 __ovld __cnfn shuffle(ushort8 x, ushort4 mask); -ushort4 __ovld __cnfn shuffle(ushort16 x, ushort4 mask); - -int4 __ovld __cnfn shuffle(int2 x, uint4 mask); -int4 __ovld __cnfn shuffle(int4 x, uint4 mask); -int4 __ovld __cnfn shuffle(int8 x, uint4 mask); -int4 __ovld __cnfn shuffle(int16 x, uint4 mask); - -uint4 __ovld __cnfn shuffle(uint2 x, uint4 mask); -uint4 __ovld __cnfn shuffle(uint4 x, uint4 mask); -uint4 __ovld __cnfn shuffle(uint8 x, uint4 mask); -uint4 __ovld __cnfn shuffle(uint16 x, uint4 mask); - -long4 __ovld __cnfn shuffle(long2 x, ulong4 mask); -long4 __ovld __cnfn shuffle(long4 x, ulong4 mask); -long4 __ovld __cnfn shuffle(long8 x, ulong4 mask); -long4 __ovld __cnfn shuffle(long16 x, ulong4 mask); - -ulong4 __ovld __cnfn shuffle(ulong2 x, ulong4 mask); -ulong4 __ovld __cnfn shuffle(ulong4 x, ulong4 mask); -ulong4 __ovld __cnfn shuffle(ulong8 x, ulong4 mask); -ulong4 __ovld __cnfn shuffle(ulong16 x, ulong4 mask); - -float4 __ovld __cnfn shuffle(float2 x, uint4 mask); -float4 __ovld __cnfn shuffle(float4 x, uint4 mask); -float4 __ovld __cnfn shuffle(float8 x, uint4 mask); -float4 __ovld __cnfn shuffle(float16 x, uint4 mask); - -char8 __ovld __cnfn shuffle(char2 x, uchar8 mask); -char8 __ovld __cnfn shuffle(char4 x, uchar8 mask); -char8 __ovld __cnfn shuffle(char8 x, uchar8 mask); -char8 __ovld __cnfn shuffle(char16 x, uchar8 mask); - -uchar8 __ovld __cnfn shuffle(uchar2 x, uchar8 mask); -uchar8 __ovld __cnfn shuffle(uchar4 x, uchar8 mask); -uchar8 __ovld __cnfn shuffle(uchar8 x, uchar8 mask); -uchar8 __ovld __cnfn shuffle(uchar16 x, uchar8 mask); - -short8 __ovld __cnfn shuffle(short2 x, ushort8 mask); -short8 __ovld __cnfn shuffle(short4 x, ushort8 mask); -short8 __ovld __cnfn shuffle(short8 x, ushort8 mask); -short8 __ovld __cnfn shuffle(short16 x, ushort8 mask); - -ushort8 __ovld __cnfn shuffle(ushort2 x, ushort8 mask); -ushort8 __ovld __cnfn shuffle(ushort4 x, ushort8 mask); -ushort8 __ovld __cnfn shuffle(ushort8 x, ushort8 mask); -ushort8 __ovld __cnfn shuffle(ushort16 x, ushort8 mask); - -int8 __ovld __cnfn shuffle(int2 x, uint8 mask); -int8 __ovld __cnfn shuffle(int4 x, uint8 mask); -int8 __ovld __cnfn shuffle(int8 x, uint8 mask); -int8 __ovld __cnfn shuffle(int16 x, uint8 mask); - -uint8 __ovld __cnfn shuffle(uint2 x, uint8 mask); -uint8 __ovld __cnfn shuffle(uint4 x, uint8 mask); -uint8 __ovld __cnfn shuffle(uint8 x, uint8 mask); -uint8 __ovld __cnfn shuffle(uint16 x, uint8 mask); - -long8 __ovld __cnfn shuffle(long2 x, ulong8 mask); -long8 __ovld __cnfn shuffle(long4 x, ulong8 mask); -long8 __ovld __cnfn shuffle(long8 x, ulong8 mask); -long8 __ovld __cnfn shuffle(long16 x, ulong8 mask); - -ulong8 __ovld __cnfn shuffle(ulong2 x, ulong8 mask); -ulong8 __ovld __cnfn shuffle(ulong4 x, ulong8 mask); -ulong8 __ovld __cnfn shuffle(ulong8 x, ulong8 mask); -ulong8 __ovld __cnfn shuffle(ulong16 x, ulong8 mask); - -float8 __ovld __cnfn shuffle(float2 x, uint8 mask); -float8 __ovld __cnfn shuffle(float4 x, uint8 mask); -float8 __ovld __cnfn shuffle(float8 x, uint8 mask); -float8 __ovld __cnfn shuffle(float16 x, uint8 mask); - -char16 __ovld __cnfn shuffle(char2 x, uchar16 mask); -char16 __ovld __cnfn shuffle(char4 x, uchar16 mask); -char16 __ovld __cnfn shuffle(char8 x, uchar16 mask); -char16 __ovld __cnfn shuffle(char16 x, uchar16 mask); - -uchar16 __ovld __cnfn shuffle(uchar2 x, uchar16 mask); -uchar16 __ovld __cnfn shuffle(uchar4 x, uchar16 mask); -uchar16 __ovld __cnfn shuffle(uchar8 x, uchar16 mask); -uchar16 __ovld __cnfn shuffle(uchar16 x, uchar16 mask); - -short16 __ovld __cnfn shuffle(short2 x, ushort16 mask); -short16 __ovld __cnfn shuffle(short4 x, ushort16 mask); -short16 __ovld __cnfn shuffle(short8 x, ushort16 mask); -short16 __ovld __cnfn shuffle(short16 x, ushort16 mask); - -ushort16 __ovld __cnfn shuffle(ushort2 x, ushort16 mask); -ushort16 __ovld __cnfn shuffle(ushort4 x, ushort16 mask); -ushort16 __ovld __cnfn shuffle(ushort8 x, ushort16 mask); -ushort16 __ovld __cnfn shuffle(ushort16 x, ushort16 mask); - -int16 __ovld __cnfn shuffle(int2 x, uint16 mask); -int16 __ovld __cnfn shuffle(int4 x, uint16 mask); -int16 __ovld __cnfn shuffle(int8 x, uint16 mask); -int16 __ovld __cnfn shuffle(int16 x, uint16 mask); - -uint16 __ovld __cnfn shuffle(uint2 x, uint16 mask); -uint16 __ovld __cnfn shuffle(uint4 x, uint16 mask); -uint16 __ovld __cnfn shuffle(uint8 x, uint16 mask); -uint16 __ovld __cnfn shuffle(uint16 x, uint16 mask); - -long16 __ovld __cnfn shuffle(long2 x, ulong16 mask); -long16 __ovld __cnfn shuffle(long4 x, ulong16 mask); -long16 __ovld __cnfn shuffle(long8 x, ulong16 mask); -long16 __ovld __cnfn shuffle(long16 x, ulong16 mask); - -ulong16 __ovld __cnfn shuffle(ulong2 x, ulong16 mask); -ulong16 __ovld __cnfn shuffle(ulong4 x, ulong16 mask); -ulong16 __ovld __cnfn shuffle(ulong8 x, ulong16 mask); -ulong16 __ovld __cnfn shuffle(ulong16 x, ulong16 mask); - -float16 __ovld __cnfn shuffle(float2 x, uint16 mask); -float16 __ovld __cnfn shuffle(float4 x, uint16 mask); -float16 __ovld __cnfn shuffle(float8 x, uint16 mask); -float16 __ovld __cnfn shuffle(float16 x, uint16 mask); +char2 __ovld __cnfn shuffle(char2, uchar2); +char2 __ovld __cnfn shuffle(char4, uchar2); +char2 __ovld __cnfn shuffle(char8, uchar2); +char2 __ovld __cnfn shuffle(char16, uchar2); + +uchar2 __ovld __cnfn shuffle(uchar2, uchar2); +uchar2 __ovld __cnfn shuffle(uchar4, uchar2); +uchar2 __ovld __cnfn shuffle(uchar8, uchar2); +uchar2 __ovld __cnfn shuffle(uchar16, uchar2); + +short2 __ovld __cnfn shuffle(short2, ushort2); +short2 __ovld __cnfn shuffle(short4, ushort2); +short2 __ovld __cnfn shuffle(short8, ushort2); +short2 __ovld __cnfn shuffle(short16, ushort2); + +ushort2 __ovld __cnfn shuffle(ushort2, ushort2); +ushort2 __ovld __cnfn shuffle(ushort4, ushort2); +ushort2 __ovld __cnfn shuffle(ushort8, ushort2); +ushort2 __ovld __cnfn shuffle(ushort16, ushort2); + +int2 __ovld __cnfn shuffle(int2, uint2); +int2 __ovld __cnfn shuffle(int4, uint2); +int2 __ovld __cnfn shuffle(int8, uint2); +int2 __ovld __cnfn shuffle(int16, uint2); + +uint2 __ovld __cnfn shuffle(uint2, uint2); +uint2 __ovld __cnfn shuffle(uint4, uint2); +uint2 __ovld __cnfn shuffle(uint8, uint2); +uint2 __ovld __cnfn shuffle(uint16, uint2); + +long2 __ovld __cnfn shuffle(long2, ulong2); +long2 __ovld __cnfn shuffle(long4, ulong2); +long2 __ovld __cnfn shuffle(long8, ulong2); +long2 __ovld __cnfn shuffle(long16, ulong2); + +ulong2 __ovld __cnfn shuffle(ulong2, ulong2); +ulong2 __ovld __cnfn shuffle(ulong4, ulong2); +ulong2 __ovld __cnfn shuffle(ulong8, ulong2); +ulong2 __ovld __cnfn shuffle(ulong16, ulong2); + +float2 __ovld __cnfn shuffle(float2, uint2); +float2 __ovld __cnfn shuffle(float4, uint2); +float2 __ovld __cnfn shuffle(float8, uint2); +float2 __ovld __cnfn shuffle(float16, uint2); + +char4 __ovld __cnfn shuffle(char2, uchar4); +char4 __ovld __cnfn shuffle(char4, uchar4); +char4 __ovld __cnfn shuffle(char8, uchar4); +char4 __ovld __cnfn shuffle(char16, uchar4); + +uchar4 __ovld __cnfn shuffle(uchar2, uchar4); +uchar4 __ovld __cnfn shuffle(uchar4, uchar4); +uchar4 __ovld __cnfn shuffle(uchar8, uchar4); +uchar4 __ovld __cnfn shuffle(uchar16, uchar4); + +short4 __ovld __cnfn shuffle(short2, ushort4); +short4 __ovld __cnfn shuffle(short4, ushort4); +short4 __ovld __cnfn shuffle(short8, ushort4); +short4 __ovld __cnfn shuffle(short16, ushort4); + +ushort4 __ovld __cnfn shuffle(ushort2, ushort4); +ushort4 __ovld __cnfn shuffle(ushort4, ushort4); +ushort4 __ovld __cnfn shuffle(ushort8, ushort4); +ushort4 __ovld __cnfn shuffle(ushort16, ushort4); + +int4 __ovld __cnfn shuffle(int2, uint4); +int4 __ovld __cnfn shuffle(int4, uint4); +int4 __ovld __cnfn shuffle(int8, uint4); +int4 __ovld __cnfn shuffle(int16, uint4); + +uint4 __ovld __cnfn shuffle(uint2, uint4); +uint4 __ovld __cnfn shuffle(uint4, uint4); +uint4 __ovld __cnfn shuffle(uint8, uint4); +uint4 __ovld __cnfn shuffle(uint16, uint4); + +long4 __ovld __cnfn shuffle(long2, ulong4); +long4 __ovld __cnfn shuffle(long4, ulong4); +long4 __ovld __cnfn shuffle(long8, ulong4); +long4 __ovld __cnfn shuffle(long16, ulong4); + +ulong4 __ovld __cnfn shuffle(ulong2, ulong4); +ulong4 __ovld __cnfn shuffle(ulong4, ulong4); +ulong4 __ovld __cnfn shuffle(ulong8, ulong4); +ulong4 __ovld __cnfn shuffle(ulong16, ulong4); + +float4 __ovld __cnfn shuffle(float2, uint4); +float4 __ovld __cnfn shuffle(float4, uint4); +float4 __ovld __cnfn shuffle(float8, uint4); +float4 __ovld __cnfn shuffle(float16, uint4); + +char8 __ovld __cnfn shuffle(char2, uchar8); +char8 __ovld __cnfn shuffle(char4, uchar8); +char8 __ovld __cnfn shuffle(char8, uchar8); +char8 __ovld __cnfn shuffle(char16, uchar8); + +uchar8 __ovld __cnfn shuffle(uchar2, uchar8); +uchar8 __ovld __cnfn shuffle(uchar4, uchar8); +uchar8 __ovld __cnfn shuffle(uchar8, uchar8); +uchar8 __ovld __cnfn shuffle(uchar16, uchar8); + +short8 __ovld __cnfn shuffle(short2, ushort8); +short8 __ovld __cnfn shuffle(short4, ushort8); +short8 __ovld __cnfn shuffle(short8, ushort8); +short8 __ovld __cnfn shuffle(short16, ushort8); + +ushort8 __ovld __cnfn shuffle(ushort2, ushort8); +ushort8 __ovld __cnfn shuffle(ushort4, ushort8); +ushort8 __ovld __cnfn shuffle(ushort8, ushort8); +ushort8 __ovld __cnfn shuffle(ushort16, ushort8); + +int8 __ovld __cnfn shuffle(int2, uint8); +int8 __ovld __cnfn shuffle(int4, uint8); +int8 __ovld __cnfn shuffle(int8, uint8); +int8 __ovld __cnfn shuffle(int16, uint8); + +uint8 __ovld __cnfn shuffle(uint2, uint8); +uint8 __ovld __cnfn shuffle(uint4, uint8); +uint8 __ovld __cnfn shuffle(uint8, uint8); +uint8 __ovld __cnfn shuffle(uint16, uint8); + +long8 __ovld __cnfn shuffle(long2, ulong8); +long8 __ovld __cnfn shuffle(long4, ulong8); +long8 __ovld __cnfn shuffle(long8, ulong8); +long8 __ovld __cnfn shuffle(long16, ulong8); + +ulong8 __ovld __cnfn shuffle(ulong2, ulong8); +ulong8 __ovld __cnfn shuffle(ulong4, ulong8); +ulong8 __ovld __cnfn shuffle(ulong8, ulong8); +ulong8 __ovld __cnfn shuffle(ulong16, ulong8); + +float8 __ovld __cnfn shuffle(float2, uint8); +float8 __ovld __cnfn shuffle(float4, uint8); +float8 __ovld __cnfn shuffle(float8, uint8); +float8 __ovld __cnfn shuffle(float16, uint8); + +char16 __ovld __cnfn shuffle(char2, uchar16); +char16 __ovld __cnfn shuffle(char4, uchar16); +char16 __ovld __cnfn shuffle(char8, uchar16); +char16 __ovld __cnfn shuffle(char16, uchar16); + +uchar16 __ovld __cnfn shuffle(uchar2, uchar16); +uchar16 __ovld __cnfn shuffle(uchar4, uchar16); +uchar16 __ovld __cnfn shuffle(uchar8, uchar16); +uchar16 __ovld __cnfn shuffle(uchar16, uchar16); + +short16 __ovld __cnfn shuffle(short2, ushort16); +short16 __ovld __cnfn shuffle(short4, ushort16); +short16 __ovld __cnfn shuffle(short8, ushort16); +short16 __ovld __cnfn shuffle(short16, ushort16); + +ushort16 __ovld __cnfn shuffle(ushort2, ushort16); +ushort16 __ovld __cnfn shuffle(ushort4, ushort16); +ushort16 __ovld __cnfn shuffle(ushort8, ushort16); +ushort16 __ovld __cnfn shuffle(ushort16, ushort16); + +int16 __ovld __cnfn shuffle(int2, uint16); +int16 __ovld __cnfn shuffle(int4, uint16); +int16 __ovld __cnfn shuffle(int8, uint16); +int16 __ovld __cnfn shuffle(int16, uint16); + +uint16 __ovld __cnfn shuffle(uint2, uint16); +uint16 __ovld __cnfn shuffle(uint4, uint16); +uint16 __ovld __cnfn shuffle(uint8, uint16); +uint16 __ovld __cnfn shuffle(uint16, uint16); + +long16 __ovld __cnfn shuffle(long2, ulong16); +long16 __ovld __cnfn shuffle(long4, ulong16); +long16 __ovld __cnfn shuffle(long8, ulong16); +long16 __ovld __cnfn shuffle(long16, ulong16); + +ulong16 __ovld __cnfn shuffle(ulong2, ulong16); +ulong16 __ovld __cnfn shuffle(ulong4, ulong16); +ulong16 __ovld __cnfn shuffle(ulong8, ulong16); +ulong16 __ovld __cnfn shuffle(ulong16, ulong16); + +float16 __ovld __cnfn shuffle(float2, uint16); +float16 __ovld __cnfn shuffle(float4, uint16); +float16 __ovld __cnfn shuffle(float8, uint16); +float16 __ovld __cnfn shuffle(float16, uint16); #ifdef cl_khr_fp64 -double2 __ovld __cnfn shuffle(double2 x, ulong2 mask); -double2 __ovld __cnfn shuffle(double4 x, ulong2 mask); -double2 __ovld __cnfn shuffle(double8 x, ulong2 mask); -double2 __ovld __cnfn shuffle(double16 x, ulong2 mask); - -double4 __ovld __cnfn shuffle(double2 x, ulong4 mask); -double4 __ovld __cnfn shuffle(double4 x, ulong4 mask); -double4 __ovld __cnfn shuffle(double8 x, ulong4 mask); -double4 __ovld __cnfn shuffle(double16 x, ulong4 mask); - -double8 __ovld __cnfn shuffle(double2 x, ulong8 mask); -double8 __ovld __cnfn shuffle(double4 x, ulong8 mask); -double8 __ovld __cnfn shuffle(double8 x, ulong8 mask); -double8 __ovld __cnfn shuffle(double16 x, ulong8 mask); - -double16 __ovld __cnfn shuffle(double2 x, ulong16 mask); -double16 __ovld __cnfn shuffle(double4 x, ulong16 mask); -double16 __ovld __cnfn shuffle(double8 x, ulong16 mask); -double16 __ovld __cnfn shuffle(double16 x, ulong16 mask); +double2 __ovld __cnfn shuffle(double2, ulong2); +double2 __ovld __cnfn shuffle(double4, ulong2); +double2 __ovld __cnfn shuffle(double8, ulong2); +double2 __ovld __cnfn shuffle(double16, ulong2); + +double4 __ovld __cnfn shuffle(double2, ulong4); +double4 __ovld __cnfn shuffle(double4, ulong4); +double4 __ovld __cnfn shuffle(double8, ulong4); +double4 __ovld __cnfn shuffle(double16, ulong4); + +double8 __ovld __cnfn shuffle(double2, ulong8); +double8 __ovld __cnfn shuffle(double4, ulong8); +double8 __ovld __cnfn shuffle(double8, ulong8); +double8 __ovld __cnfn shuffle(double16, ulong8); + +double16 __ovld __cnfn shuffle(double2, ulong16); +double16 __ovld __cnfn shuffle(double4, ulong16); +double16 __ovld __cnfn shuffle(double8, ulong16); +double16 __ovld __cnfn shuffle(double16, ulong16); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half2 __ovld __cnfn shuffle(half2 x, ushort2 mask); -half2 __ovld __cnfn shuffle(half4 x, ushort2 mask); -half2 __ovld __cnfn shuffle(half8 x, ushort2 mask); -half2 __ovld __cnfn shuffle(half16 x, ushort2 mask); - -half4 __ovld __cnfn shuffle(half2 x, ushort4 mask); -half4 __ovld __cnfn shuffle(half4 x, ushort4 mask); -half4 __ovld __cnfn shuffle(half8 x, ushort4 mask); -half4 __ovld __cnfn shuffle(half16 x, ushort4 mask); - -half8 __ovld __cnfn shuffle(half2 x, ushort8 mask); -half8 __ovld __cnfn shuffle(half4 x, ushort8 mask); -half8 __ovld __cnfn shuffle(half8 x, ushort8 mask); -half8 __ovld __cnfn shuffle(half16 x, ushort8 mask); - -half16 __ovld __cnfn shuffle(half2 x, ushort16 mask); -half16 __ovld __cnfn shuffle(half4 x, ushort16 mask); -half16 __ovld __cnfn shuffle(half8 x, ushort16 mask); -half16 __ovld __cnfn shuffle(half16 x, ushort16 mask); +half2 __ovld __cnfn shuffle(half2, ushort2); +half2 __ovld __cnfn shuffle(half4, ushort2); +half2 __ovld __cnfn shuffle(half8, ushort2); +half2 __ovld __cnfn shuffle(half16, ushort2); + +half4 __ovld __cnfn shuffle(half2, ushort4); +half4 __ovld __cnfn shuffle(half4, ushort4); +half4 __ovld __cnfn shuffle(half8, ushort4); +half4 __ovld __cnfn shuffle(half16, ushort4); + +half8 __ovld __cnfn shuffle(half2, ushort8); +half8 __ovld __cnfn shuffle(half4, ushort8); +half8 __ovld __cnfn shuffle(half8, ushort8); +half8 __ovld __cnfn shuffle(half16, ushort8); + +half16 __ovld __cnfn shuffle(half2, ushort16); +half16 __ovld __cnfn shuffle(half4, ushort16); +half16 __ovld __cnfn shuffle(half8, ushort16); +half16 __ovld __cnfn shuffle(half16, ushort16); #endif //cl_khr_fp16 -char2 __ovld __cnfn shuffle2(char2 x, char2 y, uchar2 mask); -char2 __ovld __cnfn shuffle2(char4 x, char4 y, uchar2 mask); -char2 __ovld __cnfn shuffle2(char8 x, char8 y, uchar2 mask); -char2 __ovld __cnfn shuffle2(char16 x, char16 y, uchar2 mask); - -uchar2 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar2 mask); -uchar2 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar2 mask); -uchar2 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar2 mask); -uchar2 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar2 mask); - -short2 __ovld __cnfn shuffle2(short2 x, short2 y, ushort2 mask); -short2 __ovld __cnfn shuffle2(short4 x, short4 y, ushort2 mask); -short2 __ovld __cnfn shuffle2(short8 x, short8 y, ushort2 mask); -short2 __ovld __cnfn shuffle2(short16 x, short16 y, ushort2 mask); - -ushort2 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort2 mask); -ushort2 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort2 mask); -ushort2 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort2 mask); -ushort2 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort2 mask); - -int2 __ovld __cnfn shuffle2(int2 x, int2 y, uint2 mask); -int2 __ovld __cnfn shuffle2(int4 x, int4 y, uint2 mask); -int2 __ovld __cnfn shuffle2(int8 x, int8 y, uint2 mask); -int2 __ovld __cnfn shuffle2(int16 x, int16 y, uint2 mask); - -uint2 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint2 mask); -uint2 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint2 mask); -uint2 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint2 mask); -uint2 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint2 mask); - -long2 __ovld __cnfn shuffle2(long2 x, long2 y, ulong2 mask); -long2 __ovld __cnfn shuffle2(long4 x, long4 y, ulong2 mask); -long2 __ovld __cnfn shuffle2(long8 x, long8 y, ulong2 mask); -long2 __ovld __cnfn shuffle2(long16 x, long16 y, ulong2 mask); - -ulong2 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong2 mask); -ulong2 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong2 mask); -ulong2 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong2 mask); -ulong2 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong2 mask); - -float2 __ovld __cnfn shuffle2(float2 x, float2 y, uint2 mask); -float2 __ovld __cnfn shuffle2(float4 x, float4 y, uint2 mask); -float2 __ovld __cnfn shuffle2(float8 x, float8 y, uint2 mask); -float2 __ovld __cnfn shuffle2(float16 x, float16 y, uint2 mask); - -char4 __ovld __cnfn shuffle2(char2 x, char2 y, uchar4 mask); -char4 __ovld __cnfn shuffle2(char4 x, char4 y, uchar4 mask); -char4 __ovld __cnfn shuffle2(char8 x, char8 y, uchar4 mask); -char4 __ovld __cnfn shuffle2(char16 x, char16 y, uchar4 mask); - -uchar4 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar4 mask); -uchar4 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar4 mask); -uchar4 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar4 mask); -uchar4 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar4 mask); - -short4 __ovld __cnfn shuffle2(short2 x, short2 y, ushort4 mask); -short4 __ovld __cnfn shuffle2(short4 x, short4 y, ushort4 mask); -short4 __ovld __cnfn shuffle2(short8 x, short8 y, ushort4 mask); -short4 __ovld __cnfn shuffle2(short16 x, short16 y, ushort4 mask); - -ushort4 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort4 mask); -ushort4 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort4 mask); -ushort4 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort4 mask); -ushort4 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort4 mask); - -int4 __ovld __cnfn shuffle2(int2 x, int2 y, uint4 mask); -int4 __ovld __cnfn shuffle2(int4 x, int4 y, uint4 mask); -int4 __ovld __cnfn shuffle2(int8 x, int8 y, uint4 mask); -int4 __ovld __cnfn shuffle2(int16 x, int16 y, uint4 mask); - -uint4 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint4 mask); -uint4 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint4 mask); -uint4 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint4 mask); -uint4 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint4 mask); - -long4 __ovld __cnfn shuffle2(long2 x, long2 y, ulong4 mask); -long4 __ovld __cnfn shuffle2(long4 x, long4 y, ulong4 mask); -long4 __ovld __cnfn shuffle2(long8 x, long8 y, ulong4 mask); -long4 __ovld __cnfn shuffle2(long16 x, long16 y, ulong4 mask); - -ulong4 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong4 mask); -ulong4 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong4 mask); -ulong4 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong4 mask); -ulong4 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong4 mask); - -float4 __ovld __cnfn shuffle2(float2 x, float2 y, uint4 mask); -float4 __ovld __cnfn shuffle2(float4 x, float4 y, uint4 mask); -float4 __ovld __cnfn shuffle2(float8 x, float8 y, uint4 mask); -float4 __ovld __cnfn shuffle2(float16 x, float16 y, uint4 mask); - -char8 __ovld __cnfn shuffle2(char2 x, char2 y, uchar8 mask); -char8 __ovld __cnfn shuffle2(char4 x, char4 y, uchar8 mask); -char8 __ovld __cnfn shuffle2(char8 x, char8 y, uchar8 mask); -char8 __ovld __cnfn shuffle2(char16 x, char16 y, uchar8 mask); - -uchar8 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar8 mask); -uchar8 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar8 mask); -uchar8 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar8 mask); -uchar8 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar8 mask); - -short8 __ovld __cnfn shuffle2(short2 x, short2 y, ushort8 mask); -short8 __ovld __cnfn shuffle2(short4 x, short4 y, ushort8 mask); -short8 __ovld __cnfn shuffle2(short8 x, short8 y, ushort8 mask); -short8 __ovld __cnfn shuffle2(short16 x, short16 y, ushort8 mask); - -ushort8 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort8 mask); -ushort8 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort8 mask); -ushort8 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort8 mask); -ushort8 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort8 mask); - -int8 __ovld __cnfn shuffle2(int2 x, int2 y, uint8 mask); -int8 __ovld __cnfn shuffle2(int4 x, int4 y, uint8 mask); -int8 __ovld __cnfn shuffle2(int8 x, int8 y, uint8 mask); -int8 __ovld __cnfn shuffle2(int16 x, int16 y, uint8 mask); - -uint8 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint8 mask); -uint8 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint8 mask); -uint8 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint8 mask); -uint8 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint8 mask); - -long8 __ovld __cnfn shuffle2(long2 x, long2 y, ulong8 mask); -long8 __ovld __cnfn shuffle2(long4 x, long4 y, ulong8 mask); -long8 __ovld __cnfn shuffle2(long8 x, long8 y, ulong8 mask); -long8 __ovld __cnfn shuffle2(long16 x, long16 y, ulong8 mask); - -ulong8 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong8 mask); -ulong8 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong8 mask); -ulong8 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong8 mask); -ulong8 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong8 mask); - -float8 __ovld __cnfn shuffle2(float2 x, float2 y, uint8 mask); -float8 __ovld __cnfn shuffle2(float4 x, float4 y, uint8 mask); -float8 __ovld __cnfn shuffle2(float8 x, float8 y, uint8 mask); -float8 __ovld __cnfn shuffle2(float16 x, float16 y, uint8 mask); - -char16 __ovld __cnfn shuffle2(char2 x, char2 y, uchar16 mask); -char16 __ovld __cnfn shuffle2(char4 x, char4 y, uchar16 mask); -char16 __ovld __cnfn shuffle2(char8 x, char8 y, uchar16 mask); -char16 __ovld __cnfn shuffle2(char16 x, char16 y, uchar16 mask); - -uchar16 __ovld __cnfn shuffle2(uchar2 x, uchar2 y, uchar16 mask); -uchar16 __ovld __cnfn shuffle2(uchar4 x, uchar4 y, uchar16 mask); -uchar16 __ovld __cnfn shuffle2(uchar8 x, uchar8 y, uchar16 mask); -uchar16 __ovld __cnfn shuffle2(uchar16 x, uchar16 y, uchar16 mask); - -short16 __ovld __cnfn shuffle2(short2 x, short2 y, ushort16 mask); -short16 __ovld __cnfn shuffle2(short4 x, short4 y, ushort16 mask); -short16 __ovld __cnfn shuffle2(short8 x, short8 y, ushort16 mask); -short16 __ovld __cnfn shuffle2(short16 x, short16 y, ushort16 mask); - -ushort16 __ovld __cnfn shuffle2(ushort2 x, ushort2 y, ushort16 mask); -ushort16 __ovld __cnfn shuffle2(ushort4 x, ushort4 y, ushort16 mask); -ushort16 __ovld __cnfn shuffle2(ushort8 x, ushort8 y, ushort16 mask); -ushort16 __ovld __cnfn shuffle2(ushort16 x, ushort16 y, ushort16 mask); - -int16 __ovld __cnfn shuffle2(int2 x, int2 y, uint16 mask); -int16 __ovld __cnfn shuffle2(int4 x, int4 y, uint16 mask); -int16 __ovld __cnfn shuffle2(int8 x, int8 y, uint16 mask); -int16 __ovld __cnfn shuffle2(int16 x, int16 y, uint16 mask); - -uint16 __ovld __cnfn shuffle2(uint2 x, uint2 y, uint16 mask); -uint16 __ovld __cnfn shuffle2(uint4 x, uint4 y, uint16 mask); -uint16 __ovld __cnfn shuffle2(uint8 x, uint8 y, uint16 mask); -uint16 __ovld __cnfn shuffle2(uint16 x, uint16 y, uint16 mask); - -long16 __ovld __cnfn shuffle2(long2 x, long2 y, ulong16 mask); -long16 __ovld __cnfn shuffle2(long4 x, long4 y, ulong16 mask); -long16 __ovld __cnfn shuffle2(long8 x, long8 y, ulong16 mask); -long16 __ovld __cnfn shuffle2(long16 x, long16 y, ulong16 mask); - -ulong16 __ovld __cnfn shuffle2(ulong2 x, ulong2 y, ulong16 mask); -ulong16 __ovld __cnfn shuffle2(ulong4 x, ulong4 y, ulong16 mask); -ulong16 __ovld __cnfn shuffle2(ulong8 x, ulong8 y, ulong16 mask); -ulong16 __ovld __cnfn shuffle2(ulong16 x, ulong16 y, ulong16 mask); - -float16 __ovld __cnfn shuffle2(float2 x, float2 y, uint16 mask); -float16 __ovld __cnfn shuffle2(float4 x, float4 y, uint16 mask); -float16 __ovld __cnfn shuffle2(float8 x, float8 y, uint16 mask); -float16 __ovld __cnfn shuffle2(float16 x, float16 y, uint16 mask); +char2 __ovld __cnfn shuffle2(char2, char2, uchar2); +char2 __ovld __cnfn shuffle2(char4, char4, uchar2); +char2 __ovld __cnfn shuffle2(char8, char8, uchar2); +char2 __ovld __cnfn shuffle2(char16, char16, uchar2); + +uchar2 __ovld __cnfn shuffle2(uchar2, uchar2, uchar2); +uchar2 __ovld __cnfn shuffle2(uchar4, uchar4, uchar2); +uchar2 __ovld __cnfn shuffle2(uchar8, uchar8, uchar2); +uchar2 __ovld __cnfn shuffle2(uchar16, uchar16, uchar2); + +short2 __ovld __cnfn shuffle2(short2, short2, ushort2); +short2 __ovld __cnfn shuffle2(short4, short4, ushort2); +short2 __ovld __cnfn shuffle2(short8, short8, ushort2); +short2 __ovld __cnfn shuffle2(short16, short16, ushort2); + +ushort2 __ovld __cnfn shuffle2(ushort2, ushort2, ushort2); +ushort2 __ovld __cnfn shuffle2(ushort4, ushort4, ushort2); +ushort2 __ovld __cnfn shuffle2(ushort8, ushort8, ushort2); +ushort2 __ovld __cnfn shuffle2(ushort16, ushort16, ushort2); + +int2 __ovld __cnfn shuffle2(int2, int2, uint2); +int2 __ovld __cnfn shuffle2(int4, int4, uint2); +int2 __ovld __cnfn shuffle2(int8, int8, uint2); +int2 __ovld __cnfn shuffle2(int16, int16, uint2); + +uint2 __ovld __cnfn shuffle2(uint2, uint2, uint2); +uint2 __ovld __cnfn shuffle2(uint4, uint4, uint2); +uint2 __ovld __cnfn shuffle2(uint8, uint8, uint2); +uint2 __ovld __cnfn shuffle2(uint16, uint16, uint2); + +long2 __ovld __cnfn shuffle2(long2, long2, ulong2); +long2 __ovld __cnfn shuffle2(long4, long4, ulong2); +long2 __ovld __cnfn shuffle2(long8, long8, ulong2); +long2 __ovld __cnfn shuffle2(long16, long16, ulong2); + +ulong2 __ovld __cnfn shuffle2(ulong2, ulong2, ulong2); +ulong2 __ovld __cnfn shuffle2(ulong4, ulong4, ulong2); +ulong2 __ovld __cnfn shuffle2(ulong8, ulong8, ulong2); +ulong2 __ovld __cnfn shuffle2(ulong16, ulong16, ulong2); + +float2 __ovld __cnfn shuffle2(float2, float2, uint2); +float2 __ovld __cnfn shuffle2(float4, float4, uint2); +float2 __ovld __cnfn shuffle2(float8, float8, uint2); +float2 __ovld __cnfn shuffle2(float16, float16, uint2); + +char4 __ovld __cnfn shuffle2(char2, char2, uchar4); +char4 __ovld __cnfn shuffle2(char4, char4, uchar4); +char4 __ovld __cnfn shuffle2(char8, char8, uchar4); +char4 __ovld __cnfn shuffle2(char16, char16, uchar4); + +uchar4 __ovld __cnfn shuffle2(uchar2, uchar2, uchar4); +uchar4 __ovld __cnfn shuffle2(uchar4, uchar4, uchar4); +uchar4 __ovld __cnfn shuffle2(uchar8, uchar8, uchar4); +uchar4 __ovld __cnfn shuffle2(uchar16, uchar16, uchar4); + +short4 __ovld __cnfn shuffle2(short2, short2, ushort4); +short4 __ovld __cnfn shuffle2(short4, short4, ushort4); +short4 __ovld __cnfn shuffle2(short8, short8, ushort4); +short4 __ovld __cnfn shuffle2(short16, short16, ushort4); + +ushort4 __ovld __cnfn shuffle2(ushort2, ushort2, ushort4); +ushort4 __ovld __cnfn shuffle2(ushort4, ushort4, ushort4); +ushort4 __ovld __cnfn shuffle2(ushort8, ushort8, ushort4); +ushort4 __ovld __cnfn shuffle2(ushort16, ushort16, ushort4); + +int4 __ovld __cnfn shuffle2(int2, int2, uint4); +int4 __ovld __cnfn shuffle2(int4, int4, uint4); +int4 __ovld __cnfn shuffle2(int8, int8, uint4); +int4 __ovld __cnfn shuffle2(int16, int16, uint4); + +uint4 __ovld __cnfn shuffle2(uint2, uint2, uint4); +uint4 __ovld __cnfn shuffle2(uint4, uint4, uint4); +uint4 __ovld __cnfn shuffle2(uint8, uint8, uint4); +uint4 __ovld __cnfn shuffle2(uint16, uint16, uint4); + +long4 __ovld __cnfn shuffle2(long2, long2, ulong4); +long4 __ovld __cnfn shuffle2(long4, long4, ulong4); +long4 __ovld __cnfn shuffle2(long8, long8, ulong4); +long4 __ovld __cnfn shuffle2(long16, long16, ulong4); + +ulong4 __ovld __cnfn shuffle2(ulong2, ulong2, ulong4); +ulong4 __ovld __cnfn shuffle2(ulong4, ulong4, ulong4); +ulong4 __ovld __cnfn shuffle2(ulong8, ulong8, ulong4); +ulong4 __ovld __cnfn shuffle2(ulong16, ulong16, ulong4); + +float4 __ovld __cnfn shuffle2(float2, float2, uint4); +float4 __ovld __cnfn shuffle2(float4, float4, uint4); +float4 __ovld __cnfn shuffle2(float8, float8, uint4); +float4 __ovld __cnfn shuffle2(float16, float16, uint4); + +char8 __ovld __cnfn shuffle2(char2, char2, uchar8); +char8 __ovld __cnfn shuffle2(char4, char4, uchar8); +char8 __ovld __cnfn shuffle2(char8, char8, uchar8); +char8 __ovld __cnfn shuffle2(char16, char16, uchar8); + +uchar8 __ovld __cnfn shuffle2(uchar2, uchar2, uchar8); +uchar8 __ovld __cnfn shuffle2(uchar4, uchar4, uchar8); +uchar8 __ovld __cnfn shuffle2(uchar8, uchar8, uchar8); +uchar8 __ovld __cnfn shuffle2(uchar16, uchar16, uchar8); + +short8 __ovld __cnfn shuffle2(short2, short2, ushort8); +short8 __ovld __cnfn shuffle2(short4, short4, ushort8); +short8 __ovld __cnfn shuffle2(short8, short8, ushort8); +short8 __ovld __cnfn shuffle2(short16, short16, ushort8); + +ushort8 __ovld __cnfn shuffle2(ushort2, ushort2, ushort8); +ushort8 __ovld __cnfn shuffle2(ushort4, ushort4, ushort8); +ushort8 __ovld __cnfn shuffle2(ushort8, ushort8, ushort8); +ushort8 __ovld __cnfn shuffle2(ushort16, ushort16, ushort8); + +int8 __ovld __cnfn shuffle2(int2, int2, uint8); +int8 __ovld __cnfn shuffle2(int4, int4, uint8); +int8 __ovld __cnfn shuffle2(int8, int8, uint8); +int8 __ovld __cnfn shuffle2(int16, int16, uint8); + +uint8 __ovld __cnfn shuffle2(uint2, uint2, uint8); +uint8 __ovld __cnfn shuffle2(uint4, uint4, uint8); +uint8 __ovld __cnfn shuffle2(uint8, uint8, uint8); +uint8 __ovld __cnfn shuffle2(uint16, uint16, uint8); + +long8 __ovld __cnfn shuffle2(long2, long2, ulong8); +long8 __ovld __cnfn shuffle2(long4, long4, ulong8); +long8 __ovld __cnfn shuffle2(long8, long8, ulong8); +long8 __ovld __cnfn shuffle2(long16, long16, ulong8); + +ulong8 __ovld __cnfn shuffle2(ulong2, ulong2, ulong8); +ulong8 __ovld __cnfn shuffle2(ulong4, ulong4, ulong8); +ulong8 __ovld __cnfn shuffle2(ulong8, ulong8, ulong8); +ulong8 __ovld __cnfn shuffle2(ulong16, ulong16, ulong8); + +float8 __ovld __cnfn shuffle2(float2, float2, uint8); +float8 __ovld __cnfn shuffle2(float4, float4, uint8); +float8 __ovld __cnfn shuffle2(float8, float8, uint8); +float8 __ovld __cnfn shuffle2(float16, float16, uint8); + +char16 __ovld __cnfn shuffle2(char2, char2, uchar16); +char16 __ovld __cnfn shuffle2(char4, char4, uchar16); +char16 __ovld __cnfn shuffle2(char8, char8, uchar16); +char16 __ovld __cnfn shuffle2(char16, char16, uchar16); + +uchar16 __ovld __cnfn shuffle2(uchar2, uchar2, uchar16); +uchar16 __ovld __cnfn shuffle2(uchar4, uchar4, uchar16); +uchar16 __ovld __cnfn shuffle2(uchar8, uchar8, uchar16); +uchar16 __ovld __cnfn shuffle2(uchar16, uchar16, uchar16); + +short16 __ovld __cnfn shuffle2(short2, short2, ushort16); +short16 __ovld __cnfn shuffle2(short4, short4, ushort16); +short16 __ovld __cnfn shuffle2(short8, short8, ushort16); +short16 __ovld __cnfn shuffle2(short16, short16, ushort16); + +ushort16 __ovld __cnfn shuffle2(ushort2, ushort2, ushort16); +ushort16 __ovld __cnfn shuffle2(ushort4, ushort4, ushort16); +ushort16 __ovld __cnfn shuffle2(ushort8, ushort8, ushort16); +ushort16 __ovld __cnfn shuffle2(ushort16, ushort16, ushort16); + +int16 __ovld __cnfn shuffle2(int2, int2, uint16); +int16 __ovld __cnfn shuffle2(int4, int4, uint16); +int16 __ovld __cnfn shuffle2(int8, int8, uint16); +int16 __ovld __cnfn shuffle2(int16, int16, uint16); + +uint16 __ovld __cnfn shuffle2(uint2, uint2, uint16); +uint16 __ovld __cnfn shuffle2(uint4, uint4, uint16); +uint16 __ovld __cnfn shuffle2(uint8, uint8, uint16); +uint16 __ovld __cnfn shuffle2(uint16, uint16, uint16); + +long16 __ovld __cnfn shuffle2(long2, long2, ulong16); +long16 __ovld __cnfn shuffle2(long4, long4, ulong16); +long16 __ovld __cnfn shuffle2(long8, long8, ulong16); +long16 __ovld __cnfn shuffle2(long16, long16, ulong16); + +ulong16 __ovld __cnfn shuffle2(ulong2, ulong2, ulong16); +ulong16 __ovld __cnfn shuffle2(ulong4, ulong4, ulong16); +ulong16 __ovld __cnfn shuffle2(ulong8, ulong8, ulong16); +ulong16 __ovld __cnfn shuffle2(ulong16, ulong16, ulong16); + +float16 __ovld __cnfn shuffle2(float2, float2, uint16); +float16 __ovld __cnfn shuffle2(float4, float4, uint16); +float16 __ovld __cnfn shuffle2(float8, float8, uint16); +float16 __ovld __cnfn shuffle2(float16, float16, uint16); #ifdef cl_khr_fp64 -double2 __ovld __cnfn shuffle2(double2 x, double2 y, ulong2 mask); -double2 __ovld __cnfn shuffle2(double4 x, double4 y, ulong2 mask); -double2 __ovld __cnfn shuffle2(double8 x, double8 y, ulong2 mask); -double2 __ovld __cnfn shuffle2(double16 x, double16 y, ulong2 mask); - -double4 __ovld __cnfn shuffle2(double2 x, double2 y, ulong4 mask); -double4 __ovld __cnfn shuffle2(double4 x, double4 y, ulong4 mask); -double4 __ovld __cnfn shuffle2(double8 x, double8 y, ulong4 mask); -double4 __ovld __cnfn shuffle2(double16 x, double16 y, ulong4 mask); - -double8 __ovld __cnfn shuffle2(double2 x, double2 y, ulong8 mask); -double8 __ovld __cnfn shuffle2(double4 x, double4 y, ulong8 mask); -double8 __ovld __cnfn shuffle2(double8 x, double8 y, ulong8 mask); -double8 __ovld __cnfn shuffle2(double16 x, double16 y, ulong8 mask); - -double16 __ovld __cnfn shuffle2(double2 x, double2 y, ulong16 mask); -double16 __ovld __cnfn shuffle2(double4 x, double4 y, ulong16 mask); -double16 __ovld __cnfn shuffle2(double8 x, double8 y, ulong16 mask); -double16 __ovld __cnfn shuffle2(double16 x, double16 y, ulong16 mask); +double2 __ovld __cnfn shuffle2(double2, double2, ulong2); +double2 __ovld __cnfn shuffle2(double4, double4, ulong2); +double2 __ovld __cnfn shuffle2(double8, double8, ulong2); +double2 __ovld __cnfn shuffle2(double16, double16, ulong2); + +double4 __ovld __cnfn shuffle2(double2, double2, ulong4); +double4 __ovld __cnfn shuffle2(double4, double4, ulong4); +double4 __ovld __cnfn shuffle2(double8, double8, ulong4); +double4 __ovld __cnfn shuffle2(double16, double16, ulong4); + +double8 __ovld __cnfn shuffle2(double2, double2, ulong8); +double8 __ovld __cnfn shuffle2(double4, double4, ulong8); +double8 __ovld __cnfn shuffle2(double8, double8, ulong8); +double8 __ovld __cnfn shuffle2(double16, double16, ulong8); + +double16 __ovld __cnfn shuffle2(double2, double2, ulong16); +double16 __ovld __cnfn shuffle2(double4, double4, ulong16); +double16 __ovld __cnfn shuffle2(double8, double8, ulong16); +double16 __ovld __cnfn shuffle2(double16, double16, ulong16); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 -half2 __ovld __cnfn shuffle2(half2 x, half2 y, ushort2 mask); -half2 __ovld __cnfn shuffle2(half4 x, half4 y, ushort2 mask); -half2 __ovld __cnfn shuffle2(half8 x, half8 y, ushort2 mask); -half2 __ovld __cnfn shuffle2(half16 x, half16 y, ushort2 mask); - -half4 __ovld __cnfn shuffle2(half2 x, half2 y, ushort4 mask); -half4 __ovld __cnfn shuffle2(half4 x, half4 y, ushort4 mask); -half4 __ovld __cnfn shuffle2(half8 x, half8 y, ushort4 mask); -half4 __ovld __cnfn shuffle2(half16 x, half16 y, ushort4 mask); - -half8 __ovld __cnfn shuffle2(half2 x, half2 y, ushort8 mask); -half8 __ovld __cnfn shuffle2(half4 x, half4 y, ushort8 mask); -half8 __ovld __cnfn shuffle2(half8 x, half8 y, ushort8 mask); -half8 __ovld __cnfn shuffle2(half16 x, half16 y, ushort8 mask); - -half16 __ovld __cnfn shuffle2(half2 x, half2 y, ushort16 mask); -half16 __ovld __cnfn shuffle2(half4 x, half4 y, ushort16 mask); -half16 __ovld __cnfn shuffle2(half8 x, half8 y, ushort16 mask); -half16 __ovld __cnfn shuffle2(half16 x, half16 y, ushort16 mask); +half2 __ovld __cnfn shuffle2(half2, half2, ushort2); +half2 __ovld __cnfn shuffle2(half4, half4, ushort2); +half2 __ovld __cnfn shuffle2(half8, half8, ushort2); +half2 __ovld __cnfn shuffle2(half16, half16, ushort2); + +half4 __ovld __cnfn shuffle2(half2, half2, ushort4); +half4 __ovld __cnfn shuffle2(half4, half4, ushort4); +half4 __ovld __cnfn shuffle2(half8, half8, ushort4); +half4 __ovld __cnfn shuffle2(half16, half16, ushort4); + +half8 __ovld __cnfn shuffle2(half2, half2, ushort8); +half8 __ovld __cnfn shuffle2(half4, half4, ushort8); +half8 __ovld __cnfn shuffle2(half8, half8, ushort8); +half8 __ovld __cnfn shuffle2(half16, half16, ushort8); + +half16 __ovld __cnfn shuffle2(half2, half2, ushort16); +half16 __ovld __cnfn shuffle2(half4, half4, ushort16); +half16 __ovld __cnfn shuffle2(half8, half8, ushort16); +half16 __ovld __cnfn shuffle2(half16, half16, ushort16); #endif //cl_khr_fp16 // OpenCL v1.1 s6.11.3, v1.2 s6.12.14, v2.0 s6.13.14 - Image Read and Write Functions @@ -14853,123 +15909,131 @@ half16 __ovld __cnfn shuffle2(half16 x, half16 y, ushort16 mask); * in the description above are undefined. */ -float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, int2 coord); -float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord); +float4 __ovld __purefn read_imagef(read_only image2d_t, sampler_t, int2); +float4 __ovld __purefn read_imagef(read_only image2d_t, sampler_t, float2); -int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, int2 coord); -int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord); -uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, int2 coord); -uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord); +int4 __ovld __purefn read_imagei(read_only image2d_t, sampler_t, int2); +int4 __ovld __purefn read_imagei(read_only image2d_t, sampler_t, float2); +uint4 __ovld __purefn read_imageui(read_only image2d_t, sampler_t, int2); +uint4 __ovld __purefn read_imageui(read_only image2d_t, sampler_t, float2); -float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, int4 coord); -float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord); +float4 __ovld __purefn read_imagef(read_only image3d_t, sampler_t, int4); +float4 __ovld __purefn read_imagef(read_only image3d_t, sampler_t, float4); -int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, int4 coord); -int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord); -uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, int4 coord); -uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord); +int4 __ovld __purefn read_imagei(read_only image3d_t, sampler_t, int4); +int4 __ovld __purefn read_imagei(read_only image3d_t, sampler_t, float4); +uint4 __ovld __purefn read_imageui(read_only image3d_t, sampler_t, int4); +uint4 __ovld __purefn read_imageui(read_only image3d_t, sampler_t, float4); #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) -float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, int4 coord); -float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord); +float4 __ovld __purefn read_imagef(read_only image2d_array_t, sampler_t, int4); +float4 __ovld __purefn read_imagef(read_only image2d_array_t, sampler_t, float4); -int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, int4 coord); -int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord); -uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, int4 coord); -uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord); +int4 __ovld __purefn read_imagei(read_only image2d_array_t, sampler_t, int4); +int4 __ovld __purefn read_imagei(read_only image2d_array_t, sampler_t, float4); +uint4 __ovld __purefn read_imageui(read_only image2d_array_t, sampler_t, int4); +uint4 __ovld __purefn read_imageui(read_only image2d_array_t, sampler_t, float4); #endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) -float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, int coord); -float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord); +float4 __ovld __purefn read_imagef(read_only image1d_t, sampler_t, int); +float4 __ovld __purefn read_imagef(read_only image1d_t, sampler_t, float); -int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, int coord); -int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord); -uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, int coord); -uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord); +int4 __ovld __purefn read_imagei(read_only image1d_t, sampler_t, int); +int4 __ovld __purefn read_imagei(read_only image1d_t, sampler_t, float); +uint4 __ovld __purefn read_imageui(read_only image1d_t, sampler_t, int); +uint4 __ovld __purefn read_imageui(read_only image1d_t, sampler_t, float); #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) -float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, int2 coord); -float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord); +float4 __ovld __purefn read_imagef(read_only image1d_array_t, sampler_t, int2); +float4 __ovld __purefn read_imagef(read_only image1d_array_t, sampler_t, float2); -int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, int2 coord); -int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord); -uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, int2 coord); -uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord); +int4 __ovld __purefn read_imagei(read_only image1d_array_t, sampler_t, int2); +int4 __ovld __purefn read_imagei(read_only image1d_array_t, sampler_t, float2); +uint4 __ovld __purefn read_imageui(read_only image1d_array_t, sampler_t, int2); +uint4 __ovld __purefn read_imageui(read_only image1d_array_t, sampler_t, float2); #endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) #ifdef cl_khr_depth_images -float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord); -float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, int2 coord); +float __ovld __purefn read_imagef(read_only image2d_depth_t, sampler_t, float2); +float __ovld __purefn read_imagef(read_only image2d_depth_t, sampler_t, int2); -float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord); -float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, int4 coord); +float __ovld __purefn read_imagef(read_only image2d_array_depth_t, sampler_t, float4); +float __ovld __purefn read_imagef(read_only image2d_array_depth_t, sampler_t, int4); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -float4 __purefn __ovld read_imagef(read_only image2d_msaa_t image, int2 coord, int sample); -int4 __purefn __ovld read_imagei(read_only image2d_msaa_t image, int2 coord, int sample); -uint4 __purefn __ovld read_imageui(read_only image2d_msaa_t image, int2 coord, int sample); +float4 __ovld __purefn read_imagef(read_only image2d_msaa_t, int2, int); +int4 __ovld __purefn read_imagei(read_only image2d_msaa_t, int2, int); +uint4 __ovld __purefn read_imageui(read_only image2d_msaa_t, int2, int); -float __purefn __ovld read_imagef(read_only image2d_msaa_depth_t image, int2 coord, int sample); +float __ovld __purefn read_imagef(read_only image2d_msaa_depth_t, int2, int); -float4 __purefn __ovld read_imagef(read_only image2d_array_msaa_t image, int4 coord, int sample); -int4 __purefn __ovld read_imagei(read_only image2d_array_msaa_t image, int4 coord, int sample); -uint4 __purefn __ovld read_imageui(read_only image2d_array_msaa_t image, int4 coord, int sample); +float4 __ovld __purefn read_imagef(read_only image2d_array_msaa_t, int4, int); +int4 __ovld __purefn read_imagei(read_only image2d_array_msaa_t, int4, int); +uint4 __ovld __purefn read_imageui(read_only image2d_array_msaa_t, int4, int); -float __purefn __ovld read_imagef(read_only image2d_array_msaa_depth_t image, int4 coord, int sample); +float __ovld __purefn read_imagef(read_only image2d_array_msaa_depth_t, int4, int); #endif //cl_khr_gl_msaa_sharing // OpenCL Extension v2.0 s9.18 - Mipmaps #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) #ifdef cl_khr_mipmap_image -float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord, float lod); -int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord, float lod); -uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord, float lod); +float4 __ovld __purefn read_imagef(read_only image1d_t, sampler_t, float, float); +int4 __ovld __purefn read_imagei(read_only image1d_t, sampler_t, float, float); +uint4 __ovld __purefn read_imageui(read_only image1d_t, sampler_t, float, float); -float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); -int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); -uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); +float4 __ovld __purefn read_imagef(read_only image1d_array_t, sampler_t, float2, float); +int4 __ovld __purefn read_imagei(read_only image1d_array_t, sampler_t, float2, float); +uint4 __ovld __purefn read_imageui(read_only image1d_array_t, sampler_t, float2, float); -float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord, float lod); -int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord, float lod); -uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord, float lod); +float4 __ovld __purefn read_imagef(read_only image2d_t, sampler_t, float2, float); +int4 __ovld __purefn read_imagei(read_only image2d_t, sampler_t, float2, float); +uint4 __ovld __purefn read_imageui(read_only image2d_t, sampler_t, float2, float); -float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord, float lod); +#ifdef cl_khr_depth_images +float __ovld __purefn read_imagef(read_only image2d_depth_t, sampler_t, float2, float); +#endif // cl_khr_depth_images -float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); -int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); -uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); +float4 __ovld __purefn read_imagef(read_only image2d_array_t, sampler_t, float4, float); +int4 __ovld __purefn read_imagei(read_only image2d_array_t, sampler_t, float4, float); +uint4 __ovld __purefn read_imageui(read_only image2d_array_t, sampler_t, float4, float); -float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod); +#ifdef cl_khr_depth_images +float __ovld __purefn read_imagef(read_only image2d_array_depth_t, sampler_t, float4, float); +#endif // cl_khr_depth_images -float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord, float lod); -int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord, float lod); -uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord, float lod); +float4 __ovld __purefn read_imagef(read_only image3d_t, sampler_t, float4, float); +int4 __ovld __purefn read_imagei(read_only image3d_t, sampler_t, float4, float); +uint4 __ovld __purefn read_imageui(read_only image3d_t, sampler_t, float4, float); -float4 __purefn __ovld read_imagef(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY); -int4 __purefn __ovld read_imagei(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY); -uint4 __purefn __ovld read_imageui(read_only image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY); +float4 __ovld __purefn read_imagef(read_only image1d_t, sampler_t, float, float, float); +int4 __ovld __purefn read_imagei(read_only image1d_t, sampler_t, float, float, float); +uint4 __ovld __purefn read_imageui(read_only image1d_t, sampler_t, float, float, float); -float4 __purefn __ovld read_imagef(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY); -int4 __purefn __ovld read_imagei(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY); -uint4 __purefn __ovld read_imageui(read_only image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY); +float4 __ovld __purefn read_imagef(read_only image1d_array_t, sampler_t, float2, float, float); +int4 __ovld __purefn read_imagei(read_only image1d_array_t, sampler_t, float2, float, float); +uint4 __ovld __purefn read_imageui(read_only image1d_array_t, sampler_t, float2, float, float); -float4 __purefn __ovld read_imagef(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); -int4 __purefn __ovld read_imagei(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); -uint4 __purefn __ovld read_imageui(read_only image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); +float4 __ovld __purefn read_imagef(read_only image2d_t, sampler_t, float2, float2, float2); +int4 __ovld __purefn read_imagei(read_only image2d_t, sampler_t, float2, float2, float2); +uint4 __ovld __purefn read_imageui(read_only image2d_t, sampler_t, float2, float2, float2); -float __purefn __ovld read_imagef(read_only image2d_depth_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); +#ifdef cl_khr_depth_images +float __ovld __purefn read_imagef(read_only image2d_depth_t, sampler_t, float2, float2, float2); +#endif // cl_khr_depth_images -float4 __purefn __ovld read_imagef(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); -int4 __purefn __ovld read_imagei(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); -uint4 __purefn __ovld read_imageui(read_only image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); +float4 __ovld __purefn read_imagef(read_only image2d_array_t, sampler_t, float4, float2, float2); +int4 __ovld __purefn read_imagei(read_only image2d_array_t, sampler_t, float4, float2, float2); +uint4 __ovld __purefn read_imageui(read_only image2d_array_t, sampler_t, float4, float2, float2); -float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); +#ifdef cl_khr_depth_images +float __ovld __purefn read_imagef(read_only image2d_array_depth_t, sampler_t, float4, float2, float2); +#endif // cl_khr_depth_images -float4 __purefn __ovld read_imagef(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY); -int4 __purefn __ovld read_imagei(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY); -uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY); +float4 __ovld __purefn read_imagef(read_only image3d_t, sampler_t, float4, float4, float4); +int4 __ovld __purefn read_imagei(read_only image3d_t, sampler_t, float4, float4, float4); +uint4 __ovld __purefn read_imageui(read_only image3d_t, sampler_t, float4, float4, float4); #endif //cl_khr_mipmap_image #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) @@ -14980,169 +16044,167 @@ uint4 __purefn __ovld read_imageui(read_only image3d_t image, sampler_t sampler, * Sampler-less Image Access */ -float4 __purefn __ovld read_imagef(read_only image1d_t image, int coord); -int4 __purefn __ovld read_imagei(read_only image1d_t image, int coord); -uint4 __purefn __ovld read_imageui(read_only image1d_t image, int coord); +float4 __ovld __purefn read_imagef(read_only image1d_t, int); +int4 __ovld __purefn read_imagei(read_only image1d_t, int); +uint4 __ovld __purefn read_imageui(read_only image1d_t, int); -float4 __purefn __ovld read_imagef(read_only image1d_buffer_t image, int coord); -int4 __purefn __ovld read_imagei(read_only image1d_buffer_t image, int coord); -uint4 __purefn __ovld read_imageui(read_only image1d_buffer_t image, int coord); +float4 __ovld __purefn read_imagef(read_only image1d_buffer_t, int); +int4 __ovld __purefn read_imagei(read_only image1d_buffer_t, int); +uint4 __ovld __purefn read_imageui(read_only image1d_buffer_t, int); -float4 __purefn __ovld read_imagef(read_only image1d_array_t image, int2 coord); -int4 __purefn __ovld read_imagei(read_only image1d_array_t image, int2 coord); -uint4 __purefn __ovld read_imageui(read_only image1d_array_t image, int2 coord); +float4 __ovld __purefn read_imagef(read_only image1d_array_t, int2); +int4 __ovld __purefn read_imagei(read_only image1d_array_t, int2); +uint4 __ovld __purefn read_imageui(read_only image1d_array_t, int2); -float4 __purefn __ovld read_imagef(read_only image2d_t image, int2 coord); -int4 __purefn __ovld read_imagei(read_only image2d_t image, int2 coord); -uint4 __purefn __ovld read_imageui(read_only image2d_t image, int2 coord); +float4 __ovld __purefn read_imagef(read_only image2d_t, int2); +int4 __ovld __purefn read_imagei(read_only image2d_t, int2); +uint4 __ovld __purefn read_imageui(read_only image2d_t, int2); -float4 __purefn __ovld read_imagef(read_only image2d_array_t image, int4 coord); -int4 __purefn __ovld read_imagei(read_only image2d_array_t image, int4 coord); -uint4 __purefn __ovld read_imageui(read_only image2d_array_t image, int4 coord); +float4 __ovld __purefn read_imagef(read_only image2d_array_t, int4); +int4 __ovld __purefn read_imagei(read_only image2d_array_t, int4); +uint4 __ovld __purefn read_imageui(read_only image2d_array_t, int4); #ifdef cl_khr_depth_images -float __purefn __ovld read_imagef(read_only image2d_depth_t image, int2 coord); -float __purefn __ovld read_imagef(read_only image2d_array_depth_t image, int4 coord); +float __ovld __purefn read_imagef(read_only image2d_depth_t, int2); +float __ovld __purefn read_imagef(read_only image2d_array_depth_t, int4); #endif //cl_khr_depth_images -float4 __purefn __ovld read_imagef(read_only image3d_t image, int4 coord); -int4 __purefn __ovld read_imagei(read_only image3d_t image, int4 coord); -uint4 __purefn __ovld read_imageui(read_only image3d_t image, int4 coord); +float4 __ovld __purefn read_imagef(read_only image3d_t, int4); +int4 __ovld __purefn read_imagei(read_only image3d_t, int4); +uint4 __ovld __purefn read_imageui(read_only image3d_t, int4); #endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) // Image read functions returning half4 type #ifdef cl_khr_fp16 -half4 __purefn __ovld read_imageh(read_only image1d_t image, sampler_t sampler, int coord); -half4 __purefn __ovld read_imageh(read_only image1d_t image, sampler_t sampler, float coord); -half4 __purefn __ovld read_imageh(read_only image2d_t image, sampler_t sampler, int2 coord); -half4 __purefn __ovld read_imageh(read_only image2d_t image, sampler_t sampler, float2 coord); -half4 __purefn __ovld read_imageh(read_only image3d_t image, sampler_t sampler, int4 coord); -half4 __purefn __ovld read_imageh(read_only image3d_t image, sampler_t sampler, float4 coord); +half4 __ovld __purefn read_imageh(read_only image1d_t, sampler_t, int); +half4 __ovld __purefn read_imageh(read_only image1d_t, sampler_t, float); +half4 __ovld __purefn read_imageh(read_only image2d_t, sampler_t, int2); +half4 __ovld __purefn read_imageh(read_only image2d_t, sampler_t, float2); +half4 __ovld __purefn read_imageh(read_only image3d_t, sampler_t, int4); +half4 __ovld __purefn read_imageh(read_only image3d_t, sampler_t, float4); #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) -half4 __purefn __ovld read_imageh(read_only image1d_array_t image, sampler_t sampler, int2 coord); -half4 __purefn __ovld read_imageh(read_only image1d_array_t image, sampler_t sampler, float2 coord); -half4 __purefn __ovld read_imageh(read_only image2d_array_t image, sampler_t sampler, int4 coord); -half4 __purefn __ovld read_imageh(read_only image2d_array_t image, sampler_t sampler, float4 coord); +half4 __ovld __purefn read_imageh(read_only image1d_array_t, sampler_t, int2); +half4 __ovld __purefn read_imageh(read_only image1d_array_t, sampler_t, float2); +half4 __ovld __purefn read_imageh(read_only image2d_array_t, sampler_t, int4); +half4 __ovld __purefn read_imageh(read_only image2d_array_t, sampler_t, float4); /** * Sampler-less Image Access */ -half4 __purefn __ovld read_imageh(read_only image1d_t image, int coord); -half4 __purefn __ovld read_imageh(read_only image2d_t image, int2 coord); -half4 __purefn __ovld read_imageh(read_only image3d_t image, int4 coord); -half4 __purefn __ovld read_imageh(read_only image1d_array_t image, int2 coord); -half4 __purefn __ovld read_imageh(read_only image2d_array_t image, int4 coord); -half4 __purefn __ovld read_imageh(read_only image1d_buffer_t image, int coord); +half4 __ovld __purefn read_imageh(read_only image1d_t, int); +half4 __ovld __purefn read_imageh(read_only image2d_t, int2); +half4 __ovld __purefn read_imageh(read_only image3d_t, int4); +half4 __ovld __purefn read_imageh(read_only image1d_array_t, int2); +half4 __ovld __purefn read_imageh(read_only image2d_array_t, int4); +half4 __ovld __purefn read_imageh(read_only image1d_buffer_t, int); #endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) #endif //cl_khr_fp16 // Image read functions for read_write images -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -float4 __purefn __ovld read_imagef(read_write image1d_t image, int coord); -int4 __purefn __ovld read_imagei(read_write image1d_t image, int coord); -uint4 __purefn __ovld read_imageui(read_write image1d_t image, int coord); +#if defined(__opencl_c_read_write_images) +float4 __ovld __purefn read_imagef(read_write image1d_t, int); +int4 __ovld __purefn read_imagei(read_write image1d_t, int); +uint4 __ovld __purefn read_imageui(read_write image1d_t, int); -float4 __purefn __ovld read_imagef(read_write image1d_buffer_t image, int coord); -int4 __purefn __ovld read_imagei(read_write image1d_buffer_t image, int coord); -uint4 __purefn __ovld read_imageui(read_write image1d_buffer_t image, int coord); +float4 __ovld __purefn read_imagef(read_write image1d_buffer_t, int); +int4 __ovld __purefn read_imagei(read_write image1d_buffer_t, int); +uint4 __ovld __purefn read_imageui(read_write image1d_buffer_t, int); -float4 __purefn __ovld read_imagef(read_write image1d_array_t image, int2 coord); -int4 __purefn __ovld read_imagei(read_write image1d_array_t image, int2 coord); -uint4 __purefn __ovld read_imageui(read_write image1d_array_t image, int2 coord); +float4 __ovld __purefn read_imagef(read_write image1d_array_t, int2); +int4 __ovld __purefn read_imagei(read_write image1d_array_t, int2); +uint4 __ovld __purefn read_imageui(read_write image1d_array_t, int2); -float4 __purefn __ovld read_imagef(read_write image2d_t image, int2 coord); -int4 __purefn __ovld read_imagei(read_write image2d_t image, int2 coord); -uint4 __purefn __ovld read_imageui(read_write image2d_t image, int2 coord); +float4 __ovld __purefn read_imagef(read_write image2d_t, int2); +int4 __ovld __purefn read_imagei(read_write image2d_t, int2); +uint4 __ovld __purefn read_imageui(read_write image2d_t, int2); -float4 __purefn __ovld read_imagef(read_write image2d_array_t image, int4 coord); -int4 __purefn __ovld read_imagei(read_write image2d_array_t image, int4 coord); -uint4 __purefn __ovld read_imageui(read_write image2d_array_t image, int4 coord); +float4 __ovld __purefn read_imagef(read_write image2d_array_t, int4); +int4 __ovld __purefn read_imagei(read_write image2d_array_t, int4); +uint4 __ovld __purefn read_imageui(read_write image2d_array_t, int4); -float4 __purefn __ovld read_imagef(read_write image3d_t image, int4 coord); -int4 __purefn __ovld read_imagei(read_write image3d_t image, int4 coord); -uint4 __purefn __ovld read_imageui(read_write image3d_t image, int4 coord); +float4 __ovld __purefn read_imagef(read_write image3d_t, int4); +int4 __ovld __purefn read_imagei(read_write image3d_t, int4); +uint4 __ovld __purefn read_imageui(read_write image3d_t, int4); #ifdef cl_khr_depth_images -float __purefn __ovld read_imagef(read_write image2d_depth_t image, int2 coord); -float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, int4 coord); +float __ovld __purefn read_imagef(read_write image2d_depth_t, int2); +float __ovld __purefn read_imagef(read_write image2d_array_depth_t, int4); #endif //cl_khr_depth_images #if cl_khr_gl_msaa_sharing -float4 __purefn __ovld read_imagef(read_write image2d_msaa_t image, int2 coord, int sample); -int4 __purefn __ovld read_imagei(read_write image2d_msaa_t image, int2 coord, int sample); -uint4 __purefn __ovld read_imageui(read_write image2d_msaa_t image, int2 coord, int sample); +float4 __ovld __purefn read_imagef(read_write image2d_msaa_t, int2, int); +int4 __ovld __purefn read_imagei(read_write image2d_msaa_t, int2, int); +uint4 __ovld __purefn read_imageui(read_write image2d_msaa_t, int2, int); -float4 __purefn __ovld read_imagef(read_write image2d_array_msaa_t image, int4 coord, int sample); -int4 __purefn __ovld read_imagei(read_write image2d_array_msaa_t image, int4 coord, int sample); -uint4 __purefn __ovld read_imageui(read_write image2d_array_msaa_t image, int4 coord, int sample); +float4 __ovld __purefn read_imagef(read_write image2d_array_msaa_t, int4, int); +int4 __ovld __purefn read_imagei(read_write image2d_array_msaa_t, int4, int); +uint4 __ovld __purefn read_imageui(read_write image2d_array_msaa_t, int4, int); -float __purefn __ovld read_imagef(read_write image2d_msaa_depth_t image, int2 coord, int sample); -float __purefn __ovld read_imagef(read_write image2d_array_msaa_depth_t image, int4 coord, int sample); +float __ovld __purefn read_imagef(read_write image2d_msaa_depth_t, int2, int); +float __ovld __purefn read_imagef(read_write image2d_array_msaa_depth_t, int4, int); #endif //cl_khr_gl_msaa_sharing -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) #ifdef cl_khr_mipmap_image -float4 __purefn __ovld read_imagef(read_write image1d_t image, sampler_t sampler, float coord, float lod); -int4 __purefn __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float lod); -uint4 __purefn __ovld read_imageui(read_write image1d_t image, sampler_t sampler, float coord, float lod); +float4 __ovld __purefn read_imagef(read_write image1d_t, sampler_t, float, float); +int4 __ovld __purefn read_imagei(read_write image1d_t, sampler_t, float, float); +uint4 __ovld __purefn read_imageui(read_write image1d_t, sampler_t, float, float); -float4 __purefn __ovld read_imagef(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); -int4 __purefn __ovld read_imagei(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); -uint4 __purefn __ovld read_imageui(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float lod); +float4 __ovld __purefn read_imagef(read_write image1d_array_t, sampler_t, float2, float); +int4 __ovld __purefn read_imagei(read_write image1d_array_t, sampler_t, float2, float); +uint4 __ovld __purefn read_imageui(read_write image1d_array_t, sampler_t, float2, float); -float4 __purefn __ovld read_imagef(read_write image2d_t image, sampler_t sampler, float2 coord, float lod); -int4 __purefn __ovld read_imagei(read_write image2d_t image, sampler_t sampler, float2 coord, float lod); -uint4 __purefn __ovld read_imageui(read_write image2d_t image, sampler_t sampler, float2 coord, float lod); +float4 __ovld __purefn read_imagef(read_write image2d_t, sampler_t, float2, float); +int4 __ovld __purefn read_imagei(read_write image2d_t, sampler_t, float2, float); +uint4 __ovld __purefn read_imageui(read_write image2d_t, sampler_t, float2, float); -float __purefn __ovld read_imagef(read_write image2d_depth_t image, sampler_t sampler, float2 coord, float lod); +float __ovld __purefn read_imagef(read_write image2d_depth_t, sampler_t, float2, float); -float4 __purefn __ovld read_imagef(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); -int4 __purefn __ovld read_imagei(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); -uint4 __purefn __ovld read_imageui(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float lod); +float4 __ovld __purefn read_imagef(read_write image2d_array_t, sampler_t, float4, float); +int4 __ovld __purefn read_imagei(read_write image2d_array_t, sampler_t, float4, float); +uint4 __ovld __purefn read_imageui(read_write image2d_array_t, sampler_t, float4, float); -float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, sampler_t sampler, float4 coord, float lod); +float __ovld __purefn read_imagef(read_write image2d_array_depth_t, sampler_t, float4, float); -float4 __purefn __ovld read_imagef(read_write image3d_t image, sampler_t sampler, float4 coord, float lod); -int4 __purefn __ovld read_imagei(read_write image3d_t image, sampler_t sampler, float4 coord, float lod); -uint4 __purefn __ovld read_imageui(read_write image3d_t image, sampler_t sampler, float4 coord, float lod); +float4 __ovld __purefn read_imagef(read_write image3d_t, sampler_t, float4, float); +int4 __ovld __purefn read_imagei(read_write image3d_t, sampler_t, float4, float); +uint4 __ovld __purefn read_imageui(read_write image3d_t, sampler_t, float4, float); -float4 __purefn __ovld read_imagef(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY); -int4 __purefn __ovld read_imagei(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY); -uint4 __purefn __ovld read_imageui(read_write image1d_t image, sampler_t sampler, float coord, float gradientX, float gradientY); +float4 __ovld __purefn read_imagef(read_write image1d_t, sampler_t, float, float, float); +int4 __ovld __purefn read_imagei(read_write image1d_t, sampler_t, float, float, float); +uint4 __ovld __purefn read_imageui(read_write image1d_t, sampler_t, float, float, float); -float4 __purefn __ovld read_imagef(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY); -int4 __purefn __ovld read_imagei(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY); -uint4 __purefn __ovld read_imageui(read_write image1d_array_t image_array, sampler_t sampler, float2 coord, float gradientX, float gradientY); +float4 __ovld __purefn read_imagef(read_write image1d_array_t, sampler_t, float2, float, float); +int4 __ovld __purefn read_imagei(read_write image1d_array_t, sampler_t, float2, float, float); +uint4 __ovld __purefn read_imageui(read_write image1d_array_t, sampler_t, float2, float, float); -float4 __purefn __ovld read_imagef(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); -int4 __purefn __ovld read_imagei(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); -uint4 __purefn __ovld read_imageui(read_write image2d_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); +float4 __ovld __purefn read_imagef(read_write image2d_t, sampler_t, float2, float2, float2); +int4 __ovld __purefn read_imagei(read_write image2d_t, sampler_t, float2, float2, float2); +uint4 __ovld __purefn read_imageui(read_write image2d_t, sampler_t, float2, float2, float2); -float __purefn __ovld read_imagef(read_write image2d_depth_t image, sampler_t sampler, float2 coord, float2 gradientX, float2 gradientY); +float __ovld __purefn read_imagef(read_write image2d_depth_t, sampler_t, float2, float2, float2); -float4 __purefn __ovld read_imagef(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); -int4 __purefn __ovld read_imagei(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); -uint4 __purefn __ovld read_imageui(read_write image2d_array_t image_array, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); +float4 __ovld __purefn read_imagef(read_write image2d_array_t, sampler_t, float4, float2, float2); +int4 __ovld __purefn read_imagei(read_write image2d_array_t, sampler_t, float4, float2, float2); +uint4 __ovld __purefn read_imageui(read_write image2d_array_t, sampler_t, float4, float2, float2); -float __purefn __ovld read_imagef(read_write image2d_array_depth_t image, sampler_t sampler, float4 coord, float2 gradientX, float2 gradientY); +float __ovld __purefn read_imagef(read_write image2d_array_depth_t, sampler_t, float4, float2, float2); -float4 __purefn __ovld read_imagef(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY); -int4 __purefn __ovld read_imagei(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY); -uint4 __purefn __ovld read_imageui(read_write image3d_t image, sampler_t sampler, float4 coord, float4 gradientX, float4 gradientY); +float4 __ovld __purefn read_imagef(read_write image3d_t, sampler_t, float4, float4, float4); +int4 __ovld __purefn read_imagei(read_write image3d_t, sampler_t, float4, float4, float4); +uint4 __ovld __purefn read_imageui(read_write image3d_t, sampler_t, float4, float4, float4); #endif //cl_khr_mipmap_image -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) // Image read functions returning half4 type #ifdef cl_khr_fp16 -half4 __purefn __ovld read_imageh(read_write image1d_t image, int coord); -half4 __purefn __ovld read_imageh(read_write image2d_t image, int2 coord); -half4 __purefn __ovld read_imageh(read_write image3d_t image, int4 coord); -half4 __purefn __ovld read_imageh(read_write image1d_array_t image, int2 coord); -half4 __purefn __ovld read_imageh(read_write image2d_array_t image, int4 coord); -half4 __purefn __ovld read_imageh(read_write image1d_buffer_t image, int coord); +half4 __ovld __purefn read_imageh(read_write image1d_t, int); +half4 __ovld __purefn read_imageh(read_write image2d_t, int2); +half4 __ovld __purefn read_imageh(read_write image3d_t, int4); +half4 __ovld __purefn read_imageh(read_write image1d_array_t, int2); +half4 __ovld __purefn read_imageh(read_write image2d_array_t, int4); +half4 __ovld __purefn read_imageh(read_write image1d_buffer_t, int); #endif //cl_khr_fp16 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_read_write_images) /** * Write color value to location specified by coordinate @@ -15207,67 +16269,67 @@ half4 __purefn __ovld read_imageh(read_write image1d_buffer_t image, int coord); * The behavior of write_imagef, write_imagei and * write_imageui for image objects created with * image_channel_data_type values not specified in - * the description above or with (x, y) coordinate + * the description above or with (x, ) coordinate * values that are not in the range (0 ... image width -1, * 0 ... image height - 1), respectively, is undefined. */ -void __ovld write_imagef(write_only image2d_t image, int2 coord, float4 color); -void __ovld write_imagei(write_only image2d_t image, int2 coord, int4 color); -void __ovld write_imageui(write_only image2d_t image, int2 coord, uint4 color); +void __ovld write_imagef(write_only image2d_t, int2, float4); +void __ovld write_imagei(write_only image2d_t, int2, int4); +void __ovld write_imageui(write_only image2d_t, int2, uint4); -void __ovld write_imagef(write_only image2d_array_t image_array, int4 coord, float4 color); -void __ovld write_imagei(write_only image2d_array_t image_array, int4 coord, int4 color); -void __ovld write_imageui(write_only image2d_array_t image_array, int4 coord, uint4 color); +void __ovld write_imagef(write_only image2d_array_t, int4, float4); +void __ovld write_imagei(write_only image2d_array_t, int4, int4); +void __ovld write_imageui(write_only image2d_array_t, int4, uint4); -void __ovld write_imagef(write_only image1d_t image, int coord, float4 color); -void __ovld write_imagei(write_only image1d_t image, int coord, int4 color); -void __ovld write_imageui(write_only image1d_t image, int coord, uint4 color); +void __ovld write_imagef(write_only image1d_t, int, float4); +void __ovld write_imagei(write_only image1d_t, int, int4); +void __ovld write_imageui(write_only image1d_t, int, uint4); -void __ovld write_imagef(write_only image1d_buffer_t image, int coord, float4 color); -void __ovld write_imagei(write_only image1d_buffer_t image, int coord, int4 color); -void __ovld write_imageui(write_only image1d_buffer_t image, int coord, uint4 color); +void __ovld write_imagef(write_only image1d_buffer_t, int, float4); +void __ovld write_imagei(write_only image1d_buffer_t, int, int4); +void __ovld write_imageui(write_only image1d_buffer_t, int, uint4); -void __ovld write_imagef(write_only image1d_array_t image_array, int2 coord, float4 color); -void __ovld write_imagei(write_only image1d_array_t image_array, int2 coord, int4 color); -void __ovld write_imageui(write_only image1d_array_t image_array, int2 coord, uint4 color); +void __ovld write_imagef(write_only image1d_array_t, int2, float4); +void __ovld write_imagei(write_only image1d_array_t, int2, int4); +void __ovld write_imageui(write_only image1d_array_t, int2, uint4); #ifdef cl_khr_3d_image_writes -void __ovld write_imagef(write_only image3d_t image, int4 coord, float4 color); -void __ovld write_imagei(write_only image3d_t image, int4 coord, int4 color); -void __ovld write_imageui(write_only image3d_t image, int4 coord, uint4 color); +void __ovld write_imagef(write_only image3d_t, int4, float4); +void __ovld write_imagei(write_only image3d_t, int4, int4); +void __ovld write_imageui(write_only image3d_t, int4, uint4); #endif #ifdef cl_khr_depth_images -void __ovld write_imagef(write_only image2d_depth_t image, int2 coord, float color); -void __ovld write_imagef(write_only image2d_array_depth_t image, int4 coord, float color); +void __ovld write_imagef(write_only image2d_depth_t, int2, float); +void __ovld write_imagef(write_only image2d_array_depth_t, int4, float); #endif //cl_khr_depth_images // OpenCL Extension v2.0 s9.18 - Mipmaps #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) #if defined(cl_khr_mipmap_image_writes) -void __ovld write_imagef(write_only image1d_t image, int coord, int lod, float4 color); -void __ovld write_imagei(write_only image1d_t image, int coord, int lod, int4 color); -void __ovld write_imageui(write_only image1d_t image, int coord, int lod, uint4 color); +void __ovld write_imagef(write_only image1d_t, int, int, float4); +void __ovld write_imagei(write_only image1d_t, int, int, int4); +void __ovld write_imageui(write_only image1d_t, int, int, uint4); -void __ovld write_imagef(write_only image1d_array_t image_array, int2 coord, int lod, float4 color); -void __ovld write_imagei(write_only image1d_array_t image_array, int2 coord, int lod, int4 color); -void __ovld write_imageui(write_only image1d_array_t image_array, int2 coord, int lod, uint4 color); +void __ovld write_imagef(write_only image1d_array_t, int2, int, float4); +void __ovld write_imagei(write_only image1d_array_t, int2, int, int4); +void __ovld write_imageui(write_only image1d_array_t, int2, int, uint4); -void __ovld write_imagef(write_only image2d_t image, int2 coord, int lod, float4 color); -void __ovld write_imagei(write_only image2d_t image, int2 coord, int lod, int4 color); -void __ovld write_imageui(write_only image2d_t image, int2 coord, int lod, uint4 color); +void __ovld write_imagef(write_only image2d_t, int2, int, float4); +void __ovld write_imagei(write_only image2d_t, int2, int, int4); +void __ovld write_imageui(write_only image2d_t, int2, int, uint4); -void __ovld write_imagef(write_only image2d_array_t image_array, int4 coord, int lod, float4 color); -void __ovld write_imagei(write_only image2d_array_t image_array, int4 coord, int lod, int4 color); -void __ovld write_imageui(write_only image2d_array_t image_array, int4 coord, int lod, uint4 color); +void __ovld write_imagef(write_only image2d_array_t, int4, int, float4); +void __ovld write_imagei(write_only image2d_array_t, int4, int, int4); +void __ovld write_imageui(write_only image2d_array_t, int4, int, uint4); -void __ovld write_imagef(write_only image2d_depth_t image, int2 coord, int lod, float depth); -void __ovld write_imagef(write_only image2d_array_depth_t image, int4 coord, int lod, float depth); +void __ovld write_imagef(write_only image2d_depth_t, int2, int, float); +void __ovld write_imagef(write_only image2d_array_depth_t, int4, int, float); #ifdef cl_khr_3d_image_writes -void __ovld write_imagef(write_only image3d_t image, int4 coord, int lod, float4 color); -void __ovld write_imagei(write_only image3d_t image, int4 coord, int lod, int4 color); -void __ovld write_imageui(write_only image3d_t image, int4 coord, int lod, uint4 color); +void __ovld write_imagef(write_only image3d_t, int4, int, float4); +void __ovld write_imagei(write_only image3d_t, int4, int, int4); +void __ovld write_imageui(write_only image3d_t, int4, int, uint4); #endif //cl_khr_3d_image_writes #endif //defined(cl_khr_mipmap_image_writes) @@ -15275,91 +16337,89 @@ void __ovld write_imageui(write_only image3d_t image, int4 coord, int lod, uint4 // Image write functions for half4 type #ifdef cl_khr_fp16 -void __ovld write_imageh(write_only image1d_t image, int coord, half4 color); -void __ovld write_imageh(write_only image2d_t image, int2 coord, half4 color); +void __ovld write_imageh(write_only image1d_t, int, half4); +void __ovld write_imageh(write_only image2d_t, int2, half4); #ifdef cl_khr_3d_image_writes -void __ovld write_imageh(write_only image3d_t image, int4 coord, half4 color); +void __ovld write_imageh(write_only image3d_t, int4, half4); #endif -void __ovld write_imageh(write_only image1d_array_t image, int2 coord, half4 color); -void __ovld write_imageh(write_only image2d_array_t image, int4 coord, half4 color); -void __ovld write_imageh(write_only image1d_buffer_t image, int coord, half4 color); +void __ovld write_imageh(write_only image1d_array_t, int2, half4); +void __ovld write_imageh(write_only image2d_array_t, int4, half4); +void __ovld write_imageh(write_only image1d_buffer_t, int, half4); #endif //cl_khr_fp16 // Image write functions for read_write images -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -void __ovld write_imagef(read_write image2d_t image, int2 coord, float4 color); -void __ovld write_imagei(read_write image2d_t image, int2 coord, int4 color); -void __ovld write_imageui(read_write image2d_t image, int2 coord, uint4 color); +#if defined(__opencl_c_read_write_images) +void __ovld write_imagef(read_write image2d_t, int2, float4); +void __ovld write_imagei(read_write image2d_t, int2, int4); +void __ovld write_imageui(read_write image2d_t, int2, uint4); -void __ovld write_imagef(read_write image2d_array_t image_array, int4 coord, float4 color); -void __ovld write_imagei(read_write image2d_array_t image_array, int4 coord, int4 color); -void __ovld write_imageui(read_write image2d_array_t image_array, int4 coord, uint4 color); +void __ovld write_imagef(read_write image2d_array_t, int4, float4); +void __ovld write_imagei(read_write image2d_array_t, int4, int4); +void __ovld write_imageui(read_write image2d_array_t, int4, uint4); -void __ovld write_imagef(read_write image1d_t image, int coord, float4 color); -void __ovld write_imagei(read_write image1d_t image, int coord, int4 color); -void __ovld write_imageui(read_write image1d_t image, int coord, uint4 color); +void __ovld write_imagef(read_write image1d_t, int, float4); +void __ovld write_imagei(read_write image1d_t, int, int4); +void __ovld write_imageui(read_write image1d_t, int, uint4); -void __ovld write_imagef(read_write image1d_buffer_t image, int coord, float4 color); -void __ovld write_imagei(read_write image1d_buffer_t image, int coord, int4 color); -void __ovld write_imageui(read_write image1d_buffer_t image, int coord, uint4 color); +void __ovld write_imagef(read_write image1d_buffer_t, int, float4); +void __ovld write_imagei(read_write image1d_buffer_t, int, int4); +void __ovld write_imageui(read_write image1d_buffer_t, int, uint4); -void __ovld write_imagef(read_write image1d_array_t image_array, int2 coord, float4 color); -void __ovld write_imagei(read_write image1d_array_t image_array, int2 coord, int4 color); -void __ovld write_imageui(read_write image1d_array_t image_array, int2 coord, uint4 color); +void __ovld write_imagef(read_write image1d_array_t, int2, float4); +void __ovld write_imagei(read_write image1d_array_t, int2, int4); +void __ovld write_imageui(read_write image1d_array_t, int2, uint4); #ifdef cl_khr_3d_image_writes -void __ovld write_imagef(read_write image3d_t image, int4 coord, float4 color); -void __ovld write_imagei(read_write image3d_t image, int4 coord, int4 color); -void __ovld write_imageui(read_write image3d_t image, int4 coord, uint4 color); +void __ovld write_imagef(read_write image3d_t, int4, float4); +void __ovld write_imagei(read_write image3d_t, int4, int4); +void __ovld write_imageui(read_write image3d_t, int4, uint4); #endif #ifdef cl_khr_depth_images -void __ovld write_imagef(read_write image2d_depth_t image, int2 coord, float color); -void __ovld write_imagef(read_write image2d_array_depth_t image, int4 coord, float color); +void __ovld write_imagef(read_write image2d_depth_t, int2, float); +void __ovld write_imagef(read_write image2d_array_depth_t, int4, float); #endif //cl_khr_depth_images -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) #if defined(cl_khr_mipmap_image_writes) -void __ovld write_imagef(read_write image1d_t image, int coord, int lod, float4 color); -void __ovld write_imagei(read_write image1d_t image, int coord, int lod, int4 color); -void __ovld write_imageui(read_write image1d_t image, int coord, int lod, uint4 color); +void __ovld write_imagef(read_write image1d_t, int, int, float4); +void __ovld write_imagei(read_write image1d_t, int, int, int4); +void __ovld write_imageui(read_write image1d_t, int, int, uint4); -void __ovld write_imagef(read_write image1d_array_t image_array, int2 coord, int lod, float4 color); -void __ovld write_imagei(read_write image1d_array_t image_array, int2 coord, int lod, int4 color); -void __ovld write_imageui(read_write image1d_array_t image_array, int2 coord, int lod, uint4 color); +void __ovld write_imagef(read_write image1d_array_t, int2, int, float4); +void __ovld write_imagei(read_write image1d_array_t, int2, int, int4); +void __ovld write_imageui(read_write image1d_array_t, int2, int, uint4); -void __ovld write_imagef(read_write image2d_t image, int2 coord, int lod, float4 color); -void __ovld write_imagei(read_write image2d_t image, int2 coord, int lod, int4 color); -void __ovld write_imageui(read_write image2d_t image, int2 coord, int lod, uint4 color); +void __ovld write_imagef(read_write image2d_t, int2, int, float4); +void __ovld write_imagei(read_write image2d_t, int2, int, int4); +void __ovld write_imageui(read_write image2d_t, int2, int, uint4); -void __ovld write_imagef(read_write image2d_array_t image_array, int4 coord, int lod, float4 color); -void __ovld write_imagei(read_write image2d_array_t image_array, int4 coord, int lod, int4 color); -void __ovld write_imageui(read_write image2d_array_t image_array, int4 coord, int lod, uint4 color); +void __ovld write_imagef(read_write image2d_array_t, int4, int, float4); +void __ovld write_imagei(read_write image2d_array_t, int4, int, int4); +void __ovld write_imageui(read_write image2d_array_t, int4, int, uint4); -void __ovld write_imagef(read_write image2d_depth_t image, int2 coord, int lod, float color); -void __ovld write_imagef(read_write image2d_array_depth_t image, int4 coord, int lod, float color); +void __ovld write_imagef(read_write image2d_depth_t, int2, int, float); +void __ovld write_imagef(read_write image2d_array_depth_t, int4, int, float); #ifdef cl_khr_3d_image_writes -void __ovld write_imagef(read_write image3d_t image, int4 coord, int lod, float4 color); -void __ovld write_imagei(read_write image3d_t image, int4 coord, int lod, int4 color); -void __ovld write_imageui(read_write image3d_t image, int4 coord, int lod, uint4 color); +void __ovld write_imagef(read_write image3d_t, int4, int, float4); +void __ovld write_imagei(read_write image3d_t, int4, int, int4); +void __ovld write_imageui(read_write image3d_t, int4, int, uint4); #endif //cl_khr_3d_image_writes #endif //cl_khr_mipmap_image_writes -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) // Image write functions for half4 type #ifdef cl_khr_fp16 -void __ovld write_imageh(read_write image1d_t image, int coord, half4 color); -void __ovld write_imageh(read_write image2d_t image, int2 coord, half4 color); +void __ovld write_imageh(read_write image1d_t, int, half4); +void __ovld write_imageh(read_write image2d_t, int2, half4); #ifdef cl_khr_3d_image_writes -void __ovld write_imageh(read_write image3d_t image, int4 coord, half4 color); +void __ovld write_imageh(read_write image3d_t, int4, half4); #endif -void __ovld write_imageh(read_write image1d_array_t image, int2 coord, half4 color); -void __ovld write_imageh(read_write image2d_array_t image, int4 coord, half4 color); -void __ovld write_imageh(read_write image1d_buffer_t image, int coord, half4 color); +void __ovld write_imageh(read_write image1d_array_t, int2, half4); +void __ovld write_imageh(read_write image2d_array_t, int4, half4); +void __ovld write_imageh(read_write image1d_buffer_t, int, half4); #endif //cl_khr_fp16 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_read_write_images) // Note: In OpenCL v1.0/1.1/1.2, image argument of image query builtin functions does not have // access qualifier, which by default assume read_only access qualifier. Image query builtin @@ -15369,124 +16429,122 @@ void __ovld write_imageh(read_write image1d_buffer_t image, int coord, half4 col * Return the image width in pixels. * */ -int __ovld __cnfn get_image_width(read_only image1d_t image); -int __ovld __cnfn get_image_width(read_only image1d_buffer_t image); -int __ovld __cnfn get_image_width(read_only image2d_t image); -#ifdef cl_khr_3d_image_writes -int __ovld __cnfn get_image_width(read_only image3d_t image); -#endif -int __ovld __cnfn get_image_width(read_only image1d_array_t image); -int __ovld __cnfn get_image_width(read_only image2d_array_t image); +int __ovld __cnfn get_image_width(read_only image1d_t); +int __ovld __cnfn get_image_width(read_only image1d_buffer_t); +int __ovld __cnfn get_image_width(read_only image2d_t); +int __ovld __cnfn get_image_width(read_only image3d_t); +int __ovld __cnfn get_image_width(read_only image1d_array_t); +int __ovld __cnfn get_image_width(read_only image2d_array_t); #ifdef cl_khr_depth_images -int __ovld __cnfn get_image_width(read_only image2d_depth_t image); -int __ovld __cnfn get_image_width(read_only image2d_array_depth_t image); +int __ovld __cnfn get_image_width(read_only image2d_depth_t); +int __ovld __cnfn get_image_width(read_only image2d_array_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_width(read_only image2d_msaa_t image); -int __ovld __cnfn get_image_width(read_only image2d_msaa_depth_t image); -int __ovld __cnfn get_image_width(read_only image2d_array_msaa_t image); -int __ovld __cnfn get_image_width(read_only image2d_array_msaa_depth_t image); +int __ovld __cnfn get_image_width(read_only image2d_msaa_t); +int __ovld __cnfn get_image_width(read_only image2d_msaa_depth_t); +int __ovld __cnfn get_image_width(read_only image2d_array_msaa_t); +int __ovld __cnfn get_image_width(read_only image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -int __ovld __cnfn get_image_width(write_only image1d_t image); -int __ovld __cnfn get_image_width(write_only image1d_buffer_t image); -int __ovld __cnfn get_image_width(write_only image2d_t image); +int __ovld __cnfn get_image_width(write_only image1d_t); +int __ovld __cnfn get_image_width(write_only image1d_buffer_t); +int __ovld __cnfn get_image_width(write_only image2d_t); #ifdef cl_khr_3d_image_writes -int __ovld __cnfn get_image_width(write_only image3d_t image); +int __ovld __cnfn get_image_width(write_only image3d_t); #endif -int __ovld __cnfn get_image_width(write_only image1d_array_t image); -int __ovld __cnfn get_image_width(write_only image2d_array_t image); +int __ovld __cnfn get_image_width(write_only image1d_array_t); +int __ovld __cnfn get_image_width(write_only image2d_array_t); #ifdef cl_khr_depth_images -int __ovld __cnfn get_image_width(write_only image2d_depth_t image); -int __ovld __cnfn get_image_width(write_only image2d_array_depth_t image); +int __ovld __cnfn get_image_width(write_only image2d_depth_t); +int __ovld __cnfn get_image_width(write_only image2d_array_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_width(write_only image2d_msaa_t image); -int __ovld __cnfn get_image_width(write_only image2d_msaa_depth_t image); -int __ovld __cnfn get_image_width(write_only image2d_array_msaa_t image); -int __ovld __cnfn get_image_width(write_only image2d_array_msaa_depth_t image); +int __ovld __cnfn get_image_width(write_only image2d_msaa_t); +int __ovld __cnfn get_image_width(write_only image2d_msaa_depth_t); +int __ovld __cnfn get_image_width(write_only image2d_array_msaa_t); +int __ovld __cnfn get_image_width(write_only image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -int __ovld __cnfn get_image_width(read_write image1d_t image); -int __ovld __cnfn get_image_width(read_write image1d_buffer_t image); -int __ovld __cnfn get_image_width(read_write image2d_t image); -int __ovld __cnfn get_image_width(read_write image3d_t image); -int __ovld __cnfn get_image_width(read_write image1d_array_t image); -int __ovld __cnfn get_image_width(read_write image2d_array_t image); +#if defined(__opencl_c_read_write_images) +int __ovld __cnfn get_image_width(read_write image1d_t); +int __ovld __cnfn get_image_width(read_write image1d_buffer_t); +int __ovld __cnfn get_image_width(read_write image2d_t); +int __ovld __cnfn get_image_width(read_write image3d_t); +int __ovld __cnfn get_image_width(read_write image1d_array_t); +int __ovld __cnfn get_image_width(read_write image2d_array_t); #ifdef cl_khr_depth_images -int __ovld __cnfn get_image_width(read_write image2d_depth_t image); -int __ovld __cnfn get_image_width(read_write image2d_array_depth_t image); +int __ovld __cnfn get_image_width(read_write image2d_depth_t); +int __ovld __cnfn get_image_width(read_write image2d_array_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_width(read_write image2d_msaa_t image); -int __ovld __cnfn get_image_width(read_write image2d_msaa_depth_t image); -int __ovld __cnfn get_image_width(read_write image2d_array_msaa_t image); -int __ovld __cnfn get_image_width(read_write image2d_array_msaa_depth_t image); +int __ovld __cnfn get_image_width(read_write image2d_msaa_t); +int __ovld __cnfn get_image_width(read_write image2d_msaa_depth_t); +int __ovld __cnfn get_image_width(read_write image2d_array_msaa_t); +int __ovld __cnfn get_image_width(read_write image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_read_write_images) /** * Return the image height in pixels. */ -int __ovld __cnfn get_image_height(read_only image2d_t image); -int __ovld __cnfn get_image_height(read_only image3d_t image); -int __ovld __cnfn get_image_height(read_only image2d_array_t image); +int __ovld __cnfn get_image_height(read_only image2d_t); +int __ovld __cnfn get_image_height(read_only image3d_t); +int __ovld __cnfn get_image_height(read_only image2d_array_t); #ifdef cl_khr_depth_images -int __ovld __cnfn get_image_height(read_only image2d_depth_t image); -int __ovld __cnfn get_image_height(read_only image2d_array_depth_t image); +int __ovld __cnfn get_image_height(read_only image2d_depth_t); +int __ovld __cnfn get_image_height(read_only image2d_array_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_height(read_only image2d_msaa_t image); -int __ovld __cnfn get_image_height(read_only image2d_msaa_depth_t image); -int __ovld __cnfn get_image_height(read_only image2d_array_msaa_t image); -int __ovld __cnfn get_image_height(read_only image2d_array_msaa_depth_t image); +int __ovld __cnfn get_image_height(read_only image2d_msaa_t); +int __ovld __cnfn get_image_height(read_only image2d_msaa_depth_t); +int __ovld __cnfn get_image_height(read_only image2d_array_msaa_t); +int __ovld __cnfn get_image_height(read_only image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -int __ovld __cnfn get_image_height(write_only image2d_t image); +int __ovld __cnfn get_image_height(write_only image2d_t); #ifdef cl_khr_3d_image_writes -int __ovld __cnfn get_image_height(write_only image3d_t image); +int __ovld __cnfn get_image_height(write_only image3d_t); #endif -int __ovld __cnfn get_image_height(write_only image2d_array_t image); +int __ovld __cnfn get_image_height(write_only image2d_array_t); #ifdef cl_khr_depth_images -int __ovld __cnfn get_image_height(write_only image2d_depth_t image); -int __ovld __cnfn get_image_height(write_only image2d_array_depth_t image); +int __ovld __cnfn get_image_height(write_only image2d_depth_t); +int __ovld __cnfn get_image_height(write_only image2d_array_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_height(write_only image2d_msaa_t image); -int __ovld __cnfn get_image_height(write_only image2d_msaa_depth_t image); -int __ovld __cnfn get_image_height(write_only image2d_array_msaa_t image); -int __ovld __cnfn get_image_height(write_only image2d_array_msaa_depth_t image); +int __ovld __cnfn get_image_height(write_only image2d_msaa_t); +int __ovld __cnfn get_image_height(write_only image2d_msaa_depth_t); +int __ovld __cnfn get_image_height(write_only image2d_array_msaa_t); +int __ovld __cnfn get_image_height(write_only image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -int __ovld __cnfn get_image_height(read_write image2d_t image); -int __ovld __cnfn get_image_height(read_write image3d_t image); -int __ovld __cnfn get_image_height(read_write image2d_array_t image); +#if defined(__opencl_c_read_write_images) +int __ovld __cnfn get_image_height(read_write image2d_t); +int __ovld __cnfn get_image_height(read_write image3d_t); +int __ovld __cnfn get_image_height(read_write image2d_array_t); #ifdef cl_khr_depth_images -int __ovld __cnfn get_image_height(read_write image2d_depth_t image); -int __ovld __cnfn get_image_height(read_write image2d_array_depth_t image); +int __ovld __cnfn get_image_height(read_write image2d_depth_t); +int __ovld __cnfn get_image_height(read_write image2d_array_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_height(read_write image2d_msaa_t image); -int __ovld __cnfn get_image_height(read_write image2d_msaa_depth_t image); -int __ovld __cnfn get_image_height(read_write image2d_array_msaa_t image); -int __ovld __cnfn get_image_height(read_write image2d_array_msaa_depth_t image); +int __ovld __cnfn get_image_height(read_write image2d_msaa_t); +int __ovld __cnfn get_image_height(read_write image2d_msaa_depth_t); +int __ovld __cnfn get_image_height(read_write image2d_array_msaa_t); +int __ovld __cnfn get_image_height(read_write image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_read_write_images) /** * Return the image depth in pixels. */ -int __ovld __cnfn get_image_depth(read_only image3d_t image); +int __ovld __cnfn get_image_depth(read_only image3d_t); #ifdef cl_khr_3d_image_writes -int __ovld __cnfn get_image_depth(write_only image3d_t image); +int __ovld __cnfn get_image_depth(write_only image3d_t); #endif -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -int __ovld __cnfn get_image_depth(read_write image3d_t image); -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#if defined(__opencl_c_read_write_images) +int __ovld __cnfn get_image_depth(read_write image3d_t); +#endif //defined(__opencl_c_read_write_images) // OpenCL Extension v2.0 s9.18 - Mipmaps #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) @@ -15495,34 +16553,44 @@ int __ovld __cnfn get_image_depth(read_write image3d_t image); * Return the image miplevels. */ -int __ovld get_image_num_mip_levels(read_only image1d_t image); -int __ovld get_image_num_mip_levels(read_only image2d_t image); -int __ovld get_image_num_mip_levels(read_only image3d_t image); +int __ovld get_image_num_mip_levels(read_only image1d_t); +int __ovld get_image_num_mip_levels(read_only image2d_t); +int __ovld get_image_num_mip_levels(read_only image3d_t); -int __ovld get_image_num_mip_levels(write_only image1d_t image); -int __ovld get_image_num_mip_levels(write_only image2d_t image); +int __ovld get_image_num_mip_levels(write_only image1d_t); +int __ovld get_image_num_mip_levels(write_only image2d_t); #ifdef cl_khr_3d_image_writes -int __ovld get_image_num_mip_levels(write_only image3d_t image); +int __ovld get_image_num_mip_levels(write_only image3d_t); #endif -int __ovld get_image_num_mip_levels(read_write image1d_t image); -int __ovld get_image_num_mip_levels(read_write image2d_t image); -int __ovld get_image_num_mip_levels(read_write image3d_t image); +#if defined(__opencl_c_read_write_images) +int __ovld get_image_num_mip_levels(read_write image1d_t); +int __ovld get_image_num_mip_levels(read_write image2d_t); +int __ovld get_image_num_mip_levels(read_write image3d_t); +#endif //defined(__opencl_c_read_write_images) -int __ovld get_image_num_mip_levels(read_only image1d_array_t image); -int __ovld get_image_num_mip_levels(read_only image2d_array_t image); -int __ovld get_image_num_mip_levels(read_only image2d_array_depth_t image); -int __ovld get_image_num_mip_levels(read_only image2d_depth_t image); +int __ovld get_image_num_mip_levels(read_only image1d_array_t); +int __ovld get_image_num_mip_levels(read_only image2d_array_t); +#ifdef cl_khr_depth_images +int __ovld get_image_num_mip_levels(read_only image2d_array_depth_t); +int __ovld get_image_num_mip_levels(read_only image2d_depth_t); +#endif // cl_khr_depth_images -int __ovld get_image_num_mip_levels(write_only image1d_array_t image); -int __ovld get_image_num_mip_levels(write_only image2d_array_t image); -int __ovld get_image_num_mip_levels(write_only image2d_array_depth_t image); -int __ovld get_image_num_mip_levels(write_only image2d_depth_t image); +int __ovld get_image_num_mip_levels(write_only image1d_array_t); +int __ovld get_image_num_mip_levels(write_only image2d_array_t); +#ifdef cl_khr_depth_images +int __ovld get_image_num_mip_levels(write_only image2d_array_depth_t); +int __ovld get_image_num_mip_levels(write_only image2d_depth_t); +#endif // cl_khr_depth_images -int __ovld get_image_num_mip_levels(read_write image1d_array_t image); -int __ovld get_image_num_mip_levels(read_write image2d_array_t image); -int __ovld get_image_num_mip_levels(read_write image2d_array_depth_t image); -int __ovld get_image_num_mip_levels(read_write image2d_depth_t image); +#if defined(__opencl_c_read_write_images) +int __ovld get_image_num_mip_levels(read_write image1d_array_t); +int __ovld get_image_num_mip_levels(read_write image2d_array_t); +#ifdef cl_khr_depth_images +int __ovld get_image_num_mip_levels(read_write image2d_array_depth_t); +int __ovld get_image_num_mip_levels(read_write image2d_depth_t); +#endif // cl_khr_depth_images +#endif //defined(__opencl_c_read_write_images) #endif //cl_khr_mipmap_image #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) @@ -15546,60 +16614,60 @@ int __ovld get_image_num_mip_levels(read_write image2d_depth_t image); * CLK_FLOAT */ -int __ovld __cnfn get_image_channel_data_type(read_only image1d_t image); -int __ovld __cnfn get_image_channel_data_type(read_only image1d_buffer_t image); -int __ovld __cnfn get_image_channel_data_type(read_only image2d_t image); -int __ovld __cnfn get_image_channel_data_type(read_only image3d_t image); -int __ovld __cnfn get_image_channel_data_type(read_only image1d_array_t image); -int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_t image); +int __ovld __cnfn get_image_channel_data_type(read_only image1d_t); +int __ovld __cnfn get_image_channel_data_type(read_only image1d_buffer_t); +int __ovld __cnfn get_image_channel_data_type(read_only image2d_t); +int __ovld __cnfn get_image_channel_data_type(read_only image3d_t); +int __ovld __cnfn get_image_channel_data_type(read_only image1d_array_t); +int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_t); #ifdef cl_khr_depth_images -int __ovld __cnfn get_image_channel_data_type(read_only image2d_depth_t image); -int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_depth_t image); +int __ovld __cnfn get_image_channel_data_type(read_only image2d_depth_t); +int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_channel_data_type(read_only image2d_msaa_t image); -int __ovld __cnfn get_image_channel_data_type(read_only image2d_msaa_depth_t image); -int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_msaa_t image); -int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_msaa_depth_t image); +int __ovld __cnfn get_image_channel_data_type(read_only image2d_msaa_t); +int __ovld __cnfn get_image_channel_data_type(read_only image2d_msaa_depth_t); +int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_msaa_t); +int __ovld __cnfn get_image_channel_data_type(read_only image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -int __ovld __cnfn get_image_channel_data_type(write_only image1d_t image); -int __ovld __cnfn get_image_channel_data_type(write_only image1d_buffer_t image); -int __ovld __cnfn get_image_channel_data_type(write_only image2d_t image); +int __ovld __cnfn get_image_channel_data_type(write_only image1d_t); +int __ovld __cnfn get_image_channel_data_type(write_only image1d_buffer_t); +int __ovld __cnfn get_image_channel_data_type(write_only image2d_t); #ifdef cl_khr_3d_image_writes -int __ovld __cnfn get_image_channel_data_type(write_only image3d_t image); +int __ovld __cnfn get_image_channel_data_type(write_only image3d_t); #endif -int __ovld __cnfn get_image_channel_data_type(write_only image1d_array_t image); -int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_t image); +int __ovld __cnfn get_image_channel_data_type(write_only image1d_array_t); +int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_t); #ifdef cl_khr_depth_images -int __ovld __cnfn get_image_channel_data_type(write_only image2d_depth_t image); -int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_depth_t image); +int __ovld __cnfn get_image_channel_data_type(write_only image2d_depth_t); +int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_channel_data_type(write_only image2d_msaa_t image); -int __ovld __cnfn get_image_channel_data_type(write_only image2d_msaa_depth_t image); -int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_msaa_t image); -int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_msaa_depth_t image); +int __ovld __cnfn get_image_channel_data_type(write_only image2d_msaa_t); +int __ovld __cnfn get_image_channel_data_type(write_only image2d_msaa_depth_t); +int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_msaa_t); +int __ovld __cnfn get_image_channel_data_type(write_only image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -int __ovld __cnfn get_image_channel_data_type(read_write image1d_t image); -int __ovld __cnfn get_image_channel_data_type(read_write image1d_buffer_t image); -int __ovld __cnfn get_image_channel_data_type(read_write image2d_t image); -int __ovld __cnfn get_image_channel_data_type(read_write image3d_t image); -int __ovld __cnfn get_image_channel_data_type(read_write image1d_array_t image); -int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_t image); +#if defined(__opencl_c_read_write_images) +int __ovld __cnfn get_image_channel_data_type(read_write image1d_t); +int __ovld __cnfn get_image_channel_data_type(read_write image1d_buffer_t); +int __ovld __cnfn get_image_channel_data_type(read_write image2d_t); +int __ovld __cnfn get_image_channel_data_type(read_write image3d_t); +int __ovld __cnfn get_image_channel_data_type(read_write image1d_array_t); +int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_t); #ifdef cl_khr_depth_images -int __ovld __cnfn get_image_channel_data_type(read_write image2d_depth_t image); -int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_depth_t image); +int __ovld __cnfn get_image_channel_data_type(read_write image2d_depth_t); +int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_channel_data_type(read_write image2d_msaa_t image); -int __ovld __cnfn get_image_channel_data_type(read_write image2d_msaa_depth_t image); -int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_msaa_t image); -int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_msaa_depth_t image); +int __ovld __cnfn get_image_channel_data_type(read_write image2d_msaa_t); +int __ovld __cnfn get_image_channel_data_type(read_write image2d_msaa_depth_t); +int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_msaa_t); +int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_read_write_images) /** * Return the image channel order. Valid values are: @@ -15618,106 +16686,106 @@ int __ovld __cnfn get_image_channel_data_type(read_write image2d_array_msaa_dept * CLK_LUMINANCE */ -int __ovld __cnfn get_image_channel_order(read_only image1d_t image); -int __ovld __cnfn get_image_channel_order(read_only image1d_buffer_t image); -int __ovld __cnfn get_image_channel_order(read_only image2d_t image); -int __ovld __cnfn get_image_channel_order(read_only image3d_t image); -int __ovld __cnfn get_image_channel_order(read_only image1d_array_t image); -int __ovld __cnfn get_image_channel_order(read_only image2d_array_t image); +int __ovld __cnfn get_image_channel_order(read_only image1d_t); +int __ovld __cnfn get_image_channel_order(read_only image1d_buffer_t); +int __ovld __cnfn get_image_channel_order(read_only image2d_t); +int __ovld __cnfn get_image_channel_order(read_only image3d_t); +int __ovld __cnfn get_image_channel_order(read_only image1d_array_t); +int __ovld __cnfn get_image_channel_order(read_only image2d_array_t); #ifdef cl_khr_depth_images -int __ovld __cnfn get_image_channel_order(read_only image2d_depth_t image); -int __ovld __cnfn get_image_channel_order(read_only image2d_array_depth_t image); +int __ovld __cnfn get_image_channel_order(read_only image2d_depth_t); +int __ovld __cnfn get_image_channel_order(read_only image2d_array_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_channel_order(read_only image2d_msaa_t image); -int __ovld __cnfn get_image_channel_order(read_only image2d_msaa_depth_t image); -int __ovld __cnfn get_image_channel_order(read_only image2d_array_msaa_t image); -int __ovld __cnfn get_image_channel_order(read_only image2d_array_msaa_depth_t image); +int __ovld __cnfn get_image_channel_order(read_only image2d_msaa_t); +int __ovld __cnfn get_image_channel_order(read_only image2d_msaa_depth_t); +int __ovld __cnfn get_image_channel_order(read_only image2d_array_msaa_t); +int __ovld __cnfn get_image_channel_order(read_only image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -int __ovld __cnfn get_image_channel_order(write_only image1d_t image); -int __ovld __cnfn get_image_channel_order(write_only image1d_buffer_t image); -int __ovld __cnfn get_image_channel_order(write_only image2d_t image); +int __ovld __cnfn get_image_channel_order(write_only image1d_t); +int __ovld __cnfn get_image_channel_order(write_only image1d_buffer_t); +int __ovld __cnfn get_image_channel_order(write_only image2d_t); #ifdef cl_khr_3d_image_writes -int __ovld __cnfn get_image_channel_order(write_only image3d_t image); +int __ovld __cnfn get_image_channel_order(write_only image3d_t); #endif -int __ovld __cnfn get_image_channel_order(write_only image1d_array_t image); -int __ovld __cnfn get_image_channel_order(write_only image2d_array_t image); +int __ovld __cnfn get_image_channel_order(write_only image1d_array_t); +int __ovld __cnfn get_image_channel_order(write_only image2d_array_t); #ifdef cl_khr_depth_images -int __ovld __cnfn get_image_channel_order(write_only image2d_depth_t image); -int __ovld __cnfn get_image_channel_order(write_only image2d_array_depth_t image); +int __ovld __cnfn get_image_channel_order(write_only image2d_depth_t); +int __ovld __cnfn get_image_channel_order(write_only image2d_array_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_channel_order(write_only image2d_msaa_t image); -int __ovld __cnfn get_image_channel_order(write_only image2d_msaa_depth_t image); -int __ovld __cnfn get_image_channel_order(write_only image2d_array_msaa_t image); -int __ovld __cnfn get_image_channel_order(write_only image2d_array_msaa_depth_t image); +int __ovld __cnfn get_image_channel_order(write_only image2d_msaa_t); +int __ovld __cnfn get_image_channel_order(write_only image2d_msaa_depth_t); +int __ovld __cnfn get_image_channel_order(write_only image2d_array_msaa_t); +int __ovld __cnfn get_image_channel_order(write_only image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -int __ovld __cnfn get_image_channel_order(read_write image1d_t image); -int __ovld __cnfn get_image_channel_order(read_write image1d_buffer_t image); -int __ovld __cnfn get_image_channel_order(read_write image2d_t image); -int __ovld __cnfn get_image_channel_order(read_write image3d_t image); -int __ovld __cnfn get_image_channel_order(read_write image1d_array_t image); -int __ovld __cnfn get_image_channel_order(read_write image2d_array_t image); +#if defined(__opencl_c_read_write_images) +int __ovld __cnfn get_image_channel_order(read_write image1d_t); +int __ovld __cnfn get_image_channel_order(read_write image1d_buffer_t); +int __ovld __cnfn get_image_channel_order(read_write image2d_t); +int __ovld __cnfn get_image_channel_order(read_write image3d_t); +int __ovld __cnfn get_image_channel_order(read_write image1d_array_t); +int __ovld __cnfn get_image_channel_order(read_write image2d_array_t); #ifdef cl_khr_depth_images -int __ovld __cnfn get_image_channel_order(read_write image2d_depth_t image); -int __ovld __cnfn get_image_channel_order(read_write image2d_array_depth_t image); +int __ovld __cnfn get_image_channel_order(read_write image2d_depth_t); +int __ovld __cnfn get_image_channel_order(read_write image2d_array_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -int __ovld __cnfn get_image_channel_order(read_write image2d_msaa_t image); -int __ovld __cnfn get_image_channel_order(read_write image2d_msaa_depth_t image); -int __ovld __cnfn get_image_channel_order(read_write image2d_array_msaa_t image); -int __ovld __cnfn get_image_channel_order(read_write image2d_array_msaa_depth_t image); +int __ovld __cnfn get_image_channel_order(read_write image2d_msaa_t); +int __ovld __cnfn get_image_channel_order(read_write image2d_msaa_depth_t); +int __ovld __cnfn get_image_channel_order(read_write image2d_array_msaa_t); +int __ovld __cnfn get_image_channel_order(read_write image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_read_write_images) /** * Return the 2D image width and height as an int2 * type. The width is returned in the x component, and * the height in the y component. */ -int2 __ovld __cnfn get_image_dim(read_only image2d_t image); -int2 __ovld __cnfn get_image_dim(read_only image2d_array_t image); +int2 __ovld __cnfn get_image_dim(read_only image2d_t); +int2 __ovld __cnfn get_image_dim(read_only image2d_array_t); #ifdef cl_khr_depth_images -int2 __ovld __cnfn get_image_dim(read_only image2d_array_depth_t image); -int2 __ovld __cnfn get_image_dim(read_only image2d_depth_t image); +int2 __ovld __cnfn get_image_dim(read_only image2d_array_depth_t); +int2 __ovld __cnfn get_image_dim(read_only image2d_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -int2 __ovld __cnfn get_image_dim(read_only image2d_msaa_t image); -int2 __ovld __cnfn get_image_dim(read_only image2d_msaa_depth_t image); -int2 __ovld __cnfn get_image_dim(read_only image2d_array_msaa_t image); -int2 __ovld __cnfn get_image_dim(read_only image2d_array_msaa_depth_t image); +int2 __ovld __cnfn get_image_dim(read_only image2d_msaa_t); +int2 __ovld __cnfn get_image_dim(read_only image2d_msaa_depth_t); +int2 __ovld __cnfn get_image_dim(read_only image2d_array_msaa_t); +int2 __ovld __cnfn get_image_dim(read_only image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -int2 __ovld __cnfn get_image_dim(write_only image2d_t image); -int2 __ovld __cnfn get_image_dim(write_only image2d_array_t image); +int2 __ovld __cnfn get_image_dim(write_only image2d_t); +int2 __ovld __cnfn get_image_dim(write_only image2d_array_t); #ifdef cl_khr_depth_images -int2 __ovld __cnfn get_image_dim(write_only image2d_array_depth_t image); -int2 __ovld __cnfn get_image_dim(write_only image2d_depth_t image); +int2 __ovld __cnfn get_image_dim(write_only image2d_array_depth_t); +int2 __ovld __cnfn get_image_dim(write_only image2d_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -int2 __ovld __cnfn get_image_dim(write_only image2d_msaa_t image); -int2 __ovld __cnfn get_image_dim(write_only image2d_msaa_depth_t image); -int2 __ovld __cnfn get_image_dim(write_only image2d_array_msaa_t image); -int2 __ovld __cnfn get_image_dim(write_only image2d_array_msaa_depth_t image); +int2 __ovld __cnfn get_image_dim(write_only image2d_msaa_t); +int2 __ovld __cnfn get_image_dim(write_only image2d_msaa_depth_t); +int2 __ovld __cnfn get_image_dim(write_only image2d_array_msaa_t); +int2 __ovld __cnfn get_image_dim(write_only image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -int2 __ovld __cnfn get_image_dim(read_write image2d_t image); -int2 __ovld __cnfn get_image_dim(read_write image2d_array_t image); +#if defined(__opencl_c_read_write_images) +int2 __ovld __cnfn get_image_dim(read_write image2d_t); +int2 __ovld __cnfn get_image_dim(read_write image2d_array_t); #ifdef cl_khr_depth_images -int2 __ovld __cnfn get_image_dim(read_write image2d_array_depth_t image); -int2 __ovld __cnfn get_image_dim(read_write image2d_depth_t image); +int2 __ovld __cnfn get_image_dim(read_write image2d_array_depth_t); +int2 __ovld __cnfn get_image_dim(read_write image2d_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -int2 __ovld __cnfn get_image_dim(read_write image2d_msaa_t image); -int2 __ovld __cnfn get_image_dim(read_write image2d_msaa_depth_t image); -int2 __ovld __cnfn get_image_dim(read_write image2d_array_msaa_t image); -int2 __ovld __cnfn get_image_dim(read_write image2d_array_msaa_depth_t image); +int2 __ovld __cnfn get_image_dim(read_write image2d_msaa_t); +int2 __ovld __cnfn get_image_dim(read_write image2d_msaa_depth_t); +int2 __ovld __cnfn get_image_dim(read_write image2d_array_msaa_t); +int2 __ovld __cnfn get_image_dim(read_write image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_read_write_images) /** * Return the 3D image width, height, and depth as an @@ -15725,102 +16793,102 @@ int2 __ovld __cnfn get_image_dim(read_write image2d_array_msaa_depth_t image); * component, height in the y component, depth in the z * component and the w component is 0. */ -int4 __ovld __cnfn get_image_dim(read_only image3d_t image); +int4 __ovld __cnfn get_image_dim(read_only image3d_t); #ifdef cl_khr_3d_image_writes -int4 __ovld __cnfn get_image_dim(write_only image3d_t image); +int4 __ovld __cnfn get_image_dim(write_only image3d_t); #endif -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -int4 __ovld __cnfn get_image_dim(read_write image3d_t image); -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#if defined(__opencl_c_read_write_images) +int4 __ovld __cnfn get_image_dim(read_write image3d_t); +#endif //defined(__opencl_c_read_write_images) /** * Return the image array size. */ -size_t __ovld __cnfn get_image_array_size(read_only image1d_array_t image_array); -size_t __ovld __cnfn get_image_array_size(read_only image2d_array_t image_array); +size_t __ovld __cnfn get_image_array_size(read_only image1d_array_t); +size_t __ovld __cnfn get_image_array_size(read_only image2d_array_t); #ifdef cl_khr_depth_images -size_t __ovld __cnfn get_image_array_size(read_only image2d_array_depth_t image_array); +size_t __ovld __cnfn get_image_array_size(read_only image2d_array_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -size_t __ovld __cnfn get_image_array_size(read_only image2d_array_msaa_t image_array); -size_t __ovld __cnfn get_image_array_size(read_only image2d_array_msaa_depth_t image_array); +size_t __ovld __cnfn get_image_array_size(read_only image2d_array_msaa_t); +size_t __ovld __cnfn get_image_array_size(read_only image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -size_t __ovld __cnfn get_image_array_size(write_only image1d_array_t image_array); -size_t __ovld __cnfn get_image_array_size(write_only image2d_array_t image_array); +size_t __ovld __cnfn get_image_array_size(write_only image1d_array_t); +size_t __ovld __cnfn get_image_array_size(write_only image2d_array_t); #ifdef cl_khr_depth_images -size_t __ovld __cnfn get_image_array_size(write_only image2d_array_depth_t image_array); +size_t __ovld __cnfn get_image_array_size(write_only image2d_array_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -size_t __ovld __cnfn get_image_array_size(write_only image2d_array_msaa_t image_array); -size_t __ovld __cnfn get_image_array_size(write_only image2d_array_msaa_depth_t image_array); +size_t __ovld __cnfn get_image_array_size(write_only image2d_array_msaa_t); +size_t __ovld __cnfn get_image_array_size(write_only image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -size_t __ovld __cnfn get_image_array_size(read_write image1d_array_t image_array); -size_t __ovld __cnfn get_image_array_size(read_write image2d_array_t image_array); +#if defined(__opencl_c_read_write_images) +size_t __ovld __cnfn get_image_array_size(read_write image1d_array_t); +size_t __ovld __cnfn get_image_array_size(read_write image2d_array_t); #ifdef cl_khr_depth_images -size_t __ovld __cnfn get_image_array_size(read_write image2d_array_depth_t image_array); +size_t __ovld __cnfn get_image_array_size(read_write image2d_array_depth_t); #endif //cl_khr_depth_images #if defined(cl_khr_gl_msaa_sharing) -size_t __ovld __cnfn get_image_array_size(read_write image2d_array_msaa_t image_array); -size_t __ovld __cnfn get_image_array_size(read_write image2d_array_msaa_depth_t image_array); +size_t __ovld __cnfn get_image_array_size(read_write image2d_array_msaa_t); +size_t __ovld __cnfn get_image_array_size(read_write image2d_array_msaa_depth_t); #endif //cl_khr_gl_msaa_sharing -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_read_write_images) /** * Return the number of samples associated with image */ #if defined(cl_khr_gl_msaa_sharing) -int __ovld get_image_num_samples(read_only image2d_msaa_t image); -int __ovld get_image_num_samples(read_only image2d_msaa_depth_t image); -int __ovld get_image_num_samples(read_only image2d_array_msaa_t image); -int __ovld get_image_num_samples(read_only image2d_array_msaa_depth_t image); - -int __ovld get_image_num_samples(write_only image2d_msaa_t image); -int __ovld get_image_num_samples(write_only image2d_msaa_depth_t image); -int __ovld get_image_num_samples(write_only image2d_array_msaa_t image); -int __ovld get_image_num_samples(write_only image2d_array_msaa_depth_t image); - -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -int __ovld get_image_num_samples(read_write image2d_msaa_t image); -int __ovld get_image_num_samples(read_write image2d_msaa_depth_t image); -int __ovld get_image_num_samples(read_write image2d_array_msaa_t image); -int __ovld get_image_num_samples(read_write image2d_array_msaa_depth_t image); -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +int __ovld __cnfn get_image_num_samples(read_only image2d_msaa_t); +int __ovld __cnfn get_image_num_samples(read_only image2d_msaa_depth_t); +int __ovld __cnfn get_image_num_samples(read_only image2d_array_msaa_t); +int __ovld __cnfn get_image_num_samples(read_only image2d_array_msaa_depth_t); + +int __ovld __cnfn get_image_num_samples(write_only image2d_msaa_t); +int __ovld __cnfn get_image_num_samples(write_only image2d_msaa_depth_t); +int __ovld __cnfn get_image_num_samples(write_only image2d_array_msaa_t); +int __ovld __cnfn get_image_num_samples(write_only image2d_array_msaa_depth_t); + +#if defined(__opencl_c_read_write_images) +int __ovld __cnfn get_image_num_samples(read_write image2d_msaa_t); +int __ovld __cnfn get_image_num_samples(read_write image2d_msaa_depth_t); +int __ovld __cnfn get_image_num_samples(read_write image2d_array_msaa_t); +int __ovld __cnfn get_image_num_samples(read_write image2d_array_msaa_depth_t); +#endif //defined(__opencl_c_read_write_images) #endif // OpenCL v2.0 s6.13.15 - Work-group Functions -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#if defined(__opencl_c_work_group_collective_functions) int __ovld __conv work_group_all(int predicate); int __ovld __conv work_group_any(int predicate); #ifdef cl_khr_fp16 -half __ovld __conv work_group_broadcast(half a, size_t local_id); -half __ovld __conv work_group_broadcast(half a, size_t x, size_t y); -half __ovld __conv work_group_broadcast(half a, size_t x, size_t y, size_t z); +half __ovld __conv work_group_broadcast(half , size_t); +half __ovld __conv work_group_broadcast(half , size_t, size_t ); +half __ovld __conv work_group_broadcast(half , size_t, size_t, size_t ); #endif -int __ovld __conv work_group_broadcast(int a, size_t local_id); -int __ovld __conv work_group_broadcast(int a, size_t x, size_t y); -int __ovld __conv work_group_broadcast(int a, size_t x, size_t y, size_t z); -uint __ovld __conv work_group_broadcast(uint a, size_t local_id); -uint __ovld __conv work_group_broadcast(uint a, size_t x, size_t y); -uint __ovld __conv work_group_broadcast(uint a, size_t x, size_t y, size_t z); -long __ovld __conv work_group_broadcast(long a, size_t local_id); -long __ovld __conv work_group_broadcast(long a, size_t x, size_t y); -long __ovld __conv work_group_broadcast(long a, size_t x, size_t y, size_t z); -ulong __ovld __conv work_group_broadcast(ulong a, size_t local_id); -ulong __ovld __conv work_group_broadcast(ulong a, size_t x, size_t y); -ulong __ovld __conv work_group_broadcast(ulong a, size_t x, size_t y, size_t z); -float __ovld __conv work_group_broadcast(float a, size_t local_id); -float __ovld __conv work_group_broadcast(float a, size_t x, size_t y); -float __ovld __conv work_group_broadcast(float a, size_t x, size_t y, size_t z); +int __ovld __conv work_group_broadcast(int , size_t); +int __ovld __conv work_group_broadcast(int , size_t, size_t ); +int __ovld __conv work_group_broadcast(int , size_t, size_t, size_t ); +uint __ovld __conv work_group_broadcast(uint , size_t); +uint __ovld __conv work_group_broadcast(uint , size_t, size_t ); +uint __ovld __conv work_group_broadcast(uint , size_t, size_t, size_t ); +long __ovld __conv work_group_broadcast(long , size_t); +long __ovld __conv work_group_broadcast(long , size_t, size_t ); +long __ovld __conv work_group_broadcast(long , size_t, size_t, size_t ); +ulong __ovld __conv work_group_broadcast(ulong , size_t); +ulong __ovld __conv work_group_broadcast(ulong , size_t, size_t ); +ulong __ovld __conv work_group_broadcast(ulong , size_t, size_t, size_t ); +float __ovld __conv work_group_broadcast(float , size_t); +float __ovld __conv work_group_broadcast(float , size_t, size_t ); +float __ovld __conv work_group_broadcast(float , size_t, size_t, size_t ); #ifdef cl_khr_fp64 -double __ovld __conv work_group_broadcast(double a, size_t local_id); -double __ovld __conv work_group_broadcast(double a, size_t x, size_t y); -double __ovld __conv work_group_broadcast(double a, size_t x, size_t y, size_t z); +double __ovld __conv work_group_broadcast(double , size_t); +double __ovld __conv work_group_broadcast(double , size_t, size_t ); +double __ovld __conv work_group_broadcast(double , size_t, size_t, size_t ); #endif //cl_khr_fp64 #ifdef cl_khr_fp16 @@ -15891,17 +16959,18 @@ double __ovld __conv work_group_scan_inclusive_min(double x); double __ovld __conv work_group_scan_inclusive_max(double x); #endif //cl_khr_fp64 -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_work_group_collective_functions) // OpenCL v2.0 s6.13.16 - Pipe Functions -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#if defined(__opencl_c_pipes) bool __ovld is_valid_reserve_id(reserve_id_t reserve_id); -#endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#endif //defined(__opencl_c_pipes) // OpenCL v2.0 s6.13.17 - Enqueue Kernels #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#ifdef __opencl_c_device_enqueue ndrange_t __ovld ndrange_1D(size_t); ndrange_t __ovld ndrange_1D(size_t, size_t); ndrange_t __ovld ndrange_1D(size_t, size_t, size_t); @@ -15926,14 +16995,15 @@ void __ovld set_user_event_status(clk_event_t e, int state); bool __ovld is_valid_event (clk_event_t event); -void __ovld capture_event_profiling_info(clk_event_t, clk_profiling_info, __global void* value); +void __ovld capture_event_profiling_info(clk_event_t, clk_profiling_info, __global void*); queue_t __ovld get_default_queue(void); +#endif //__opencl_c_device_enqueue #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) // OpenCL Extension v2.0 s9.17 - Sub-groups -#if defined(cl_intel_subgroups) || defined(cl_khr_subgroups) +#if defined(__opencl_subgroup_builtins) // Shared Sub Group Functions uint __ovld get_sub_group_size(void); uint __ovld get_max_sub_group_size(void); @@ -15944,19 +17014,19 @@ uint __ovld get_enqueued_num_sub_groups(void); uint __ovld get_sub_group_id(void); uint __ovld get_sub_group_local_id(void); -void __ovld __conv sub_group_barrier(cl_mem_fence_flags flags); +void __ovld __conv sub_group_barrier(cl_mem_fence_flags); #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -void __ovld __conv sub_group_barrier(cl_mem_fence_flags flags, memory_scope scope); +void __ovld __conv sub_group_barrier(cl_mem_fence_flags, memory_scope); #endif //defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) int __ovld __conv sub_group_all(int predicate); int __ovld __conv sub_group_any(int predicate); -int __ovld __conv sub_group_broadcast(int x, uint sub_group_local_id); -uint __ovld __conv sub_group_broadcast(uint x, uint sub_group_local_id); -long __ovld __conv sub_group_broadcast(long x, uint sub_group_local_id); -ulong __ovld __conv sub_group_broadcast(ulong x, uint sub_group_local_id); -float __ovld __conv sub_group_broadcast(float x, uint sub_group_local_id); +int __ovld __conv sub_group_broadcast(int , uint sub_group_local_id); +uint __ovld __conv sub_group_broadcast(uint , uint sub_group_local_id); +long __ovld __conv sub_group_broadcast(long , uint sub_group_local_id); +ulong __ovld __conv sub_group_broadcast(ulong, uint sub_group_local_id); +float __ovld __conv sub_group_broadcast(float, uint sub_group_local_id); int __ovld __conv sub_group_reduce_add(int x); uint __ovld __conv sub_group_reduce_add(uint x); @@ -16007,7 +17077,7 @@ ulong __ovld __conv sub_group_scan_inclusive_max(ulong x); float __ovld __conv sub_group_scan_inclusive_max(float x); #ifdef cl_khr_fp16 -half __ovld __conv sub_group_broadcast(half x, uint sub_group_local_id); +half __ovld __conv sub_group_broadcast(half, uint sub_group_local_id); half __ovld __conv sub_group_reduce_add(half x); half __ovld __conv sub_group_reduce_min(half x); half __ovld __conv sub_group_reduce_max(half x); @@ -16020,7 +17090,7 @@ half __ovld __conv sub_group_scan_inclusive_max(half x); #endif //cl_khr_fp16 #ifdef cl_khr_fp64 -double __ovld __conv sub_group_broadcast(double x, uint sub_group_local_id); +double __ovld __conv sub_group_broadcast(double, uint sub_group_local_id); double __ovld __conv sub_group_reduce_add(double x); double __ovld __conv sub_group_reduce_min(double x); double __ovld __conv sub_group_reduce_max(double x); @@ -16032,7 +17102,7 @@ double __ovld __conv sub_group_scan_inclusive_min(double x); double __ovld __conv sub_group_scan_inclusive_max(double x); #endif //cl_khr_fp64 -#endif //cl_khr_subgroups cl_intel_subgroups +#endif // __opencl_subgroup_builtins #if defined(cl_khr_subgroup_extended_types) char __ovld __conv sub_group_broadcast( char value, uint index ); @@ -16702,132 +17772,394 @@ double __ovld sub_group_clustered_reduce_max( double value, uint clustersize ); #endif // cl_khr_subgroup_clustered_reduce +#if defined(cl_khr_extended_bit_ops) +char __ovld __cnfn bitfield_insert(char, char, uint, uint); +uchar __ovld __cnfn bitfield_insert(uchar, uchar, uint, uint); +short __ovld __cnfn bitfield_insert(short, short, uint, uint); +ushort __ovld __cnfn bitfield_insert(ushort, ushort, uint, uint); +int __ovld __cnfn bitfield_insert(int, int, uint, uint); +uint __ovld __cnfn bitfield_insert(uint, uint, uint, uint); +long __ovld __cnfn bitfield_insert(long, long, uint, uint); +ulong __ovld __cnfn bitfield_insert(ulong, ulong, uint, uint); +char2 __ovld __cnfn bitfield_insert(char2, char2, uint, uint); +uchar2 __ovld __cnfn bitfield_insert(uchar2, uchar2, uint, uint); +short2 __ovld __cnfn bitfield_insert(short2, short2, uint, uint); +ushort2 __ovld __cnfn bitfield_insert(ushort2, ushort2, uint, uint); +int2 __ovld __cnfn bitfield_insert(int2, int2, uint, uint); +uint2 __ovld __cnfn bitfield_insert(uint2, uint2, uint, uint); +long2 __ovld __cnfn bitfield_insert(long2, long2, uint, uint); +ulong2 __ovld __cnfn bitfield_insert(ulong2, ulong2, uint, uint); +char3 __ovld __cnfn bitfield_insert(char3, char3, uint, uint); +uchar3 __ovld __cnfn bitfield_insert(uchar3, uchar3, uint, uint); +short3 __ovld __cnfn bitfield_insert(short3, short3, uint, uint); +ushort3 __ovld __cnfn bitfield_insert(ushort3, ushort3, uint, uint); +int3 __ovld __cnfn bitfield_insert(int3, int3, uint, uint); +uint3 __ovld __cnfn bitfield_insert(uint3, uint3, uint, uint); +long3 __ovld __cnfn bitfield_insert(long3, long3, uint, uint); +ulong3 __ovld __cnfn bitfield_insert(ulong3, ulong3, uint, uint); +char4 __ovld __cnfn bitfield_insert(char4, char4, uint, uint); +uchar4 __ovld __cnfn bitfield_insert(uchar4, uchar4, uint, uint); +short4 __ovld __cnfn bitfield_insert(short4, short4, uint, uint); +ushort4 __ovld __cnfn bitfield_insert(ushort4, ushort4, uint, uint); +int4 __ovld __cnfn bitfield_insert(int4, int4, uint, uint); +uint4 __ovld __cnfn bitfield_insert(uint4, uint4, uint, uint); +long4 __ovld __cnfn bitfield_insert(long4, long4, uint, uint); +ulong4 __ovld __cnfn bitfield_insert(ulong4, ulong4, uint, uint); +char8 __ovld __cnfn bitfield_insert(char8, char8, uint, uint); +uchar8 __ovld __cnfn bitfield_insert(uchar8, uchar8, uint, uint); +short8 __ovld __cnfn bitfield_insert(short8, short8, uint, uint); +ushort8 __ovld __cnfn bitfield_insert(ushort8, ushort8, uint, uint); +int8 __ovld __cnfn bitfield_insert(int8, int8, uint, uint); +uint8 __ovld __cnfn bitfield_insert(uint8, uint8, uint, uint); +long8 __ovld __cnfn bitfield_insert(long8, long8, uint, uint); +ulong8 __ovld __cnfn bitfield_insert(ulong8, ulong8, uint, uint); +char16 __ovld __cnfn bitfield_insert(char16, char16, uint, uint); +uchar16 __ovld __cnfn bitfield_insert(uchar16, uchar16, uint, uint); +short16 __ovld __cnfn bitfield_insert(short16, short16, uint, uint); +ushort16 __ovld __cnfn bitfield_insert(ushort16, ushort16, uint, uint); +int16 __ovld __cnfn bitfield_insert(int16, int16, uint, uint); +uint16 __ovld __cnfn bitfield_insert(uint16, uint16, uint, uint); +long16 __ovld __cnfn bitfield_insert(long16, long16, uint, uint); +ulong16 __ovld __cnfn bitfield_insert(ulong16, ulong16, uint, uint); + +char __ovld __cnfn bitfield_extract_signed(char, uint, uint); +short __ovld __cnfn bitfield_extract_signed(short, uint, uint); +int __ovld __cnfn bitfield_extract_signed(int, uint, uint); +long __ovld __cnfn bitfield_extract_signed(long, uint, uint); +char2 __ovld __cnfn bitfield_extract_signed(char2, uint, uint); +short2 __ovld __cnfn bitfield_extract_signed(short2, uint, uint); +int2 __ovld __cnfn bitfield_extract_signed(int2, uint, uint); +long2 __ovld __cnfn bitfield_extract_signed(long2, uint, uint); +char3 __ovld __cnfn bitfield_extract_signed(char3, uint, uint); +short3 __ovld __cnfn bitfield_extract_signed(short3, uint, uint); +int3 __ovld __cnfn bitfield_extract_signed(int3, uint, uint); +long3 __ovld __cnfn bitfield_extract_signed(long3, uint, uint); +char4 __ovld __cnfn bitfield_extract_signed(char4, uint, uint); +short4 __ovld __cnfn bitfield_extract_signed(short4, uint, uint); +int4 __ovld __cnfn bitfield_extract_signed(int4, uint, uint); +long4 __ovld __cnfn bitfield_extract_signed(long4, uint, uint); +char8 __ovld __cnfn bitfield_extract_signed(char8, uint, uint); +short8 __ovld __cnfn bitfield_extract_signed(short8, uint, uint); +int8 __ovld __cnfn bitfield_extract_signed(int8, uint, uint); +long8 __ovld __cnfn bitfield_extract_signed(long8, uint, uint); +char16 __ovld __cnfn bitfield_extract_signed(char16, uint, uint); +short16 __ovld __cnfn bitfield_extract_signed(short16, uint, uint); +int16 __ovld __cnfn bitfield_extract_signed(int16, uint, uint); +long16 __ovld __cnfn bitfield_extract_signed(long16, uint, uint); + +char __ovld __cnfn bitfield_extract_signed(uchar, uint, uint); +short __ovld __cnfn bitfield_extract_signed(ushort, uint, uint); +int __ovld __cnfn bitfield_extract_signed(uint, uint, uint); +long __ovld __cnfn bitfield_extract_signed(ulong, uint, uint); +char2 __ovld __cnfn bitfield_extract_signed(uchar2, uint, uint); +short2 __ovld __cnfn bitfield_extract_signed(ushort2, uint, uint); +int2 __ovld __cnfn bitfield_extract_signed(uint2, uint, uint); +long2 __ovld __cnfn bitfield_extract_signed(ulong2, uint, uint); +char3 __ovld __cnfn bitfield_extract_signed(uchar3, uint, uint); +short3 __ovld __cnfn bitfield_extract_signed(ushort3, uint, uint); +int3 __ovld __cnfn bitfield_extract_signed(uint3, uint, uint); +long3 __ovld __cnfn bitfield_extract_signed(ulong3, uint, uint); +char4 __ovld __cnfn bitfield_extract_signed(uchar4, uint, uint); +short4 __ovld __cnfn bitfield_extract_signed(ushort4, uint, uint); +int4 __ovld __cnfn bitfield_extract_signed(uint4, uint, uint); +long4 __ovld __cnfn bitfield_extract_signed(ulong4, uint, uint); +char8 __ovld __cnfn bitfield_extract_signed(uchar8, uint, uint); +short8 __ovld __cnfn bitfield_extract_signed(ushort8, uint, uint); +int8 __ovld __cnfn bitfield_extract_signed(uint8, uint, uint); +long8 __ovld __cnfn bitfield_extract_signed(ulong8, uint, uint); +char16 __ovld __cnfn bitfield_extract_signed(uchar16, uint, uint); +short16 __ovld __cnfn bitfield_extract_signed(ushort16, uint, uint); +int16 __ovld __cnfn bitfield_extract_signed(uint16, uint, uint); +long16 __ovld __cnfn bitfield_extract_signed(ulong16, uint, uint); + +uchar __ovld __cnfn bitfield_extract_unsigned(char, uint, uint); +ushort __ovld __cnfn bitfield_extract_unsigned(short, uint, uint); +uint __ovld __cnfn bitfield_extract_unsigned(int, uint, uint); +ulong __ovld __cnfn bitfield_extract_unsigned(long, uint, uint); +uchar2 __ovld __cnfn bitfield_extract_unsigned(char2, uint, uint); +ushort2 __ovld __cnfn bitfield_extract_unsigned(short2, uint, uint); +uint2 __ovld __cnfn bitfield_extract_unsigned(int2, uint, uint); +ulong2 __ovld __cnfn bitfield_extract_unsigned(long2, uint, uint); +uchar3 __ovld __cnfn bitfield_extract_unsigned(char3, uint, uint); +ushort3 __ovld __cnfn bitfield_extract_unsigned(short3, uint, uint); +uint3 __ovld __cnfn bitfield_extract_unsigned(int3, uint, uint); +ulong3 __ovld __cnfn bitfield_extract_unsigned(long3, uint, uint); +uchar4 __ovld __cnfn bitfield_extract_unsigned(char4, uint, uint); +ushort4 __ovld __cnfn bitfield_extract_unsigned(short4, uint, uint); +uint4 __ovld __cnfn bitfield_extract_unsigned(int4, uint, uint); +ulong4 __ovld __cnfn bitfield_extract_unsigned(long4, uint, uint); +uchar8 __ovld __cnfn bitfield_extract_unsigned(char8, uint, uint); +ushort8 __ovld __cnfn bitfield_extract_unsigned(short8, uint, uint); +uint8 __ovld __cnfn bitfield_extract_unsigned(int8, uint, uint); +ulong8 __ovld __cnfn bitfield_extract_unsigned(long8, uint, uint); +uchar16 __ovld __cnfn bitfield_extract_unsigned(char16, uint, uint); +ushort16 __ovld __cnfn bitfield_extract_unsigned(short16, uint, uint); +uint16 __ovld __cnfn bitfield_extract_unsigned(int16, uint, uint); +ulong16 __ovld __cnfn bitfield_extract_unsigned(long16, uint, uint); + +uchar __ovld __cnfn bitfield_extract_unsigned(uchar, uint, uint); +ushort __ovld __cnfn bitfield_extract_unsigned(ushort, uint, uint); +uint __ovld __cnfn bitfield_extract_unsigned(uint, uint, uint); +ulong __ovld __cnfn bitfield_extract_unsigned(ulong, uint, uint); +uchar2 __ovld __cnfn bitfield_extract_unsigned(uchar2, uint, uint); +ushort2 __ovld __cnfn bitfield_extract_unsigned(ushort2, uint, uint); +uint2 __ovld __cnfn bitfield_extract_unsigned(uint2, uint, uint); +ulong2 __ovld __cnfn bitfield_extract_unsigned(ulong2, uint, uint); +uchar3 __ovld __cnfn bitfield_extract_unsigned(uchar3, uint, uint); +ushort3 __ovld __cnfn bitfield_extract_unsigned(ushort3, uint, uint); +uint3 __ovld __cnfn bitfield_extract_unsigned(uint3, uint, uint); +ulong3 __ovld __cnfn bitfield_extract_unsigned(ulong3, uint, uint); +uchar4 __ovld __cnfn bitfield_extract_unsigned(uchar4, uint, uint); +ushort4 __ovld __cnfn bitfield_extract_unsigned(ushort4, uint, uint); +uint4 __ovld __cnfn bitfield_extract_unsigned(uint4, uint, uint); +ulong4 __ovld __cnfn bitfield_extract_unsigned(ulong4, uint, uint); +uchar8 __ovld __cnfn bitfield_extract_unsigned(uchar8, uint, uint); +ushort8 __ovld __cnfn bitfield_extract_unsigned(ushort8, uint, uint); +uint8 __ovld __cnfn bitfield_extract_unsigned(uint8, uint, uint); +ulong8 __ovld __cnfn bitfield_extract_unsigned(ulong8, uint, uint); +uchar16 __ovld __cnfn bitfield_extract_unsigned(uchar16, uint, uint); +ushort16 __ovld __cnfn bitfield_extract_unsigned(ushort16, uint, uint); +uint16 __ovld __cnfn bitfield_extract_unsigned(uint16, uint, uint); +ulong16 __ovld __cnfn bitfield_extract_unsigned(ulong16, uint, uint); + +char __ovld __cnfn bit_reverse(char); +uchar __ovld __cnfn bit_reverse(uchar); +short __ovld __cnfn bit_reverse(short); +ushort __ovld __cnfn bit_reverse(ushort); +int __ovld __cnfn bit_reverse(int); +uint __ovld __cnfn bit_reverse(uint); +long __ovld __cnfn bit_reverse(long); +ulong __ovld __cnfn bit_reverse(ulong); +char2 __ovld __cnfn bit_reverse(char2); +uchar2 __ovld __cnfn bit_reverse(uchar2); +short2 __ovld __cnfn bit_reverse(short2); +ushort2 __ovld __cnfn bit_reverse(ushort2); +int2 __ovld __cnfn bit_reverse(int2); +uint2 __ovld __cnfn bit_reverse(uint2); +long2 __ovld __cnfn bit_reverse(long2); +ulong2 __ovld __cnfn bit_reverse(ulong2); +char3 __ovld __cnfn bit_reverse(char3); +uchar3 __ovld __cnfn bit_reverse(uchar3); +short3 __ovld __cnfn bit_reverse(short3); +ushort3 __ovld __cnfn bit_reverse(ushort3); +int3 __ovld __cnfn bit_reverse(int3); +uint3 __ovld __cnfn bit_reverse(uint3); +long3 __ovld __cnfn bit_reverse(long3); +ulong3 __ovld __cnfn bit_reverse(ulong3); +char4 __ovld __cnfn bit_reverse(char4); +uchar4 __ovld __cnfn bit_reverse(uchar4); +short4 __ovld __cnfn bit_reverse(short4); +ushort4 __ovld __cnfn bit_reverse(ushort4); +int4 __ovld __cnfn bit_reverse(int4); +uint4 __ovld __cnfn bit_reverse(uint4); +long4 __ovld __cnfn bit_reverse(long4); +ulong4 __ovld __cnfn bit_reverse(ulong4); +char8 __ovld __cnfn bit_reverse(char8); +uchar8 __ovld __cnfn bit_reverse(uchar8); +short8 __ovld __cnfn bit_reverse(short8); +ushort8 __ovld __cnfn bit_reverse(ushort8); +int8 __ovld __cnfn bit_reverse(int8); +uint8 __ovld __cnfn bit_reverse(uint8); +long8 __ovld __cnfn bit_reverse(long8); +ulong8 __ovld __cnfn bit_reverse(ulong8); +char16 __ovld __cnfn bit_reverse(char16); +uchar16 __ovld __cnfn bit_reverse(uchar16); +short16 __ovld __cnfn bit_reverse(short16); +ushort16 __ovld __cnfn bit_reverse(ushort16); +int16 __ovld __cnfn bit_reverse(int16); +uint16 __ovld __cnfn bit_reverse(uint16); +long16 __ovld __cnfn bit_reverse(long16); +ulong16 __ovld __cnfn bit_reverse(ulong16); +#endif // cl_khr_extended_bit_ops + +#if defined(__opencl_c_integer_dot_product_input_4x8bit) +uint __ovld __cnfn dot(uchar4, uchar4); +int __ovld __cnfn dot(char4, char4); +int __ovld __cnfn dot(uchar4, char4); +int __ovld __cnfn dot(char4, uchar4); + +uint __ovld __cnfn dot_acc_sat(uchar4, uchar4, uint); +int __ovld __cnfn dot_acc_sat(char4, char4, int); +int __ovld __cnfn dot_acc_sat(uchar4, char4, int); +int __ovld __cnfn dot_acc_sat(char4, uchar4, int); +#endif // __opencl_c_integer_dot_product_input_4x8bit + +#if defined(__opencl_c_integer_dot_product_input_4x8bit_packed) +uint __ovld __cnfn dot_4x8packed_uu_uint(uint, uint); +int __ovld __cnfn dot_4x8packed_ss_int(uint, uint); +int __ovld __cnfn dot_4x8packed_us_int(uint, uint); +int __ovld __cnfn dot_4x8packed_su_int(uint, uint); + +uint __ovld __cnfn dot_acc_sat_4x8packed_uu_uint(uint, uint, uint); +int __ovld __cnfn dot_acc_sat_4x8packed_ss_int(uint, uint, int); +int __ovld __cnfn dot_acc_sat_4x8packed_us_int(uint, uint, int); +int __ovld __cnfn dot_acc_sat_4x8packed_su_int(uint, uint, int); +#endif // __opencl_c_integer_dot_product_input_4x8bit_packed + +#if defined(cl_khr_subgroup_rotate) +char __ovld __conv sub_group_rotate(char, int); +uchar __ovld __conv sub_group_rotate(uchar, int); +short __ovld __conv sub_group_rotate(short, int); +ushort __ovld __conv sub_group_rotate(ushort, int); +int __ovld __conv sub_group_rotate(int, int); +uint __ovld __conv sub_group_rotate(uint, int); +long __ovld __conv sub_group_rotate(long, int); +ulong __ovld __conv sub_group_rotate(ulong, int); +float __ovld __conv sub_group_rotate(float, int); +#if defined(cl_khr_fp64) +double __ovld __conv sub_group_rotate(double, int); +#endif // cl_khr_fp64 +#if defined(cl_khr_fp16) +half __ovld __conv sub_group_rotate(half, int); +#endif // cl_khr_fp16 + +char __ovld __conv sub_group_clustered_rotate(char, int, uint); +uchar __ovld __conv sub_group_clustered_rotate(uchar, int, uint); +short __ovld __conv sub_group_clustered_rotate(short, int, uint); +ushort __ovld __conv sub_group_clustered_rotate(ushort, int, uint); +int __ovld __conv sub_group_clustered_rotate(int, int, uint); +uint __ovld __conv sub_group_clustered_rotate(uint, int, uint); +long __ovld __conv sub_group_clustered_rotate(long, int, uint); +ulong __ovld __conv sub_group_clustered_rotate(ulong, int, uint); +float __ovld __conv sub_group_clustered_rotate(float, int, uint); +#if defined(cl_khr_fp64) +double __ovld __conv sub_group_clustered_rotate(double, int, uint); +#endif // cl_khr_fp64 +#if defined(cl_khr_fp16) +half __ovld __conv sub_group_clustered_rotate(half, int, uint); +#endif // cl_khr_fp16 +#endif // cl_khr_subgroup_rotate + #if defined(cl_intel_subgroups) // Intel-Specific Sub Group Functions -float __ovld __conv intel_sub_group_shuffle( float x, uint c ); -float2 __ovld __conv intel_sub_group_shuffle( float2 x, uint c ); -float3 __ovld __conv intel_sub_group_shuffle( float3 x, uint c ); -float4 __ovld __conv intel_sub_group_shuffle( float4 x, uint c ); -float8 __ovld __conv intel_sub_group_shuffle( float8 x, uint c ); -float16 __ovld __conv intel_sub_group_shuffle( float16 x, uint c ); - -int __ovld __conv intel_sub_group_shuffle( int x, uint c ); -int2 __ovld __conv intel_sub_group_shuffle( int2 x, uint c ); -int3 __ovld __conv intel_sub_group_shuffle( int3 x, uint c ); -int4 __ovld __conv intel_sub_group_shuffle( int4 x, uint c ); -int8 __ovld __conv intel_sub_group_shuffle( int8 x, uint c ); -int16 __ovld __conv intel_sub_group_shuffle( int16 x, uint c ); - -uint __ovld __conv intel_sub_group_shuffle( uint x, uint c ); -uint2 __ovld __conv intel_sub_group_shuffle( uint2 x, uint c ); -uint3 __ovld __conv intel_sub_group_shuffle( uint3 x, uint c ); -uint4 __ovld __conv intel_sub_group_shuffle( uint4 x, uint c ); -uint8 __ovld __conv intel_sub_group_shuffle( uint8 x, uint c ); -uint16 __ovld __conv intel_sub_group_shuffle( uint16 x, uint c ); - -long __ovld __conv intel_sub_group_shuffle( long x, uint c ); -ulong __ovld __conv intel_sub_group_shuffle( ulong x, uint c ); - -float __ovld __conv intel_sub_group_shuffle_down( float cur, float next, uint c ); -float2 __ovld __conv intel_sub_group_shuffle_down( float2 cur, float2 next, uint c ); -float3 __ovld __conv intel_sub_group_shuffle_down( float3 cur, float3 next, uint c ); -float4 __ovld __conv intel_sub_group_shuffle_down( float4 cur, float4 next, uint c ); -float8 __ovld __conv intel_sub_group_shuffle_down( float8 cur, float8 next, uint c ); -float16 __ovld __conv intel_sub_group_shuffle_down( float16 cur, float16 next, uint c ); - -int __ovld __conv intel_sub_group_shuffle_down( int cur, int next, uint c ); -int2 __ovld __conv intel_sub_group_shuffle_down( int2 cur, int2 next, uint c ); -int3 __ovld __conv intel_sub_group_shuffle_down( int3 cur, int3 next, uint c ); -int4 __ovld __conv intel_sub_group_shuffle_down( int4 cur, int4 next, uint c ); -int8 __ovld __conv intel_sub_group_shuffle_down( int8 cur, int8 next, uint c ); -int16 __ovld __conv intel_sub_group_shuffle_down( int16 cur, int16 next, uint c ); - -uint __ovld __conv intel_sub_group_shuffle_down( uint cur, uint next, uint c ); -uint2 __ovld __conv intel_sub_group_shuffle_down( uint2 cur, uint2 next, uint c ); -uint3 __ovld __conv intel_sub_group_shuffle_down( uint3 cur, uint3 next, uint c ); -uint4 __ovld __conv intel_sub_group_shuffle_down( uint4 cur, uint4 next, uint c ); -uint8 __ovld __conv intel_sub_group_shuffle_down( uint8 cur, uint8 next, uint c ); -uint16 __ovld __conv intel_sub_group_shuffle_down( uint16 cur, uint16 next, uint c ); - -long __ovld __conv intel_sub_group_shuffle_down( long prev, long cur, uint c ); -ulong __ovld __conv intel_sub_group_shuffle_down( ulong prev, ulong cur, uint c ); - -float __ovld __conv intel_sub_group_shuffle_up( float prev, float cur, uint c ); -float2 __ovld __conv intel_sub_group_shuffle_up( float2 prev, float2 cur, uint c ); -float3 __ovld __conv intel_sub_group_shuffle_up( float3 prev, float3 cur, uint c ); -float4 __ovld __conv intel_sub_group_shuffle_up( float4 prev, float4 cur, uint c ); -float8 __ovld __conv intel_sub_group_shuffle_up( float8 prev, float8 cur, uint c ); -float16 __ovld __conv intel_sub_group_shuffle_up( float16 prev, float16 cur, uint c ); - -int __ovld __conv intel_sub_group_shuffle_up( int prev, int cur, uint c ); -int2 __ovld __conv intel_sub_group_shuffle_up( int2 prev, int2 cur, uint c ); -int3 __ovld __conv intel_sub_group_shuffle_up( int3 prev, int3 cur, uint c ); -int4 __ovld __conv intel_sub_group_shuffle_up( int4 prev, int4 cur, uint c ); -int8 __ovld __conv intel_sub_group_shuffle_up( int8 prev, int8 cur, uint c ); -int16 __ovld __conv intel_sub_group_shuffle_up( int16 prev, int16 cur, uint c ); - -uint __ovld __conv intel_sub_group_shuffle_up( uint prev, uint cur, uint c ); -uint2 __ovld __conv intel_sub_group_shuffle_up( uint2 prev, uint2 cur, uint c ); -uint3 __ovld __conv intel_sub_group_shuffle_up( uint3 prev, uint3 cur, uint c ); -uint4 __ovld __conv intel_sub_group_shuffle_up( uint4 prev, uint4 cur, uint c ); -uint8 __ovld __conv intel_sub_group_shuffle_up( uint8 prev, uint8 cur, uint c ); -uint16 __ovld __conv intel_sub_group_shuffle_up( uint16 prev, uint16 cur, uint c ); - -long __ovld __conv intel_sub_group_shuffle_up( long prev, long cur, uint c ); -ulong __ovld __conv intel_sub_group_shuffle_up( ulong prev, ulong cur, uint c ); - -float __ovld __conv intel_sub_group_shuffle_xor( float x, uint c ); -float2 __ovld __conv intel_sub_group_shuffle_xor( float2 x, uint c ); -float3 __ovld __conv intel_sub_group_shuffle_xor( float3 x, uint c ); -float4 __ovld __conv intel_sub_group_shuffle_xor( float4 x, uint c ); -float8 __ovld __conv intel_sub_group_shuffle_xor( float8 x, uint c ); -float16 __ovld __conv intel_sub_group_shuffle_xor( float16 x, uint c ); - -int __ovld __conv intel_sub_group_shuffle_xor( int x, uint c ); -int2 __ovld __conv intel_sub_group_shuffle_xor( int2 x, uint c ); -int3 __ovld __conv intel_sub_group_shuffle_xor( int3 x, uint c ); -int4 __ovld __conv intel_sub_group_shuffle_xor( int4 x, uint c ); -int8 __ovld __conv intel_sub_group_shuffle_xor( int8 x, uint c ); -int16 __ovld __conv intel_sub_group_shuffle_xor( int16 x, uint c ); - -uint __ovld __conv intel_sub_group_shuffle_xor( uint x, uint c ); -uint2 __ovld __conv intel_sub_group_shuffle_xor( uint2 x, uint c ); -uint3 __ovld __conv intel_sub_group_shuffle_xor( uint3 x, uint c ); -uint4 __ovld __conv intel_sub_group_shuffle_xor( uint4 x, uint c ); -uint8 __ovld __conv intel_sub_group_shuffle_xor( uint8 x, uint c ); -uint16 __ovld __conv intel_sub_group_shuffle_xor( uint16 x, uint c ); - -long __ovld __conv intel_sub_group_shuffle_xor( long x, uint c ); -ulong __ovld __conv intel_sub_group_shuffle_xor( ulong x, uint c ); - -uint __ovld __conv intel_sub_group_block_read( read_only image2d_t image, int2 coord ); -uint2 __ovld __conv intel_sub_group_block_read2( read_only image2d_t image, int2 coord ); -uint4 __ovld __conv intel_sub_group_block_read4( read_only image2d_t image, int2 coord ); -uint8 __ovld __conv intel_sub_group_block_read8( read_only image2d_t image, int2 coord ); +float __ovld __conv intel_sub_group_shuffle( float , uint ); +float2 __ovld __conv intel_sub_group_shuffle( float2, uint ); +float3 __ovld __conv intel_sub_group_shuffle( float3, uint ); +float4 __ovld __conv intel_sub_group_shuffle( float4, uint ); +float8 __ovld __conv intel_sub_group_shuffle( float8, uint ); +float16 __ovld __conv intel_sub_group_shuffle( float16, uint ); + +int __ovld __conv intel_sub_group_shuffle( int , uint ); +int2 __ovld __conv intel_sub_group_shuffle( int2, uint ); +int3 __ovld __conv intel_sub_group_shuffle( int3, uint ); +int4 __ovld __conv intel_sub_group_shuffle( int4, uint ); +int8 __ovld __conv intel_sub_group_shuffle( int8, uint ); +int16 __ovld __conv intel_sub_group_shuffle( int16, uint ); + +uint __ovld __conv intel_sub_group_shuffle( uint , uint ); +uint2 __ovld __conv intel_sub_group_shuffle( uint2, uint ); +uint3 __ovld __conv intel_sub_group_shuffle( uint3, uint ); +uint4 __ovld __conv intel_sub_group_shuffle( uint4, uint ); +uint8 __ovld __conv intel_sub_group_shuffle( uint8, uint ); +uint16 __ovld __conv intel_sub_group_shuffle( uint16, uint ); + +long __ovld __conv intel_sub_group_shuffle( long, uint ); +ulong __ovld __conv intel_sub_group_shuffle( ulong, uint ); + +float __ovld __conv intel_sub_group_shuffle_down( float cur, float next, uint ); +float2 __ovld __conv intel_sub_group_shuffle_down( float2 cur, float2 next, uint ); +float3 __ovld __conv intel_sub_group_shuffle_down( float3 cur, float3 next, uint ); +float4 __ovld __conv intel_sub_group_shuffle_down( float4 cur, float4 next, uint ); +float8 __ovld __conv intel_sub_group_shuffle_down( float8 cur, float8 next, uint ); +float16 __ovld __conv intel_sub_group_shuffle_down( float16 cur, float16 next, uint ); + +int __ovld __conv intel_sub_group_shuffle_down( int cur, int next, uint ); +int2 __ovld __conv intel_sub_group_shuffle_down( int2 cur, int2 next, uint ); +int3 __ovld __conv intel_sub_group_shuffle_down( int3 cur, int3 next, uint ); +int4 __ovld __conv intel_sub_group_shuffle_down( int4 cur, int4 next, uint ); +int8 __ovld __conv intel_sub_group_shuffle_down( int8 cur, int8 next, uint ); +int16 __ovld __conv intel_sub_group_shuffle_down( int16 cur, int16 next, uint ); + +uint __ovld __conv intel_sub_group_shuffle_down( uint cur, uint next, uint ); +uint2 __ovld __conv intel_sub_group_shuffle_down( uint2 cur, uint2 next, uint ); +uint3 __ovld __conv intel_sub_group_shuffle_down( uint3 cur, uint3 next, uint ); +uint4 __ovld __conv intel_sub_group_shuffle_down( uint4 cur, uint4 next, uint ); +uint8 __ovld __conv intel_sub_group_shuffle_down( uint8 cur, uint8 next, uint ); +uint16 __ovld __conv intel_sub_group_shuffle_down( uint16 cur, uint16 next, uint ); + +long __ovld __conv intel_sub_group_shuffle_down( long prev, long cur, uint ); +ulong __ovld __conv intel_sub_group_shuffle_down( ulong prev, ulong cur, uint ); + +float __ovld __conv intel_sub_group_shuffle_up( float prev, float cur, uint ); +float2 __ovld __conv intel_sub_group_shuffle_up( float2 prev, float2 cur, uint ); +float3 __ovld __conv intel_sub_group_shuffle_up( float3 prev, float3 cur, uint ); +float4 __ovld __conv intel_sub_group_shuffle_up( float4 prev, float4 cur, uint ); +float8 __ovld __conv intel_sub_group_shuffle_up( float8 prev, float8 cur, uint ); +float16 __ovld __conv intel_sub_group_shuffle_up( float16 prev, float16 cur, uint ); + +int __ovld __conv intel_sub_group_shuffle_up( int prev, int cur, uint ); +int2 __ovld __conv intel_sub_group_shuffle_up( int2 prev, int2 cur, uint ); +int3 __ovld __conv intel_sub_group_shuffle_up( int3 prev, int3 cur, uint ); +int4 __ovld __conv intel_sub_group_shuffle_up( int4 prev, int4 cur, uint ); +int8 __ovld __conv intel_sub_group_shuffle_up( int8 prev, int8 cur, uint ); +int16 __ovld __conv intel_sub_group_shuffle_up( int16 prev, int16 cur, uint ); + +uint __ovld __conv intel_sub_group_shuffle_up( uint prev, uint cur, uint ); +uint2 __ovld __conv intel_sub_group_shuffle_up( uint2 prev, uint2 cur, uint ); +uint3 __ovld __conv intel_sub_group_shuffle_up( uint3 prev, uint3 cur, uint ); +uint4 __ovld __conv intel_sub_group_shuffle_up( uint4 prev, uint4 cur, uint ); +uint8 __ovld __conv intel_sub_group_shuffle_up( uint8 prev, uint8 cur, uint ); +uint16 __ovld __conv intel_sub_group_shuffle_up( uint16 prev, uint16 cur, uint ); + +long __ovld __conv intel_sub_group_shuffle_up( long prev, long cur, uint ); +ulong __ovld __conv intel_sub_group_shuffle_up( ulong prev, ulong cur, uint ); + +float __ovld __conv intel_sub_group_shuffle_xor( float , uint ); +float2 __ovld __conv intel_sub_group_shuffle_xor( float2, uint ); +float3 __ovld __conv intel_sub_group_shuffle_xor( float3, uint ); +float4 __ovld __conv intel_sub_group_shuffle_xor( float4, uint ); +float8 __ovld __conv intel_sub_group_shuffle_xor( float8, uint ); +float16 __ovld __conv intel_sub_group_shuffle_xor( float16, uint ); + +int __ovld __conv intel_sub_group_shuffle_xor( int , uint ); +int2 __ovld __conv intel_sub_group_shuffle_xor( int2, uint ); +int3 __ovld __conv intel_sub_group_shuffle_xor( int3, uint ); +int4 __ovld __conv intel_sub_group_shuffle_xor( int4, uint ); +int8 __ovld __conv intel_sub_group_shuffle_xor( int8, uint ); +int16 __ovld __conv intel_sub_group_shuffle_xor( int16, uint ); + +uint __ovld __conv intel_sub_group_shuffle_xor( uint , uint ); +uint2 __ovld __conv intel_sub_group_shuffle_xor( uint2, uint ); +uint3 __ovld __conv intel_sub_group_shuffle_xor( uint3, uint ); +uint4 __ovld __conv intel_sub_group_shuffle_xor( uint4, uint ); +uint8 __ovld __conv intel_sub_group_shuffle_xor( uint8, uint ); +uint16 __ovld __conv intel_sub_group_shuffle_xor( uint16, uint ); + +long __ovld __conv intel_sub_group_shuffle_xor( long, uint ); +ulong __ovld __conv intel_sub_group_shuffle_xor( ulong, uint ); + +#if defined(__opencl_c_images) +uint __ovld __conv intel_sub_group_block_read(read_only image2d_t, int2); +uint2 __ovld __conv intel_sub_group_block_read2(read_only image2d_t, int2); +uint4 __ovld __conv intel_sub_group_block_read4(read_only image2d_t, int2); +uint8 __ovld __conv intel_sub_group_block_read8(read_only image2d_t, int2); +#endif -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -uint __ovld __conv intel_sub_group_block_read(read_write image2d_t image, int2 coord); -uint2 __ovld __conv intel_sub_group_block_read2(read_write image2d_t image, int2 coord); -uint4 __ovld __conv intel_sub_group_block_read4(read_write image2d_t image, int2 coord); -uint8 __ovld __conv intel_sub_group_block_read8(read_write image2d_t image, int2 coord); -#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#if defined(__opencl_c_read_write_images) +uint __ovld __conv intel_sub_group_block_read(read_write image2d_t, int2); +uint2 __ovld __conv intel_sub_group_block_read2(read_write image2d_t, int2); +uint4 __ovld __conv intel_sub_group_block_read4(read_write image2d_t, int2); +uint8 __ovld __conv intel_sub_group_block_read8(read_write image2d_t, int2); +#endif // defined(__opencl_c_read_write_images) uint __ovld __conv intel_sub_group_block_read( const __global uint* p ); uint2 __ovld __conv intel_sub_group_block_read2( const __global uint* p ); uint4 __ovld __conv intel_sub_group_block_read4( const __global uint* p ); uint8 __ovld __conv intel_sub_group_block_read8( const __global uint* p ); -void __ovld __conv intel_sub_group_block_write(write_only image2d_t image, int2 coord, uint data); -void __ovld __conv intel_sub_group_block_write2(write_only image2d_t image, int2 coord, uint2 data); -void __ovld __conv intel_sub_group_block_write4(write_only image2d_t image, int2 coord, uint4 data); -void __ovld __conv intel_sub_group_block_write8(write_only image2d_t image, int2 coord, uint8 data); +#if defined(__opencl_c_images) +void __ovld __conv intel_sub_group_block_write(write_only image2d_t, int2, uint); +void __ovld __conv intel_sub_group_block_write2(write_only image2d_t, int2, uint2); +void __ovld __conv intel_sub_group_block_write4(write_only image2d_t, int2, uint4); +void __ovld __conv intel_sub_group_block_write8(write_only image2d_t, int2, uint8); +#endif // defined(__opencl_c_images) -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -void __ovld __conv intel_sub_group_block_write(read_write image2d_t image, int2 coord, uint data); -void __ovld __conv intel_sub_group_block_write2(read_write image2d_t image, int2 coord, uint2 data); -void __ovld __conv intel_sub_group_block_write4(read_write image2d_t image, int2 coord, uint4 data); -void __ovld __conv intel_sub_group_block_write8(read_write image2d_t image, int2 coord, uint8 data); -#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#if defined(__opencl_c_read_write_images) +void __ovld __conv intel_sub_group_block_write(read_write image2d_t, int2, uint); +void __ovld __conv intel_sub_group_block_write2(read_write image2d_t, int2, uint2); +void __ovld __conv intel_sub_group_block_write4(read_write image2d_t, int2, uint4); +void __ovld __conv intel_sub_group_block_write8(read_write image2d_t, int2, uint8); +#endif // defined(__opencl_c_read_write_images) void __ovld __conv intel_sub_group_block_write( __global uint* p, uint data ); void __ovld __conv intel_sub_group_block_write2( __global uint* p, uint2 data ); @@ -16835,89 +18167,89 @@ void __ovld __conv intel_sub_group_block_write4( __global uint* p, uint4 data void __ovld __conv intel_sub_group_block_write8( __global uint* p, uint8 data ); #ifdef cl_khr_fp16 -half __ovld __conv intel_sub_group_shuffle( half x, uint c ); -half __ovld __conv intel_sub_group_shuffle_down( half prev, half cur, uint c ); -half __ovld __conv intel_sub_group_shuffle_up( half prev, half cur, uint c ); -half __ovld __conv intel_sub_group_shuffle_xor( half x, uint c ); +half __ovld __conv intel_sub_group_shuffle( half, uint ); +half __ovld __conv intel_sub_group_shuffle_down( half prev, half cur, uint ); +half __ovld __conv intel_sub_group_shuffle_up( half prev, half cur, uint ); +half __ovld __conv intel_sub_group_shuffle_xor( half, uint ); #endif #if defined(cl_khr_fp64) -double __ovld __conv intel_sub_group_shuffle( double x, uint c ); -double __ovld __conv intel_sub_group_shuffle_down( double prev, double cur, uint c ); -double __ovld __conv intel_sub_group_shuffle_up( double prev, double cur, uint c ); -double __ovld __conv intel_sub_group_shuffle_xor( double x, uint c ); +double __ovld __conv intel_sub_group_shuffle( double, uint ); +double __ovld __conv intel_sub_group_shuffle_down( double prev, double cur, uint ); +double __ovld __conv intel_sub_group_shuffle_up( double prev, double cur, uint ); +double __ovld __conv intel_sub_group_shuffle_xor( double, uint ); #endif #endif //cl_intel_subgroups #if defined(cl_intel_subgroups_short) -short __ovld __conv intel_sub_group_broadcast( short x, uint sub_group_local_id ); -short2 __ovld __conv intel_sub_group_broadcast( short2 x, uint sub_group_local_id ); -short3 __ovld __conv intel_sub_group_broadcast( short3 x, uint sub_group_local_id ); -short4 __ovld __conv intel_sub_group_broadcast( short4 x, uint sub_group_local_id ); -short8 __ovld __conv intel_sub_group_broadcast( short8 x, uint sub_group_local_id ); - -ushort __ovld __conv intel_sub_group_broadcast( ushort x, uint sub_group_local_id ); -ushort2 __ovld __conv intel_sub_group_broadcast( ushort2 x, uint sub_group_local_id ); -ushort3 __ovld __conv intel_sub_group_broadcast( ushort3 x, uint sub_group_local_id ); -ushort4 __ovld __conv intel_sub_group_broadcast( ushort4 x, uint sub_group_local_id ); -ushort8 __ovld __conv intel_sub_group_broadcast( ushort8 x, uint sub_group_local_id ); - -short __ovld __conv intel_sub_group_shuffle( short x, uint c ); -short2 __ovld __conv intel_sub_group_shuffle( short2 x, uint c ); -short3 __ovld __conv intel_sub_group_shuffle( short3 x, uint c ); -short4 __ovld __conv intel_sub_group_shuffle( short4 x, uint c ); -short8 __ovld __conv intel_sub_group_shuffle( short8 x, uint c ); -short16 __ovld __conv intel_sub_group_shuffle( short16 x, uint c); - -ushort __ovld __conv intel_sub_group_shuffle( ushort x, uint c ); -ushort2 __ovld __conv intel_sub_group_shuffle( ushort2 x, uint c ); -ushort3 __ovld __conv intel_sub_group_shuffle( ushort3 x, uint c ); -ushort4 __ovld __conv intel_sub_group_shuffle( ushort4 x, uint c ); -ushort8 __ovld __conv intel_sub_group_shuffle( ushort8 x, uint c ); -ushort16 __ovld __conv intel_sub_group_shuffle( ushort16 x, uint c ); - -short __ovld __conv intel_sub_group_shuffle_down( short cur, short next, uint c ); -short2 __ovld __conv intel_sub_group_shuffle_down( short2 cur, short2 next, uint c ); -short3 __ovld __conv intel_sub_group_shuffle_down( short3 cur, short3 next, uint c ); -short4 __ovld __conv intel_sub_group_shuffle_down( short4 cur, short4 next, uint c ); -short8 __ovld __conv intel_sub_group_shuffle_down( short8 cur, short8 next, uint c ); -short16 __ovld __conv intel_sub_group_shuffle_down( short16 cur, short16 next, uint c ); - -ushort __ovld __conv intel_sub_group_shuffle_down( ushort cur, ushort next, uint c ); -ushort2 __ovld __conv intel_sub_group_shuffle_down( ushort2 cur, ushort2 next, uint c ); -ushort3 __ovld __conv intel_sub_group_shuffle_down( ushort3 cur, ushort3 next, uint c ); -ushort4 __ovld __conv intel_sub_group_shuffle_down( ushort4 cur, ushort4 next, uint c ); -ushort8 __ovld __conv intel_sub_group_shuffle_down( ushort8 cur, ushort8 next, uint c ); -ushort16 __ovld __conv intel_sub_group_shuffle_down( ushort16 cur, ushort16 next, uint c ); - -short __ovld __conv intel_sub_group_shuffle_up( short cur, short next, uint c ); -short2 __ovld __conv intel_sub_group_shuffle_up( short2 cur, short2 next, uint c ); -short3 __ovld __conv intel_sub_group_shuffle_up( short3 cur, short3 next, uint c ); -short4 __ovld __conv intel_sub_group_shuffle_up( short4 cur, short4 next, uint c ); -short8 __ovld __conv intel_sub_group_shuffle_up( short8 cur, short8 next, uint c ); -short16 __ovld __conv intel_sub_group_shuffle_up( short16 cur, short16 next, uint c ); - -ushort __ovld __conv intel_sub_group_shuffle_up( ushort cur, ushort next, uint c ); -ushort2 __ovld __conv intel_sub_group_shuffle_up( ushort2 cur, ushort2 next, uint c ); -ushort3 __ovld __conv intel_sub_group_shuffle_up( ushort3 cur, ushort3 next, uint c ); -ushort4 __ovld __conv intel_sub_group_shuffle_up( ushort4 cur, ushort4 next, uint c ); -ushort8 __ovld __conv intel_sub_group_shuffle_up( ushort8 cur, ushort8 next, uint c ); -ushort16 __ovld __conv intel_sub_group_shuffle_up( ushort16 cur, ushort16 next, uint c ); - -short __ovld __conv intel_sub_group_shuffle_xor( short x, uint c ); -short2 __ovld __conv intel_sub_group_shuffle_xor( short2 x, uint c ); -short3 __ovld __conv intel_sub_group_shuffle_xor( short3 x, uint c ); -short4 __ovld __conv intel_sub_group_shuffle_xor( short4 x, uint c ); -short8 __ovld __conv intel_sub_group_shuffle_xor( short8 x, uint c ); -short16 __ovld __conv intel_sub_group_shuffle_xor( short16 x, uint c ); - -ushort __ovld __conv intel_sub_group_shuffle_xor( ushort x, uint c ); -ushort2 __ovld __conv intel_sub_group_shuffle_xor( ushort2 x, uint c ); -ushort3 __ovld __conv intel_sub_group_shuffle_xor( ushort3 x, uint c ); -ushort4 __ovld __conv intel_sub_group_shuffle_xor( ushort4 x, uint c ); -ushort8 __ovld __conv intel_sub_group_shuffle_xor( ushort8 x, uint c ); -ushort16 __ovld __conv intel_sub_group_shuffle_xor( ushort16 x, uint c ); +short __ovld __conv intel_sub_group_broadcast( short , uint sub_group_local_id ); +short2 __ovld __conv intel_sub_group_broadcast( short2, uint sub_group_local_id ); +short3 __ovld __conv intel_sub_group_broadcast( short3, uint sub_group_local_id ); +short4 __ovld __conv intel_sub_group_broadcast( short4, uint sub_group_local_id ); +short8 __ovld __conv intel_sub_group_broadcast( short8, uint sub_group_local_id ); + +ushort __ovld __conv intel_sub_group_broadcast( ushort , uint sub_group_local_id ); +ushort2 __ovld __conv intel_sub_group_broadcast( ushort2, uint sub_group_local_id ); +ushort3 __ovld __conv intel_sub_group_broadcast( ushort3, uint sub_group_local_id ); +ushort4 __ovld __conv intel_sub_group_broadcast( ushort4, uint sub_group_local_id ); +ushort8 __ovld __conv intel_sub_group_broadcast( ushort8, uint sub_group_local_id ); + +short __ovld __conv intel_sub_group_shuffle( short , uint ); +short2 __ovld __conv intel_sub_group_shuffle( short2 , uint ); +short3 __ovld __conv intel_sub_group_shuffle( short3 , uint ); +short4 __ovld __conv intel_sub_group_shuffle( short4 , uint ); +short8 __ovld __conv intel_sub_group_shuffle( short8 , uint ); +short16 __ovld __conv intel_sub_group_shuffle( short16, uint); + +ushort __ovld __conv intel_sub_group_shuffle( ushort , uint ); +ushort2 __ovld __conv intel_sub_group_shuffle( ushort2 , uint ); +ushort3 __ovld __conv intel_sub_group_shuffle( ushort3 , uint ); +ushort4 __ovld __conv intel_sub_group_shuffle( ushort4 , uint ); +ushort8 __ovld __conv intel_sub_group_shuffle( ushort8 , uint ); +ushort16 __ovld __conv intel_sub_group_shuffle( ushort16, uint ); + +short __ovld __conv intel_sub_group_shuffle_down( short cur, short next, uint ); +short2 __ovld __conv intel_sub_group_shuffle_down( short2 cur, short2 next, uint ); +short3 __ovld __conv intel_sub_group_shuffle_down( short3 cur, short3 next, uint ); +short4 __ovld __conv intel_sub_group_shuffle_down( short4 cur, short4 next, uint ); +short8 __ovld __conv intel_sub_group_shuffle_down( short8 cur, short8 next, uint ); +short16 __ovld __conv intel_sub_group_shuffle_down( short16 cur, short16 next, uint ); + +ushort __ovld __conv intel_sub_group_shuffle_down( ushort cur, ushort next, uint ); +ushort2 __ovld __conv intel_sub_group_shuffle_down( ushort2 cur, ushort2 next, uint ); +ushort3 __ovld __conv intel_sub_group_shuffle_down( ushort3 cur, ushort3 next, uint ); +ushort4 __ovld __conv intel_sub_group_shuffle_down( ushort4 cur, ushort4 next, uint ); +ushort8 __ovld __conv intel_sub_group_shuffle_down( ushort8 cur, ushort8 next, uint ); +ushort16 __ovld __conv intel_sub_group_shuffle_down( ushort16 cur, ushort16 next, uint ); + +short __ovld __conv intel_sub_group_shuffle_up( short cur, short next, uint ); +short2 __ovld __conv intel_sub_group_shuffle_up( short2 cur, short2 next, uint ); +short3 __ovld __conv intel_sub_group_shuffle_up( short3 cur, short3 next, uint ); +short4 __ovld __conv intel_sub_group_shuffle_up( short4 cur, short4 next, uint ); +short8 __ovld __conv intel_sub_group_shuffle_up( short8 cur, short8 next, uint ); +short16 __ovld __conv intel_sub_group_shuffle_up( short16 cur, short16 next, uint ); + +ushort __ovld __conv intel_sub_group_shuffle_up( ushort cur, ushort next, uint ); +ushort2 __ovld __conv intel_sub_group_shuffle_up( ushort2 cur, ushort2 next, uint ); +ushort3 __ovld __conv intel_sub_group_shuffle_up( ushort3 cur, ushort3 next, uint ); +ushort4 __ovld __conv intel_sub_group_shuffle_up( ushort4 cur, ushort4 next, uint ); +ushort8 __ovld __conv intel_sub_group_shuffle_up( ushort8 cur, ushort8 next, uint ); +ushort16 __ovld __conv intel_sub_group_shuffle_up( ushort16 cur, ushort16 next, uint ); + +short __ovld __conv intel_sub_group_shuffle_xor( short , uint ); +short2 __ovld __conv intel_sub_group_shuffle_xor( short2 , uint ); +short3 __ovld __conv intel_sub_group_shuffle_xor( short3 , uint ); +short4 __ovld __conv intel_sub_group_shuffle_xor( short4 , uint ); +short8 __ovld __conv intel_sub_group_shuffle_xor( short8 , uint ); +short16 __ovld __conv intel_sub_group_shuffle_xor( short16, uint ); + +ushort __ovld __conv intel_sub_group_shuffle_xor( ushort , uint ); +ushort2 __ovld __conv intel_sub_group_shuffle_xor( ushort2 , uint ); +ushort3 __ovld __conv intel_sub_group_shuffle_xor( ushort3 , uint ); +ushort4 __ovld __conv intel_sub_group_shuffle_xor( ushort4 , uint ); +ushort8 __ovld __conv intel_sub_group_shuffle_xor( ushort8 , uint ); +ushort16 __ovld __conv intel_sub_group_shuffle_xor( ushort16, uint ); short __ovld __conv intel_sub_group_reduce_add( short x ); ushort __ovld __conv intel_sub_group_reduce_add( ushort x ); @@ -16940,68 +18272,76 @@ ushort __ovld __conv intel_sub_group_scan_inclusive_min( ushort x ); short __ovld __conv intel_sub_group_scan_inclusive_max( short x ); ushort __ovld __conv intel_sub_group_scan_inclusive_max( ushort x ); -uint __ovld __conv intel_sub_group_block_read_ui( read_only image2d_t image, int2 byte_coord ); -uint2 __ovld __conv intel_sub_group_block_read_ui2( read_only image2d_t image, int2 byte_coord ); -uint4 __ovld __conv intel_sub_group_block_read_ui4( read_only image2d_t image, int2 byte_coord ); -uint8 __ovld __conv intel_sub_group_block_read_ui8( read_only image2d_t image, int2 byte_coord ); +#if defined(__opencl_c_images) +uint __ovld __conv intel_sub_group_block_read_ui(read_only image2d_t, int2); +uint2 __ovld __conv intel_sub_group_block_read_ui2(read_only image2d_t, int2); +uint4 __ovld __conv intel_sub_group_block_read_ui4(read_only image2d_t, int2); +uint8 __ovld __conv intel_sub_group_block_read_ui8(read_only image2d_t, int2); +#endif // defined(__opencl_c_images) -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -uint __ovld __conv intel_sub_group_block_read_ui( read_write image2d_t image, int2 byte_coord ); -uint2 __ovld __conv intel_sub_group_block_read_ui2( read_write image2d_t image, int2 byte_coord ); -uint4 __ovld __conv intel_sub_group_block_read_ui4( read_write image2d_t image, int2 byte_coord ); -uint8 __ovld __conv intel_sub_group_block_read_ui8( read_write image2d_t image, int2 byte_coord ); -#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#if defined(__opencl_c_read_write_images) +uint __ovld __conv intel_sub_group_block_read_ui(read_write image2d_t, int2); +uint2 __ovld __conv intel_sub_group_block_read_ui2(read_write image2d_t, int2); +uint4 __ovld __conv intel_sub_group_block_read_ui4(read_write image2d_t, int2); +uint8 __ovld __conv intel_sub_group_block_read_ui8(read_write image2d_t, int2); +#endif // defined(__opencl_c_read_write_images) uint __ovld __conv intel_sub_group_block_read_ui( const __global uint* p ); uint2 __ovld __conv intel_sub_group_block_read_ui2( const __global uint* p ); uint4 __ovld __conv intel_sub_group_block_read_ui4( const __global uint* p ); uint8 __ovld __conv intel_sub_group_block_read_ui8( const __global uint* p ); -void __ovld __conv intel_sub_group_block_write_ui( read_only image2d_t image, int2 byte_coord, uint data ); -void __ovld __conv intel_sub_group_block_write_ui2( read_only image2d_t image, int2 byte_coord, uint2 data ); -void __ovld __conv intel_sub_group_block_write_ui4( read_only image2d_t image, int2 byte_coord, uint4 data ); -void __ovld __conv intel_sub_group_block_write_ui8( read_only image2d_t image, int2 byte_coord, uint8 data ); +#if defined(__opencl_c_images) +void __ovld __conv intel_sub_group_block_write_ui(read_only image2d_t, int2, uint); +void __ovld __conv intel_sub_group_block_write_ui2(read_only image2d_t, int2, uint2); +void __ovld __conv intel_sub_group_block_write_ui4(read_only image2d_t, int2, uint4); +void __ovld __conv intel_sub_group_block_write_ui8(read_only image2d_t, int2, uint8); +#endif //defined(__opencl_c_images) -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -void __ovld __conv intel_sub_group_block_write_ui( read_write image2d_t image, int2 byte_coord, uint data ); -void __ovld __conv intel_sub_group_block_write_ui2( read_write image2d_t image, int2 byte_coord, uint2 data ); -void __ovld __conv intel_sub_group_block_write_ui4( read_write image2d_t image, int2 byte_coord, uint4 data ); -void __ovld __conv intel_sub_group_block_write_ui8( read_write image2d_t image, int2 byte_coord, uint8 data ); -#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#if defined(__opencl_c_read_write_images) +void __ovld __conv intel_sub_group_block_write_ui(read_write image2d_t, int2, uint); +void __ovld __conv intel_sub_group_block_write_ui2(read_write image2d_t, int2, uint2); +void __ovld __conv intel_sub_group_block_write_ui4(read_write image2d_t, int2, uint4); +void __ovld __conv intel_sub_group_block_write_ui8(read_write image2d_t, int2, uint8); +#endif // defined(__opencl_c_read_write_images) void __ovld __conv intel_sub_group_block_write_ui( __global uint* p, uint data ); void __ovld __conv intel_sub_group_block_write_ui2( __global uint* p, uint2 data ); void __ovld __conv intel_sub_group_block_write_ui4( __global uint* p, uint4 data ); void __ovld __conv intel_sub_group_block_write_ui8( __global uint* p, uint8 data ); -ushort __ovld __conv intel_sub_group_block_read_us( read_only image2d_t image, int2 coord ); -ushort2 __ovld __conv intel_sub_group_block_read_us2( read_only image2d_t image, int2 coord ); -ushort4 __ovld __conv intel_sub_group_block_read_us4( read_only image2d_t image, int2 coord ); -ushort8 __ovld __conv intel_sub_group_block_read_us8( read_only image2d_t image, int2 coord ); +#if defined(__opencl_c_images) +ushort __ovld __conv intel_sub_group_block_read_us(read_only image2d_t, int2); +ushort2 __ovld __conv intel_sub_group_block_read_us2(read_only image2d_t, int2); +ushort4 __ovld __conv intel_sub_group_block_read_us4(read_only image2d_t, int2); +ushort8 __ovld __conv intel_sub_group_block_read_us8(read_only image2d_t, int2); +#endif // defined(__opencl_c_images) -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -ushort __ovld __conv intel_sub_group_block_read_us(read_write image2d_t image, int2 coord); -ushort2 __ovld __conv intel_sub_group_block_read_us2(read_write image2d_t image, int2 coord); -ushort4 __ovld __conv intel_sub_group_block_read_us4(read_write image2d_t image, int2 coord); -ushort8 __ovld __conv intel_sub_group_block_read_us8(read_write image2d_t image, int2 coord); -#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#if defined(__opencl_c_read_write_images) +ushort __ovld __conv intel_sub_group_block_read_us(read_write image2d_t, int2); +ushort2 __ovld __conv intel_sub_group_block_read_us2(read_write image2d_t, int2); +ushort4 __ovld __conv intel_sub_group_block_read_us4(read_write image2d_t, int2); +ushort8 __ovld __conv intel_sub_group_block_read_us8(read_write image2d_t, int2); +#endif // defined(__opencl_c_read_write_images) ushort __ovld __conv intel_sub_group_block_read_us( const __global ushort* p ); ushort2 __ovld __conv intel_sub_group_block_read_us2( const __global ushort* p ); ushort4 __ovld __conv intel_sub_group_block_read_us4( const __global ushort* p ); ushort8 __ovld __conv intel_sub_group_block_read_us8( const __global ushort* p ); -void __ovld __conv intel_sub_group_block_write_us(write_only image2d_t image, int2 coord, ushort data); -void __ovld __conv intel_sub_group_block_write_us2(write_only image2d_t image, int2 coord, ushort2 data); -void __ovld __conv intel_sub_group_block_write_us4(write_only image2d_t image, int2 coord, ushort4 data); -void __ovld __conv intel_sub_group_block_write_us8(write_only image2d_t image, int2 coord, ushort8 data); +#if defined(__opencl_c_images) +void __ovld __conv intel_sub_group_block_write_us(write_only image2d_t, int2, ushort); +void __ovld __conv intel_sub_group_block_write_us2(write_only image2d_t, int2, ushort2); +void __ovld __conv intel_sub_group_block_write_us4(write_only image2d_t, int2, ushort4); +void __ovld __conv intel_sub_group_block_write_us8(write_only image2d_t, int2, ushort8); +#endif // defined(__opencl_c_images) -#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) -void __ovld __conv intel_sub_group_block_write_us(read_write image2d_t image, int2 coord, ushort data); -void __ovld __conv intel_sub_group_block_write_us2(read_write image2d_t image, int2 coord, ushort2 data); -void __ovld __conv intel_sub_group_block_write_us4(read_write image2d_t image, int2 coord, ushort4 data); -void __ovld __conv intel_sub_group_block_write_us8(read_write image2d_t image, int2 coord, ushort8 data); -#endif // defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +#if defined(__opencl_c_read_write_images) +void __ovld __conv intel_sub_group_block_write_us(read_write image2d_t, int2, ushort); +void __ovld __conv intel_sub_group_block_write_us2(read_write image2d_t, int2, ushort2); +void __ovld __conv intel_sub_group_block_write_us4(read_write image2d_t, int2, ushort4); +void __ovld __conv intel_sub_group_block_write_us8(read_write image2d_t, int2, ushort8); +#endif // defined(__opencl_c_read_write_images) void __ovld __conv intel_sub_group_block_write_us( __global ushort* p, ushort data ); void __ovld __conv intel_sub_group_block_write_us2( __global ushort* p, ushort2 data ); @@ -17119,6 +18459,7 @@ short2 __ovld intel_sub_group_avc_ime_adjust_ref_offset( short2 ref_offset, ushort2 src_coord, ushort2 ref_window_size, ushort2 image_size); +#if defined(__opencl_c_images) intel_sub_group_avc_ime_result_t __ovld intel_sub_group_avc_ime_evaluate_with_single_reference( read_only image2d_t src_image, read_only image2d_t ref_image, @@ -17159,6 +18500,7 @@ intel_sub_group_avc_ime_evaluate_with_dual_reference_streaminout( read_only image2d_t bwd_ref_image, sampler_t vme_media_sampler, intel_sub_group_avc_ime_payload_t payload, intel_sub_group_avc_ime_dual_reference_streamin_t streamin_components); +#endif intel_sub_group_avc_ime_single_reference_streamin_t __ovld intel_sub_group_avc_ime_get_single_reference_streamin( @@ -17223,6 +18565,7 @@ intel_sub_group_avc_ref_payload_t __ovld intel_sub_group_avc_ref_set_bilinear_filter_enable( intel_sub_group_avc_ref_payload_t payload); +#if defined(__opencl_c_images) intel_sub_group_avc_ref_result_t __ovld intel_sub_group_avc_ref_evaluate_with_single_reference( read_only image2d_t src_image, read_only image2d_t ref_image, @@ -17241,6 +18584,7 @@ intel_sub_group_avc_ref_evaluate_with_multi_reference( read_only image2d_t src_image, uint packed_reference_ids, uchar packed_reference_field_polarities, sampler_t vme_media_sampler, intel_sub_group_avc_ref_payload_t payload); +#endif //defined(__opencl_c_images) // SIC built-in functions intel_sub_group_avc_sic_payload_t __ovld @@ -17251,15 +18595,13 @@ intel_sub_group_avc_sic_configure_skc( uint skip_block_partition_type, uint skip_motion_vector_mask, ulong motion_vectors, uchar bidirectional_weight, uchar skip_sad_adjustment, intel_sub_group_avc_sic_payload_t payload); -intel_sub_group_avc_sic_payload_t __ovld -intel_sub_group_avc_sic_configure_ipe( - uchar luma_intra_partition_mask, uchar intra_neighbour_availabilty, +intel_sub_group_avc_sic_payload_t __ovld intel_sub_group_avc_sic_configure_ipe( + uchar luma_intra_partition_mask, uchar intra_neighbour_availability, uchar left_edge_luma_pixels, uchar upper_left_corner_luma_pixel, uchar upper_edge_luma_pixels, uchar upper_right_edge_luma_pixels, uchar intra_sad_adjustment, intel_sub_group_avc_sic_payload_t payload); -intel_sub_group_avc_sic_payload_t __ovld -intel_sub_group_avc_sic_configure_ipe( - uchar luma_intra_partition_mask, uchar intra_neighbour_availabilty, +intel_sub_group_avc_sic_payload_t __ovld intel_sub_group_avc_sic_configure_ipe( + uchar luma_intra_partition_mask, uchar intra_neighbour_availability, uchar left_edge_luma_pixels, uchar upper_left_corner_luma_pixel, uchar upper_edge_luma_pixels, uchar upper_right_edge_luma_pixels, ushort left_edge_chroma_pixels, ushort upper_left_corner_chroma_pixel, @@ -17291,6 +18633,7 @@ intel_sub_group_avc_sic_set_block_based_raw_skip_sad( uchar block_based_skip_type, intel_sub_group_avc_sic_payload_t payload); +#if defined(__opencl_c_images) intel_sub_group_avc_sic_result_t __ovld intel_sub_group_avc_sic_evaluate_ipe( read_only image2d_t src_image, sampler_t vme_media_sampler, @@ -17313,6 +18656,7 @@ intel_sub_group_avc_sic_evaluate_with_multi_reference( read_only image2d_t src_image, uint packed_reference_ids, uchar packed_reference_field_polarities, sampler_t vme_media_sampler, intel_sub_group_avc_sic_payload_t payload); +#endif //defined(__opencl_c_images) uchar __ovld intel_sub_group_avc_sic_get_ipe_luma_shape( intel_sub_group_avc_sic_result_t result); @@ -17509,72 +18853,72 @@ intel_sub_group_avc_mce_convert_to_sic_result( #endif // cl_intel_device_side_avc_motion_estimation #ifdef cl_amd_media_ops -uint __ovld amd_bitalign(uint a, uint b, uint c); -uint2 __ovld amd_bitalign(uint2 a, uint2 b, uint2 c); -uint3 __ovld amd_bitalign(uint3 a, uint3 b, uint3 c); -uint4 __ovld amd_bitalign(uint4 a, uint4 b, uint4 c); -uint8 __ovld amd_bitalign(uint8 a, uint8 b, uint8 c); -uint16 __ovld amd_bitalign(uint16 a, uint16 b, uint16 c); - -uint __ovld amd_bytealign(uint a, uint b, uint c); -uint2 __ovld amd_bytealign(uint2 a, uint2 b, uint2 c); -uint3 __ovld amd_bytealign(uint3 a, uint3 b, uint3 c); -uint4 __ovld amd_bytealign(uint4 a, uint4 b, uint4 c); -uint8 __ovld amd_bytealign(uint8 a, uint8 b, uint8 c); -uint16 __ovld amd_bytealign(uint16 a, uint16 b, uint16 c); - -uint __ovld amd_lerp(uint a, uint b, uint c); -uint2 __ovld amd_lerp(uint2 a, uint2 b, uint2 c); -uint3 __ovld amd_lerp(uint3 a, uint3 b, uint3 c); -uint4 __ovld amd_lerp(uint4 a, uint4 b, uint4 c); -uint8 __ovld amd_lerp(uint8 a, uint8 b, uint8 c); -uint16 __ovld amd_lerp(uint16 a, uint16 b, uint16 c); +uint __ovld amd_bitalign(uint, uint, uint); +uint2 __ovld amd_bitalign(uint2, uint2, uint2); +uint3 __ovld amd_bitalign(uint3, uint3, uint3); +uint4 __ovld amd_bitalign(uint4, uint4, uint4); +uint8 __ovld amd_bitalign(uint8, uint8, uint8); +uint16 __ovld amd_bitalign(uint16, uint16, uint16); + +uint __ovld amd_bytealign(uint, uint, uint); +uint2 __ovld amd_bytealign(uint2, uint2, uint2); +uint3 __ovld amd_bytealign(uint3, uint3, uint3); +uint4 __ovld amd_bytealign(uint4, uint4, uint4); +uint8 __ovld amd_bytealign(uint8, uint8, uint8); +uint16 __ovld amd_bytealign(uint16, uint16, uint16); + +uint __ovld amd_lerp(uint, uint, uint); +uint2 __ovld amd_lerp(uint2, uint2, uint2); +uint3 __ovld amd_lerp(uint3, uint3, uint3); +uint4 __ovld amd_lerp(uint4, uint4, uint4); +uint8 __ovld amd_lerp(uint8, uint8, uint8); +uint16 __ovld amd_lerp(uint16, uint16, uint16); uint __ovld amd_pack(float4 v); -uint __ovld amd_sad4(uint4 x, uint4 y, uint z); - -uint __ovld amd_sadhi(uint a, uint b, uint c); -uint2 __ovld amd_sadhi(uint2 a, uint2 b, uint2 c); -uint3 __ovld amd_sadhi(uint3 a, uint3 b, uint3 c); -uint4 __ovld amd_sadhi(uint4 a, uint4 b, uint4 c); -uint8 __ovld amd_sadhi(uint8 a, uint8 b, uint8 c); -uint16 __ovld amd_sadhi(uint16 a, uint16 b, uint16 c); - -uint __ovld amd_sad(uint a, uint b, uint c); -uint2 __ovld amd_sad(uint2 a, uint2 b, uint2 c); -uint3 __ovld amd_sad(uint3 a, uint3 b, uint3 c); -uint4 __ovld amd_sad(uint4 a, uint4 b, uint4 c); -uint8 __ovld amd_sad(uint8 a, uint8 b, uint8 c); -uint16 __ovld amd_sad(uint16 a, uint16 b, uint16 c); - -float __ovld amd_unpack0(uint a); -float2 __ovld amd_unpack0(uint2 a); -float3 __ovld amd_unpack0(uint3 a); -float4 __ovld amd_unpack0(uint4 a); -float8 __ovld amd_unpack0(uint8 a); -float16 __ovld amd_unpack0(uint16 a); - -float __ovld amd_unpack1(uint a); -float2 __ovld amd_unpack1(uint2 a); -float3 __ovld amd_unpack1(uint3 a); -float4 __ovld amd_unpack1(uint4 a); -float8 __ovld amd_unpack1(uint8 a); -float16 __ovld amd_unpack1(uint16 a); - -float __ovld amd_unpack2(uint a); -float2 __ovld amd_unpack2(uint2 a); -float3 __ovld amd_unpack2(uint3 a); -float4 __ovld amd_unpack2(uint4 a); -float8 __ovld amd_unpack2(uint8 a); -float16 __ovld amd_unpack2(uint16 a); - -float __ovld amd_unpack3(uint a); -float2 __ovld amd_unpack3(uint2 a); -float3 __ovld amd_unpack3(uint3 a); -float4 __ovld amd_unpack3(uint4 a); -float8 __ovld amd_unpack3(uint8 a); -float16 __ovld amd_unpack3(uint16 a); +uint __ovld amd_sad4(uint4, uint4, uint ); + +uint __ovld amd_sadhi(uint, uint, uint); +uint2 __ovld amd_sadhi(uint2, uint2, uint2); +uint3 __ovld amd_sadhi(uint3, uint3, uint3); +uint4 __ovld amd_sadhi(uint4, uint4, uint4); +uint8 __ovld amd_sadhi(uint8, uint8, uint8); +uint16 __ovld amd_sadhi(uint16, uint16, uint16); + +uint __ovld amd_sad(uint, uint, uint); +uint2 __ovld amd_sad(uint2, uint2, uint2); +uint3 __ovld amd_sad(uint3, uint3, uint3); +uint4 __ovld amd_sad(uint4, uint4, uint4); +uint8 __ovld amd_sad(uint8, uint8, uint8); +uint16 __ovld amd_sad(uint16, uint16, uint16); + +float __ovld amd_unpack0(uint); +float2 __ovld amd_unpack0(uint2); +float3 __ovld amd_unpack0(uint3); +float4 __ovld amd_unpack0(uint4); +float8 __ovld amd_unpack0(uint8); +float16 __ovld amd_unpack0(uint16); + +float __ovld amd_unpack1(uint); +float2 __ovld amd_unpack1(uint2); +float3 __ovld amd_unpack1(uint3); +float4 __ovld amd_unpack1(uint4); +float8 __ovld amd_unpack1(uint8); +float16 __ovld amd_unpack1(uint16); + +float __ovld amd_unpack2(uint); +float2 __ovld amd_unpack2(uint2); +float3 __ovld amd_unpack2(uint3); +float4 __ovld amd_unpack2(uint4); +float8 __ovld amd_unpack2(uint8); +float16 __ovld amd_unpack2(uint16); + +float __ovld amd_unpack3(uint); +float2 __ovld amd_unpack3(uint2); +float3 __ovld amd_unpack3(uint3); +float4 __ovld amd_unpack3(uint4); +float8 __ovld amd_unpack3(uint8); +float16 __ovld amd_unpack3(uint16); #endif // cl_amd_media_ops #ifdef cl_amd_media_ops2 @@ -17699,31 +19043,23 @@ uint16 __ovld amd_sadw(uint16 src0, uint16 src1, uint16 src2); #endif // cl_amd_media_ops2 #if defined(cl_arm_integer_dot_product_int8) -#pragma OPENCL EXTENSION cl_arm_integer_dot_product_int8 : begin -uint __ovld arm_dot(uchar4 a, uchar4 b); -int __ovld arm_dot(char4 a, char4 b); -#pragma OPENCL EXTENSION cl_arm_integer_dot_product_int8 : end +uint __ovld arm_dot(uchar4, uchar4); +int __ovld arm_dot(char4, char4); #endif // defined(cl_arm_integer_dot_product_int8) #if defined(cl_arm_integer_dot_product_accumulate_int8) -#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_int8 : begin -uint __ovld arm_dot_acc(uchar4 a, uchar4 b, uint c); -int __ovld arm_dot_acc(char4 a, char4 b, int c); -#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_int8 : end +uint __ovld arm_dot_acc(uchar4, uchar4, uint); +int __ovld arm_dot_acc(char4, char4, int); #endif // defined(cl_arm_integer_dot_product_accumulate_int8) #if defined(cl_arm_integer_dot_product_accumulate_int16) -#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_int16 : begin -uint __ovld arm_dot_acc(ushort2 a, ushort2 b, uint c); -int __ovld arm_dot_acc(short2 a, short2 b, int c); -#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_int16 : end +uint __ovld arm_dot_acc(ushort2, ushort2, uint); +int __ovld arm_dot_acc(short2, short2, int); #endif // defined(cl_arm_integer_dot_product_accumulate_int16) #if defined(cl_arm_integer_dot_product_accumulate_saturate_int8) -#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_saturate_int8 : begin -uint __ovld arm_dot_acc_sat(uchar4 a, uchar4 b, uint c); -int __ovld arm_dot_acc_sat(char4 a, char4 b, int c); -#pragma OPENCL EXTENSION cl_arm_integer_dot_product_accumulate_saturate_int8 : end +uint __ovld arm_dot_acc_sat(uchar4, uchar4, uint); +int __ovld arm_dot_acc_sat(char4, char4, int); #endif // defined(cl_arm_integer_dot_product_accumulate_saturate_int8) // Disable any extensions we may have enabled previously. diff --git a/external/lc/opencl/windows/lib/bitcode/irif.amdgcn.bc b/external/lc/opencl/windows/lib/bitcode/irif.amdgcn.bc deleted file mode 100644 index bbfdecb0147af629e568d395602d54d1c9d3d317..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16980 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 ac*T#)w}9YxNu?Lx{BBuRTJa{g diff --git a/external/lc/opencl/windows/lib/bitcode/ockl.amdgcn.bc b/external/lc/opencl/windows/lib/bitcode/ockl.amdgcn.bc index 35a1e978154a6783b07922a24cc5c2e5d3793631..e83dc5aa31faf2e527a1c0c51c27ec4d86adacce 100644 GIT binary patch literal 231300 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%0D4g`lb@a*`?3H_OsTzQw>Th`-t~^UE&meUp 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 U9232AO!Uez(L0Kk={ElTeowdw9*6;J1m%{GZ zXP)ys@8{2X&Y81^)HKJLA;AdA5kk2tUCe!x-k$mB&%6H?-WZckB+8Lih0u=e2>Fv* zL;_7H{8yNIuhBPB_t0!&%37jC)kn^RMNv=W3NfR})V2PpF+qvJ$&BV+W#U?EhOt50 zJH106<~1^}1#@X*tlVKDaczkvE;i1Vu%c$l8t!l-@O_*^XcTmk7@eWy@=B?v zVm6n+kIzb~Y{A{et*!7ciMfw$d_RInv?6vPWzbnU_+__o6dkmxiXz(_JRd~GaPoYX z<55Daj3B8-C&Pzv49f?NWre=$5IHfHB#1>-6cw8m#4+}O(Fh5{nuDl(gj_OHWp7~> zmr6YuYhi+VZA%ZL7<+f%=8|oJ+sNIUR1~wq9y$oUgz6bGV%^!%6`FygY!#^oioZK6 z{~)&E2~EN@+mktzUNu&W6l$VZ?7ws*u`boII+7g4{$m0Ik~tI?^#hv_(de&CMXTC# zn4qxqVvAkHRvfVR&M(e6C+`zBhP7^r58?#`D&Tv@HSNl?BKK=(ECK|A^93F$N9!qq zBq>#NbE=J@x@}V`cc`LIrwSz5XgBxqhui6(McP=()Ssl-r&BYlQU$cE9~Bx8Y%9<5 zcJt`YE(G8kvo)CA%d(u%xGvW(B%Y*f&!qAk&!eh-q>0)*lO>oIEsvgqPgqTQLAhN; zoo4JqOF37WfL1-ABnugqK~WU3%^A% zJQ@;L{{&%e8?T>+LBe;$P6(T((xgAt^c^TF@*P{+HppN@`?IX0WUQZk9J~cwPi3tg zh2`Op4H3t-vjb_a8~@_ii})^*LftqaHRS9;K~ENB^}DLlKwshVWztsc})2++g`#*paa zD4ooB2;Ktb#p`3%i^jm3{S-GE7*Y&p*pe{>tpU^QU|E`JOKWH%s@#ZiGfD-WA+uNN zgDmqXsDd&CG~q!t^QgPuggdDc!g|&A`dYrNH})g|nJa)>&sU@mFrk2ba3-35|kJy{1TOtaN) z;)}Jo7xDIU?%M}8PD$V}czmzahg1x}&$g5w3xQjR?bfL&+~#f~{O5LJ0mhDQSCU$c z02bh46QKL(#^K&l3RcYLGMi9HQ=dn7at0ClZj9> zh7JMZx@Efsu&rW3H@z~*lQ2SXqm);9J;Bo9ye6Q;4ictfn9Y7`40ij#|A@ms7!JsMI+CxTP zs(SJuWQBwNymi}*@zWTbA>6nBqqI1|AfzcLtrBlZ?|tvZR0rU#`~%}=>1CKxV#_pbOysgBoJk_{qFTDkhm{Ch;2gQB#}N3pcKZQCsjaX zU0Tp)n-jVPGy?v`-+|uyCv611F+=f2EI?7{X9or1(THK2pC7$UYedsyuK%MZ&}hi>icT|_2!w&^NHMilixF~NMGAjpE* zIOG8BA^jobWD#%M|G5PN{$h{dJ;4KMRonOGts6e;&@O%A5fQykP4_>%3cycZp`YZx zW{yMXv3n1@9qf`m)qm|+2iRg1j0My2N2ok_Z}4`}e1|r~tOwPQ_9_JE`u^$FgzRd| z$GMxAizZvQH+DP5oMblzl2ps7+|508F6jN(Ud?t|WxR4${#O6Ht1&X*31>I-!L0D> zHVYyKzai4JwP=s`zel8T!#?@htPa>aL|XO)mUfgn^5~gOxZh6g9)04evEUmb>>UF9 z8w+6n+l!-uYjq%hCwicx#eZEFu?R0#w)9>RhkDTxZGFqh>yicVwIP6W3x_LzGpF$Cj#xB%S2f#g&dO(u+YRcL^I26Tz zzqAhq6UO}-C;XNz9B*I90rgMx=w)33;;{VQa zOa?)G$)Sn!>bi^ilVk(D;6~t4xZ?fPm2A}tGPv??KT|vf`IdKGyP~Hq`O!fqwVL$C zQUhDH)U2nzhlad6H0j7MmnHgG^;8a&KWMxLq356w3!kgK@;`79*)pU?e%pjmT(dr^ zt}3#rD!|nmdDI!%RuyrMFqSVhmKPyrX>oayU9pT&6bt2xjO7apEK3;0a$X@sovVs! zBDl{@QFS>HC*WRv)EQG$Q%*!%Yvj4AfQG85W@ki`KI)Vq>Zra~6XB2CfW!yO0rGBRC?sMNyK{n3lXdEoC<`;y~K4TG_~TmJ#TicJ()z zYSgO!wuQdL1-7EVcANSeqk3M8x|I)XLoJpO$I?j!`?A@CBb{;USyd$ApB@fjcZEeOD=e=w*&2c=r*?``U~Id#@_sls2M`h(yb6<;!CgLZxCkQ@$V@?o})+RxFP# zUtlj^YAa7-%a`jE3u6__3M|Vq6pzL#P@oV{LZRFmQzgl(lGt@vm`%|r;iRkE2@Fjj zIP+sD1Id5eg?57vr-j#~rEE+~u1O0&*%dy{k(*^H*q0V^irX54EcoO_qxw7_I1j>s z1-FF2QGbti5Ge;_BTwtY!IPV1Bb#M4rdmb_Olpu_#`<)GCr>=eS3>lq4PTcQ?x-IQ z#1Qh0GMD;Wml~q)Ylx8+`a-7q3s!xhg}&V7^Txn0dG#eh?TBb3Zg1dBiT)W2NC+}l zAo9CO6j+ylOBBe!Jr**GB?Yp-cbT}hd=ZB;twDVb-A+G2=BPS-)O%GCZB+ryRS|Wj zsIT;px1)q1T=`PFBBj6rd48F_d>Kk=wz#223P&&0?PgFzex3(Ok5#v$KuD5bw9sFJ zH3c<-j5HFm6Bx0iK6wY2$ua^gyRJUDrG7YMV{6*TN=pi4_}xy(TBFv<1O?IuwsL`A zWU4Q<(2$oPz5l>L<_vW7wBeKb~W{WBzVK%l#wzaBHagnEUqS^r1fS(<|V2^;*)DAg3lkfFc4JbSeg^l$o>trK$ zn^M-nSda#`NP$qIKX+hM=dtQ@yc&m_4i7`^Fgj$a9rR27g4~|uviyjp?ivUGszLcz z6M`N)3?!(EwD8KbWSb0z+AcS+4n!LQ7>#?Z+znO4qczURIu}*|EP`MNtBZg%d#Wnp z6pA{djXVvtiarW0EmkarG+TgcnNxYEd^e+%IcaN#k}p+0X^w>s4G4A%>ZA8lYnsDBzvFpAvXR92bb zt`!SpjzBz|;bAV1Lr3T>s?I_Ms-`xmQVbos7@@km$q;i}tCYE|U6Qnm1#O$`w+szs zZGjBp)F>#5A@L@cClx^Cf_>ZcQD0R>pxmf7ZN#CRNN|#K5XDsyhfGmtporxozH&xD zwuH*|b8X}$pd5jcGzBd3&zz?_%A-*GDdaz=9otg|bz1sw4N12#Pdez_0JkAF2kdrq zm|!I?fo?J^-c}hlcgPT9hhkpVO3NLJaO+SV8g-HjG`cZy*V36ck?N*{H4lSz)NL-g ztrnTf5>OJsppuLKt%v-20r@#h1EEkcMS=Hrxh^gkx{%EH zzfePd4;6l<`fI4nVQ$3-ehDiiXf8KKkE#QxeiYiHj~d&GP5(Ozu-iE<|7vD1M4hq& zp0GRxv!2K{Z6ts!KjN5yWrup(t)!#dIB@^QBn#HEWHs7e6Fkia zgZpoeLAP-!<2RZYn!@&S^ zSXk%0={n5qERv~_C6*Bz(^6XSyeS11Cy!Z1tb@7pBX~{|IJbuW!l1swDvT{OOfg`& z@_RJb@UR<39+w}mE((LuogM3tPWoI3Ed7}WqtXC6zH@Pso0pl}g*;wWMsVE&Yt9Am zySv$t%8g^n{D=f?Y+ve7iK~+3x|{RN_W15(eyU>}^Q@m~kiOXNmlkth_Y(87Ya)#rS_T|3J!$b5ZtNmnmEbdNy`y3}Yhw3xm_S0*|F%5<~9nFS~W10+R z*NX1spi13F=iPL7S`l#6V7Al$rg8%8eq^}aNtpuP_9Mc_vCSx;FFOxSE!3F`WQ_r5 z3}&P#(CG_gLo4~+#3gzGZjV);GnjSIZnDdofQHm7j)gZksVa4g!OSb>I6lBjmB@!In);osUOgpQEkqs zaj~b+QOih|#cy;tzoJF4Qm5xy45{sk?qp^qTT)lzdWN;uQO>YZKT@ykZk|xdRhkFu zV=WI@0;$ylI(x$gp)1jAA#=l-c!R9S93$@aj@-gd_M@u~J`V!c>xfuc%7!=D{#S&Pk<8UKz zhM8^`|I56hxRY|3NLeIcf(14_NiWLmxN$Lj#3|q>e6*OwAK{HM* zQY;cMu@N}8(BFU-ZvHxd+%>CQ+(Q48Rm^j#zqBis+Aj&LHY~3(V@(j>yX5ffx|yGR z(tpXRx6WvZP#wX;UJt+$WjoY|*OvGp8X*eaI>;p%1uen%@4t^?@yEP@NUI*UO^qr^ z#3BM(804>+u-&``5gfd8U)c_uG9s2{1WX`a4zeuk5}&{$*fY~{h3Yn^`aMnvk0V52 z-U6x-wCnFrSFs2l^tdlUuG)SgH5VD85iiQap?E{a@g6}kitpkLBE@}Vi$Il(r%0x| z&mkhSlM(1;iyIZAKz&I>@wk=5BK7W;!Xwz?({X`Fo7UVx3Wq&KI$k*?h((G{8Z6SK z^i{}^>M7E}xQ8iaT`=6?50)TDI$+NL z9WRQsey>b|Qd?dm(gh(-+~vd~EYd%}LBe*z!*Iv%pBIM4QHT+6hZGj+!r0*g%EoWS z3k)Zpe2SnPUMT%=RLzMyr`$v!(wa)CNKOCR0VpXvQCgHVkB3E!&I?2uwr8tM@FP7$ z3V9{L0QX=w7B7r|ap56^`ZAuZzB#cD{4c1J3QKTDk+(dVCT*H52f5rIfXUQXliI)COM z>oo`lC2qhM&NlnPbSn}1kU}Jfn?%|C+hvp{5$gz-m`m5sVt)b?gy05ziJ>&;WGW#E zfrOr!n-O}7_TW~X7!W@J3HQi6qF}vzBT1@Yoa8YxQMSv24VEkf({9{?FAT^&IFQQJdHK>6SPo{Do1&mzO+y{NV3S#buU0yeLCO; z$Sr=J(HCl@8C^0^;f}@JlKO9MxQs(}U3X&WLLL5$&I&XWe>H=j5sAPZOvQSe`M%OQ(6|B+nZu-_pKMe+xF}>8EAs@obups9N9ci`fB_B^Q5WSKvV?64 zRCyHi*zoAQuF8Ho%3e%BFpTi*df#&Uc@R?Vnebai zwt)Y5C+g^4SwBO+G7nvtY2nmNhhmZB2DAwJD9J^^x7`y#qP^FR#O2S%*7dYy~ zpA;eYNGXs04+7#xqox2a(yT(l*h+ODTh6vRn3uV6jH4`=F|Jx zi8(5t-jBbdJa(Uy=d+Wld?`cDC@0=8rJOUB_{0xYp73&^^LK7E-2*8C$CvwpK`=K* z`=$?NeteDoUWmc2q6rU|tMUn7$}i(L`cj%_YmfNwoZY`h|2N2MUOcPk>3{a2{I>r# zeYTXcX@NG}U#d~jfOYzDQaSf8CVYGUcECp8-ghk{?)2eVIB>Hs<^D&t!+j{*2WHJ7 z(1%_jSxuEE82mYOvJ+x);3!DWE|gL>1u6y$KzYiG^7G_u;Q3UzXF^!jt9*zJD9?CN z&PvJh;kjyHd4ey`cT%z!Nqeszr5IcTJY8NqM-I#Kp&WaEd4ezHo?%(VQl4X{mM8jB z4ji7nTuNCzx4dE?GCb^+41fCCNE-=?$5TT0g$wKziU1$VU%qwFO9%>{T6SJQIp@i8 zl@H~bi^dyJKCigXhjRTT2fY${_u?71vwWNn<@U?Q8&JMot{N=WX!{kLFXf!~6!-a1 z?zx(|hDPIxyoQVgy&4^Z1yt!Z3_WwrP~}7ULa(Fz5CPe}DA)hjfO#(VdCR!C@cD=VIOyd?5Zvijqg z1~gQv(eXRR`}Q8vr_s0fef`FN>BDn;pJrdmEqCU8=R^5epTvJd8K(9eSW920dTygx zw5ZeP5H2QL`V9V5O1b6D^l%4IF7>3W?%p@ihf;os>ghunm(_Rh87a>`@1=(eFlQ|G z;`wynr0=AZTTV3ewE0k;>O1&*Ddi7mO2S%vJnoJijUN zrL5j~$KW5NltX?jIT(d>P(^r5IVZfx$$mtnLEWV$RA|Tl+aT{HrOc?wko^QTus3Dd zLCo{G7tf5>46>_GM0rul|5578bKEY@m*XoDD|b}cXPg! zqqmlB@!@%Cx6YSRzVqNgAIfj`v|NKaJOxTiT-&;*SIwaXTrVD7p8((j_2S->m!y;- zUx&^Ufbula2{NWkt!?q4Jg)9h;7d7X-^nXdp6dtpn1`Zy*hK2d^TGWsK9mzD^(gSA zeE7|lbV{Pp@nt>c_)_K`IGG`(40*1{hR2a(odR)UeJ)Nzy8Te658{xrQy^T!JC`R^ z!Iw$A7GC1{(X62ba+iQ9#c9Zse;-f7*MJ;RUH8KHqCD?E*Z>SKcQxX9jdA*vfh2k$ z%5%K_>e3VRXaU7`5rPlr6A5Ny!3-(*@19Cu_8(FS46k(2VTS*mzS~)W2!~gh^l)1J z@*q@s(W{&bWqUKaHUe{lOPo@reh_O3BS;|-w}=<+dNtj%8MI!}*(N5grw8xsNeKM{ zJyTphF;psKb$q~(MiBC9*UebSS7-0muZBv}OUSc-lYQbVWQ&iG1;=;`e9Ou1CFH?> z9_o1wgnYECA3Wb&IAo{JSI8MsA)BT@nGoAuie%0smHKC-NDiA?U+pWT(MQPTAH`ZC zq(b(oqkEo{3K=&fX@?Jz@}{zMSYV0o(gy11wfSkAWYV>=*R^=L#>*iud~9ojoY=Ky zAx@utCCogP>?`39C(3*!tUjIOYis$x4=w47bU%5e%6QipX)L@_`x>1>Qhcv2RUj6c z-U}FTA2M9@s^2C#p5+{N>=NLUFxA8=FP5oKQ4H+e>b&s8sxkbN=U`gr6|K93WWAur zE_essi9dzOGumjQ9+S#$oi=apz2EFY0vCuN*}MhK<31aHMAahm_wvK`K9L~z&B z7Qi^+{j^6yQ029og@4ASWZ&@Lv-Mw><9>&spZUt^Yv{4l0>7T8Qy&d<{KBYUuO(72&(V(2sTAD;oNjk+qY24ZTNd=%%v3A+;eKe1W3# z!iKi5n7hx{(95NUK0csVetT~oUFz}@Y-s*!ORle>clb#R9rygG_w4rx2!^=M3ojF0 zu7dToam&074UZBfhJN$W&HCpM?8xoB7spHVcQc*yH-wlQ#!;nk;~;0r(OR% z=yE5IE_ms(?bvg*+-1GGu;qehmoe?G>rPddp(zh_HTZO zGT{k>kC1Wmf_6^z2}6FrGz{aW<^`OPOTsYZTJ)!H`i5b#Gz^c|F%ixFk}#|uHKumC zZy5e44a2yn*9>U{!1*r2;xLSPa?#JeVR%&v_{8kq#`b~Ie488Ino9fTTa_dXt1pi^ zVb2o~>y>X?lXpF@^2xWF9?~#exO$_0pR`Cgy13-tFrR#D8z3#WE=1<|xTsBkq2rd0+q>Sk z*80xJ(0!g7TnUEu&bLL+81Ixx!+%Kk3!{B?sgUZD_Y|Z4 z?c%L|m!o~r_9*sss*6jfY zd&x7;SMR=W?*>Ac9qd_DkKTWeX15RJ#rqoUK0Kc{M$g`Pk9>MRJ@QLmIh*d7=A+TrpU*wwqx-fOi+xaPy7tsgA3UG5 z-#|!RmamZK%f}w~5pw4E*L;MWI4tfVA0f$mZ8u{uU_;~ zC$9U0)jsO%sbA%b`PuC4KI*LRcjtpXn4ir*KgY*0zTc7UgL&MR_0>K?{_~g{Es*!UN*Koyh}bs5{{?3#g8I zXxr0Jp>++M_!-&8J3j=Kz4mpiI=24ve95Xp$bXbSfZuv;?TA~tWqFunn)&6M7k$K= zFwNv6UdpQ@V0qI^ytv&Dy-*2dPgj|W3;R#+>=r2zFYbr+tJH$`c9HWxH>JVG059?8 zJa+zZ5byf@25RQ--nrN;Mejl5vN?cW*9;7!H>@^e5R5XO&m!aeE5j&F27t$53B@_o z+}aUCB>Ri1M^34JMgnq3{DAkHC0cydX8B914K<1@G$R=8_}a}rbN7u7mq9%Bw1?6 z{owpz5O1v4kTHCJ-f)>@_s+1XFFYsd_xQE}r{0zHTm4WEA6WM61Xv{fe)W+rEU#T4 z-;x@)c*%Aj-&^pe4=iylQ@2V(3S5m8e z-5#BfbkBGVj;D&ZCvxciu873Gx9LDO?2p>!Io!uhnYK&C2oH2w2uJRSfvhyZZPPfZ z4jx3^)?jDE$94+oW7~dXDkx8QL;~x`W zA<(#Po@Ky<6$?(ld#@-P`gRt`7T`&Ca>YK4bVtWaZ)d@V1n*#+GJV&JFj$u@&o?-b<7yveFtrXP3>D$)?oVEp0dBe2K7d$-2g|LNl&F4^Aj z3isiY0chNIFMAEni;)^)d85yM#Ru1{ks9KM=_3ELS`oho_w}6snr3;$^|`|t;b`2;UYh=#$L$4%UeM)l zQhlDpqupJ`#%mob);Vz`KIrMg>z_|#KS7QLudWj(_RWQ^v%R{0qbWn`Do58>`MAn2 zO&L;GseU?t+aM(L^Qu%&CWgu=;m$5u@Jb{39_;CQ2%5T9=U_t=Y}Uegk;Rnan%jZ= z!LtYz^Z(t4EVCWVwH}~Eo zM;Pbe@k%Yu3u2V*LNrnKut?Cca(MiI5|4!;N3iGg;diPKHnVy#Y)cFE^!9vW7VL%V z4?R%uzhkG9hSJOd5jbdZk9Xo0tQJs{$4&0NRf1lq!e~G%Py!mIhg5qYaOCg~x4GpP zhQKC0yiu)-ET4D;dc^D2T|KV)$1~Ld$ndP!^kWNjV)R;t6x*xKnX#~B1PF0}2@&VfzE5>Kmv zEu#|mc18Jk+V9FR@^AleT08e=r?vM61+Vf+YnhbKaE5b&_i(m%R@{DAN0N*Mv1T9l zz91cd*2{lahS~If<}#Q`d8M^aX1#D!GSOQvKNmo%UKR5O{BUQ#M#xtNuk3gJ{j9&k zqFKE6sCSVjXs!`&UDUOSK-@FI(M zLB7HhZUIw?qxL?-1F#)--0NPN`du`P^+oB(eOca+ev@0aEg0+-k(}H4cQy;2d6e) z6+ZXpPHjT|lk^9tHgWCq{^Y6651)+tgPxXITlHs7qC*0Qe)tC`(L)Qj{h5>KAx-b% z)u%r&iEi2u{^xqy`e8%in+VdChu<}cURk*9&z(dkeENrT+WtQ`r%fCBM|0Xog@0~N zJM)Kg+S`A2PJ3eLAI)jH`G0awTYLt4n)kQWvgTL&OCG_zeI|VytTy*|PZXePftALu zJ`L|L^ZqjX#3s=_&Uwyjs=s*dOZX12*LUvZKL#uzyr0%7e+d7I^yU`w?a&Y9-VfKR zf1JNnDqD10b`QyuL}SY{(yyYwQuWzXuSWyiYkIrxwSI^XW$<>b#Hh;Hu%L0a3ctR0 zAEMGo9hph>(UYqTl$~m-LfWz09OGB5F)^ueQZf-|au$F&A$>O-=f>kT|X z2j}v7I(Q~;qJ!u1t#q)R*DHg!@+M_)4X^hPuH~!zgAee8I`|xVJl52$L_@>|#pz_| zH4Q>`kYNxbL^QNU%nT+*TGNtC>MK&kV`LXrE>L}r0^O%`4pOB?)!~z8BWCL4BAF!| zPU?gsJK@~q=HiM)M#bOZq^*o{qfxQkC|gooZsf|tnuF9AZ0c5BV4*JXvvzfRrg{+D z5P1epAJazGfpPp$nD3-)3 zmRyko+oeMJbU5o)17~QKFRL`g!$~*axYR#5)E9KJTsX`NPVEs7;EOn&6VarNXfQ=K z<5%dey&Xmm9Ooi;R{<1&U%r`65mE zB71q*dk+MD1Lq)Ts?XWfa1L@Sr-oBv2XV2Hr=9qK)T7!6I3x13D+0~|{ECR0sTmLF z;SSpfXVGTHbSPpdhvOrQE60z!WDCRyM9mS;zt-ZjeOD52Kz2m4HnKg3&MLJeH`foZ zNgD}(T&o*#E^W9K-qu$fRD!1EOF862eqhdkmFIeR;g>fsc^9w%EP z&wv0KVZ&=IBX?WE;SkjdIK;DlM6ELgPPjfM8_}GxdjXstYfvl@4+{?a)bRFu7e43ZT&DVpuJ_psIruE3ldU~2Xd~fd!v<|6Sg=jo zYbN(R9Be(ZRt5*NrZi_C0PBOYaOT?bjB+>`JnX%4d{!?U7z)yUt5d_V(QusfAhoVi zu}q@?Yc2ryL(4dXK8N2$Q5jsCRTbt}l$gQwHdU-y^Fg|ujm;a8keIsKrhO?^{}{1u zE&I1c5!6E}|AmN>Av9xdPT?$WNq*77+4Bpzgh2yz19VGg6yy|5UpRYte&#)C+_?ND z`EzsU&!0PgUg2!x{6+bNi#Sa1!0dU(x%ph$z_dH>m;lhIXMT=$^F3Krf#u?|si~J%?zHs)e z!koF&7tWhCeRko@`IuSGyu7YvH0C7M7$KdRYx|fn*Uak8kS{*TF^?vhdFv^LG(rP< z0UB09Lj^SG=k#XMw?E0TTcKeiG?;KhH8fO1!wzV0;)a)@VJ9>kfCl1`-b^lE2tP96 z2M^q=rhV|k2|t*}fT-aVV`k?JV!97WW1DqZb%W~-0moIQg!;^5&LQ>uN%#SFG``Cj zK2|vs(u8JR%o5|fx^|-1ltIk8r1~06;lMvy@DEoz{P^cJ=MRccdKn*U`Nj03qF1ay z#Fh}TRwA~7h_w;D*6Cv_iC!B`v394bK2{(#&D>^F&t}xDs~}@b#5S|0xn@L_(PUOA z4Gu+)Loq{FZ&TV4JxKLZyW$fSxtAWq%x!@m>%yD4Df4ypNNG2|+rn2FOU-vE@eK|| zzC$rnSI_!afxHc5uS%!N5(zSnl{j?&_`S(i%kTQvXnpeCo$qe>`pF%uUuiyA z(f`8S!eG4`M*7e`ZjBkqPNC5DuN~IHb8oFe%{hMV!qc^4+;C+qkhlc{c$Ea>Gf_OX?vJ4R5J8 zeTV-D0GwO=z0uLpmKKgrzfXg_I3j}o5zf}HQGWqP?PmtIx6t?y@D>`zDaB#@M*w!z zcVtY2ayWz{p}+1FwIy88oo1T}O>-in*X3rOPG!udqQau2j+bWq(txxKt=cay(sjNJ zaK<}3sdp7F?jUL2FJG*?SEtHi#&AqH)c{=}SR+M~m0Yci48(86zVR|mcgkrs5ha{P z_gP;GzIB_!!CIkLd+Uwcli&H3_P1`_p8jTE3RXjX_^0pdY7gk>moWK*q7S^X7^T+a z*R1Hr@nzxWA&f;uHPA#thc0DWmkj9fmBS$f50OEaw0QjVmVo~;b{eJ8W^ILrt!2#y zW6LS4o2}xN=h+J#ukXgMjcL5XpgY1cPOCnMhK@ga<+z?E4Gnh2!cvwyKf1ul2&0qh zO^?<9PE!u-RfI7@IJwVd3X;isq_V0_3;nMdHt?DRPJkP}`e-n0^}rZTE)&`;{Vn_@ z=LQpZ6&m2m;UGW5@9xw=E3pRa`Qgg}Pch_cvxpb{mM1MjsX97Lm93;IXr4R9$v(f= zWKFo2UxeyR?sgl^XPyz;8L>U}!!CNEt&3i@&T7&nn?oB3U1oHw1^xsF-;Gz2XG;tN z*t}X3(*QaxNJn9;HGs?oam2k?lj&$pY5#+In|Zu)a#W^#tPENq5B@DK3Nx&V)$&Da^?%HiOC_}!h-k5IvH z+#Ft(h2+4vH%$!yw8!l^K`_n@&Wl?FbQtZw{6(6BF5*pSm!4O7@x0){vxl3fhcB?` zI{>|dzsmwX)X9G@@F$-3;NL>iaw-GtZxJ9h{c0aLPk`JWeW<+qfc}2Fk47sYy4$23 zQ#t;o{S}M-jTZaEdcK8E!1^+PJbY*&lib_{-r%eOgVhn?`C5yEd;$9OfI^MfSp7FunJqnB;MfaF%BTN}3 zAW#P1lOjtIc~Q&WL9JDplC{DlGS^Qew$g^KTQvD9Ief8#+LT4 zPlMM)^i{*Xb^{A-ZKm=GvolM+Je4v<258;4@P*D9eTWYr0W#-_D z2`4AG2)%Mlzqw&oI0(1;UKBi@5w9H1z5B$|uhQ+*jr=IAkWnT88e(u^f55SYV+>z8 z971{UyE}D{=r6b(@}bgZzovkfo_@-d!h3;Z6;K!wfToawliuer|Zfda50<(S5FV`YU*x&OE}qD<_dHeHfULM zXP#U%oX_dXlX0iVsF*3(ITwL*I!YmRrhU}a^!3^q12Zn0a|g!4kMeLb3t1+WIhl^n zD_yV1SaNuy;in0_kcX!J{Jl0={*c{~^5y&G+K^lmNxU?)SJ^~cX@aGD`_%a3c0>M73X^GRl^aMCVI^cYvfLr_P2yl zumugS91bD(80XF#*lw3{@JNBwWL7>HEA_zqh8Z_q|^F_5o{kr`&lOTQ`xqCUc`t9`D$uufx6%xfqA#cqhU^hhpq9n;eT zjjGmt7S%MD)hSj(i*$3+(36@7T+Hx_&1D)V&Zb6H0z)t1=NyZ9w;L-9na?wIHF#v~ zsF7$6Zvzsq91cGW_a3t@Rng#g3~=NW3&*HZYoKt#bcrI}STT3tgdx!(i-Rj2|CuHD z=248OkFiT1!L1KDND;=`5=yqJ6FE+!iq@5}{cr>I_+deSKWxfRps0T!N~hrs8%&xV zD#{V>OgPPD6zGm*YV`M$h7B%FA=h_sWnt_#PDbeNHL4atMI79$yVq8s;r6o@gH7=Y zO~3fjyWL`BA>;z4Q7jER;>KHVpO~wn$ADTLy2HVpGlNTXxdI;kmg#1dk7qs%NX?w< z#v)e4!fj7lg2fzxS;u1>9`nVa!>%F@RyPi;MwJLS^ns!)ftr0-;0?M)z=8Y+qIDXB zp;jw2xXkx1WYLEK6S?MYY;W2+pn=nzb8cUJdaGz(Qp?nXn(o|iYdX&N&=E;=93tv? zw`gzdFA{sN!}WBqXlFy0oip8bu8W3Z7|dD*~0xsY84@7u+PU?n%zAM31WCfJYjSCP0E}ev)xb$}8az_bq16ZnW2+JRc372BF2QGFAE~7pC#T^qy z<|>6>#}@*Jbz%W2O;w1t@>|5QHV zg+8CkvvPG-$LwQMjpyf`m}=_-ADu4$R6Zq2Q?S(ZG^7w?p5s$_j_o1(%v2ryIC#<1 zw87Y;QvX6vt8=O#wtPY78GG!|p9!yYPHhoehAQUUhANCU4HGR)MWm*JU<`H>qC*)2 z2fx(tPH@E6^KCE-7OU~*_vL@r-D|Kr6de5ONHs2n>#|~Hi(&;dK^{uYQBki!n*AgG zHq!%FqXgG<4_w`OcZ9NvQ@+G2w-}WFygrTq8CoR8_T+QM`E{e8oOUjjHmf3jaLLz9 z3u%=Du3?G)2;I7@kdWO%X$c=sIW!FCQU4S8qsq_ zu|BMAi(ccB&$2_pGS1V{#ipKZ`}AQh`CPH3$Ve9#3AEM3$zUx?WpFtW-BV>Sz^`ub z&Vgv93S2flszRf|HKn6{id_M*>i2g9KdrJjNJi;v?8>-5Rb!fhIf1#Pfb#N9AwGGMQnz)**u9(g*tQ9R47fkQeAf_ z7quA;%s(`mH(=B;Dsw}**QqgmKU{j$!ITiJb&@&Pp2}LcHo6W@bHGGy$!RXZidcrw zjDbVP2kX(yu!__cJejlP5r=+t9VHl&z32QR#vUxr7cgew zWtmLrBX|MSMGOjhiE9t**PM=*nCr$-TJa4_zPRRhzbWC`KaTBW&@g~mF-AEksKhaA zv#z_|-_59_@nx=kQa@EV8+13Sr>WfmjvC@S$dz;X+Hq#?Ng=~b*wbndcvw_64mw# zR+Gse@Oljue$BFxnc8$kHuI%P&@bn3Qhfti3U9g4M*qB)UV?4{`Syit7^i^%fc;Py- zwLhiVHlr@Q%KQ+l3FvG5CzlOjmgF39(ar&L!_IKUrTt|Q6cF1inAKwT0uZY)f0v&1pG=Qr z@^X$i6qxwGcrq!Ar9c1{{!;Z`)n>L4h=a{jPbO|m1PPr3U7y`ti0a&{uesvV zcJsb~1-c^~RoAg1{lysSb*hdpI!y)k~^Uk>+{yfI68jC-!4`@L2>nb8> zQGd$^bp2*i5KHM)_Z<-qm?8)FPa_p_zbwX&YLu5=?pM!VaEb(+>NENtGv&}RDB)R_ zdRW-P;O25(FNnRp#a#;pDrZ)oojh7mPh}^W}bIP{+LKdfS~{ZDU0`_ZmI^ z9PoiD@j89Kbutle+)p??8I|fz>Q0iqit%f?xK?|xKVZMD{>kS*Hp+_dn9Wg-Ht}CO zKlrCAq?a}I#l-AKGnMspdL|wNw83}`P;J&hxsjSkZJOS1=Uuu|S72Fy)e$YM+~VL{ zgG=%u7siuq53Pz1&dfojIkM;)#y-8@;PDx9b665bK7p>T&kdJPj7`nypj567e$ZLa z$)s(pDMURUvbacDH>mVMext~Qm*s*Q2pX!;4u=q^4!FAKo^HI@u~ir{Xs-_#Lv;8QIMBfkm$~mqO`|?4 zlP?9gN>ea$@Tt|8`^kc?z@QZrL4jLv3X1h`3;y7@!DLWHU+f6tIz#x*$Lnf{@f4=j z5poY&{YR-&RvMIBc!EgGHMYY8Dq@&0iM#K0s)TMpqK}kCclwClZ*I;JR=yV`b?bun zqjaanh;vLF6JUGL!Gh>Vn+&^6x_eo8@MY1>Hc)j)RWDy`f1Rp_z-KP7;OcleI;<@l z9*~{G56FVk;gJ`ftbg+Id1t)drZlxZq%2ck=Ij=gW1#$AaV5YVpRrzRq60-4(mmEh zVeZJRgI0_u97yxJ%E=DyFS|%n7&&T+-C<1A!NZ|XVKMZh#N@@cj__*Pt!jz9Lddfk zLmt1}&jNoR1>gm*E3|125+0B_ec=6M=lU*qW1XZ2tqDMc%Z;Pf27c460kS*BG1CJ_ zw@-Mk>#CGh!A-CN0ec-bf3*4q=8PS7UQ~`rCP#I@G|uow)u+tTI}fQ=BR}w|nSK=s zmb47gps`LOXEeJs>kvoh!UE`^WNRO^%2e4$2c%{{)EkqoUYY!rJusHbgvW2gVf~dp z$4qG38Tm`iIcJ&)ttCvANjj^5tT_#Kart&o?4VXM1D7RGI$M`l1e+(3=@1UscPG<# zI6$Z1bJ#F&<#3&2g2yurd$5&<1^2h!<*9`>{g07-gH{ReQzN^dmLN}%9xusJ{q_?Q3Cq4Sjx1h3#JBIf6=3EcK~=Y(LCBKq(N4*sZ7WjZJN zaP}KHFx6s6whSK69Cfe^sd2y3Fr*G#EZ1()kvUumUgi_|{_z+IgZn#TguWglL|2UD zUyqTnza~chxGw#!>!Q4_3)!X1mg~Co`@gPB!gXC#UAhFzx^y{sU6+KvMwh|hYu?Y- zes3PevDD#X=(;Y~^RWE7E`(bbQ)sGRiJ7Y)f`(lsUX$Hr7kGI7*N&fL*?MPGy}9I) z>?H*&Co^a&_mqPpNv+8T5G0(Uh>TkNn%7QnXpITw8 z3|PzQQ4WjnxHvR}>O++25gsm2b77%!jwZ167FbFQp>_==;1M%m?WP>m+kHd9Pmz6C zrCCR(YwlyrlgfJg4ZEs!$}-(HyM%4lEk?9iTD>CZhBia*miWhX+Khbt0kGNH4@%@G zIgakMTP)bk;$^p&MP0{xJhO58qkSVhe%ge7Zo-diI*J`Uw;2lb(RVl6#w$zcBQPf8 zjf4vp=P%Bmz7TIU?0AWNJoQ9hreVi@Ec5Vl9J?n8CP4Gd{OMDa$+5?eT=NJJd;|nL zfnXXCyafa+fZ!Sspf~);ph6%x4Ft9GG)7b4&VauSJn57xr^FU-VrjdMw)6CgOgj98 z(Bo|DF4-WLY%r2fN2Sw|+=xnzF4+Q9x}Zi@utv7XWm)8sEk>n_k$g#w zWeF=^T4PyyQr9T!WvwsMNAWo-(CskTcO}zifbzvy77l+rXJ(kWcUzm^S@l&%U|CAZ z-3Dy!*|OdO!)s>xtrA}eU9TJf`l{6{W7|=%SpSeCasAWiu77Oprt}-uKm4Fp^F5vQ zkK+Qaf2`^EJ2Zt%?4Zhgey#nbUiR@BrK*zy<)0qjZ3-%;c-8Av=G}iAx3xz33UB)9 z=#fAoE)OPt$p2M5eN&0kx0=|F^})Gcg!+F*ALjgD^Zbz5;H1g7t{H3V;xl=>dZ@|- zMY8U1x_JgwI>FQ%Wx+H&R%=Pthm!WE@2H&AA|Gt$(LO_uZ_J5;zw#}6zyKMUaIZ_1 z#iqWL0DGHOugs85W6M>i2g;8ghRT*r)7{%XE?o0;iV6?pd`}ktnR8szX^YGITe`dO z+DK8(5j$S=xMH4kGOW&`hp{ROh8Tmvl{6812=H$8#d<9!oe{IKu9`lqt}X)-;(f%_6~OITO)s=+2p zv31;b8{}}@RE~~)QDQt}IVF14X;R@Yba!AS$5=gl_U+YXjd^&jTS`$k0PokZ!u3`< z>@AtWm;onMorZjkp6$sm*ZlTZcCHNezKi={Zp1Ihjg=^)gkNf?2kw?QEnLx*f%U2ioqtUT`(Sq8^3NOqvyUd_jtmss&cy< z;5a6HN@fH-hBg?ii1vf0p79HHWsZn1JwbiA?(NXrSn{rR(MWDgW4vq>D8Ur$j_z@@ zkcoC47yVY5nQ0T$NsJXhcgy*EW8y}7XWmqAcin%Z7`qWa{-*qX-PR&M*bVUk{dkAY zH1_S~XAgjH+fZQpulk~=jMsfp%mJRUA`|)5nGak5-|k&&8IDtn+Ya8ba%122$|-KY zsbpRq#?ifNWFo5$dwA!RTh}-Gmh{E)U(XMt!M8Q3(Qe-sMBjelN`H&S*4rT)A!bsy z&v?uD+rC}y>Dx;1ZQUYWSxdxEUPh`r0KUD^75HClBsZov_ie9yfAZ|!+nVod9iaCu z=X=>c+bg#>-`Co2D#x$;h>s6j#5`~zckj*e{jKwiz9~=7IP>;9-&`Pjvl#ULvvcZ& zy1oC~oa&0+b31dY?9I%Z>V0cC@;Bx8>$d)toOyA2A?XFY#eYm_m zQTwu%``n=ZyyF>!`@TP38_13~-c*iT_7Q{ZRohEk8I0wklIoVN2;boQ3<261sx02%2R7|*ZoE0N4&{`cd# z;j^6^OEs%tJjaG|<9hS)e3ECmo0ay8)fsCZwoMjr>$U2Q^v=Gi-k!d5a~v~n%J0|x zTa>R(Q`bsA)1k9iTRLQ~U|YvDT14Zxar-^~?USc1BEQC$cB}^fCj8n_Af%TY@w;)Y z>gC&F9Vk1+-dV4S}bM$tEJPQ*;KjN!SA^eN?u7-nkv`jjefth1&x8naV|sJn_R9IEW&gab zIsd1|?SCZaU#;AJdvpFz+iohyultCP54-1E?Ut=K%YV1dGwr54Zz&gC6F~1jJEyjP zw)KCTQ_rPsxve?%TJ}x#zBL>(Zp!c1ZT%}bm8Z7cEXUkB&xXx6OI<4pW zXj?rn=uP|M?@`q>j`Wi!Pz!a6j{UUw56g6?+_>O=V(ebH!0v!YHH5v#42omSR{*%F zg1x2#8x8T98L%;TU~`C#8d1yJI#F4t9HUZlloO4funL+7@Y}8kB%nDK?sx#uEQ|I# z#3s(^fU{%^87HFE=-}QF(K4XN`teya!%FO$1b&53{C}ZP2C)j#@Wn)&A@Y!?2q;oc<99QLurt^ccNPSfJlrAE56iI2T!tQXdAC z_O8$xs>H8W{xbYh5mw-2$ZF>8T|o54K4*r|2zOB14pc71p{tH{Jn6?AkpZxR*| znl|`Cl|Ss#u_puLDkf$j-rCL62HV{BmHklOt^n6SxwQ$ta1{(+sTtS+n|d4X*Zzxb z?xyNZcW8hA7QLCR3%gb~5L#s+zwngV{Y5IQ`()84WkKMRT8yy`W8986N0#8{9Ayd2 zOgv2ypGW+-%|bjz2t3YAFvw%M->R zGiSvct)>b!ySw~6LiBUH)4%6ISD@(UPk~Q@pA%kwKE>|g=Lub|+~D@}jUIlU)b-&> zx1V$LcI@ZQe*(|`ICjoL?36`UXg50V?2MPTEPl}cWA9twqAJt>&s-SJ3^OoXltEAr zsEC(zKoh)FGoXl<3d=PuwBaI|8I4GaX*Cx_R5CP5Ol!wWM!T+&x`k%#3?LCvOX>O} zm)t?kwbpIP{F&{#^?#oCJ?G3Bz+0F7?e0H6eRhF4@0s`VywBzPeBb9CY|$nw=QFC0 zRp?L0f5Lowm#rG>NhIb}TuRkC%ulygZj6Ckp0V688tJ2*14jRE&^iYs$!v-gBKMDo za{pt@zwc}-ng7d8W8b&W&;y}c)^`z1BiS$4)-(UE^Pky*^6oL%%zKEuPZ=YTcMj#< z7(ZeaKi@{2@67lSe+W{ivJZHJ-X`@q4#`56gFL=qo_8%M@$3CX)1NH+gS8B+5HC9`(A{6V&f8NA&t10@!2y zpw2^0Ztg4ZKks6icJ_1MuhBm{M-`ipt_{1t z3=X=7Zk<}e`zRzpEL6VyxoL_%wMwznvbu|#LiCJ8H<{5Uc##j!5#6*9otJGow84kK zKA@yiS?{`LfJ5;<3$LG2y6Y#(VWDe=*y2Fy$NBjycz#3Rgdf`xU=L2?YxgiD!wz9qzN3y{_2BKbWHCG2r1d=b3Y>P7Q zP#0Fbjj}FNs-}=Adbh-&u0ey^-ZXAVQzEeS>&wheJeV|g?;U^G$dwphs2k#MP?a!- z`&5I#$4d(b72ctyrjzJ`YtGMz?(>rh?-T4N_3MbA3kP$fd{WFlN&Gq^oWaUvGh)hP z2R0fUapF9k_RUk1Z=ODt%#(hh-6qUam1Leg)d3~KJXv9$%40J=5N3P|&N!J(&np4% zo4$)j_1w#lcM*M(yPVx@W9QM~ezuXF@L;f0Uw2ruo9K!Q3Q<>(IV_EbIaEZz9GW$f zIUGjjgZjmo`xpIO+r08n8^@jmBI#V4t(xxVwGrUkrh%sl^cLdxFA#QTgXs5%@_zr$ z31s7c*imXDet)&2;l#)Q+w^>%D)A+_`p)PXFKdUD(iA#_@dw=}K7U>xu#foj@Dcf! z&0UAxzN!1V1BFSn^>knG{ycJ=-ZBhe%=(7g;F&Hl&O~2~)2QD%-si`M`uzAz>c_h- zq95|Zln-IN{Cpl`GLY-Sp?7W^Fi9)I85e*${&RV<#M-V$HMzT?Jxm8|RVRm|Od zl`7eAa9GR+_#Zp`kt2Sy$4Gdp=)5Z5TIPu)k ze0>Wdch}ObdYs3WDZ|xp?h!+reqIQ1h`yN&ZU58e(a+~ImfBQ%jinW;T>PK?#!{DR ze#Ijs=m`rZI=ak!3QyZEbKD71)N-wPO(667!1c{*D9-EYcZaFhZRF6ct_WPt^ThxE znb*hf`myHK=f9D8z5MRbPwZq~oqDgV-y$Nf|GoR(Q|_Q??v;>p#RHs@qZij zXIznu`m-)wqyBR@{PZ~!)2Khk1UKrx;9@q05JPrRhOk{!Vlly>esO8al#2RQE173L@5B4M;ix-yYlfjia1_6YV<(CPl)N%5Dm{{Hw2Ju5{0B?NIOCo+vc zVV00{r^k@m!L!k(^D6Zus?_ATsjD_f`U1oyV7P|zCW-Xrn*MD6?tYCF$M*F{0lvMS z@)hGl>4cDw-t*L@4Kuhj3RUr(eq`FF-B3R=`gQL|Z^=CR`T<-davV>#w(V|XX=bg* z;4tT%Cl0M09ohk^wHOZUp3*<+@HR3zbe(W+>aVj;)bDw>Z+E}v2leUb+I~0MC!a1M zeQIxx`OpKt7^i$RlL%`z2eQ`VJY8wM%ugTv9_!`n2alsfcgIm8uG|mcKMH(GUV`mJ zf*(qnyn4n!UUpd9e0%Az&Ml;zQ!~7fOkDT+q*&)pz zJ@M(&lKfHJO+Q8c=yJ2+KQ(`3$@(@ynm=-7ecL3>AMO7s@<)|H27kMHZCtn6=?7v# z(ya$S%l&VeKPnFz>X$#N3>xa6KYGyo6XlO8gF^i0`P%u5f7^M!;rvm>h+RAV@<+SZ z4e63Ux>x_x<&Snx3-0bG{fwz!2~*G5G|L}TKlakI{+PN%b^lbD`tE7E?rZj+fvN8d zit@+Q|B{;ShpCH7<_BQvyQgWp&rd4&E&mOedc}wb{W103)B5;f>N^Ae6EO9ns2x8# zroMYxQ1^BJx5U(oV|V<>n0m{5n(qF58j*R51N?Vk>YlfnLVprW{q#D`|Ie8EKf@;f zG?@D3AWe5n{b$VbT9~CJ?_$PJj#*Z=sBaLn^wioaei&w1Iqf^vkDK?sG0V@wQhy+3 zx%<6u*=`)F8^pj4UU>QkW0t#vdg#Xw!Ur3IzBBwV%(7+OKiO`%+V6qOed)OE2jg-r z?_KWRmwzidxDgQJM#$%KXIf;K|DnHiT6r!{-ebYTPZ)0QN4`(M9lfyhx_=6r=v)IePaAg>k%4F9sZ?i>jp9!_&Q8Gmo;#&!E|nXmmn$$Yi`*Us1O?=fH9 zbB208Ps!&D|L$*p|662h=Z`X1+*Rj_-jhZ7i-=PUbh)AwQ+HhcuFNz9er1l5I_!8K z3e{qG<7`MH11yhu3(G%r68@+O=Tb_&VsVJZ(f zm(sdVKezGsA^scY4ePJ@^IR@}2Y*6Y*b3a<#sFsy7igr!ke*~hT4xGBryNpjZ`?`R zE9aRKR7H$JdVgpax%&AX{`>6TWj>^`fqDLcE)ymJiIJRZGoh}Cj3_p5!=>#>HhymJ z+gtxX&Y#bg=U%7H|M@woz5TK056_1A>-v=o;ZMwDc5SLv9;scKzHPAb4O*ic`+@fW zdGOfJp_b$HRzK<+`+qk5DxbA{e3f=r`K+Z)+79z5*cUtYrD1xTmcQ7ep}b95$8+%g z`qb+A{Z-ok-q-&3Vtc>uINI`o@XS%I@0ot2A2bG`whoHo!rvO`9Z*#y_CPWk9N8N+ zAvdC7I9#etZX~(6e$?tj{zt`_CgI2MF?GU^UyVv7$8+5FFmjZS=u?%yUGN)YOUwIL z9OF@~um96O5XXo_GMGneJy+!^QY0$j)S*RnL?_;>LH#@Y+{J$$kPV-whia3xtD>eS z>(hs}8AF3E_hgpnfut^|mxyMd^h2*=|JjPy|3_^*=eecSk5 za!%W#T?+S1;4wJQ2MyCV1PULNx5P~4IpbZvzxj%NJ5>Iz^fO*QVQqwY3^0><$_i}= zP*PsM-@6aBG)de0e>UCkGmL{lFQ~>Z)y8JPU7<%|(Xu(Xzn=cxuP*D5b8U$wrY7&C zhv_rYwx+AL)iOP|_0Sue^Dga0#{$2XzEk-7Me*-a{e{mCba70wa<#oeHd(t`wm}A$ z`;kMc_zqroO6odX{_Z90q1LO`nCyy+V<#Ws!(hu>oxB$7` z&dH>oNplsrS0}pQ{cw>fykBWJ9qODHt6C$Em8Iz8tf^5@Zi&sRIICVzQJfHGOJn3! z!{cld8F})4^LD+>je7+9eARb)$vex)JHzNZmE@ha;)F1Gr>tst7`#)KykE8*?#LG2 zN#~3|zPZ)&CS`5%F{aAqcVDgFv%Ae*pY^++R_deDwYUs5Gn9C@QOwOt?XE~YT(hFj zF@BO6m~J)8BE6oc3j!J=xx+1#~Bihc+6LIe~D#%w)&h!yKOOJ7TWKqouoBb04+gNv>2B8vI;(&H&p?bd^9qbU3CO$5S4&O|?MyFBdLJ zUj&bkc3tmA5c)C!gfU#1tq+1tgzE{l z>W4b;6l-Pb*rT1MzU8WjPT5VH)2fqaMC)9!1F&7a?t}g|&y-^LuDdyH@^mHC{Z^)0 z>$XQWdDa_7AA&=`Zq1^6jlKUR;lGwJo2SGl| zno?{2pRD!Pz#Jo-uc!-X`XDhwHgtM&ge+B5%Vrr0^!a8et*(hP z6c`rC;HTgLE|satW-4Op?p8%GY?PkW=5(k=B)qQBC*0>^@H2}sDA_uxrmwByfGmJX zRlyY9S8E^U_$#CQTVw*GPvZ23({;M6&_#hQHS_xnq`1DGP(UDZRbMq_&kMwwlY#+u}-cw8`wS zSa?Vs2G(^1-WjwmEK`O(9LIE=4bU(pT2`qVvRDxr@khA(b{gON*=uO;%UbMmCRPD@ zXWgjb$7{n?I_Dq|uN{pKCa_XHE@7GU?D$u8=!9#uGVUedR;HQ3rU2=Yr zX9&GdJw+GUa70+-KD77xZCFtVHVPtS2Y;7YBIIgzazTGnLm8y_J5P{ux@rxX8y{;BtD zCa*rr9niGBu)h%$QX5_(HQ^3pYog{}MTmAnilVRMf7(KFZ~MR$7^`~f@5Z&G+PQP9 z;h~9{;5c0hgrBD0WePwEgKyj+^#1fax~xnPQRBCK?=82{-pB6M@nZ1pV#Pg55QAfD zcrjo%P%&tGLKxo~IzG9<&GO@mI6(G7Ns=jqf6YyWvU`;49@O{eT4n4*t^xa$M@*|S zr|eehX6iR6r)FxD+ZFl~9G&>B+xl;Utq@yl3#yp(>Fs#2bdADTHNR@7#g!YepY6vL zSE$A*Mxg);)?5{yST(=8+ESZc6Aq8p?zU-AP+=}73%xIUCc4%I zThMZ@gszTfE5ACY<9H!HcbW?E?%TG}yFfsE-q+Kbp$&xkUM0i+dd`j4!FU@mZK8ethRYrPI{R+{3@-!g~Q(p~H8XYi*`LZnwR;C2WzRSL#czMUBZc zPwZ2bJw#s?Y$|rz$iy!$J(vY*bG27K!qofOU)t>*P^jN+c`o~i!@hn-Yf`b>YmPpv zKh$#6c=r+2I5x5Ag7)tH9jfd_4VLG&opN-PdKSUs9bd_ZqP~K;jQL-o_lpX=j-2s~ zJu#YJo!ljKbvFEt7h>ZUD#SG>O8HHCoQgr+Qek|@&(QI?nMe5XHM~!!sZ!R$zovRi z5GeFHjz?hkPS|=1cW>_45oGs1EbLxpi*NVdH6C|wEAHNv^Ng+L1uwKME?qr1e0;La z{5jn3YT2nD&S(F^f-V+See(Mn1_Oj~X6!4Zw$=7>EPhj1Ol#gAW&k!JA|6#D{lI#W&BwhxNno;YE02s(ueX z%xuDkKgEa5bMfJ$)9}q3@nKsMK74OHJnU@2hif z=DUIaWv);?DEybp+I_y;&;HlX{@2g`7gP7M|Mj!~wUkNy+5h5x_P>~){V()5e)hj^ z!2c33Tau$OcEl<9db$38|6R|2PkHMKe}7Z_yEK=KcxyvGz8NvL06eQ+Az!Z+esrwY z4OVUmh<>pkL5^4X68})jUBSPN&Qsd%hz^;NEO|%jdfk+*XFe;n=qdi&QyZ7TzYToZ z6jO(<4T6H<%1nYgBYr**FHUT}&2_o?@ z{PfLH`if{dw=&!acMUcHLgE;Zl56i!#p#`MO3kclD4UQ{8q~*7kRpd5JE6?dK&mT` znfvQ>Eeoh8_t54bfY37WQ$vZx<*=0Os5L>D77s5_onmQ;VT&U9;RYL)W!}5_fEx-Z zB;e~E!l%*61@zOTEe9B9N9hpS7Q(+|W?-Fh#B7D3pa#DoqXNFcxPHI^7d$l_-!Vze ze?x9^k|B`;Xx4e|fe~fUz$-SeROB8oX)U!KK^Q}3^Tiw6PCp#Uk73xBpcbYyx`Cr_ zgh8hddA>uH#KQBQ<-+q{yszV*zk5s2QF#6X@_eb#gCog>d=GX%TpIlmeyIAhnp~`c z@^ham&X3zP9R4PpRYYvNBxg?&dkD(eEiT1(83F?#Rx)ER+`5mz!BNUg(P3Wo|&((h9-+M?`fp~__@FJja9FPjtY zcBeVXe@(v!s1Dx*qo}T5``0$BQx8M)4dLwC?7%{(dD9NJy4z0{6pv}=loo;xugu_B zJd5&VTU z*kTLrfCm^=9uqjRf14uOjdLWfgE5n=gQv?n+`dO!#00|nM3d1e*)=_F(nY6)FDqBBHn-v>}rdy)+H+y zhAiVbn2XFW&HUN%tBsY<=kYt=UJm6-REV=TH0x1?khP^cPsrWCGs!Ef>a1yu1^_K1mjCo%&g64bZr&J3#lV`Hpn?x( z2Kdp3fXwO@y?zk>Y!RfcH**5*H~oMx1M zct9BeAGRb#G$!R(ydX=m`VlgyQB2>of1Nj*v$==cg%7_Pp)?4+*}8T2TqbB-yS_;d z+2a;@sL-l)T53>&k~2M_3bh{E+6@q%?W!@dggONJ~Oq##i}(MT%207)x`v9%5FW14F;$* zFdIzrzKz4nwkr)r&Y0uE@~GCkhfS+6w%Ae`x$wvvA1T+Kioibek32K%&KgszUGm7A zVFBd>2MG-h#RasC9%9f!1HwAc9#BG6m&Ldkn%})}Jm4i4Wc;z3v|^~9XHytI%h@T1 zxfW$^JoGVKnI^Gc{$ttivYk!SmE%zS$HI0Ui&olEG8RMEvFIIL$1;SDg-d=jE?_&S zX?EBd`2`}06)1^d;wTHmcqYljE24yNpIaEY)e)Sme1(CG_^(W$XUSID9kf?NR-Dt$ zWK&HtAFp-opjw3-wI$tWkHPc+X zVPV`f&zY0{4JpRTf;1^pVbY1Ho*EWjI57cg$s3`^pO`dhHctSosS4c`psAp57aesc6PYZ{03>5V~Ywn-=_^quD+ z7ng0pwZ*F5iV=Pd&rWlJrTL@}um+s&AXyk}tFVZA-Jhahm)GM|QJJ^D)!-Qp1->oq zP~cmZJF<{d?Nc5$t+pw_3`1%vF>s$YFb*m$(Xae2Y%44T+2-0Nw$Pf-1;dtWk-?VJ zP87zImZa*twNH&5M*Ap^Rw3?1S9wn0pH(Zd%b=2rNI&R{N1nRuu{vYOo7gmCyD9KI zHvNi&n!xW_)B0YJ!CViVD(>8B?ak9_V2i&2oEvxb^i_fIm}!k$6;P;O0q+nbiY!)h%#R3%1~>bby?JFYg`GL-zlDrN6YDpYS)_0OhxWBK0M5{f=Jf@=#JYZ@mI)t$ag}^@KzURx`|(Zd zU}cY%b*G(=KDs7j_v#S6fIs$gY(?LcTG3M@ z{!^@InbeAw^e9p`642P@Hn z;=W7jY2RI!{gn0#&8M_q#Cl5mg~n6tSC6(cEA!f>vo1g-wVeO$c5^3L8)`QxN6pqP zCT0GykjACzqm1r(88ef_rdAr8mXL^m>k^wChE9el=c zlH*no0;)V*rrC>#_=fNhT0UN;pWYjerF69xCPK~dx+3*QGCs6Xm|-4p5xv8 z=^w=W%J>eW@k|ihigV>2%@S>@NfV`?t<~zQ24xD(pV(zzHCA;udp=t$o4SghYr|`h z++Ux~&H~h8d`>1ZE9`a41}`&D0sqSy24RgpObi{K8FSCnmPB`|F-%a-5AE395Cd2K z0I#O^Q;afSUD=_!*BvmrYQAYBprEyQX~fN~QHx18*4|fUHqKVO5Vd-ae7>v1G!z2YqsaY$Tz}r10X_{TYj4%F%y}qwX(=zu06lroV!4tX-MN-p^5+yG~1TN z?>eR(als-~BylxWO0L4=>YK*ikaeB3FHeCa7Y1t-DBG4RQvviOb2L;Q=R4B%p zoQWl7kWTv7zt0brC%Y8mGKF_VKe^56(S7a;J_hg7$?q3O8#UhGg$t=&AmSxn9rUnP z7+X_z0|BuNC$M#1tWFdydxWNVYU6MNMOy#nbW_~OQ;7na&5fb^I`Kzh8vC_Ms`yQH~TREZNhr*hn8Mx z%Wmrp)Vua+l2Ow_n+m8op3Aj7-%m~hW6`;IkvakTKXFPYz;2xR4vgK=t}?+lmq(F z^iHh7=XFo;gm~&2YJ}d$Wq5M*|o71P;4IVdgNA{$Cv7NLJK_XV@wP`=ZR7D zQ~t$RYU&iQpV8r$JTdk9O90v~#jOw9=`kxle4@KrCJ(#Nv#KR|a>%h9S)x=gJG# zXKQA`X08^RpB!`vntPj}`6`4%z1X}7LU}j8!quW;eq7yV0bNi4%~{bhKA}E=`>hf7 z+lt&)6}+KB0dKe@c>}vzQ0>pCzrbzoSPar}To_dReEBUXS11=JqP++Mbt0DYxe;Mc zs?UxKLrBk;+b$a`P>YN~0r&l(+B5)EyK(gNm+yQuz>^8*4ZqdqATHbE16dqP@ z;d-Ajq{p_QDHAPrQ@m>x?2VLFV9KoZL)slM2sSpphY3Ey5r_ zjxOyBnv;tOj%hN(jY5y&&7d8Sxuaf!X|)3kcOm;&jv!e@@ykKntJz?4^k{4u#AQY#L4HBU^hWNEzVu%OGzM?jl`hq=TaejLE8{(9S zcDL|TbqqTc^e`9Fs2BBc={-BS=i@~^9Ld|=Ou-U`Mh>sp+k$#{21u=_hYLS;l%MLR zhheLkh&9ijTgP=an6!Jws)o%*r!JZ|Exqk zJ8x#tBXps62Oc5)=!=(hj?q>{vH|_I1V4XmuF&DnHZ5k`UAnUj@ea>IdxvO$O^q>* z6q|GWY;13pwwFT|lsX!TQA^p+ZNY!%h^J`8T_R55U1$2rC)6r3UD&>sZ!hKqipUyK z3`4Y&U1BNX71=`>^ozQ#&tdg*e?~jmWqr20Hw?VW`fM6jW$a;nK9oQ7$E&T6n`^7% zdRU)LiR^?VPVq48$6ATs4Hl7~pKY5)vyCR*QAT^l@V2ct=%Ga6qXUs+*cO-WxCK5c zb!nw`b}26zr%UfY&6PP*OwQ3&xh6Pb2BJ8IZ-3yMP2s_q zJ}xKqaZ6`aa&w;JecW?+%!B+YWEA7d*vMuk& z%M3&&#HrA|I(>4)koRJoVHdzbpnk@yGaE-Iz7O%j1PD(0j79%qK>+bDc)!5#=;A$N zOA|O$)g-Wc>0MB(ZZMa@zyenxG90$mPz+|T$YPxc2ct?NASYk1%ZD>G#!oskG3lLY zHqb;b(Q93B?(Jl5|LtSk752a=vcjUlyn2YcVhTf^zy1jK+#uPF2Dn0#8;Ea(CO=7d z+ZLq#*G0D%%bA{o+Y0~Sc60aO_G+wST_B&zJfbcYhZQqbI%VT_eP_S6Jt3gtWqP z-Ec%JH0-v{*A>vt3;Wl`vu{Dv`F|D8z8Kmin!QpidxXdc&C&dy#DqqpNLF~k_YY(vjXyAs^#o|Cb^Lx|Y*x(`qS&E+QLHQJ=P35NqS(cLQLMhlD7NQZ z*nG05e(E^(TtFnXu{RXP3M%x*qgcUCe!n1AbjrS83@bGMo*^tW=X3CdJ=w$`HGb`3 zU9Ka1?O|Q6FM1Vc=KBS&!uS3tu`6h>A1idVniYPLE45!g$E}Eq|EuEGT(VdE;?}Eh zhFjN#!t)bJZnlQzW{XH}R^KHzo0&VmYi_pvKFrPPeYx3L@})d#8J{H|;*4A&Q$?|D z0u)-P{*`v#xlmaiXPL~SogWQyCl$XoSy^GX_2rYN4{ox&=RMpn)THvgY@U21ylf%^ zFPl?ZS0iAhorBz~;EjBKv;1xCLlvHNZ^hamWyp79*Ztb$Chy_(0?|3Ec5WwP=_QDS z@05vj#&Yeb;HX1w(Q=3qOQYMox>n0`vMF#-;biX|y*6`T)_Kcwrl`b(f>@P@nN&9^ z1Ohz!#^hEFa4Ta!hD+XI4zCuwQC|GDVmDyWy=B0Z1M@D<8qMC^J4e1MyA*~Q5JD!7 z!i|8K_F>2Q=8gh{pFKOomay<$ar!9Y8K1SsQdcurm_gyig&)h;o!Z6!7QLiH{_DR~ z!`JlU*9QSA`z8+70%nhpZ8{OoILk{9_So^p9T% zFOy1M_pz4sIM&o2$GW!1u^JP494n4afR_#wr4HMlI)8p=&LgaCRh= z8FFAG={Rbnd6Q>dUtD#i$CQ2GzBgUH;ZEgRfT0R5iRr18V+&*9>(Urhe21f1yNc4y zDORo-=EpZ&MdpV3?G!7&8c(@w9**MRA&SGHyp9>F|X5CyX`$)Kl^*|hH0H_2!#jdu+x0^#bB)RqMLAdx znF1HU5d|Q$1JfN+HVH{1o-j_!gw!wQb1ccH&IcC2@7kh6vM{~V)RHt@mC%wDQx+{z zB=^Qw3yCkorchJI8KxgB6^lz{z@?%|x_s@7+VQOl$fBfUVnh`uWKmv=S`|?cG86JK zj=L})V;A!=k2OBHs-yHa@+N&LjB$KBr-_xp9POlx=K6#hxs=f?TYGw)kI`&N{-$tq z9aiEwud-%xfg9LnB-RqVu}dCh1d)xdI^xQl=8r`k5q)2_{s1%M0!?@t$A-(9TB}GdzE+ZIMn1s`3lP7QTr;czRul@ipGt)FPmc+ ziWPUkExPzP)Yxn2571hy6yXKdJQf9RkwYgpH*XOPU^Dn zD?qC`9^Qic-tKt`Qjg?Likm_BO(O!KOqQ}1YditPBe}|MC^Ltl!6AomR;ZhBr9aUZ zH^hRB0weknP8r5y@nr4R`tNJ4WbM%B8OY=C$cdgKjx+k6SjV=666lUFX9=X;)w$6J zeC_X@;fR}p>&&aM+kazpZr4vzjePFB4pkUPHL5U>YEn`yYkfS*t1%G(Z_eQP#Rk~k zp@x{yb43adu<`4yY3X*zUYx?8L3R0I;cW zGZoVFNY>m3z^~w>oUhY=M887k^DE{dq2ZFa!3))pyc^6y{wz-5e2v|NX*ycvGs+jY6_7OwjkaG3F2GWc4+6L!EI50fq80EtfGB9Podp0>Ybr2i6yC~ z5P^X;A$NZrWK=3sRkdFej9Sp%H4o-wukVPEKW<2~%@k7I`HSTD;vCItV!jp}s0)3Y z=UT!*#k-WC;%j|pv#Q^JDQt=MHGM^caH!;u3BwbCBJ$e`*%!AAK$oo6-n&qy%a5uU zXrPW1_egqv3^-D}mvufruPGb6tOQT=XgJPlD#>%&46r}0=2uDiUcTJ3kN-o@ZHd`1 zQ|)Ai`3&(=x0pD!9#%h(xy`kVH20i;&vs@bpWC$lEuc4rctpyVdeg9KOl?{nNcj>{ z&(Vb+$`|peP4`Lxw9m*Svo9Jnt6T@GMjFjwu#R?i}HmcNmcooK{`iL zrUDbs62T-6V)Tk^C!;&=(lz!Zp0xR;Nx_aWRnD;)K>5lRGl7>^1v`?fo#SSMz*1lH z$yb~mx^wPeV3XK&4w3Su-aOuLk_qWVR$~bhoaBD%4IUbA24Nu@^Es&8xZWP@K*rY> zLZnlrK97Am55g=kzP2y@-=!X8d}Sizt0quzB3s@c{ z%*hqkyJjq1?;L??Ags3qRn`cfKIy*RthnBsut?&1H{sm2NE8LCBmecz6qV8fq4^eA zVh{4A>F4YFu?%Op^!Mn`WXr68_4R z!13CCP&o_^KF6s3YDjfK19E7uX}UXbiFUcZrrsd`Fp&S_(dnJ=$F$DCDDMf}?_hK* z-#GF{P$yDg9tW38mB}Gz1~a+E`5mC)X0YdY;WGSk#${x*WP);Akxu;VfD=B#7uwrv z@x8DPz;*Gxh}H7>-1E~f6Q7%&53D$boUhA*JDHy)e{j7_Z30Cs5@%ZmRbxi~UFPc( zd(j_<(^k`yQ_`$v14X(s1!hszGWEf+s-YIp19gHC+W>wzv}WFe*3V*~bsAeQNV86- zDOt33LcaQgLnf$&xJ46-rp zIzZ;qxOQPg>GK^(_>!l9%0Cf(8pDAvF&ro~D&OIEe7k5K@*TkUayyxRU{`Mu9qG+( zp3(qHB5)^09E9)HU+YPvS!6IWe54<`#RPP(j94#lBI?BKb#r_*(!ETpU>^eA%jw!PQ-dM^u3-qvEkM2h{q`cTrU=3W38_C0hGOE{o$wh*OHHJV@@)`g^ z>Tg9SY`bt=^z>70TagDwkBgfBRHo~5v>wA0NAg}@n9^gM@-M;3K?mPBPVUpeH;j{u zHrFKD+#4W!S^p+bB)%6;E;j#uI5{@wadIioOSF$&VlWBMi}*uo9r!~GaFVF)DEd@w zV3WW;n!q0t?c=U{c6vAO678db`a@z4BPw#ZYcH{nNW~NFrQpGkKkZZT&fh9 zc-{t+7VRVILD4=g2PWRz5X>Rd>maBBVRA*R{FTU?*(Qtb7zgUo%~eBNhe*Wh1R~xj zAmVXIgflvQ&E@k1GS_FD#_9#==-1NNVr>3bdkpw1 zHNnUlQlT!cT#9uSjNrh)X?Alk#wMAlSJ8Im#b1JkmKB7Xg=(esF4pc~g%cK$Uhw9w$$-z4icLeP!>Ppxg&NXnb~>RTWic(^}3& z0oI!{N)P1$R)va{0S1JZr>WvNg+T};bCVkS(l<@UBf`RKs1+7XBASoi`eVRf z!Q^|!Bhk1oR;VBa2Bx=6__Bg@65t}J%h6sF_yk(<41s*yne24{N4uE^0H0Khcm>ZQ zSGw)@a4I|dE;);SwKx#MI*{M4xm#%*c=@{!O%17hL01p>ie+t31BQyG`~BaHmYqtO zNXEUwu8fj?cKfT-%@b!#rJtoUexJQxn`eLN!OR{%yZzuwk4j~+%dukQy^(fvJp&mO&EjfSHttATeM_a4PC$0 zRbr`;_n>mQzf#yCYKsVr78)>G$V{^WI>pZbt>SY?5Stg5VoY!rA1mtinD%$dMRfcp z47KR_pF+<+->8JR)=zy@PB-%V{xx%7m`AATL@i^N@15SF+(us*oP1O^1TlYWpa=0( zs9v&+(fDEhPkuG*S3b<&IPQ0QHIEU@-z{SP!w~cDM-`TUXpIXmgPVltFh5{_V|BHL zzzAz`guW^!UyW)U7Bhs@m#M)q`Kp+dKNS|VTJr|-xDgtbR54k2>TI1=F^s&4O%sOU zuA2srIfv6D6#Afpen%)elfQPnA2xh|su7D2m4EP7-hTAGE8Vib5l!ZSj=ki{%pQH} z6e34Afc;DL)BlC;x=Cs2-0bOUlBgEDd*qw?3Xh@2EZQGY2W9l6gSz;qBu9V>2>yL0 z9j9*3X#2?&UI%&nb@WrOPWPnE=vfEp4&=#Rda!35^whzXz!kUjsDte7sH5{tsx02Z z_9?-AaS&z5g8Rah5{OxZlQfHPnwU}^?<+T%(ylJpw47*Uj6=GO$_&~8(c!!Vp zduxr|^osO85`4xlpCFx+_kSHB%QjGZ4Y#CZa||;Ko)>(%0BmdNUT@`q^c}bVX1IM@ z0=0ePsU<30GA!6*Y}`PMcG&NTc7?K2v;-bOdCI5Bsba3zMJi!J>O!+-L3N`{J1xU< z2Pwl+WPpK>&Lm}6+;+Yg9`V041O4&~&yzk=|BL1q@GhSI3tfIy&KlrsUN!R%sODs2 zA+ZAgC~v{!BK6L$##`{KcSd;&p<;ePsCTBVo%zA=v}~;RHy?(y32uU-9uwT%p-X0E zeL$;-MWS*?cy5N;cyN~%7FXjPorB7cp`e}%R0)SQtVorMb770>b*VOZp;LTe(=;wf z`24H5BJp!l!;CijDo2%VmAy20r+uDFwbBCzM9k4}>6bHF{I>G9m5YRW8T&>Sw5lT6 z$5La?1{As@wd32Z*fpE);U?u0;o(t9OHG0JaKEzwkM;O)v+^NriEiv_i$CPHk zzLLXyLj@^t1e15C4udsTY!u*&t+IpOIxHUtHXX~qxu%VPsZ$JcjEyKWbE!nrUd>;m zHC_DlZ8HemciWWewG}SCTC>sRhI63cFV-W4K`cE(Yra7yF&CEeDOgVG%e8636K+q_ z`b2~(La6rUHnk>7qy*2lxOJ~)*hk&oED;o1Q0{kk1yszxSty0%%?W6IbZosY4JD@p zB?mpbXGYjZ^M|Ly3U@EH4@CovRmxgJK?sS*^F>ZAgr^(`q0=bTa7}|T2%HQO-?=7q z9j^%s+)@98c4x06Ve&@2VJ-(cP%e)3Xmi*=ZTGP{huu*#;rHFf`u?7Y<^fZ>kM-@; zfIEM|kCjV)`>ueOGBxYrvK6|YWd5b9_(S0bwMY3{cx#(}dpzLR0-eD*8TT3xtlWo! z&TC-v;*8bl`Fb3)(S@TrC&5qWNVymiozwiXSE1Pk$AY)pLNq&}up*GB;CwKg3vS+F zqq0EH0}Ff%|Jre14T~r&!P;>qT$N0n$C_r_>?ul%7xlrXVWVHJMz8Ky4D|DlkbRCo z&0-KW%f1n^W%`%-bafhBO<_$7#np@zU-2c>i<^V>;_O&2u0E=VN4^fL@GQ=QM`R=6 zk+kR@9^t|dL8Uf>n^>np=!YKr5dnZ!S|8Ym)nN* zT2O7h6d^ zvoWVC!87Ye-UQmA-4*x^HvJXP#^_h>$HwqPo!0o+81B?V@Cb3UfeV7Q^SX^@4jbt49jet_+hs_1Mw#K zGTrwKXoS$Bn?+k8D4+6ay)!nbMEfNAS`)6c=T*%w`-Wj68ct9;`!^a(xA)M0O*q$s ze%mqZPFD~5?entCxuz-onaWAhqcrf}yqPIv*Bm z)4i#0FG}lF*Xz=8Tdx+jwTVP#bYBng+t--u5wHNX0pL5)weza|#wx8*7f;$y9tMJ9 zaE~4OAI&>pu1s*)v8x>b-B`aEwj*jvE_v_9;qSz;~ei2**=kts1rhXCJ_v!PCwA3$xyFMj;(O-yP zWP%s^{Gx_wdeJXBPy8bKxx_CzkA9ISs`D2f&>9OlX#SAT*ZMlFTF^S$w`)9ovRYLu z)4+9_gs&+T`+Z?rr>LmDjSI9|Ju#g+cwYqGY3EbKqmpEOg`rkx`yKTJEO#d>$Ai$q z=q#dZHN9E6TyR}>Bt78@jJz!Sll~lNZ5XgbYbS-n@m5-eckS^%{4wAw)NZ$+b{ir> zWi9U;zJ?-=aMb-1PKz~c+x40qeps1R_1ljmSlI)a!}buYjD@_-bzx;vE-LQ}EOcG3 z-!lN_u_wQW7lE#Rk01qI{2oCNuIl&Tl6?=q2j^V$ds4~1p_mul*HC%VH`XirJaO>l zJ^4I-Ls|B)X39sfsq@OPjeSM+y&DfM@b4E|5?cN(PrPQ!KjJ5uhcs1tln!qt5p)CoQL zI(~b_=j-_G6`!x;zgI+G2jv>=0}Zr%z7Bc0=<7&pUekT9YTn^rX%|BqX&k3=fS)7l zrq8(dQZbJ6>pR48u9OeZPxI?L#Bs9lN$96Z`%a>nU;JV8GW2t{`urSd3VzOJ;^(*p zKgTQjIpsb-2Zwweeh$Vgf}g`)OnL)Kb0n3 zB}VJ`?@3ansYqH|a3|?3#$QsNsV#RwSDxwF=vRPe+DpWN(sD4D%ZL=6LiH{oo~v&^9bRn5nVfD!5Z+ zPm$7tE+{?N)}b0;0?vIJ3tZ5|l1!^Oq`gpYke~C$MMd`BBiaJqp203%FYE2tn6kZf zK#}=Q_|481U_nACZ{>ttTj}I`xk>2d<}L1+M!gEyjI=uAD_a<>%0j9^o=flhQHSGE z?=Z&;xy));{Q86o?4zyW@Ehk?Lgs7&&Y6jyvy}qtCcg;Ek);_#GSsdj#|q*7iG3e; zuMWCse-(S$&#@PKdV%lh7o?}1xPpwDuAo&Y+*I|kIwMD$-6>MEj;p5&-`BWw=E;F0 zW~<+hYa6SoU_U=umilz2`j%MuEiPpZDU1~k@}w9@<;gu#7+~Yzsx^rv9G@MbICiqxRumc+_Qu4n-T zjoVrF4)6=BCqYHHS`XV|IcQFCAZyrs(+RnhHEhvcNFV8A4IeW-axn*4!?Bq=Oj>#9 zMx8w8>YU-#61}M<`UZSL67ETop#pK(^bJ)r-+dR@y1M7uNO%$}u7}!4%=5djo(|Ly z1T|p=3`h}ASBHbGLb*1LgMxztQUbDIOjtzJnkMarSEQPzo(XoOxD^wi1Yt>sNG(oRg*e8xDsHg~ zwA1K~A3C#xFIqyNCS3=z4uz6dn{P3E?g}9#tx9acq`T8l>dL9qIUWV6!@~^u`AAK4 zJ6)iq*jxEOHs;H3L%!l|uvLYexcig0=T=}A@Emd<%Lqjsk<%lirrp+(Se9xd#nnsSC&4<=wE; zCnFY+k@`VYMi@~>8UliTH5_FGZICDowU+YqZr?02Rd?-*&@=B2OkMsHNIBSw-xEg z?N~q()J3c1V255_Na}XDrDZ4&31ujg!)BTaX9TDO=znVFzIdDe8f%H`(kc%oeAn|e*F%t$m*dBH=sjse2 zb^GxK){gI%-}4grqH!4Yd9G25QmThsQPBEEILaMtj~rzv>geMrPXI7ZUxK43v-4Z; z7lOjKZ*p(RbrCJIhxcWwmaFS<#rA?~$UcZj^aubl6v^OIPsi>16n%$Wtcm>DCNHq< z>bO>(tjAY7jITfq12jGM+_N&|*}+Xv#!o6#&>J^e$yVOaNf4}};aT-X%X*KFoHRHo z_&K}g6Gh+{3ybk$OeX@$aKF?M-BM%M4vEgofz4iUa4r((r4HDSv_nPlnMl=R(0Tc% z46`eGOimd!T|0D1=up)@WD?7IIVwO2&l3EV^oJ>vm`X=Y>PVzNbZX#&aa5y<0dVB% zu(f`e7r|;|D$qPupOT=lK#$-V1np_HmCoVtyP~g>KloTW7D*7pDf?3NaJFr6MIuYN zYz_Ef;+do`;u-YA&Wi5Tp~Pd^>$gcuQEu5zOHqCixiS^F#*g}QjZH7F0qU|}DatBZ ziZW%%Y%E1ds!NuNr6|Yt{T!&v$9$zItB!6ypN*v`JC1w$ z5@tVta`YM?OV_OKP(6m*xIkY{TwZHPF@_m`rx?HD))J-k#HFW?t0k&MBwn;Dnq8h- z;djNLlHn5K1;L8DoVi>~_94v!(j1WJ3v@epNs2B}7ob~xM5zxT){QQOGbPjqfV$Dw z=L0~DLAkL$AAp7#QsaAN9{?f^dL~Hf1DqvB^?H4P?LGSdDcAG?Z0G}^ey;=lUM%SM z=#B3>ZNX=V-OpxEb`M}OU?0)LN6)HPaUq?i2slXO2?o2L#+?_-6wgnO^*V1!STzBI znOlg)<%1al0TAAUovdX~Hrp@X0n6B<$?mqMSo4z9NtB)oE4|0%mfGwq_;mq6)x>6Z z@$2?`PhP=hOV)If)=@xhb{D@c*2!GiW=s4!zSL!pe%)cHQhF7eE%Hd?Z)u3Z}w-cK+m5=&@y z(#qphVZ4jqV-vq;(JJ-E`S?9<>G#Cn^PFw*R^fYi&h-0xGFA^9(hRjRJ0Y`yIC|6V zubNbo5?jFiNrBp!VWc*u#jiGIRS~I;X+YJF1oUI1Hl~Zz#$1V<9CnH|+Y59ZH&55O zi_mo{J%ONQLwb?BD@%mCD~aChQX4Z^g4xh>2L70hUp~t3{s#+WmD8-s5`xiiT`(HU zmF|BC_hB^M?tj?HV>Ar<#{x#vnB`aq?#WJ~c)b8f*AM0$Yss--27C|UBqqfM?3*lj z0?YOuRuLVDD4+nBL6629!CaLE&wxa;}tAI);ucY7S9ULif@Bw#<8uSTHPWlv`Kv#U9bzh zQU!ofK!t3Ab7I)4?u3)QA@b#*PA3XO$bZ1`IEGDk!7hVZ7bKN;sbvG)1@V&JE0Uqw z48O)2@2^0O_r3*2c~VtDN(oj$Nn=;d5{487N4SK6G^rxe1!&(?_(9KgFYv)jJ>bpm$f+np2XT#6A1~&X&*p4 z=N>MMXx3mjnpV=$Px$@b!6GaEO;C=5U`B%+Z_&tX;y^}`?R;pO0nuq>+e&emuSa_);97uUHLx~UdKb*w{4(n zo(LY;dR+4YCTOn-uHPL9ck}XBbL?BZ4(sgj_jVY!yaAeeg8)QG!uwa=1n_{G!?8dFPgmx+kGG&v`TxXYFe?*i^ZOR#B)gsQqNpY4^z*+wIx&&vDECwgyEXM|E<#%cu2p0DXDHca?mS&d}XOYN+!*`%< z)6MJ$HeDO_+3-M{4~y$WoTb>A?1#lky5SOWmTzAIoCPow>a#r|#aW^W&T^jXjHcIXFTE0PXAJBMt0V^F&mu2$b>|dFqOq&ncoA12wONRbr?`sc+BROqRdzvch1z%?SCJ^vE8BPh zSJ|>mV&i#SMWWCBadUqg@55EjOKrS>t4O-h#m2*(AXJ|tZZ6^~Xx9N(;c;^TSCNDO zCIMH8epZIK3P*7juV)% zfTPem)u>Ir!Ww?6Ngy`4Ywp8){0cT%vWA1SjytGL?w0#tv{$srk~IXI+#=fKZn+P~ z=&RUdVGT_MV3Wyta^D(?I11WisH!8yQ648a%6TtBtdzS6liwFs| z1BjnkMEqpoe6@ZO`gtxXexkZ(tL4GxyWl5J?U@L7iy(e-PQXueuTF=%MFjjrL-3Q? ze)x%@XffO>nV=W&lcO(rz)hz3NimO~SX#T`Cl%L?pS(`ym2zHaevy&MzP$Q*r?(6P z7_+|NJ7~(^rJ4D?u#_+fmLir|P0x}qcy61K)|MmZDHBH}&ykd6P29wgQlJDa(2rV{ zrj%5Fd{q59DN08h?n|C1X}EZkTiWnRzlM-S!a{rW+>g1XJUBGZR~+{Ipe9Lq*Os@n z^P$WrUnZ8zzv}_yiwNnc#}_+C*P4!mpEQlEP`qtvlXOQhekrYrNb#0*Nu|h*2NdIL zO|9VmO%U-$pPD8+3wunoP>`}$9@g#vLJukZKt^s61@N9hIkug;0GEpbiiiL1#DOYn#gN{lTb+#*7Y9KvrZ#_gJYX*#y1{cf3h`W0+k4qT zP+pj#v1L&osY@a0o6RxIU1XkU&Vu)my3P~NQEpwADAy~^mqQr;dXRZ@=$^%Vc7yhK zie!#JAKI3`D4C;rzd7pYHKcgggHSnEm?O8}9Jvo`cK+ot$s83)=LkyOITrqL7ujYM zls;gU535Q21yt09;?8gYg3G^<&t`mzb;4}D`8r`rAcT>``}r^{&Iexz?Ad+44O)PO z!0y8Y?3|PxY2;#SaGApws`eA5VDwhJkRcRXBE_ zAGKnMbf+&oHEU zM|;p?Qzd(}2R*h#vPZhgl?iZkenOiQrADa0d9%%P~j>ZG+^}6|bRZc|- z*3(Ag(KyeM2!*QeNLKbsq$f`k?;e*ym_3K=`V8N>vo1A&rDygjzj^|d5uTGh$2T|K z>HrTR^DXs*i9guw{MjqwJGRW3BA1(~ToDDV`_1sQjrxgD3%HZi0-oqs3;4`E!K4;2 zcN6Fts0BQu0%k@ptp%(YbDgz-<0QGiVCeTi7xeY2XY~=W1yrr>mUPC!vH0KRCmH64 zaJD0SKJ1k^+k`LIowJR_sEC{Tk~7Z26P;#?>WLI!++&fJ3XTVHz+@TJ=@k6b&l)nq zC>0t2T$!Rm2vbRHZ&$6Zn?5AGrH}Hmvpb zm8?nd0q{$4O%enmx8V=!3)$N2YVlRa)R%;{-u0+yd;bw!(fW>lj^E-WOidkWRMSc5 zTrHV|Q6ul9Vj{^O$}xYK;maS&efh%|HqBlW#J-SgTw@wpz+GUUZw*@L7-?9#ej9sl zoJ4ZVTEZ!L>_cH{=ls$Yf5wml{BNkDC(ca!U^iqJV{6u6muOU>(Wv$emgR_ zg`&_4&)ft-i9PI4$2xf;J27JnTPC|&E^!^voivw7xs<4PJG;jkKGecg`wnXYZyNrq z_$~z6cdHQ`;yAN>EeNLDnW&UU@kz6fpG~k0RBr}lFo;Yk1|Bb+>OYGv)VBg#DL(6t z*lSjYrjbYHxWW9c#63fUlcNE>9V4`L-sj=?2qu&E3k0d9Q9uA{vT5l}@kA>Ck2!Ok zk$(jzmaaTADDwKtMT1r&19?VJOhsaW#`_y$p$=k|b2P}^F=2SZo$=0_g=FG4n+gpl z+`;FN0@21@f*nuesEPy5*x*hk1P-s5SuZIyOus5Eej1&#e@*>p8j!e(&J8qi!&?9cx(ZIr!#OQP1^AF7E@1_lF=qB7e@{AmQaQT;sL z1!5wh2!@>>Z=MgQn$ly5{zmrHW9gq^317H?9&HpE{Q4J_jePA+mmk+#GqxKS?KF|K z8{m55i8ii1S4mwZuIal#F+RO^KJxnNQ46u_XFD?tJS9i8*(U~_J!7c0p%3&B@1dm6 zlN)i}hC^ZLdq#i-fa-g|HWI_tm+l@goeK3L!O-R34;ANg87G6+Xu~z!)T#M$6N65T zO$!DzSyg}s;Ku?|;)Dt&g7puN=U>$zyy{Gz9C)7=rwxvAvB|=#W^A^=joPK89R1g- z<@hSNdArCN<9pQ+;Z@=}EjUF2q{AC1S}pYInZbOoE(pC!UnHMXmCLQN^@m>FE%a*0 z78lgCE@gU=8q6=-g78Z3okD3B^Jf*!VWj@uD_oFY{k!D@hQ95qf7hD4{d~}FQvc4Y z6Yji80qQq9j9TwX;rkYE@xu4z$Ib@o_jZwrbuzvcS?slf?^Sgmu^Bk(k@6~`-78y8 zLSgF?OXP@1D^kA;F&gg>Z@sy&YYupZ_p=3pvr+m;)lxj|usFqcos?G%YfA8tOA4O;)Bjt^u={Vqc`x35li{-du018u=-m&mocck*9wli7g!y{rNs zM(TGvoazfHMC$ifl=|(Qa84nmew$D1d{09CzHs|Nm-!YF(iaa1@`dz0*4$e{_N5>9 zo7#ZxG5ytZl;|sz!9hIq6;28|mG}yu!KQHxytc2fdvopra+8EhAaIkL1zfO(71Y%v zhW?7ag8TX08saPL6-=+-E9`|=v`JoZWnTgANO{|WoJQEJ6hy_tKSC0dZdt);8Os|X zlSn4oh!;K>%p%3;}%!+1i!&NlUK|$6@D7x z_>}m8O;Wqw@oa*%n;-a9|9hwkGzo)A&&rIgBDaLdu`0H3OUM>j+lRzkLWD6S2u_^n z2Ob;L+i?^1107O7FnU>((>*|u)YYy_gHk$U+al+(jV9euYS)F(l-l(#R_WxU7C5`x z_4R^XZ{zKHMf4Lo4|eK$P-xL|q;+BBDrS zH@{9{<0m=ES zWlA`y@l`xP86)L`Yr5CZ?wJoxa0{O-fIe7G)?YlvnDc3{Lt)0fT_)Yz+nybm`P`@c z-iE4+)TiuLLmP9Ym?tM+a}7Rt$p2&SOW>j^yZ`6T=750XQVyFAZh@fUj!Qa#844Pf zZ(%MBq6nrq;u6_*Vc0Y@EK6LfaVcpPwFOIU5H(aZN-IjMvCOEfD6Och{^#8LoZ$}4 zRb1+Q`~B(jzMpS>IdkrFpZnZryXX0y?3^ULPO0=d2OsNhe)3CaA7aC4dd7~>jh0a> zH&*ox=3sUs&Y{kG&WLMYf$35n<-Y5_QkWdwE>4cvUiz4hU#?9q$esZGKkjj*OkFz% zdgte0Mq{bShm9X=k-DSyNqBAn;+{~DM#vB4dmoJRb@7lX0CmbQuAyBi^rzxCP1In5 zeW6pWE~?;I4qr6Oart%4zGq66vHSOq9B??^K)RNKv|!{B`w`fzN6l+!n1VdxSMBC7 z6>D){XkhZ-(XN8GyJ8hg%ahFp239mSIUXC|$fWDgMqbXw+8UWy8=DlxnS5NzQgu*2 zU(}w3$vcK=$M@eB4QC(@v4VIVI-38JH^VY~3Brq)X$do}rK z)$fgdY8}M&rk`&1?sFP{TGx6B7t!RWg?~2sY5&1l5%kmQBSQ)+;HNg9CFMh#{4~y^ zmurFB4=o=miYRy0YWl#ECHRe5i#rzOLL*PXDaE%Y`rHv-Vzr5~vb4i@q%z(Fnp2QP z!_)@mX?(YGk|zH=^e>QGD#VnSR&(9pJ<4|QI7}V^C8M$o>Mq^<)%&nLUu?hPKk#?b z?Qrg`KOj*hvU|We6`MlTW7HSIcfSkh(~Tatvu$I~FmS=3TdCoSYANRrbr{v*X{rOE zAMQUl*;P1KDqzlb0tWVPXx^fu&4)YAF)OsUGa+qZ5kK(J##YTxG-qqjBRM|s^_snf z(5&s}8{Qwt0SPyA=*ZF&8V8;$1yS#X(SG;|TljL=&06GCrx)(}^P$`}?1F{wsb)aZ zxpaO{mDa7PHP)>l=SIEHL8%t*@)yI)-yPsuugQZZxYldkvJR$Wn_cU5PNRBVUS^Jb zY^Ep-PxachagEs?>X`cJEKx_74V3*e8#{WVD6;OcNMDQCGk7Q2NOtarY%SN@p)~N& z?nSwNp+dS2y~#9Kh!;A=;)SF&&Bql{Hzd~dvZIfk(0ooSv1os1P2XT$?^@IChjD#l zjb0P&Ss+p`4!FYkE6=97=uZjHq1oSI&F~%8fx1H!ciZ?o?4`BQStk+Se}09=MgF|- zb@gpR{oFet43G2T%GKmtxenYk7~(vn?yHMyMKRnkQJ(#+R<5jh=?I9gzD*AAc zh!pcIhzr_sY_O6A?ZAqmjjkXkpiYbOBge-#ydAb3Z@?SY+LzhlXvZ1xik6PvR|6}Agg307u6YwO31hHOuVp}(z;%nBIQ zC7AWMLM%X|v%RB)HYl#|*jWNk{R3_yP=znHkcYTwKj7N_-S-2ln$r*5;`)ZV?Fa5? zMn7=R%u-jY2O9Mj-n&a8!?loxH_16~fL*r8BSkCl)2`4*P88}zTq8;9#dU>*N|~&K zY&7nKM>g&sn~ponIz%+?ADfOl=JHjI`p2f@&O;r|jr+%YT<^GYIrNX=+GP8Du|Yk} zVK{}bKcxT_0da48VAr8zF4`wnvp&(H3KZpVXVWUz_*tnB?-zq3S9YT|Dy|NaL%p|!<%zoO z@9x3R+>x%j?FF$viVe2H`+XI5By9smLm;EcMYrA35njnF(`{FB92a!aSwB?G->cic z_d4po8g$!1DVT|iH|Vy5z$WXo;+(qe&@s`%ph35NF9qA!-Rria?qV?gOis7mp{1)e zL$}>%bQ)h;w_Rd32a#NVv9FF6`V_IR z#`zKSDUI)!#RoR%_qph{E1mc1qTAkZuMHZeptjO*uMHZeHes|TaX?uOQ{mTFsbPvW zW+j2=%g}8X`kX`8UdI&ln5;z_da-46+jXOX^EkxY02M zwFTWx?seO_ha3{!_KGh579CUGL!#TxkGW#qcJX~_x~DI%+n()wXIymK8{U})EmN0w zra{Zp^__8QnPU6Ku|!-{H)xsS(~EX$nGTnG=bO&ZV7(-EK`%>n+a=|f>b6VEFVSsp zc;{Vo+nxQ}MRePZhGy%w?`_M{F3+CxOE*^^-GQVu7oG+*q9OdjA8s-kH+8WOtsOB2Y z9q{}WPBJe#cfiNfjJbm+hG5~QPvIMemzZoksP1cpb)LBXb(uT3+$+cz)<%05;;p*g zD=ZoWUF1ghdYe~66Or7jzMrI(NbdEpvkkc1>k#q3pjVl$dB*H{6mz}^HN~wIq>&-x znveoQysxU)z20LvUk+97{7CbHb1Nd$xldJ>ZO42!P_Hm=!V?0yv{GZaK0RIYzU09D zwpWXLQ{ws;&xFgJ5zsmJq^6JlRgw#wUX#y5+h>fzd@tdc@5O{Var!Cv(cernc(0x6 zBO%Y?23t=ao_$ZRa+VpOVP5ccJ4>tiuw$|dcTDVig_JPZs+>~`RUgifD%|>r?LUHMoEaKvgBZPq{@UWGILi#OR`ZU*=rI=zI$+0~^HX z!nNCe|(77V29ud-kb{WB|LmW{J4l^wmw@PjNPR( zv-SG&n!HP=H+q(Ln_KPV*?Qqd z;T{^j^X~HNN#6NaHV$}eyPNWlZQpH$yYk1Ej%w?s{Be=d6B?J_I2h(W|9LNBbtF92 z&DbnUB+b$k+zQpfwu`&eUW0k=2F%KV-vjKe-x)Vpy$$|s5Jn|Y@Ie=)V0rVzvp=qR zU+`NB?Z4n2jWlN-bwMxo>!6H;#Z{6~q3AByi*pCzY^$3*dGtFN1Jv0%>biDp4A*t> zk_^ufHpV_r?EW#h!n=(UM~b#njzhOl?UL_hq8{p?8Tnoe@I`|((Zz46m)ci>82gEW z6#CyCSAQujbYo7W7zZKILeGZiu_jvRl^6~p(L%S0foM`K^mvE~XsU(&5&lr3g>DRP zs)c?AY?^4HD;sN}>&A*jm1v7aV6_lO|3Hup z4Vj+|70bVXrUY7 zXb^_bOSRBPH_}3P>Si5SeCytBLI{0lSh_v9bCE=qy6(%>ta5KX#YBo-Hsbrw7*0PUD-iA_wfP6(fvbO=%@5DTIf+OTIj|Z zm#KxGC-i|XF>sCdmz-K$6DbxNe&aS?o?_r!pNx@?Epg0Gb`=Q40AJqXB}S#6bB+KD2J|sps2#hJo_6Ml5bAsvjG}#mb7OFsT_R z1gIUZtAUzwP?*$gA$BUL4iyAxvV7vJ6PkLQERVoBXRvd!JbXu8MSwL}{WC2b-VXi~ z1FW|&mB0Ri${!A&!Wj9e&_2ZZ1pA)exP6Fm@+OVECKtxWW7}vN8(-VdHYQ@*NDyzg zp44O4S%&1=_J(8Ih?2IA%9~o3&Xs8!x6(sNnL0hFZl6hL8wt|3F~4I!-Cmp5A(^&O zOl@P`k`HqoUNyYfHb7ui(l)e-Cynve!I`pcV+j@GOyZ#+UWHPs7{lzqaOenX4{d#i z>&^&Ls?g3&sD4jVjBY!84h((48c+!;=K<<3*v@oDa=-iIUydGD%>_cRS9#zJlR4kN zP~rWIe@<81s~Gl`eXk@YK5H0E$l>!Jm)xHVuIhU}Qqd+^HwwS*BKc_lav;6RgTV{M z#Gg6(X>SL{_g=vG-to?ucy67h+Zn_7Ab7}PXx_fjZBeP&j5^sMHV27mD}qRzb&g_= zUat~!rn}KTzkE$D&EKcVg{!RT?6lc`s8hcJz4IvXSk+bQof`*;uRt(XbjK(-{(Oac z=Tso)1mz0#&Z$6GuE~X)p>|=3*;Mb`<{{POQmt*#F&n+?B16(-XEgz+GV`Y?tiKAUKIi3J@)Aem{J!= z#`xj7T1aVuV|<=b%xEHruhWuYA@%+fd^2@FD%wPqLqPjkV>~2L>f%(RyfdYPazu^l z)=E5fRU;8!x8bKjVQhXtZfth_P5|-E4Kp{l@$EP^H;r$X%-g2m*lZR%CY^J1oIfU) z7w2uGrDJo|%+|f-=53H3L7W;rGc_fsmd)EzrDJmz%-ihp^R^P_)$jc(*X~90wrrPq z+h~}##awLO_5dr!Y3+=oK_yl(dfjX_;&B5Sn|J!I8Loq~i=PP3Q5c)QY_$kyRKs9K z6&(n>cq&1Yyjp!+h-BgD05^a#hecAYSIMu%?B zhD`z8CfM~GfU@bj@hppoL)`4Z$yoC>&V_w~tBh$^I%C?!{UmXZgzcA$yGg=jJTI`Y9p>}LWFfyChj-iC%&I1cteDV zL-AsdJx%4!QD9aoZ%#`YiM+Yet-QGzyED5)-kiEKiM+WHIg9E9?kl}+6<)q?ukr%@fU3MH9@W!#Sbheu#uGeMg}h@~%lw+%Ef zGs|lxHZXSX-HpC><8Ok(*x|>77eB-uG@J80T>8_{CPLimYj>Fe@2W&!+br(BHEI+0 zy4BYnlm@?Lx$f}us9c+XF3&C;g`+%X&Nfj7?<31~hm|bbCd@*vJNNq9;n+`6t~*IF znzjkhM1VXu?)9}D*k?)en32AAxsb=KslN7cX&y7s*N%)(UVD9Qt~2E^YmUBl00i$r zoPRU&m|gZ-Ui?Ji{H8i%^zXtq)mHH3Q5{wEo-Ht1_Zz9$jGmI6y5f}XPqSB63@Pdy z>TZK^$b1lTmuT-F<*_HPuIFGZ3w-$1I;m2sU2zQ>JHV6q= zgS@h*z#h;6D&LvJY&fQB$nFPk=``P6cnFqmGD}LGC>JFYO(DV;WYnXc_;jsj9)mbeHs_2z_}~1&Lb{qMN*q=%@IpwMSd8 z!C}JJxHuuwY}ejiFwYUb?e6cj&uDm|{Nch15RIE|J{jeeU4G*Q-H^(?@ZZ&ublhN7 z1spf1j1sr{ohQY2dStS*>Cr}z9uYN>4y0!%!mTKsvx{>7XvkHzB&Z>M>F$u4B-k#s zpL$@!4RFFd-t~m}nR$Mha6CVscP1!}%3mqSIOO+lwFqS96rE6JE+U&|5yv*1g&Gaa z-bPgu`Gg1PK;+m1UkdyU#R*|&O?pJ$JWB;TVE5>b(-Ha6iwB@kJtT%rx8cJti1PUMxQF|imQbUl_DX=gncKhcP=7}hUA-kK2x-*F|Ww- z&c@8i4%!UJn{hm-L^ZU=IvATF<`rZKfoR4INoK^gY|6~ff~u{<^&0rPSZc*_TnFR0 zxZywFcZu#dzRlPm{C>!@?}y?Dg~u_3b^QIpJWbqVXXi0e6pg;w3$wH=_xWcrPZ^HM zjh^8~`^s*Ye1@2(%*``=)$v)xC7+>~r%V`=8|R-@U>+2iG1-|1Whcv1CXUHX^Uq?Q zGPyC?!RBc~o-#pSTO5-y_ncE-8#U4eeQoEMEX`A9s}S;(;Rf)yYm=wU+y)|hgk(Jq z+6uo^o-#N3+9?XpC;5h1xtlZTIxjV9UmKpOLXI*cu2*rVq(;b5W*0X9;6x*ip6%8fGGUBgXtsjh3p#x@v5nyO_rICYK*J z(%4>q85-MnHdkXi`ieBRk6n?*_OEaN(^;p@)!6?2N;I||*Fs}^RIrT3_E&AC8rv&7 zT?376+{@qK?kJ43VK>&MmFP#uow%sRc6-+7#Idc3#`bX+jn*a_+xM_mDSq<4gvR!# zSF5po{9+p0jp~UVp&^Ow&Wej_Y@fKO#x*e@CpTYX z`$ZS07uVQ+*~RuE8r$E=X>9*^N~*Elwe!DAV_UaOs`I%W@&1LIrJ4Ro*zIOXgSFW$U zVhPhUy%K%xb1VO5eQl4n*G6CaSeL&?UwinEe}}&I(Y1ezzV@aY{uX`h&4>PL`r02p zCZn&NcZZ9uaaA`S0s%k1zNq^|jkL*QVE8U)w(V@;*q) z=xbN_Uo(AeYo}|buN~c)xw?9NZB-ZM>O6e`yfS_57b<1+wIA)`qOTp&qOaXNeQo1#hqGmfj&*Zy%O=@E%%=f!W8UNEl{^@zf4u6q^@;irvff=#|ZH(y^n+3%|KwYSnF z&iN7ga`m;Pi&Ak1{EGCo$7ix}{o3kle_MXd^|fnnzDj*<+_z|G3%Cxr=kL(h#>=>d zA}bE!b$Dmo+ML`=#v(&63i9FB}?-KONCF} z>uXnCQeRu58!W2NG}YHW*C3E7nl#ndzOAu%c2j-r9gR(zqp$t)<>+hgx^jK(sw>ym zF1*l4B)j?g+Hrq1`f2m^wY@yArM~uYIeqQhdbsFo&%8$Z+JCxiS2WSr#xoX;bWR6w zpGUarKyPY}zP2U#()!vGh53ueZdT_H7N_hFD|n^tJD8?C5g!wQu{o^tGe^UVUxch`R>*+6ymFU;Ef) z>T4H%1=AzxFjH|UeeH9Xt*`C4EPZXSdZUcK_O~0P`r5}j{TubQZ|fq}*IpHKmHOI$ zUWLB4`+lI2zP9^*z*S${eLv7hU)yaz&_rK*L!;h8PG5WdCG@rbY_vpj>T8c|Jnl5r z*KRuQxY5^cI_@;p*KRuQxY5_X&-IR*r>}k6mFsKox+;C`Kd(+-yG^4{!2fId+V?@9 zO*&9wY_N7&|03IcS%*4?+wS8ucpwoKC0+F+P2xOXB2WdQfGmsa*QVqdgHGxV=I~e( zWHH$VCx&b_{w3an)oq>U4<-7MN5i6%bR8!SWulPndvlATY@~?$dAo@>sOe9)_0E#~ z>C1Lg8vaz#n{%d)dHErJs<9RY97UPQir(hZse0{wx0H4)%3_IY?Dp7jR00!nAN+8u zc7`R(x6ZqKT6`_(b?;WsBHg*3v@eL)ePIlY)prBsW~dG6L-V4pCii&B!JPG!gNq2fZ; za$9I@QFxUFAD3wG+PmsypLf8=;*@VJHC4}VFnFV#rm$OgGT+rjQ#Bx@qZd42l$b;r zL#8g{`Q{TJX`Y6&(B+^lzfd(A^^Ni5+2)5zDMU_dhL70s5+ z!ew-;JBCs5qC>~>VTUE$pUA6mrL9lZ0A9=Go7UOA|5(R`E`_jp}O}z_xuGd3b4UZ4f zahis6!rjYM$~JIE;(gu&NP3duIbqlhbErHw*jssS+CXL6TO+5at z@jOf?oPVMgc`md=Mh`YCPcMXK7RHd_psF+o&f)k=T%d%F?{Xn#$Mr;A^X zw2ZPr@(@eK-CCE#m9wh-GT=B697e>1NcNWxfVd#KhPH6RdD@0oE@V?p`A)7g6xiabAL&&U@nHB# zV=KWEo(HQg$8?~o5FH+_fwU?2V{(+G?O5g}i}qCHk#=ESwFmI%QuwI}r_e0EOKC$| z5qD>9x(UzPML%}7+>D3bqn9^^AKb3)IDp!9a%h}wz!6EiF8fS<_?)C&gS@nT)H{-P z4R4}%|LzSh?&qNstHa;Rh_ay+gz&EQ70M;<%Zl%s_RuEGJs0EQ`Iyb@;h7^QIiWH^ zU!l!byYv;7;6su!L0_S(kdz4|@rxpkI?E)yT@zMy8{7+;RUtO3_-ISyh7K9{qLs22 z%@UomlynilikfoFJFCYOGkcw~RDwp3yL0z$bR1{XC{N{=>NtweMARt2KD8T6wKm=7 zxp|a_X93ce_=1AHjojQEg9FKvT23 zXgJ2Tf!l3{hGWav9sVyJyDhF`_iHUJYaVnjUpOQTrPB(9c zBhs2DQ^Hf<(q}t!&?l{StV=GgPLW*K=R|U#)PT4ZQhcf z?4zHYnUM|WqYJD&%jqp%WrCoGfZ4nouJS(pBqb&Lp5o+cs|}@5M$lEZt+7L@`8*UB z5!Dkc2T)>br0z8RZuG2Wx8gzk31zlwxL??7$g{P2h89;9{mXlj7SH*(u+qJn?e@1? zl^^Z9Im+JV4zFP#hWa9iq3$+z9AJ$cmZvY+N0|*jRKFgc7hbiOHX%Mz?;@w02JNYC z-SL7lvF+IaYcF-k{Qae*@pG5*h`D-2kh%{DBRHZ!cQbl$){w#=F9-cLc`!GW3UuoFrTWHarn)819rV|ri68?s8DI)M^`z`Km= zg2`HAW^S+j`jcE1Zm9_WBpDToCGc;g8_zUurTY|4{o~^ltP1u`^p8E(eu-zY6;d6A zlsh&m9@&g%vQZaD^SJn$jwEdWkJX_i;m*h;$_@{Q{*-f0*gy`XSn^K9Q^@e>sdi)S zUZd9wL$smsAP5#k0*Gm=`|9kxSEV2e1_Frpjn**m*mylNl?A{F$dl5B&M z_|-P=j|6croAiyBgespl!V&vo)c{a9exF1V4kXqZGp$2QRL}>AAu+$M9%}f+?sFF9 z!rnJZloobcgM2_v5477Obq>&ExHncTpAGfLVONGvTVsdb zgW<6WYvo+wdAsN>NS`;;GxnC(GnVLL>1H_3TiF~-H#(p7V`3NUeAZmYP}@t-uSrf- z#zU`6&wAbbgW0ji8b9mt^sIYK-NUO?;iYE`FBnlIV=je_Pu*uk(d+HdNF0(zVx}LC zo>px%S_i~f=dC!^dIm@$7)Tpq-I7UGk~B`z9m3~8?Zg>s_H%b1<)9+f5EDpi4A3ox zpPT9D{ts@jI=sKO`Mi&V$w}4>PM=9UYYT6+Ak_+Tn5iI#DN1^p(xbF(bPG-Spppzy z!9~{Ao=155yB`WkDPeCW%&J!>>-G(S{tM-Z&-IJ!RMod8vdAY{m*0tzkgvQmbRS%2 ziAHhFcc1hwL5S?4^i+X7^9QINSse(*Syi?BaZjaZ8L}M4M34$xMUYY!y?Q?=)aKj5 z=$YSn^EdcT@cE~-cNd|t9>Rc8tG7)CZg`!?3`&s2W%yYYR9m;Pkg!V-bMmuSO2U9o zstPF#I47(_Wn{PP?U9fZ2;QB^jWmj83h$G+U+NrNFA)HIv9Yxvne~AUV=L+qUSe#u zQK|vw*jgm%Hf6`wF7C$G>|T;S(hZV%g3apslLpPL$<4E6;y6@~hfATmnXR~bjK9eCln?~cH z%bu~&z2%FlLrv#APkUT1=tDM|^VsZ?aj?mpr(d zBpnBzfpM_T%{Vxn#=#UA2Msh1rbx#@|9dA{?M&L=bsVISYg0OmgV_-UssZ9Sm?;?t zi*Ov|eQM3#;y8%I=skMu{x)Oxw-39&;3ookNCgJ{A*M4cs=)OVrkPQorhBo+1@nq> zALSy}7a|EAWE2RH>FR~|(c&qjdC%^Q9}bupAIp6tj9s2h$1XQoLbz}45`fzz{`NAo zgoX?4Mcik1`NqJMgqUQcVkb^J&Cb}{*)u)#H{smaCe@7tpd7p#4|u z1t4XJ zmc4+B?z6Y-1;~8=XxR&B*$aRgaQut*0&W-fK*YEJF&-bI@3l?x0=dTH+pZ`czl}2{ zKoXB%t$B|^fpcQ@Pw3Cm$LTWlyB_8Ar&Y1xl0WTKANMFf+ONZbhM0S4JicS95x}&&abI2wB8P}{KIhTQ5R)mTaRpiOg{cyd?)am zncnk0n-M;n2_MW9zc1TT=Q**+Hr!L^{8l!7^shqh57*fD&qLd1jKbLWaEyI7c}82x zU!h2a&)bEswmIYUpAA<-m;`IK*4|l*S3Cpp;-L`qZ4LD*zs~tGyc}Eo@p0JyGqwhY zkmSR16V$4Bw&cfle0h=?4>I(^Sn=M{pVh|Nv=!bT`xSscd+YMH-vy!LN+WzE?R)2sYA>~KL;Kzl zI-xqIouqy5?&q0xEdC(&apKwD3u8mn;MzwX8%QzTf^CzqdzN0TZ##Pu$LN1yq@nOpY zaPuEN=Hljm_{q|#)8XObDVnO+^)(Bl?Vfuz2ZRsO+4=}O>^!^McXks8FXRTm-j8D1 zrE&1$vk~{_HE@sJnASgwgct6deh2-HI$KA*#g2{Px-MRl<6;e`WOn}uhnw0cp(#bR zopKyr%W9Wc_=$SBcgUguaMTEkweC#^=3+E?xksL+={yz1h8Hb<^rt(y6L+;_@HAX}Zi z8)U2Fx?vVaJN`jCH*8gLa%Qfn8{PTw(GwsaT~M(Q?Ffq%n78e)w01d^epj8}sfI)8 zrP{4QK6ohIBTL(`I=^_Vbf(ZA8_)k6ug@E@SAB@FAdT{eVl0S58Vll@Q&#idMPp|v zma8FlR*dCZC!A1_i=Bl=XyS0MDNhnRTO$O4i9eK&oz+wDt846RB?kSB5u35mP3&yn zoJeQZ*xzRQCes#|fxS%|H*zbE96)kOwFi0#|D#VTPfl_xxBm)NjtohR1)b3W`oMtUQ>Xkt9P z`{!IH7bE>L{7{UMmU+%9=#%P|lb|*sucz2Xo|*Q(F+w%SZ0(EPm5|-D-5enrS0cr{ z6mkrnHu=13Ucq^1Plcb?(9fMg@emDdP!49#cIU4hhXq%a2YiIR)<;GK1Sw-8q@s02 z46l=FR{kH8rBU2#RN7I-bzZ-x^a8$h5! zAS>hSKt|hJK}PAe*3YhocHZIDH(qP~HDs;K7P3}m8Zpf!e*DWwISBEe@wzjtJrzGO z;b#mW9UBDAd35Ox^w*VAEteKlQ>0?6shzrvLHY-m0@5=i+MWGcR?5%YA z=fG4YB#-pG9pd#$sBiqNI~;n*b3jbkC%L$v>A;nGC9Kr#;&UybC~L$09*_(2RBKEq zsiQFG;s-oF!Pn~mzVgY{T5wQ=aenm;4s;lEE(`*XdVB}A-r4h^Nqj`Tb&r{tW0i6i5EWb3ic2*JvugKBWNa*oKAJ!}}P9D(D5r6S~HHr#LcJ*QwQ7=D%F;}(;9ZN3bKS_HNWtFd+aE7WonhhcD8~x+N4?J$hjeI7_BiE-YJ6 zhJn=%*TCutPmF`J12sX$hv+%J|4u!=7oQ}Rl?Q%?#_F!{@O%dEi=G1YUU8>Rkd-jD z`OQUEqE!3+eAoayOx0G`DK)+gZmoF)wU%tHx!qfvDH&T?tn}ZJ&sFn*IKIZypwqTv zSn2jE>~|+Xn{}Q|$@nn4@bkv~F1%%8ADJ?Bud!~Q$?GLJhm?SmHj0&=-?5)=ug&X_ zX&rQaLhO+^Mw*8J_XN!EnQ=WGhkZi_OTDn&Fo-9SU@Qp zNf5`c=EX|4W@Y=jEo;^g*sC{6HBIvF*l1tbZ3ZkN1x=GC zdkHOT)|NG^L=%O-rxUf6h6BBD#`iFs@jXvxe3x&X2xokcz!~4+aK_h9IOCh@dd7Fr z{FmU2uaVC9);xU>HvjCx8Q*KNX8j+CPrB}57F;XD_0~z_dO7-&5ZCMc6UOy&Z(l5~ zx9*DKdWXA>>vfG!8uQP^Ckm>t<>vbBqkLw+NnQ^_`ysMAvr6N*X zud|30*GmS%JwRNq(?BM!*M4!tSHGHz=A zzZy6HHQz|z65@NBAJ=Oa2<<`R?2AN%Ek4rztXr~@rPIVjZ|#Le`{Q?SiXNMt~c|ai|cj!oG%&I z>;5@6Bd%BGIX5$|*Yc0W^=AJU<9hA?#<*Vb!CqlpulQWABCc0-a5ZtgV)?HkuGdQ( z8Lu?1x6XZBZ>q~TQvUjuxZY;P^=@_fMq20hzZcirQ5;_{Gp^V9mR)vSuQ*0t={Hg~ zA-mGJUN!~1(zssQ)Bh*pdYe3#W_=@V@?4r5*UM_=O5=LP>t3U{Ua$7oEUverC9e0s z{Ef6_&FYNnWt~^cnzcD+QDxSw7S}cFtd=$FYPHz;wyasjxZajEtCz!FTyM*o6_2F~ z|0Ed|ivOjvsLolNcuN2B&Z4%gSxaTstY()rtD=S1($2`Ef9)}&kU#5fGNkKF zoL9Qpk=<%*sza&U;-9_2&^I_UNL}vmvgi7x>ql{3DZYh9Lto=wJmJ15CCFMoY`Uoq zBwEThq;%De!XnIgr6@~LoL>3znH)vF|FZumtnCXyqu@^bZB9_}pzwAnik#_>n+^T+ zy5xO4F1oB=f1Kx)Q*KB%P6_f_pU!+hARf?3OFUy%Vf`PWh!MGtRg`R zW(Z(=P=erAVw%@u&wD?rQ*N8ZJ>{`vP@zE&sT<2T%=YGuwn%N&YGvC^D*dwlm1g^` zMsrm=eOIj-WJ@geJ5|PR=|$YRr%gGv3iUJI{S2iYbjBU(eFYq*>I``GeT7aRIKzHl zh`#SoMbcWUmo`kJJP^k9jqjpUb<4~et59{HZu2TOYqL7Rzh)2MvmDy2SVf4gpuKWu zmx5DyW~22hZI-T|QSYzbhh;}ylF7@mjhamzUiFFz_nf>ePyF|IGyMB9@!u0HXeRuV zWK<}yVNfnuY%dG%E7=sTjykTJpi=n5eA~u7$je(}G(u7>6epdmfOJM+yI~&9B8W;Xg@6h2p>2w$Eh$7uvS=+PCfhW*w&dH|o&y+Sj2k zw8!@91K~^c9qzrpZjEhLh4^a3y*en?#9H~ny8_|mD2MlXx(QXNZhL8wA}St~Qudi{ zHhSgR)V^Vfp1LCFxop{rRwkpfFUsrgXxiov!L{@**9v$UUPE-8|J-teekb%f;rpS_ zQKt!g&c5RAM(FgQ19nut0^K5Xei75=?&B-5BmL@qKLv_~6!+0|+2<@^{#NjVeOu&R z&`I}(J}PcE^ikyjVjq>_QIORx%QrmBOSw{^9ji{UtNZCs&`P2o%V5xM-l6kdo2D&kz;NnA?^mkghbW~Q;1h|M8AYR9rVyc9yDn-w9DZ) zcQLN;IIV02-P;{%LE1vm8tQ#=9`+TvVqc-nfq%a#TI@ISu@AXP>^J)9>cJNONir%F z4bMw`Z;!eUZL>!0;j)Um2eTR~dBsb&4<)U|`h0Pw$(Z7?jMZ8?i1+o4jfeEw$|SF4 z4mEbQLT>H6EV!OE@_hN@K|#O4h2WngBeV-Zv2D1$R=mr#-g?gES_zG>#e4>eKBePP zROu|`Q{GEPpZ3=mOv>J<(yRN4L(mMN@II#Sqed$io27U}xYMDE$O+;IGg_;j{y;WiYQqj9pQRT$?w zctv`S4w)0uExSYEt*l)0jS9v0FyQy|(RayFZ5fzpo?`W=8dzqWYW1!eSnrr>ZF_oP z#D;0s>wX@cy8h`RUe97Y5Z&xW{VTHaKScGHdtU5t;qgT0^!EDQmah+N*j< z{f|#r`+heh;@DHxfrUdecRXtyvUg}%#S7Nq{IJ?{W!8~9hZ%BqS)=|M7IV7Ndei>l znWK(aW7geRviT!xY~77D=RdWM-!h{9_}A9>9V22M`^Ng8!y_`U^T|p0#Z>aNZ_ebJ z$jbKubEbY4S^GuLoWxU6x*icZ(|1HCq>RW(xe%Q>XiQG(wo%1B#^uaDGpg*sEje?x z-c-|LT2A_7qw8OtlVkaFv|;tVIT>eSV(xx8XYoU03RbVlS@PnT${W__Jn;S)ouTN- zoNVsTF);??vpKok^J6m&_UCh!a@AwY45pWImUF+3tv6Jc<*ejvu@S!UZ{$429gI!& zHSWnN=FY{I_*yD+)^m@=)%q44%CT{K;)4CckK}CTzKl!oQ`F>a;Z}|-_KW{0=Xq}D zxEepl$(*g+=i?0imQQoGb4BB0{Pkbwyvn^YzQ8~HY|iW42jeUK?ce3>;rLs00j6Jb z_HxhO5))AUd(M9D{aZ2vEPv)4Mj>a7QNAb}pTio2A_HpWt9y zVs5T7|Mt{i+uYox$}ev(368%vce!%!9ks#6Ww|SrTN6@4Y%6ltD1S*P2`OEdyG~g< zsU{@;soW=(Tkh2LG(DfYLHX;Q5k1Xixto=5PfqP=-<`Wf`Sg_Hp2owu&nbVIQrXi~ zll!9bld1JRLB6e2`TNx1P)lv@4&{^65<*MA&V5yBpH>iBeKvQe@{4I@p~mlXcPW=8 z)`nVs&3#k(LZTt8==a>c%C{3^!t8(K?pGF=GsEIN@+y^w&BbByhP*1}%A}ewePCX- z^5Y~!uhO1*$Ca;5Pv~Wf$g5GVPA=|c8JTxdnKPrNS6ytLLs>P$&|5Jn?=$7@nK8X> zQ}Vu0UYMELyC^lUR(Uj~q<87uyl<47XVvu9-<$WH@}X2+pQ5FCKPXF5Bl?&g$~&(- zoSNE)U!M1i^4rwnKDLMRep5b@R@tX+P2L~MSJLYH7}w|Vs_)W*BTApjv#Peuj)_og z&C65$F*`HD{zhJb>fl|)5qxFdGS#X%Wf9>=@(NX-&Z&tgeLHW3YW3Xui0~76MXI;w z8io{oocD<8^SKd2sz1qFrTS%V!VrCJ-s7r=(ldv|f0b9PdMdqmNYU4MYgIea%Z4b< z=B-y9Nv|1V`!?@M)tBk@LrmZ2*;HBc3_~6Dc^g&h=0yzUf6LpfdSzb1(D(~^y? zmpRn(XI_b_eqQm=B3=G-s06rJ+RRA0|89%kyC|GMhW`DMfS;QU>xM>1-L z*+cU8sGiBFAEpS+x2xXB2p(<>%ipIun2|bM(JQ}F^+86-a7VBFD%F=6wZk2~^Q%?A zWCY)+h{!*tvMorx(K0mu16ApQf*bi^`5&tGFDSXOdU*Z`)q4vnZ#0g`|5)|)g8Ccv zBlAzG>K8Z)rB=9?6LXZsrE0dA5j{YU#B|0 zFnFYGT>g2LV`0L`(((B}tA1LTInsVhe!a@NsCXnlDgQUsi;F5p@{{xbR8=g}#h9k% zXQ}HJ1;_A-`Brt_;+UBDwESH4vx`$>EHCBftAAQj5K~l^zf}F!gJm(*7xI^@k3Co) zQ}jpvO7*7?29K%xGyhTbg$HBC6zL57W9nacu3${OpMhVauF2v`#)O9$`1R`b*<8&S zdrt%ZlseDK>BbffGw_?#KU=w&vBp~r{L|`nxm@a4{Zs?LMg4IuS1{I;YT%z$pUmS* z##Uz<_~+FJ^SR2gFkRzcRDV;z)sC%OW8k-{pI^%9VvSE2_-*R?Wn6Hq=}iN_L;Y7F z7ZV%*t$}|a`lsIxZt>=Cw%z|wQVgI6K8qdm*21cU>%nlXFll5 zzop*1o-2rRRQd7;)#sn!O5zmX`|^j?zdyxQ#_0q7_#^7Fja+SKQI(oOy{K|DM{hg-ac0Tjs}qpx#-+6^t{l@Z&#JXFtc4 zjB`Bi$DdGJpXVya*(&|`kJWFyz}1c`dfSixRGs%CryKA1$d5mzE`Ny&9&i8NkN;e4 z-^#^|H+%W>U#NdBs^8qk6^xJXJe3h#lZz}NT zzg7QI#?_9uJ>}1TuYUA(PIrs(MSuPW^=G@d;9K}l{P}b03wyYjTS~nH_@C5A%DL2A z>|p`?FY42Kxq@4aLj(9<)gSHSN^UXT8NmOpuHVm9-r~p%;Qvq`dW);Q#j-Sj|4aQ$ zC8tZ!!)di_%}BPUJdHQ><{!Wu;XTDUk ztBx~FE^X79->%v5BNs8bx=&~RWz9S1xP-};@tyfsHJg6oGAGwf>&%yF{``q6o?JA$ zGyjI>NIh3M+4e+dez)eQ-?-YzrAIpRZ)&Rl;B-^W-*)E9HQ)cq1y8B_tutSt`IT43 zOi=^|^ZPa1vz4h+!fy=b-_oqfQ5H<88z0Oc)clpBESX}zGnhZDc`i>`Ii+-NFn>hz zSiZ7$iehOn|F-7U0;O(h(TZUH9nDV#%HXM`Yl8V>nl;OmF;i_X1oQ7{avoBqPOW=0 znEycYbfL0fDt{!H|4?(fP+2n7Rujyh(BwX>temRXh43G13RWs>r`mgk@Skcb9#!h5 zSz<%@Q<}F|DTAj~Cxq~yYYJ8?W2Tu3LijH<53NzAPOEz{g#S`=V4bpHn(c51|CQ$5 z^~#cIiVs8hZ#1<}C@ZHGeHFrgt9kE9W$iS@A0hnrnqQt$>Jm#md-6YMUb88K6CK_? z`E#0AHz;EgEuDJuKWR2?RHi06hVKADVZ!C~FffYkTs4X;wU^)TJ8Bdh%J?wa+VqQ;T-@wS7{3h+Wy~>!`)g!|Ar?o%rQ>MR&CB6Zx62C`pEeRy)-y<1kpN;2z$X2!#SQMC0K9xOz!||KmT1gJD6< zj}!h=aVyxhg?~+E_ScKF^Y8edXpjF4g#TYB!N1_2c0Ck|vB2T)2$9!8+04Lofd3N` zzmV~S#1{bH4*pMwJo;Y?9F~!g?4M`$gk-;)*%OleQD#p__6}xGNcKN4dqT2TL4{&@ z2+6(!@VIMANcLTU?+830*$)LC@0XD5N@6N69P z{nNnX9snWP?_oS4@gFdrkoY>_u{{uye+@K1`K9#?M6NhmictWPS+A zPqvJo`OFU?`N?K}2+7ZK89ytSA42l;6!Sw!eu`!MJkR_PlAm4749R~K$-6#m@y0e%c zLgMcS9{W{7;vWGX#}`7n?z6xffF~rrobiO@=R@Fe{30a#eKO^*1$!Jv2+7aeV2|%n zmv`$*=8koY@*H-aBR z@^d%vLBJCdU(D)tAWRMOGx}nz+-s`iQfx+SKtYe$MO0L=AV%4e*-=k>R_u4+eWevVR|Vd|rfPe-`*2 zz!Q>vJDAvG`3cGX2H>$>5t4lj@K}CAvY!GxmYv&=ss z*}n%owsS(V{~q|Bz!Q?aFH8oo{DfrR4|uFMLbAUDcq~65+0O$W%TGx5k28BhvVRHq z5U?jC`wxJ}@(_}J9q{_-5P?U|75QPrze&2+2MWCVS|gknH;bkNyeC{y)r~knCpzkI#{i z>>mam>xYo+p9UW5pOE-Hz~l2JBtKsOkL`_+?EeBj40tEPAF$sGg~=`YCnWn(z@vXc z@_!fb=%0}6bAd|4R)AIn2X_5r|Sc?ikg1U#09 zknC><9?L^W_74J&;~*i~KMp)TM?$jS&HNLR{W0KiK0rwJKLL;BCnS4MSfpV23CX@U z@Mup+_R+xOctl9{X~5(C5|aIcz+?L)B)%AUd`}6V4y$9f|q`|Ds6 z0LxEE_Pv3}@)MH%?aZE#?B@ZG;}Id*uK^zKmyqmt0FTd$kobeZV|ySZKi>k6?URt~ z)i9~R_Do3jy?{r1Lb4wPJicFqWN!f;%R@-^dB9_N2+96A=AV%4%Yn!85R(1Z%s(O7 zV5oS+F_Fn>z?URt~ z+d`#bc?iiq40!m7f{^$q;9-bS5R#vG;Gu~s2#N1H#Ql0O8SHT!CnWm<;IZBai7y2n z{-+>B9`|kD0@53JLbC58bKT=$kM%%E_J0D8^-oBAC`=Bq9te@g>kgCg9|`t&Uxef* z1$ewKLgH5dkM~7L{%@A?|1{WR`3cF-+rVS_35mY|Jp4~VNd9k=@!!E$EGHrP84f)5 zw}iyc0v^jxNd6OL{67HpINu{AKO2C@_nMISw}8j`CnW!O$@u>m?6Lj{$&V6VQmlVM z;(G#*{t3yy33wPX6oh1dE8_`?pTT%S;ukZXkodc0%3lEXINu;7`>nv^b0;MJL*TLg z36aP4SqD76*M!7dWv<&AjPdyrlK(-#2LMkty^q z0mfJ!Lh@4yJeG%${A`i&a~kZiJcQ(@131C&6olkwhm4=TVBZ_;3CT|)@K_!~^7E#Q zpL@X=$45f)vl)1-A42kTSjNwrV2|}fNPfNs9v;1dkoGkkM~PR{wD*E{V*Z%R^V}*A|(IOGXB?r zJ@$u$uDc)XvEL&k|8>B_tF0g;KM%?H@rFe@jthk3=SJYM zJcQ(DwTz!hV2|Y?BtJR8V|fV4&n6i^8(4V=$#^EDs_12?HMMhmibyBje|0u*do#BtPlQ4FLbA_b zJR$MRfyeqGB>q`uPe}Ye;Gv695EB0d@bJng2#Ie6b7bd zq6$LdA7=K1#BXE%35kD~@r1;mV}1yUzYZEF_CJKg_X8e=egz@%@r)-VKArg?B>o|0 zPe}Z;z{60hASAw$*%K0fhWRHXUIl{`mYCnUa**%K1~Jo8UT{6WSO68|OhLrA<9CIk3f2#NOx9-j*#@qL*+A@QS` zJt6T^fXC-ZNc;k3Pe}Yy=AV%GCmByj{0`=akobd)CnWw;;BkM9koa#IPe}alz{A$4 zf)IK9uG9u573hbM>;r*EdqT4B3q0<>5t98V;Jtw-B>M@>4OeYo{;QI7*9y{uK|zyEreu$5O^#PA=!Vz{1B4;w~Qww`wNUGB>UD_ z*WjO!?EQep@(_}Jf0^+sjQJrXKf{2>@)Hst&+G}weW6nK2Tgvet( z$1;0DvY*QA3CTX4*%OjI#`vOtLb6}U>&gC9b&-v@jf;0cL8#{3Wx ze;RnK2SVb123`+5A@SP2;yjZOd90sKj3*?15b)@Sko=4WzAf;C#NPotmWPn|G~jXm zKuG@YXZD0-|1h&BBz_a{*gp`GpOG@-W2_9n6Z~MiB_uz`fXDZUkod2G$M=qq%5#T| z|700{o(zAl4F4Bg7wgT5aAEw;k}qTbs0`n}pIClED*sb5_Rq`kugUNgGJG&x7t2pb z*L_>Y{)7xaoRy!D{Cp{6e@=$~ONMVf-2Fbr1Xg}Rx^71q`>rzlOjdqE^3zAgewYk@ zvkZTm48MexpOCJbC}V$@48MYvpOF0AEn{z$;UAXa*U9jkSosO*x?5!IcgXOsvGNm= zpEqUf56kc$$nc-b@Kvn*gmm5SW$b^K;T^2}gyg5yjp8~B`$YT)c^sQM$nZfjd~X^4 zCsuw!y6!L;`xqJCqrcey5R#w&$kpXD<4Yi0N?GW^Rj{9aam zLb~qzz~elV5P6&jmdp4#D#L%l?u(H8pOCSymEnJq;guuZx3}NeeG$@i+sN1l$nZV` z#D0m8{DjEZ50c@dW%zg*zAIc8`z1oU?o=83*)sfKR(?YAbGM9rjtsw2hJR9qk7MO0 zr0YH}V_zo2n_2k@$5{Ir*`H_Gt6 zWcZ;n{FAKwgmm4TW$Y))@Y`AW3CT~AjD5Ncf3FN*Aj7}K%1=nweN4uFqYQt7m7kFO zY?ZO!CBq+-;oq0x>sa{->ALEHV!uj=Joc-f%lVPv+k+omZxWLKKV=R`8nKFEa3_pRDpOCKmpp1Q?3_p{VpOE~l zk+FY9hTkE>+hzDAto(#@-6JygAIb15SosOb&zCax=Vf><%6+@?k>NM7@)Oc^{blTf zW%$=v`3cF-KpFce8U7X-eu@lV#mY}e*G-eLUo68rSosObk5$ILNQQqxhJQ|m{|T{5&mV zzg>oZQ--gS;k^cn{T?A*_d^-`Gcvpp{9yYbBtPe5>=ie;Z&%(jyq^p|kd>d1t~-X6 zhmiPbz_*2R5(<1bI8O*Xejgzu`=!i3A@NTDkNq|w@uk3HToWPjmCO$z@h6!dLgK$? zJR$MQ2=RLmA@K&_u{?ythXUUTctYZV622=DBCk`6Ts!tRMB*WAN{DYEM7}N9<3Cfq z;QTUFDrmCJ^5fu)M&i8WImwB4CoP_tk})rR;exa!GY1V|?3mjk6Bp0SSdca^Juz`X zaz@g^YfGiD~uNX(cyD{aBTnHjy) z7@IVA#;oM@-gBoXr!VY1XP#i`!lkB>%Na8g7bGoAq+c#bnlYm{5a_Cr30-oLyh+-i z0m8K!yok4kWoH*!#7r8zI8A2Vy&y3yJ#C@1xHA^?2D&%WtT<>jJt-q2ZDxiWL-rT4 z%}AS(n6@BsanhW$8B*)Cxt2L;$!QCdGG_I*EXybLTg;I2gMlqR@d%q zgPJAZoW~xJdPI^1k0dJtk}P>7SsIXJ$s@^D!Q1w*HF6?VTC+&I&@i*S4wq_Eyh2rjUO2T=~We*xBYsPFT~vx?UDT`}%%D>q}Sd zyY|d5vSSRFqh;M&chY&{lD+}U2`(^#lZh+@2C3P?Iv9RdNH$Q6c~SBT0d4@ zalPxg!Wj*_MIEEL+Hm7{Uy>mk57!f*_?;5g-^WXJKRc!a_3nM>Uwnl^Dr_9Gl~EWb zej{#g6?@d-(od|4Uf>(HI?d=b`?Zwr8xDD3#+}2BV>=?S`skRetW@$)QgjB$;C&x?8dwlgDYU6 z->s8e9ZeKwC)t7;A7vN$b`a}qO9+0sEyO(A8e%@x9>&4AMK1aNFcd=TWPgiYt|&B| z$Ab0eB;uc71`@gCTgtRk7Wg9?$y#SiXv&wh%ht}-tzeldnw0Z{gPrwi>~jT_hWez4 z;^l**U5p}M4?LB8wu@e}bs3IU(LP%rJX;eU!aA7?J5?jSl4o9Lm?)03EOD+gFB~u9 zCVNR652?Bu!z^Dr!))YbruOCuj&;a+j&{}s<0Ly9yHx)e%q%Y(!&KuKLwB+h4+zdQ z)iJq~ZJe5unRyN{ZnH-lJxq5{?raZUCi=iQ$o4{Xy0clbZn9-XKdHNWNJ{cKF4#`l zKHnn}!$hCRHuAk94kr7>xJdL&`VKcc%UC=JWRdgJ`0Q+`5=znml;& z?l8dv)#UB-70q7fHs*XOT^aMJ@sqlBDdo*y7t$e9wKN`zC$4;}LnQg4m;)yil;5I6 zQYemb@j-WqpL~(T%~YYpL%vwzVY*<(M|AKi{>-*^1#7O4$1DDz=XHF>BJ+N()3(DC z0MpL+O`lcbPZ9lFdDaWw;u#hHApYXdgeCxe%9(B_Q6uFPbh1m#?)>dAfrEN!h*U#6 zj3~xZ8i5ha?lWkqny8 zP%M#j!Pgfe=|__A6aC)9^f2*p(1_ zq43v9>NO7XH5U(2%~SOjH-&OvgL3B`l;Uv3@s%#P$(KeV35uNeQg-6%o3k&J_8OEn z=OCn};2>W8m7l){@>hQ5VcVQ2|AfX(SGtQ(FR_E%W4QzIEyYh@lSq+r60XpE=6;?A zLcI(|zCT@8nTN`WEsd0uaD@)?&x{j5sF%bjG?}}NrV|%xW^hs$*M+}+|Lo>6L1ehp zyUCX)xVk=ZR_G^pcYWrj6w{~=${Q>+gu5*!V*2p9FkX^{{9pIQgr7o=-GwpfA)nrX z>HV3^?x>JiN7fUO6b{nB){{QMLvpVAOZ{5Dk~gbeoblVM>>CiPb7lv@)~)=Ikyo)? z6EJ^|&hsw(ok`#dmiR%fu;jjj))(0x%;FCdD6Fr!)=| zKB5$jUBufQ^qAZZVxmx0+6(SQq1b3x8S@JS8g0s`MtgC>R9y7a9k@etlgT&RnTLjljKb&hj%DyQw`jOYIXfcrjx=~! z^U9M^Uajdadf?Sz{O;>e!TQm{1Fu@eYyEn9Css$x%&5<;`d-Lbntn6EFSvH_lyj?3 zZFL_MtbN1s1*)~6b8GLB6AfWU1|5X|q~1d~1#50!hKPfeMjT!W#4w2De1b&u;ic#g z1#|i!5q)^c6TWd0Z!DX=-5lWUU#((C9BtHEID7sxt=4jHfnw2DL|eH&ZzoDtNy;KC01O&hKjzgd(Hy1gb|E2{IDTUr-})W zvD(O=kLU66zV|*)$DT!S%m)QO`l=PY2bpVpKlKbHM}lwYc@X^YtY5dcKgg)-9q0*8 z8RgtJ?>mpn%OJg;oo{#q^xil7u0K8A{rDdl<{TQ(o*iiw-BczpujRM))yN>Q&_Wahw_W$u{`qq?bGz2x`^iuH_3ZT2 z&5c1ziwe@Wr-iSkJ63n++sEnfFgackg-&r85J!)R9Sr9Y6jA6r@-64X@z5yrihwdG zg3v3bcFo^fdKgjU`!Fn_q$d_SMa+bT7DW^~#Zh{+$0$Z^46?x^2%SgFgjYnNSF}fl zz3Yn}d<}LW^mdS#K@o&nvHDJAD-t?IOpNi!iYRo7<7|n?I7TrB+29d`&LbwqE27XV zx@_5JEATbgfzaDQVg^MJiekki9ngb5dXdm6Vq&yMu|}a&#Kd?-6gtIGwzS7+Gd#6E z3Nez2KNevu8aI+zHH^fmq0D)MIGh>=ENU`RKMF1uI>k|VqKHDLh{0%N?GeIpiWrVp z1mRf}ElXQYkzXsBTgd#rNnVeCIX7tepENm6GCso=(Xt>F@S~_l({v1Ct`d;*53>fD z2`Lci-#_thsX)vA%nE*)CH~|GR{K+X1I7BTf7Nkwj+$G>H0e1=H-2v_naCd;a1Kb_p z(j0(k4#+eIXqp2y%>kU|fKGFOr#ax$90H&@Mi5dLMi7u!z+M4;1^g8dSioQbg&~I# zk{BV25z-hTj}a0XA(IhO86lSuk{KbJ5z-kUpAixoA)^se8X>0$EJ9wFxuk{%)J5z-zZ?-3FoA@dPZA0hVsE`vC za-u>`RLF@6IZ+`eD&$0koT!i!6#*wIsE`vCa-u>`RLF@6IZ+`eD&$0koT!i! z6>_3NPE^Q=3OP|BCo1Gbg`B966BTlzLQYi3i3&MUAtx&2M1`EFkP{VhqC!qo$cYL$ zQ6VQPsE`vCa-u>`RLF@6IZ+`eD&$0koT!i!6>_3NPE^Q=3OP}&cKZLF@*jB} B>>>aF diff --git a/external/lc/opencl/windows/lib/bitcode/oclc_correctly_rounded_sqrt_off.amdgcn.bc b/external/lc/opencl/windows/lib/bitcode/oclc_correctly_rounded_sqrt_off.amdgcn.bc index f4878299c28db62e7e96feb722ab1c42991aba71..d87cf9c7eb3e28d670995006b3e547b236c99c23 100644 GIT binary patch delta 540 zcmeysyM}*)h~V1aTl}R@sJJj1u`(#~Ffgo|sG4mAq#2BqPH-qBxiKhetIXh0R0R@} z>O8GWCL|c8#3-mFH#N-AQFz8Np|Qb|$$)`j<32scNY0cK9uox|lv_?_9!k4?Tes}i z-g}0O@dlj13>*zWBL!+06gE08_>j%O;2_4qzyL%HMsh%d1$`#;aH_cGhI#-I?5;vrlt-%+4NN=aZ-R_H6DH1<%&rv+K^P_O3b8n>WSbWCw`1 z^lk5&zO`qL_UOLJ$(xdxD8;Z67=r4PBU#%d6Av=-e^KCn7{LFffseZb>~D6UGZ-d6 TV0B?+o~+8Yn9*$VNj7x=XN%#(CB;WTpqS-^0+Ry|%NfB2#*K&c7#SHSe`FMPRAiJl;0$KqXaE`@P}6XP zt?^I;BLhRE0+7!R#71&6cq9dVCiHNsxgTS3KE%PWmcxy~Yk>?3>U^Z+r5HaR(F?1FTgO8GWCL|c8#3-mFH#N-AQFz8Np|Qb|$$)`j<32scP|lPS9uox|lv_?_9!k4?Tes}i z-g}0O@dlj13>*zWBL!+06gE08*pSV@;2_4qz`zc&Mh7rGKy z7O-$#S)jnMQG$VC>t;u$7^eDm$bi=*X(!xkHyZ6`Qeo^d#`K=#x^*$0kt_YTUWsU#clJv_ko#(*Da z$WsGn#pY58_F|9r_yz4X4M4pcr!d;|9JZNq*y4h-)t+YSGt592Rw^(sFq%wW%A#EF zA+VHT$}$y(dJjxu*hD`<{K%QZ9fP^v2L7u~k3dTIg1I`$z z98pwmCKzsaIyo$Tl%(l zP2buxM|*VN delta 337 zcmZ3%|ABXch+ysSE&kFcR9qO1SQ!*~7#ON2s%GnPGcYh1DV^X@NNHu6thl5FNIY&? zI6*|nr>%#(CB;WTpqS-^0+Ry|%NfB2#*K&c7#SHSe`FMPRAiJl;0$KqXaE`@P}6XP zt?^I;BLhRE0+7!R#71&6cq9dVCiHNsxgTS3cH+FymB6xq0Ou#@jY*-Wk~9!pN`^=t#xM ZKUv#=9-hJG!pJoFF56;8HsO8GWCL|c8#3-mFH#N-AQFz8Np|Qb|$$)`j<32scNY0cK9uox|lv_?_9!k4?Tes}i z-g}0Oeg>Su3>*zWBLyrN6gE08_>j%O;2_4qzyL%HMsh%d1$`#;aH_cGhI#-I?5;vrlt-%+4NN=aZ-R_H6DH1<%&rv+K^P_O3b8n>WSbWCw`1 z^lk5&zO`qL_UOLJ$(xdxD8;Z67=r4PBU#%d6Av=-e^KCn7{LFffseZb>~D6UGZ-d6 TV0B?+o~+6?iP3EG4mJ${mGQp! delta 337 zcmbQk|A2Rbh+ysSE&kFcR9qO1SQ!*~7#ON2s%GnPGcYh1DV^X@NNHu6thl5FNIY&? zI6*|nr>%#(CB;WTpqS-^0+Ry|%NfB2#*K&c7#SHSe`FMPRAl5c;0$KqXaE`@V9{`d zt?^I;BLhRE0+7!R#71&6cq9dVCiHNsxgTS3KE%PWmcxy~Yk>?3>U^Z+r5HaR(F?1FTgO8GWCL|c8#3-mFH#N-AQFz8Np|Qb|$$)`j<32scP|lPS9uox|lv_?_9!k4?Tes}i z-g}0Oeg>Su3>*zWBLyrN6gE08*pSV@;2_4qz`zc&Mh7rGKy z7O-$#S)jnMQG$VC>t;u$7^eDm$bi=*X(!xkHyZ6`Qeo^d#`K=#x^*$0kt_YTUWsU#clJv_ko#(*Da z$WsGn#pY58_F|9r_yz4X4M4pcr!d;|9JZNq*y4h-)t+YSGt592Rw^(sFq%wW%A#EF zA+VHT$}$y(dJjxu*hD`<{K%QZ9fP^v2L7u~k3dTIg1I`$z z98pwmCKzsaIyo$Tl%(l zP2buxM|*VN%#(CB;WTpqS-^0+Ry|%NfB2#*K&c7#SHSe`FMPRAl5c;0$KqXaE`@V9{`d zt?^I;BLhRE0+7!R#71&6cq9dVCiHNsxgTS3cH+FymB6xq0Ou#@jY*-Wk~9!pN`^=t#xM ZKUv#=9-hJG!pJoFF54tVO8GWCL|c8#3-mFH#N-AQFz8Np|Qb|$$)`j<32scNY0cK9uox|lv_?_9!k4?Tes}i z-g}0OVFsMR3>*zWBLyND6gE08_>j%O;2_4qzyL%HMsh%d1$`#;aH_cGhI#-I?5;vrlt-%+4NN=aZ-R_H6DH1<%&rv+K^P_O3b8n>WSbWCw`1 z^lk5&zO`qL_UOLJ$(xdxD8;Z67=r4PBU#%d6Av=-e^KCn7{LFffseZb>~D6UGZ-d6 TV0B?+o~+6?i_vWI0X7W)`iZ|k delta 337 zcmZ3&|AKddh+ysSE&kFcR9qO1SQ!*~7#ON2s%GnPGcYh1DV^X@NNHu6thl5FNIY&? zI6*|nr>%#(CB;WTpqS-^0+Ry|%NfB2#*K&c7#SHSe`FMPRAdx0;0$KqXaE`@5Ycdi zt?^I;BLhRE0+7!R#71&6cq9dVCiHNsxgTS3KE%PWmcxy~Yk>?3>U^Z+r5HaR(F?1FTgO8GWCL|c8#3-mFH#N-AQFz8Np|Qb|$$)`j<32scP|lPS9uox|lv_?_9!k4?Tes}i z-g}0OVFsMR3>*zWBLyND6gE08*pSV@;2_4qz`zc&Mh7rGKy z7O-$#S)jnMQG$VC>t;u$7^eDm$bi=*X(!xkHyZ6`Qeo^d#`K=#x^*$0kt_YTUWsU#clJv_ko#(*Da z$WsGn#pY58_F|9r_yz4X4M4pcr!d;|9JZNq*y4h-)t+YSGt592Rw^(sFq%wW%A#EF zA+VHT$}$y(dJjxu*hD`<{K%QZ9fP^v2L7u~k3dTIg1I`$z z98pwmCKzsaIyo$Tl%(l zP2buxM|*VN%#(CB;WTpqS-^0+Ry|%NfB2#*K&c7#SHSe`FMPRAdx0;0$KqXaE`@5Ycdi zt?^I;BLhRE0+7!R#71&6cq9dVCiHNsxgTS3cH+FymB6xq0Ou#@jY*-Wk~9!pN`^=t#xM ZKUv#=9-hJG!pJoFF54_dkwAI4?7BGyu&L@L*8b=(u1*HUoo$7zYCb5HT3Z&ESy~^qJ7Zspfu+#d*~QYv!&5 zmIW+aR~7(`1sW{Dz_4|*EmI6reY@o8=X~!C_#Zytd+EUcasmHSgTsu>#Vgp$CEDX> zv=*6xzJuTqp`)&^1)$?4bHX`oGs5d99bZHYN6}{N4a|kWztlV4fq}&;Co}h z4>aVdfwN+BsRVnmM|=E&_L>Hu-i=cjZF&ydOgU_E!P#n0v-KHfperhYZecW;ypToN z%tK%)!<1zz49Pi(dFcvesYS(^`FRS4W_kvC28p>T=>?_n$@wX%@%c$vsmUerPz948 zu!z(%Fer008Z-&;D046xHVKFTd4|ma62>eCc@8To81oztIAfr4L{Yhs)9WSgx-+>w zXP*M`(RDs~dT-C>PEqh|?LE8htZMI?Grf6J98PwCcuU{*uIXEQ=4g-Zo1DBUiHTAS zD}f=V4s{Y@M8OPa+Z~53CTFr1NhTg--xc~qF delta 348 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 Ib_GTT0J03q+5i9m delta 533 zcmbQke}`{^h+ysSE&kFcR9qO1SQ!*~7#R8|s%C3*F)%O~DRpotq_naKD=ujP5|3LJ zP7o3DY3bo^aq$u0DP~D9=wJ|FX56@6mobzv<%EZzpo4PD$;?A(w{Po~-P(Ikkx|Hi z^D+ZR1JEo1kA@>`jfbW%GB89c0Qu}dY$P{>M^eydLJy~!`!N>hML!&wyAoIyu$%%a z+9<)mFnzNtQw$RaP-!Jli^F6^R^@sN0R_gF3se}Aa}x8?70ObJiZk=`6by~^4D<{X zG>VHetn~HMQ;Ui+OVTq-^m8)PGfMI@^V0QGll60Q%5rrJit@8klS>rL%}p$m42%rY z(#$LqlhO49v_8Qq7YMjZ>0M%+nH$O$`h*%abz_i{gtjt5O3zofXo2Qp-|v zlsOsoTl-)*#W=N9wr zflbPyW@fw1rkiXsGT#-*q@oPwZ8P6wwarM}c-w}}I|Ex>7#UUqJ+3(UCuwj*@JI^! zOz7cMb3ex7yo$k@xhsKX0Snia1qwiEhK&*o3|lulGQ}{}w@aRW&iCGc|KS6^mk#_d z7w|tdILydgyn?-4qCI{_dqF{a$%6Kh3++WS8e1GK9~`#W;A}g=+479Tkp;4+7Ro+w zl)HCOCQT*TfbZb}zBdN^KtrAyI4d@nO0XAuw8t-KuW114-8hBOrsuHDl*1MmoUQgW zTc2SDx}p;37DkiFOIeibJp`6AOj)MFkerj4m#$EjT2!2wpQm7Gre~mMkeHj2UQimJ zoS%{!pP!VKnp_eORZyOskysR8oLQ9`;OVU3lUkOV12k5dqtT#AfJd2w(XdHC1jsXN z4v;WrImmNZQNft!c)%G0l_QGEjhtRDdDorE?K%52x5w=4(RDs~dT-C>PEqh|?LE8h ztZMI?Grf6J98PwCcuU{*uIXEQ=4g-Zo1DBUiHTASD}f=XK6x!`n`GiaM*c4f{0{^8 zzclc1cYyuP4s-^?WD_|0-#5$ALvN@}RSVGKGN`VwZe0+X# YPIA0wup`WK5YMM)mP~eFS72lS01lbJ&j0`b delta 498 zcmbQk|A23Th+ysSE&kFcR9qO1SQ!*~7#Jo@RGrA7%+Tz}(jdXHai1PzC}YYA4?#f( z<(89~hth7})-AiW_nso7kOAjq295>>1_l9-h9hi^ho&+zFhnW<`RqV!BsYUcQqX5Y z52u>@F&5`V49?752`md(P5~8dlwe?(zS)&2hKU2Hv=XSrVX`8ta=nFs0^`dCDh$av ziFxS?WvNBQnfZANhQ@jZdIky_#l;y``ugdqMMaq<>6s<^IhpAhC3%^7>H4Y3`Z+me zxw-{K`B|ySB?^gYCdp=X{pI+rsk%JiIxUNW(F2!sRkA)#z~sx z$r*`7@x_@{sR5qO3TZy6WvMyJ91R9d3_Qvl42De%BE}pphRys?+Rp6Q3mt2nQyY%W+ZOBZNuiB zfh{hK3@d>iSDgHlwT+Q+@(eZ?P9|VL34sD@@>4ctP8T3c5Qsx33$i;0NQ2~#$vMgKp23ds&`^N{3NRRm_Uzr zT_&J1u-O5K6ZNM(`SK$M)@nba8#nH)piGwXzqH4x-<7qTsct#MT5D}o-OE+hJriDe zPN+Y$T}iQ?Gi9B5>S8S~9iHH?>#Tdm>z-|VHr@2j)X~%YY##ic14p|JaR(w=73WmXSCy2&XZG5%E3QI0z~p0|nI}OH_n{PZrB1 zw_$`MZlaAK9E}rW89WyZkKh)Y{>5r?G+Q-TFnq}3{zZB?hphg$#5c(W=GZp9Nid=WC&NU&~#?@3y9FGj+fo#}#4>1o}dLvFZ z8(S>1Gv-^9T(?+JGE45#^sc<*O6gtNa4IU}w<$d0Rb&~D%KF%_BJ+w#tD)D@bWvnN zBD1tkulwj`cFw#YaCZdrY|zpzo^)JJItr3~TJOA^bdKvC+Inp)fZy)HzwJ>XK;w#> zR^$MVHR9M072tL#uJ|b>T&F~`%1Ab`@6kH_Xp#QU6?#q7x92ChmjAhni`AXpC6PEc!Zns*!`6CkRot5tAQWeDP-@Mt5BWD`f1SbFUWz2c+47wc!f@>rIOJMR?D3lM17}NgINFVT9BJfnC}#Kt_kLQf_Y9bLj@lQySw?nIxb7DOL}`IY1i5= zL-paZqY$T88Il##-|y4^5}6`2vYT1W!6~XvKkyNTyZB+sWs>1&0ZN$|_t+OzNSzBR zrMc&F<{OjdMUQ1+hU;$V5a}YRF9S|iL`g^v*5LuK;?F7X#9{BnjLw--of*|ukPbpS zX?p1C5gwuEfk!M}UYanPDkD}eU!O>wK7IR8j&1C8Hd$NVO$+aP+4Cs#K?CaO3xnUB+7+VWcQ_@%0Ts~t|1-{w%rB4$Z;Def|d}(#t1+71Ia|Q6~h1Sr4 zhd28({E-u@#pybycJh zW&w}3$yvxhNu9l*j@{#~O>TSOA)^Xq+U&6%&o2e&`#xx0W|=fFbKggAOvMv;q_H$v z!wPf->8m#RtZJLqInE_r8MW*!7*cM&$j$TIa*)sm3CnDdD@=0v&1MMB=$H+jDf$@r zK2%SXih?0Dbel!U032)1b4kZp7&N^rmvq9=rB(PHp)ik1|065S?kNYEKo|V0b_3t8 z&#V)f)NngsC15Kc+1Cb0fN&zqL;%A{|H$i}t-5da#j)NfX^oE1eqaQ927-NkvHtyiy&?Gimf&YIev2vq literal 0 HcmV?d00001 diff --git a/external/lc/opencl/windows/lib/bitcode/oclc_isa_version_1100.amdgcn.bc b/external/lc/opencl/windows/lib/bitcode/oclc_isa_version_1100.amdgcn.bc new file mode 100644 index 0000000000000000000000000000000000000000..c6fa818eaba27c113ba5bf01919a26af4d6dad38 GIT binary patch literal 1948 zcmY)vZEPD=@;OfYHi_BY^rAMVYqQ&=N5r*dv^2!TB zv`#^DgLs~x@WTCq2`CuEpN;mKEcoD!S7o?F+FHJb~+u{(|wq4>YNB<_whHV3jr`kfB2i+ha)y6EGv&uN{rv4IGR=DYwWJo zf?*?vV{SYiz)@JUm+yC~*l%{Nf!i%_0VW*4 z<1CI940n0*5q=(%dxU$Bu)&%X$)aReD^jEgNnyMK{d=06`|mh#d6tg z7~zPUXd?(mqY!oPj2QlgxotRgy2C|OV((rYfq=D|M=%imC`?p zFYDh9ROTvczRvNWMrRuk`WNt4D$XsGxZZl5Yf7?Bs;Ra(9vj6&*|6~jVs5kaW}I#{ zwpr%q%%4wly<%0_EV*0LyYiANrFUtgsi=%!r|_6pk!3tC>tmye%qu3Xj$TjGC6Nh< z%<=}k;iFsG1@n@?T@%dnK})armg9WVQIPDjdguA1b5ifnHtJ&m{CXdLyibV$jVp3m zkpno^jAK7lf!mR|;-{2wgA&OqW7)*MI~(+!BK_k9dR^3a=BK%pX-+HC#UOV@;1&|* zD?!6IX~~|K?AbCsr`j@-ZA$ORs1L)Tzf3s3);nfY<7fSf+@VC|WV8>D29#)n63r>5 z&tGKjAm)1?y^^Mv-Asw6*Wng?vw3mOGVif`DR7Gk%VLpRDVhJPv-CDRZ<~>xIF)p0 zzNUK@2`D3@cr^Qb`(~OU8L+%+xf0}V3Ff6a^P4&g30N?11Pw18OWHKmF(bJkA-~K! zS0u+2h-&I$4ct^2fp{o9-i#yJ#NlO@UcW%E`sg3T#O41R&#Q1pr{rPJ%v~QHV(Dd( z2JwfYVXa87_~@U+#{aAbx%q_oT4~q1V7?)k7X&j@@RsmEFaKA^dC7H7Z_gy{TE}^) zK3sMj;`AybvSRx8P5L{LDM2HHDHD?(dr^hdxu8;- zdm(4OGHot;EK74-Z&Q~@mq>jXaIz{&LUOnP4|x@TPI)5^d(UQc&XnrRsJ4Ri1hkW; zhn^ne5qbo8#Ny?pDWj=6V)gQkiPVV`UmVP_&E3uxYumeN;qPAdJ(PLB33UwwLr3^n zPh_b7Xozol?0|Sc3=Vc5k%#?VN4tCcM>}8b>5BUA8H{xG1tb2U{_!5)A&GDAiS-P? zS&dXeoM4TOl&)ohtp}+k>1$}MoHMEd-)j8Kr-@DQK}}RYy>{OjZ7_9p74YJj_RxXb zR|hlvp<~Cdp1HdB_($6DP{w_Eib(I>KK{|WA8Qv=`_~6TnPBjK^dZdbgK$=DO{5uS z0grdcS;#+0oxPw=+~6)v-*?MHMit7m)nhv!Sq{)QebBnh3Ta^GrjOp7i6`(_b9u5x z73d1mR~_;x)i$ehoKCtjYQ<|Xq}*bOTjaTwAfdMsmiZu8nC9|Z%@CZ^F`GP7@-gsz zsGTYo1w&})3l<>*aI85`Cmp9?(Dbfc(g{PCR^fMq!aOSfkE}GirxIiWJ@Bu30Qe4l zW`oG2hC2YO0owt|z79YFgcDgN0>Ey-I>3E^#GdRUu&pO+V!sXBdcyw)u!95(@E3@I y_<_tkwAI4?7BGyu&L@L*8b=(u1*HUoo$7zYCb5HT3Z&ESy~^qJ7Zspfu+#d*~NN#?Eu zmIW+aR~7(`1sW{Dz_4|*EmI6reY@o8=X~!C_#Zytd+EUcasmHSgTsu>#Vgp$CEDX> zv=*6xzJuTqp`)&^1)$?4bHX`oGs5d99bZHYN6}{N4a|kWztlV4fq}&;Co}h z4>aVdfwN+BsRVnmM|=E&_L>Hu-i=cjZF&ydOgU_E!P#n0v-KHfperhYZecW;ypToN z%tK%)!<1zz49Pi(dFcvesYS(^`FRS4W_kvC28p>T=>?_n$@wX%@%c$vsmUerPz948 zu!z(%Fer008Z-&;D046xHVKFTd4|ma62>eCc@8To81oztIAfr4L{Yhs)9WSgx-+>w zXP*M`(RDs~dT-C>PEqh|?LE8htZMI?Grf6J98PwCcuU{*uIXEQ=4g-Zo1DBUiHTAS zD}f=V4s{Y@M8OPa+Z~53CTFr1NhTg-`jfd(P85klJfP8i!HjI zZIobOn7-MSDTavysI(HOMSHR$t8%@CKsLjaNem3hIf;4c3T3H9#hLke3Wmmd26_hN z$r*`7@x_@{sR5qO3O=c2sW}YF91R9d3_Qvl42De%BE}pphRys?+Rp6Q3mt2nQyWZ+GZqfylung moq;Vbj0`J*j#QldleLYJaqkwAI4?7BGyu&L@L*8b=(u1*HUoo$7zYCb5HT3Z&ESy~^qJ7Zspfu+#d*~VN#?Eu zmIW+aR~7(`1sW{Dz_4|*EmI6reY@o8=X~!C_#Zytd+EUcasmHSgTsu>#Vgp$CEDX> zv=*6xzJuTqp`)&^1)$?4bHX`oGs5d99bZHYN6}{N4a|kWztlV4fq}&;Co}h z4>aVdfwN+BsRVnmM|=E&_L>Hu-i=cjZF&ydOgU_E!P#n0v-KHfperhYZecW;ypToN z%tK%)!<1zz49Pi(dFcvesYS(^`FRS4W_kvC28p>T=>?_n$@wX%@%c$vsmUerPz948 zu!z(%Fer008Z-&;D046xHVKFTd4|ma62>eCc@8To81oztIAfr4L{Yhs)9WSgx-+>w zXP*M`(RDs~dT-C>PEqh|?LE8htZMI?Grf6J98PwCcuU{*uIXEQ=4g-Zo1DBUiHTAS zD}f=V4s{Y@M8OPa+Z~53CTFr1NhTg-`jfd(P85klJfP8i!HjI zZIobOn7-MSDTavysI(HOMSHR$t8%@CKsLjaNem3hIf;4c3T3H9#hLke3Wmmd26_hN z$r*`7@x_@{sR5qO3O=c2sW}YF91R9d3_Qvl42De%BE}pphRys?+Rp6Q3mt2nQyWZ+GZqfylung moq;Vbj0`J*j#QldleLYJaqkwAI4?7BGyu&L@L*8b=(u1*HUoo$7zYCb5HT3Z&ESy~^qJ7Zspfu+#d*~RN#?Eu zmIW+aR~7(`1sW{Dz_4|*EmI6reY@o8=X~!C_#Zytd+EUcasmHSgTsu>#Vgp$CEDX> zv=*6xzJuTqp`)&^1)$?4bHX`oGs5d99bZHYN6}{N4a|kWztlV4fq}&;Co}h z4>aVdfwN+BsRVnmM|=E&_L>Hu-i=cjZF&ydOgU_E!P#n0v-KHfperhYZecW;ypToN z%tK%)!<1zz49Pi(dFcvesYS(^`FRS4W_kvC28p>T=>?_n$@wX%@%c$vsmUerPz948 zu!z(%Fer008Z-&;D046xHVKFTd4|ma62>eCc@8To81oztIAfr4L{Yhs)9WSgx-+>w zXP*M`(RDs~dT-C>PEqh|?LE8htZMI?Grf6J98PwCcuU{*uIXEQ=4g-Zo1DBUiHTAS zD}f=V4s{Y@M8OPa+Z~53CTFr1NhTg-`jfd(P85klJfP8i!HjI zZIobOn7-MSDTavysI(HOMSHR$t8%@CKsLjaNem3hIf;4c3T3H9#hLke3Wmmd26_hN z$r*`7@x_@{sR5qO3O=c2sW}YF91R9d3_Qvl42De%BE}pphRys?+Rp6Q3mt2nQyWZ+GZqfylung moq;Vbj0`J*j#QldleLYJaqkwAI4?7BGyu&L@L*8b=(u1*HUoo$7zYCb5HT3Z&ESy~^qJ7Zspfu+#d*~ZN#?Eu zmIW+aR~7(`1sW{Dz_4|*EmI6reY@o8=X~!C_#Zytd+EUcasmHSgTsu>#Vgp$CEDX> zv=*6xzJuTqp`)&^1)$?4bHX`oGs5d99bZHYN6}{N4a|kWztlV4fq}&;Co}h z4>aVdfwN+BsRVnmM|=E&_L>Hu-i=cjZF&ydOgU_E!P#n0v-KHfperhYZecW;ypToN z%tK%)!<1zz49Pi(dFcvesYS(^`FRS4W_kvC28p>T=>?_n$@wX%@%c$vsmUerPz948 zu!z(%Fer008Z-&;D046xHVKFTd4|ma62>eCc@8To81oztIAfr4L{Yhs)9WSgx-+>w zXP*M`(RDs~dT-C>PEqh|?LE8htZMI?Grf6J98PwCcuU{*uIXEQ=4g-Zo1DBUiHTAS zD}f=V4s{Y@M8OPa+Z~53CTFr1NhTg-`jfd(P85klJfP8i!HjI zZIobOn7-MSDTavysI(HOMSHR$t8%@CKsLjaNem3hIf;4c3T3H9#hLke3Wmmd26_hN z$r*`7@x_@{sR5qO3O=c2sW}YF91R9d3_Qvl42De%BE}pphRys?+Rp6Q3mt2nQyWZ+GZqfylung moq;Vbj0`J*j#QldleLYJaqkwAI4?7BGyu&L@L*8b=(u1*HUoo$7zYCb5HT3Z&ESy~^qJ7Zspfu+#d*~MN#?Eu zmIW+aR~7(`1sW{Dz_4|*EmI6reY@o8=X~!C_#Zytd+EUcasmHSgTsu>#Vgp$CEDX> zv=*6xzJuTqp`)&^1)$?4bHX`oGs5d99bZHYN6}{N4a|kWztlV4fq}&;Co}h z4>aVdfwN+BsRVnmM|=E&_L>Hu-i=cjZF&ydOgU_E!P#n0v-KHfperhYZecW;ypToN z%tK%)!<1zz49Pi(dFcvesYS(^`FRS4W_kvC28p>T=>?_n$@wX%@%c$vsmUerPz948 zu!z(%Fer008Z-&;D046xHVKFTd4|ma62>eCc@8To81oztIAfr4L{Yhs)9WSgx-+>w zXP*M`(RDs~dT-C>PEqh|?LE8htZMI?Grf6J98PwCcuU{*uIXEQ=4g-Zo1DBUiHTAS zD}f=V4s{Y@M8OPa+Z~53CTFr1NhTg-`jfd(P85klJfP8i!HjI zZIobOn7-MSDTavysI(HOMSHR$t8%@CKsLjaNem3hIf;4c3T3H9#hLke3Wmmd26_hN z$r*`7@x_@{sR5qO3O=c2sW}YF91R9d3_Qvl42De%BE}pphRys?+Rp6Q3mt2nQyWZ+GZqfylung moq;Vbj0`J*j#QldleLYJaqkwAI4?7BGyu&L@L*8b=(u1*HUoo$7zYCb5HT3Z&ESy~^qJ7Zspfu+#d*~cN#?Eu zmIW+aR~7(`1sW{Dz_4|*EmI6reY@o8=X~!C_#Zytd+EUcasmHSgTsu>#Vgp$CEDX> zv=*6xzJuTqp`)&^1)$?4bHX`oGs5d99bZHYN6}{N4a|kWztlV4fq}&;Co}h z4>aVdfwN+BsRVnmM|=E&_L>Hu-i=cjZF&ydOgU_E!P#n0v-KHfperhYZecW;ypToN z%tK%)!<1zz49Pi(dFcvesYS(^`FRS4W_kvC28p>T=>?_n$@wX%@%c$vsmUerPz948 zu!z(%Fer008Z-&;D046xHVKFTd4|ma62>eCc@8To81oztIAfr4L{Yhs)9WSgx-+>w zXP*M`(RDs~dT-C>PEqh|?LE8htZMI?Grf6J98PwCcuU{*uIXEQ=4g-Zo1DBUiHTAS zD}f=V4s{Y@M8OPa+Z~53CTFr1NhTg-`jfd(P85klJfP8i!HjI zZIobOn7-MSDTavysI(HOMSHR$t8%@CKsLjaNem3hIf;4c3T3H9#hLke3Wmmd26_hN z$r*`7@x_@{sR5qO3O=c2sW}YF91R9d3_Qvl42De%BE}pphRys?+Rp6Q3mt2nQyWZ+GZqfylung moq;Vbj0`J*j#QldleLYJaqkwAI4?7BGyu&L@L*8b=(u1*HUoo$7zYCb5HT3Z&ESy~^qJ7Zspfu+#d*~UN#?Eu zmIW+aR~7(`1sW{Dz_4|*EmI6reY@o8=X~!C_#Zytd+EUcasmHSgTsu>#Vgp$CEDX> zv=*6xzJuTqp`)&^1)$?4bHX`oGs5d99bZHYN6}{N4a|kWztlV4fq}&;Co}h z4>aVdfwN+BsRVnmM|=E&_L>Hu-i=cjZF&ydOgU_E!P#n0v-KHfperhYZecW;ypToN z%tK%)!<1zz49Pi(dFcvesYS(^`FRS4W_kvC28p>T=>?_n$@wX%@%c$vsmUerPz948 zu!z(%Fer008Z-&;D046xHVKFTd4|ma62>eCc@8To81oztIAfr4L{Yhs)9WSgx-+>w zXP*M`(RDs~dT-C>PEqh|?LE8htZMI?Grf6J98PwCcuU{*uIXEQ=4g-Zo1DBUiHTAS zD}f=V4s{Y@M8OPa+Z~53CTFr1NhTg-`jfd(P85klJfP8i!HjI zZIobOn7-MSDTavysI(HOMSHR$t8%@CKsLjaNem3hIf;4c3T3H9#hLke3Wmmd26_hN z$r*`7@x_@{sR5qO3O=c2sW}YF91R9d3_Qvl42De%BE}pphRys?+Rp6Q3mt2nQyWZ+GZqfylung moq;Vbj0`J*j#QldleLYJaq diff --git a/external/lc/opencl/windows/lib/bitcode/oclc_isa_version_90c.amdgcn.bc b/external/lc/opencl/windows/lib/bitcode/oclc_isa_version_90c.amdgcn.bc index d8885e68d3c13c532f5c3be2d1a3ccd49be78a0a..3b710799e04e39bd88dc3efb86394fd611b38117 100644 GIT binary patch delta 541 zcmaFBJBNRQh~V1aTl}R@sJJj1u`(#~Ffgo~sG6kwAI4?7BGyu&L@L*8b=(u1*HUoo$7zYCb5HT3Z&ESy~^qJ7Zspfu+#d*~QN#?Eu zmIW+aR~7(`1sW{Dz_4|*EmI6reY@o8=X~!C_#Zytd+EUcasmHSgTsu>#Vgp$CEDX> zv=*6xzJuTqp`)&^1)$?4bHX`oGs5d99bZHYN6}{N4a|kWztlV4fq}&;Co}h z4>aVdfwN+BsRVnmM|=E&_L>Hu-i=cjZF&ydOgU_E!P#n0v-KHfperhYZecW;ypToN z%tK%)!<1zz49Pi(dFcvesYS(^`FRS4W_kvC28p>T=>?_n$@wX%@%c$vsmUerPz948 zu!z(%Fer008Z-&;D046xHVKFTd4|ma62>eCc@8To81oztIAfr4L{Yhs)9WSgx-+>w zXP*M`(RDs~dT-C>PEqh|?LE8htZMI?Grf6J98PwCcuU{*uIXEQ=4g-Zo1DBUiHTAS zD}f=V4s{Y@M8OPa+Z~53CTFr1NhTg-`jfd(P85klJfP8i!HjI zZIobOn7-MSDTavysI(HOMSHR$t8%@CKsLjaNem3hIf;4c3T3H9#hLke3Wmmd26_hN z$r*`7@x_@{sR5qO3O=c2sW}YF91R9d3_Qvl42De%BE}pphRys?+Rp6Q3mt2nQyWZ+GZqfylung moq;Vbj0`J*j#QldleLYJaqO8GWCL|c8#3-mFH#N-AQFz8Np|Qb|$$)`j<32scNY0cK9uox|lv_?_9!k4?Tes}i z-g}0OVFsMR3>*zWBLyND6gE08_>j%O;2_4qzyL%HMsh%d1$`#;aH_cGhI#-I?5;vrlt-%+4NN=aZ-R_H6DH1<%&rv+K^P_O3b8n>WSbWCw`1 z^lk5&zO`qL_UOLJ$(xdxD8;Z67=r4PBU#%d6Av=-e^KCn7{LFffseZb>~D6UGZ-d6 TV0B?+o~+6?i_vWI0X7W)`iZ|k delta 337 zcmZ3&|AKddh+ysSE&kFcR9qO1SQ!*~7#ON2s%GnPGcYh1DV^X@NNHu6thl5FNIY&? zI6*|nr>%#(CB;WTpqS-^0+Ry|%NfB2#*K&c7#SHSe`FMPRAdx0;0$KqXaE`@5Ycdi zt?^I;BLhRE0+7!R#71&6cq9dVCiHNsxgTS3KE%PWmcxy~Yk>?3>U^Z+r5HaR(F?1FTgO8GWCL|c8#3-mFH#N-AQFz8Np|Qb|$$)`j<32scP|lPS9uox|lv_?_9!k4?Tes}i z-g}0OVFsMR3>*zWBLyND6gE08*pSV@;2_4qz`zc&Mh7rGKy z7O-$#S)jnMQG$VC>t;u$7^eDm$bi=*X(!xkHyZ6`Qeo^d#`K=#x^*$0kt_YTUWsU#clJv_ko#(*Da z$WsGn#pY58_F|9r_yz4X4M4pcr!d;|9JZNq*y4h-)t+YSGt592Rw^(sFq%wW%A#EF zA+VHT$}$y(dJjxu*hD`<{K%QZ9fP^v2L7u~k3dTIg1I`$z z98pwmCKzsaIyo$Tl%(l zP2buxM|*VN%#(CB;WTpqS-^0+Ry|%NfB2#*K&c7#SHSe`FMPRAdx0;0$KqXaE`@5Ycdi zt?^I;BLhRE0+7!R#71&6cq9dVCiHNsxgTS3cH+FymB6xq0Ou#@jY*-Wk~9!pN`^=t#xM ZKUv#=9-hJG!pJoFF54_dO8GWCL|c8#3-mFH#N-AQFz8Np|Qb|$$)`j<32scNY0cK9uox|lv_?_9!k4?Tes}i z-g}0OVFsMR3>*zWBLyND6gE08_>j%O;2_4qzyL%HMsh%d1$`#;aH_cGhI#-I?5;vrlt-%+4NN=aZ-R_H6DH1<%&rv+K^P_O3b8n>WSbWCw`1 z^lk5&zO`qL_UOLJ$(xdxD8;Z67=r4PBU#%d6Av=-e^KCn7{LFffseZb>~D6UGZ-d6 TV0B?+o~+6?i_vWI0X7W)`iZ|k delta 337 zcmZ3&|AKddh+ysSE&kFcR9qO1SQ!*~7#ON2s%GnPGcYh1DV^X@NNHu6thl5FNIY&? zI6*|nr>%#(CB;WTpqS-^0+Ry|%NfB2#*K&c7#SHSe`FMPRAdx0;0$KqXaE`@5Ycdi zt?^I;BLhRE0+7!R#71&6cq9dVCiHNsxgTS3KE%PWmcxy~Yk>?3>U^Z+r5HaR(F?1FTgO8GWCL|c8#3-mFH#N-AQFz8Np|Qb|$$)`j<32scP|lPS9uox|lv_?_9!k4?Tes}i z-g}0OVFsMR3>*zWBLyND6gE08*pSV@;2_4qz`zc&Mh7rGKy z7O-$#S)jnMQG$VC>t;u$7^eDm$bi=*X(!xkHyZ6`Qeo^d#`K=#x^*$0kt_YTUWsU#clJv_ko#(*Da z$WsGn#pY58_F|9r_yz4X4M4pcr!d;|9JZNq*y4h-)t+YSGt592Rw^(sFq%wW%A#EF zA+VHT$}$y(dJjxu*hD`<{K%QZ9fP^v2L7u~k3dTIg1I`$z z98pwmCKzsaIyo$Tl%(l zP2buxM|*VN%#(CB;WTpqS-^0+Ry|%NfB2#*K&c7#SHSe`FMPRAdx0;0$KqXaE`@5Ycdi zt?^I;BLhRE0+7!R#71&6cq9dVCiHNsxgTS3cH+FymB6xq0Ou#@jY*-Wk~9!pN`^=t#xM ZKUv#=9-hJG!pJoFF54_d9 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 z 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 literal 205372 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

      x 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 diff --git a/external/lc/opencl/windows/lib/bitcode/opencl.amdgcn.bc b/external/lc/opencl/windows/lib/bitcode/opencl.amdgcn.bc index c7a666e62ff72499d5bebf096ca4460c6815a949..518f3811989af901514836462ebe072c95586709 100644 GIT binary patch literal 132 zcmWN}yAi`63;@ucDOex|^Ov_lSOo5p;ES+}OdnUTdl!AVkB@9~9=s{_?DO%eyxg`E zmonap4=UY^n5-cIq-=;Frs7F!w`yCf^C7~D)@!V0cYshZ)`FCy4T)U# PrfR|cN7BUm3Q7C{ASWlg literal 2857944 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

      f^sluU#duE9Y|&}ADQK#l$W<(y1SgZ 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

      77|wMY(T4R;_iz!j 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 diff --git a/external/opengl/glc/linux/glc b/external/opengl/glc/linux/glc index 9f6a786..345b027 100644 --- a/external/opengl/glc/linux/glc +++ b/external/opengl/glc/linux/glc @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8349d2ac5b2dae7ea7d51105ab3ade3004a1911b40fe4fcdc6a17dd671efa032 -size 44621600 +oid sha256:d8a7e1e66945271e49be380af2b70124a33872d9ff06478ddc860409a4c56409 +size 46742688 diff --git a/external/opengl/glc/windows/glc.exe b/external/opengl/glc/windows/glc.exe index 389adc3..d4e0077 100644 --- a/external/opengl/glc/windows/glc.exe +++ b/external/opengl/glc/windows/glc.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:326a7c747ea649a1e6c8b0bfbe1f5d05f3f9b99c1d969372534456857b56d838 -size 34970112 +oid sha256:3866b77fb1e906a4607564eb7448fe9acffaef55456ea005d4a14743dcefc624 +size 36594176 diff --git a/external/vulkan_offline/linux/amdspv b/external/vulkan_offline/linux/amdspv index c96c8d3..1b78b7f 100644 --- a/external/vulkan_offline/linux/amdspv +++ b/external/vulkan_offline/linux/amdspv @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:716534983dda2201ad1dcc7916eca8b7bcee318a33fee3da0bf922b8980a5649 -size 49622600 +oid sha256:5005abfb366e576d40e4dd375a2aef901d97c5ea1331bb0ecbcfb3eaa6b9fbb4 +size 67559848 diff --git a/external/vulkan_offline/linux/spvgen.so b/external/vulkan_offline/linux/spvgen.so deleted file mode 100644 index b3238e6..0000000 --- a/external/vulkan_offline/linux/spvgen.so +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e654a0bab8cf11caa934987e8b8d102bb6bcd1ba3f67d597a198072f8b4af248 -size 10388976 diff --git a/external/vulkan_offline/windows/amdspv.exe b/external/vulkan_offline/windows/amdspv.exe index 6e26afc..3278a67 100644 --- a/external/vulkan_offline/windows/amdspv.exe +++ b/external/vulkan_offline/windows/amdspv.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bf4725ed17c3f5963e16274c95562959d98928aa6e12e4029605e2bb51b02350 -size 32972288 +oid sha256:cdaf107c741f61f93ee54e806bb6fc51cbd30731cbdc23867a28daef52b9b97d +size 43951616 diff --git a/external/vulkan_offline/windows/spvgen.dll b/external/vulkan_offline/windows/spvgen.dll deleted file mode 100644 index 4110456..0000000 --- a/external/vulkan_offline/windows/spvgen.dll +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:734f971de32cc3a9604d7354eba007580baa19346469e21a53a1f3ec15ad68e7 -size 6219264 diff --git a/installer/RGA-Installer.aip b/installer/RGA-Installer.aip index e7b9216..2ee67be 100755 --- a/installer/RGA-Installer.aip +++ b/installer/RGA-Installer.aip @@ -47,7 +47,7 @@ - + @@ -58,6 +58,7 @@ + @@ -90,42 +91,44 @@ + - - + + - - + + + - + + - - - - - - - - + + + + + + + + - - - - - + + + - + - - - + + + + @@ -134,224 +137,226 @@ - - - - - + + + + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -435,6 +440,7 @@ + diff --git a/source/common/rga_cli_defs.h b/source/common/rga_cli_defs.h index b96372c..90adc17 100644 --- a/source/common/rga_cli_defs.h +++ b/source/common/rga_cli_defs.h @@ -73,7 +73,7 @@ static const char* kStrCliDescAlternativeLightningCompilerBinFolder = "Path to a static const char* kStrCliDescAlternativeLightningCompilerIncFolder = "Path to alternative compiler's headers folder. The specified folder is expected" " to contain opencl-c.h header file."; static const char* kStrCliDescAlternativeLightningCompilerLibFolder = "Path to alternative compiler's OpenCL libraries folder. The following bitcode files are expected to be in the specified folder: \n" - "irif.amdgcn.bc, ockl.amdgcn.bc, oclc_correctly_rounded_sqrt_off.amdgcn.bc, \n" + "ockl.amdgcn.bc, oclc_correctly_rounded_sqrt_off.amdgcn.bc, \n" "oclc_correctly_rounded_sqrt_on.amdgcn.bc, oclc_daz_opt_off.amdgcn.bc, oclc_daz_opt_on.amdgcn.bc, \n" "oclc_finite_only_off.amdgcn.bc, oclc_finite_only_on.amdgcn.bc, oclc_isa_version_1010.amdgcn.bc, \n" "oclc_isa_version_1011.amdgcn.bc, oclc_isa_version_1012.amdgcn.bc, oclc_isa_version_1030.amdgcn.bc, \n" diff --git a/source/common/rga_version_info.h b/source/common/rga_version_info.h index 89e4456..c7861d3 100644 --- a/source/common/rga_version_info.h +++ b/source/common/rga_version_info.h @@ -1,8 +1,8 @@ #pragma once #define RGA_VERSION_MAJOR 2 -#define RGA_VERSION_MINOR 6 -#define RGA_VERSION_UPDATE 2 +#define RGA_VERSION_MINOR 7 +#define RGA_VERSION_UPDATE 0 #define GEN_RGA_VERSION(MAJOR, MINOR, UPDATE) MAJOR.MINOR.UPDATE #define RGA_VERSION_MAJOR_MINOR GEN_RGA_VERSION(RGA_VERSION_MAJOR, RGA_VERSION_MINOR, RGA_VERSION_UPDATE) #define GEN_RGA_VERSION_STRING(VER) #VER diff --git a/source/radeon_gpu_analyzer_backend/be_amddxxmodule_wrapper.h b/source/radeon_gpu_analyzer_backend/be_amddxxmodule_wrapper.h new file mode 100644 index 0000000..e72f9fe --- /dev/null +++ b/source/radeon_gpu_analyzer_backend/be_amddxxmodule_wrapper.h @@ -0,0 +1,52 @@ +//================================================================= +// Copyright 2020 Advanced Micro Devices, Inc. All rights reserved. +//================================================================= + +#pragma once + +// Infra. +#include "DXXModule.h" + +class AMDDXXModuleWrapper : private AMDDXXModule +{ +private: + std::string module_name_; + +public: + + AMDDXXModuleWrapper() : AMDDXXModule(AMDDXXModule::s_DefaultModuleName) + { + if (IsLoaded()) + { + module_name_ = AMDDXXModule::s_DefaultModuleName; + } + }; + + bool LoadModule(const std::string& name) + { + bool is_ok = AMDDXXModule::LoadModule(name); + if (is_ok) + { + module_name_ = name; + } + else + { + module_name_ = ""; + } + return is_ok; + }; + + const std::string& GetModuleName() const + { + return module_name_; + }; + + using AMDDXXModule::AmdDxGsaCompileShader; + + using AMDDXXModule::AmdDxGsaFreeCompiledShader; + + using AMDDXXModule::UnloadModule; + + using AMDDXXModule::IsLoaded; + +}; diff --git a/source/radeon_gpu_analyzer_backend/be_backend.cpp b/source/radeon_gpu_analyzer_backend/be_backend.cpp index fb7b9f7..9648744 100755 --- a/source/radeon_gpu_analyzer_backend/be_backend.cpp +++ b/source/radeon_gpu_analyzer_backend/be_backend.cpp @@ -1,6 +1,6 @@ -//================================================================= -// Copyright 2020 Advanced Micro Devices, Inc. All rights reserved. -//================================================================= +//====================================================================== +// Copyright 2020-2022 Advanced Micro Devices, Inc. All rights reserved. +//====================================================================== // C++. #include @@ -164,6 +164,12 @@ beStatus Backend::GetDeviceChipFamilyRevision(const GDT_GfxCardInfo& table_entry switch (table_entry.m_asicType) { + case GDT_GFX11_0_0: + chip_family = FAMILY_NV3; + chip_revision = PRID_NV3_NAVI31_00; + ret = kBeStatusSuccess; + break; + case GDT_GFX10_3_5: chip_family = FAMILY_RMB; chip_revision = REMBRANDT_A0; diff --git a/source/radeon_gpu_analyzer_backend/be_include.h b/source/radeon_gpu_analyzer_backend/be_include.h index 1223ccf..562f739 100644 --- a/source/radeon_gpu_analyzer_backend/be_include.h +++ b/source/radeon_gpu_analyzer_backend/be_include.h @@ -106,6 +106,7 @@ enum beStatus kBeStatusVulkanGlslangLaunchFailed, kBeStatusVulkanFrontendCompileFailed, kBeStatusVulkanBackendLaunchFailed, + kBeStatusVulkanAmdgpudisLaunchFailed, kBeStatusVulkanBackendCompileFailed, kBeStatusVulkanSetEnvVarFailed, kBeStatusVulkanSpvToolLaunchFailed, diff --git a/source/radeon_gpu_analyzer_backend/be_program_builder_dx11.cpp b/source/radeon_gpu_analyzer_backend/be_program_builder_dx11.cpp index 0148657..82cf0b5 100644 --- a/source/radeon_gpu_analyzer_backend/be_program_builder_dx11.cpp +++ b/source/radeon_gpu_analyzer_backend/be_program_builder_dx11.cpp @@ -164,7 +164,7 @@ beKA::beStatus BeProgramBuilderDx11::CompileAMDIL(const std::string& program_sou return kBeStatusSuccess; } -BeProgramBuilderDx11::BeProgramBuilderDx11(void) : amd_dxx_module_(AMDDXXModule::s_DefaultModuleName), +BeProgramBuilderDx11::BeProgramBuilderDx11(void) : amd_dxx_module_(), d3d_compile_module_(D3DCompileModule::s_DefaultModuleName), compiled_elf_() { } @@ -174,7 +174,7 @@ BeProgramBuilderDx11::~BeProgramBuilderDx11(void) amd_dxx_module_.UnloadModule(); } -beKA::beStatus BeProgramBuilderDx11::Initialize(const std::string& dxx_module_name, const std::string& compiler_module_name) +beKA::beStatus BeProgramBuilderDx11::Initialize(const std::string& dxx_module_name, const std::string& compiler_module_name, bool print_process_cmd_line) { beStatus be_rc = kBeStatusSuccess; std::string compiler_dll_name = compiler_module_name; @@ -184,9 +184,6 @@ beKA::beStatus BeProgramBuilderDx11::Initialize(const std::string& dxx_module_na // This solves the VS extension issue where devenv.exe looked for the D3D compiler // at its own directory, instead of looking for it at CodeXL's binaries directory. osFilePath default_compiler_file_path; - - // Get CodeXL's binaries directory. Both the 32 and 64-bit versions of d3dcompiler are bundled with CodeXL. - // We use the 32-bit version by default bool is_ok = osGetCurrentApplicationDllsPath(default_compiler_file_path, OS_I386_ARCHITECTURE); if (is_ok) @@ -211,7 +208,16 @@ beKA::beStatus BeProgramBuilderDx11::Initialize(const std::string& dxx_module_na amd_dxx_module_.LoadModule(dxx_module_name); } - if (!amd_dxx_module_.IsLoaded()) + if (amd_dxx_module_.IsLoaded() && !amd_dxx_module_.GetModuleName().empty()) + { + if (print_process_cmd_line) + { + stringstream ss; + ss << "Info: " << amd_dxx_module_.GetModuleName() << " module loaded.\n" << endl; + LogCallback(ss.str()); + } + } + else { // Notice: This message receives an extra "\n", since later in the call chain, one is removed. We do want to remove them for // the rest of the messages, so we only remove it for initialization messages: diff --git a/source/radeon_gpu_analyzer_backend/be_program_builder_dx11.h b/source/radeon_gpu_analyzer_backend/be_program_builder_dx11.h index 1b7307c..ccc941d 100644 --- a/source/radeon_gpu_analyzer_backend/be_program_builder_dx11.h +++ b/source/radeon_gpu_analyzer_backend/be_program_builder_dx11.h @@ -7,8 +7,7 @@ #ifndef RGA_RADEONGPUANALYZERBACKEND_SRC_BE_PROGRAM_BUILDER_DX11_H_ #define RGA_RADEONGPUANALYZERBACKEND_SRC_BE_PROGRAM_BUILDER_DX11_H_ -// Infra. -#include "DXXModule.h" + // C++. #include @@ -20,6 +19,7 @@ // Local. #include "radeon_gpu_analyzer_backend/be_program_builder.h" +#include "radeon_gpu_analyzer_backend\be_amddxxmodule_wrapper.h" using namespace beKA; class CElf; @@ -158,11 +158,11 @@ class BeProgramBuilderDx11 : public BeProgramBuilder // Returns the adapter name in "adapterName" and DXX lib path in "dxxModulePath". static bool GetDxxModulePathForAdapter(int adapter_id, bool should_print_cmd, std::string& adapter_name, std::string& dxx_module_path); - beKA::beStatus Initialize(const std::string& dxx_module_name, const std::string& compiler_module_name); + beKA::beStatus Initialize(const std::string& dxx_module_name, const std::string& compiler_module_name, bool print_process_cmd_line); private: - // Interface with atidxx{32,64}.dll - AMDDXXModule amd_dxx_module_; + // (Wrapper) Interface with atidxx{32,64}.dll + AMDDXXModuleWrapper amd_dxx_module_; // Interface with d3dcompiler_xx.dll D3DCompileModule d3d_compile_module_; diff --git a/source/radeon_gpu_analyzer_backend/be_program_builder_lightning.cpp b/source/radeon_gpu_analyzer_backend/be_program_builder_lightning.cpp index af6394c..c1a663d 100755 --- a/source/radeon_gpu_analyzer_backend/be_program_builder_lightning.cpp +++ b/source/radeon_gpu_analyzer_backend/be_program_builder_lightning.cpp @@ -32,7 +32,7 @@ // Constants. static const gtString kLcOpenclIncludeFile = L"opencl-c.h"; -static const std::vector kLcOpenclLibFiles = { L"opencl.amdgcn.bc", L"ockl.amdgcn.bc", L"irif.amdgcn.bc", L"ocml.amdgcn.bc", +static const std::vector kLcOpenclLibFiles = { L"opencl.amdgcn.bc", L"ockl.amdgcn.bc", L"ocml.amdgcn.bc", L"oclc_correctly_rounded_sqrt_on.amdgcn.bc", L"oclc_correctly_rounded_sqrt_off.amdgcn.bc", L"oclc_daz_opt_on.amdgcn.bc", L"oclc_daz_opt_off.amdgcn.bc", L"oclc_unsafe_math_on.amdgcn.bc", L"oclc_unsafe_math_off.amdgcn.bc", @@ -43,7 +43,7 @@ static const std::vector kLcOpenclLibFiles = { L"opencl.amdgcn.bc", L L"oclc_isa_version_909.amdgcn.bc", L"oclc_isa_version_1010.amdgcn.bc", L"oclc_isa_version_1011.amdgcn.bc", L"oclc_isa_version_1012.amdgcn.bc", L"oclc_isa_version_1030.amdgcn.bc", L"oclc_isa_version_1031.amdgcn.bc", L"oclc_isa_version_1032.amdgcn.bc", - L"oclc_isa_version_1034.amdgcn.bc" }; + L"oclc_isa_version_1034.amdgcn.bc", L"oclc_isa_version_1100.amdgcn.bc" }; static const std::string kStrLcOpenclStdOption = "-cl-std"; static const std::string kStrLcOpenclStdDefaultValue = "cl2.0"; @@ -73,8 +73,8 @@ static const std::string kStrLcCompilerOpenclSwitchOptimizationLevel = "-O"; // LLVM objdump switches. static const std::string kStrLcObjDumpSwitchDevice = "--mcpu="; -static const std::string kStrLcObjDumpSwitchDisassemble = "--disassemble"; -static const std::string kStrLcObjDumpSwitchDisassembleLineNumbers = "--disassemble --line-numbers --source"; +static const std::string kStrLcObjDumpSwitchDisassemble = "--disassemble --symbolize-operands"; +static const std::string kStrLcObjDumpSwitchDisassembleLineNumbers = "--disassemble --symbolize-operands --line-numbers --source"; static const std::string kStrLcObjDumpSwitchMetadata1 = "--amdgpu-code-object-metadata --lf-output-style=GNU --notes"; static const std::string kStrLcObjDumpSwitchMetadata2 = "--elf-output-style=GNU --notes"; static const std::string kStrLcObjDumpSwitchTriple = "--triple=amdgcn-amd-amdhsa"; @@ -166,12 +166,15 @@ beKA::beStatus BeProgramBuilderLightning::AddCompilerStandardOptions(RgaMode mod if (mode == RgaMode::kModeOpenclOffline) { // Add nogpulib and target triple. - options_stream << kStrLcCompilerOpenclSwitchNoGpuLib << " " << kStrLcCompilerOpenclSwitchTriple; + options_stream << " " << kStrLcCompilerOpenclSwitchNoGpuLib << " " << kStrLcCompilerOpenclSwitchTriple; +// The following is necessary if the bitcode files are built on Windows with Visual Studio. #ifdef _WIN32 // Short character flag required for bitcode built with MSVC. static const std::string kStrLcCompilerOpenCLSwitchShortWcharWindows = "-fshort-wchar"; - options_stream << " " << kStrLcCompilerOpenCLSwitchShortWcharWindows; + // static flag improves performance on Windows platforms. + static const std::string kStrLcCompilerOpenclSwitchStatic = "-static"; + options_stream << " " << kStrLcCompilerOpenclSwitchStatic << " " << kStrLcCompilerOpenCLSwitchShortWcharWindows; #endif // Add OpenCL include required by OpenCL compiler. diff --git a/source/radeon_gpu_analyzer_backend/be_program_builder_opengl.cpp b/source/radeon_gpu_analyzer_backend/be_program_builder_opengl.cpp index acd2a7e..75c56fe 100755 --- a/source/radeon_gpu_analyzer_backend/be_program_builder_opengl.cpp +++ b/source/radeon_gpu_analyzer_backend/be_program_builder_opengl.cpp @@ -564,6 +564,8 @@ bool BeProgramBuilderOpengl::GetDeviceGLInfo(const std::string& device_name, siz gl_backend_values["gfx1031"] = std::pair(143, 50); gl_backend_values["gfx1032"] = std::pair(143, 60); gl_backend_values["gfx1034"] = std::pair(143, 70); + gl_backend_values["gfx1035"] = std::pair(146, 1); + gl_backend_values["gfx1100"] = std::pair(145, 1); } // Fetch the relevant value. @@ -639,4 +641,4 @@ bool BeProgramBuilderOpengl::GetSupportedDevices(std::set& device_l const std::set& BeProgramBuilderOpengl::GetDisabledDevices() { return kOpenglDisabledDevices; -} \ No newline at end of file +} diff --git a/source/radeon_gpu_analyzer_backend/be_program_builder_vk_offline.cpp b/source/radeon_gpu_analyzer_backend/be_program_builder_vk_offline.cpp index 9888028..3bcc88f 100755 --- a/source/radeon_gpu_analyzer_backend/be_program_builder_vk_offline.cpp +++ b/source/radeon_gpu_analyzer_backend/be_program_builder_vk_offline.cpp @@ -58,6 +58,7 @@ static const std::string kAmdspvDeviceGfx1031 = "1031"; static const std::string kAmdspvDeviceGfx1032 = "1032"; static const std::string kAmdspvDeviceGfx1034 = "1034"; static const std::string kAmdspvDeviceGfx1035 = "1035"; +static const std::string kAmdspvDeviceGfx1100 = "1100"; static bool GetAmdspvPath(std::string& amdspv_path) { @@ -95,7 +96,8 @@ static bool GetGfxIpForVulkan(AMDTDeviceInfoUtils* device_info, const VkOfflineO vulkan_options.target_device_name.compare(kDeviceNameGfx1031) == 0 || vulkan_options.target_device_name.compare(kDeviceNameGfx1032) == 0 || vulkan_options.target_device_name.compare(kDeviceNameGfx1034) == 0 || - vulkan_options.target_device_name.compare(kDeviceNameGfx1035) == 0) + vulkan_options.target_device_name.compare(kDeviceNameGfx1035) == 0 || + vulkan_options.target_device_name.compare(kDeviceNameGfx1100) == 0) { // Special case #4: gfx10 devices. gfx_ip_str = @@ -107,6 +109,7 @@ static bool GetGfxIpForVulkan(AMDTDeviceInfoUtils* device_info, const VkOfflineO vulkan_options.target_device_name == kDeviceNameGfx1032 ? kAmdspvDeviceGfx1032 : vulkan_options.target_device_name == kDeviceNameGfx1034 ? kAmdspvDeviceGfx1034 : vulkan_options.target_device_name == kDeviceNameGfx1035 ? kAmdspvDeviceGfx1035 : + vulkan_options.target_device_name == kDeviceNameGfx1100 ? kAmdspvDeviceGfx1100 : ""; ret = !gfx_ip_str.empty(); } diff --git a/source/radeon_gpu_analyzer_backend/be_program_builder_vulkan.cpp b/source/radeon_gpu_analyzer_backend/be_program_builder_vulkan.cpp index 1f87d5d..7b1a521 100755 --- a/source/radeon_gpu_analyzer_backend/be_program_builder_vulkan.cpp +++ b/source/radeon_gpu_analyzer_backend/be_program_builder_vulkan.cpp @@ -375,6 +375,90 @@ static bool VerifyOutputFiles(const BeVkPipelineFiles& spv_files, return result; } +// Parses amdgpu-dis output and extracts a table with the amdgpu shader stage name being the key ("vs", "ps", etc.) and that shader stage's disassembly the value. +static bool ParseAmdgpudisOutput(const std::string& amdgpu_dis_output, std::map& shader_to_disassembly, std::string& error_msg) +{ + bool ret = false; + assert(!amdgpu_dis_output.empty()); + if (!amdgpu_dis_output.empty()) + { + const char* kStrErrorCannotParseDisassembly = "Error: failed to parse LLVM disassembly."; + const char* kAmdgpuDisDotTextToken = ".text"; + const char* kAmdgpuDisShaderEndToken = "_symend:"; + const char* kAmdgpuDisDotSizeToken = ".size"; + const char* kAmdgpuDisShaderNameStartToken = "_amdgpu_"; + const char* kAmdgpuDisShaderNameEndToken = "_main"; + + // Get to the .text section. + size_t curr_pos = amdgpu_dis_output.find(kAmdgpuDisDotTextToken); + assert(curr_pos != std::string::npos); + if (curr_pos != std::string::npos) + { + // These will be used to extract the disassembly for each shader. + size_t shader_offset_begin = 0; + size_t shader_offset_end = 0; + + // Parse the .text section. Identify each shader's area by its ".size" token. + size_t curr_pos = amdgpu_dis_output.find(kAmdgpuDisDotSizeToken); + while (curr_pos != std::string::npos) + { + curr_pos = amdgpu_dis_output.find("\n", curr_pos); + assert(curr_pos != std::string::npos); + if (curr_pos != std::string::npos) + { + // Find the shader stage name. + curr_pos = amdgpu_dis_output.find(kAmdgpuDisShaderNameStartToken, curr_pos); + assert(curr_pos != std::string::npos); + if (curr_pos != std::string::npos) + { + const size_t stage_name_offset_end = amdgpu_dis_output.find("_", curr_pos + strlen(kAmdgpuDisShaderNameStartToken)); + const size_t stage_name_offset_begin = curr_pos + strlen(kAmdgpuDisShaderNameStartToken); + std::string stage_name = amdgpu_dis_output.substr(stage_name_offset_begin, stage_name_offset_end - stage_name_offset_begin); + assert(!stage_name.empty()); + assert(BeUtils::IsValidAmdgpuShaderStage(stage_name)); + if (BeUtils::IsValidAmdgpuShaderStage(stage_name)) + { + // Construct the shader end token "_amdgpu__main_symend:". + std::stringstream shader_end_token_stream; + shader_end_token_stream << kAmdgpuDisShaderNameStartToken << stage_name << kAmdgpuDisShaderNameEndToken << kAmdgpuDisShaderEndToken; + std::string shader_token_end = shader_end_token_stream.str(); + + // Extract the shader disassembly. + shader_offset_begin = amdgpu_dis_output.find("\n", curr_pos + strlen(kAmdgpuDisShaderNameStartToken)); + shader_offset_end = amdgpu_dis_output.find(shader_token_end, shader_offset_begin); + std::string shader_disassembly = amdgpu_dis_output.substr(curr_pos, shader_offset_end - curr_pos); + BeUtils::TrimLeadingAndTrailingWhitespace(shader_disassembly, shader_disassembly); + shader_to_disassembly[stage_name] = shader_disassembly; + } + else + { + error_msg = kStrErrorCannotParseDisassembly; + } + } + else + { + error_msg = kStrErrorCannotParseDisassembly; + } + } + else + { + error_msg = kStrErrorCannotParseDisassembly; + } + + // Look for the next shader. + curr_pos = amdgpu_dis_output.find(kAmdgpuDisDotSizeToken, shader_offset_end); + } + } + else + { + error_msg = kStrErrorCannotParseDisassembly; + } + } + + ret = !shader_to_disassembly.empty(); + return ret; +} + beKA::beStatus beProgramBuilderVulkan::GetVulkanDriverTargetGPUs(const std::string& loader_debug, const std::string& icd_file, std::set& target_gpus, bool should_print_cmd, std::string& errText) { @@ -602,6 +686,31 @@ beStatus beProgramBuilderVulkan::InvokeVulkanBackend(const std::string& cmd_line return (status == KcUtils::ProcessStatus::kSuccess ? kBeStatusSuccess : kBeStatusVulkanBackendLaunchFailed); } +beKA::beStatus beProgramBuilderVulkan::InvokeAmdgpudis(const std::string& cmd_line_options, bool should_print_cmd, std::string& out_txt, std::string& error_msg) +{ + osFilePath amdgpu_dis_exe; + long exit_code = 0; + + // Construct the path to the amdgpu-dis executable. + osGetCurrentApplicationPath(amdgpu_dis_exe, false); + amdgpu_dis_exe.appendSubDirectory(kAmdgpudisRootDir); + amdgpu_dis_exe.setFileName(kAmdgpudisExecutable); +#ifdef _WIN32 + amdgpu_dis_exe.setFileExtension(kAmdgpudisExecutableExtension); +#endif + + KcUtils::ProcessStatus status = KcUtils::LaunchProcess(amdgpu_dis_exe.asString().asASCIICharArray(), + cmd_line_options, + "", + kProcessWaitInfinite, + should_print_cmd, + out_txt, + error_msg, + exit_code); + + return (status == KcUtils::ProcessStatus::kSuccess ? kBeStatusSuccess : kBeStatusVulkanAmdgpudisLaunchFailed); +} + beKA::beStatus beProgramBuilderVulkan::CompileSpirv(const std::string& loader_debug, const BeVkPipelineFiles& spirv_files, const BeVkPipelineFiles& isa_files, @@ -648,6 +757,108 @@ beKA::beStatus beProgramBuilderVulkan::CompileSpirv(const std::string& loader_de { CopyValidatioInfo(validation_output, validation_output_redirection); } + + // Disassemble the binaries to get the ISA disassembly from the CodeObject's .text section. + // For gfx11 targets we need to disassemble the binary CodeObject and extract the disassembly from there. + if (KcUtils::IsNavi3Target(device) && !isa_files.empty()) + { + // Invoke amdgpu-dis on the binary file and parse the output into disassembly. + if (!bin_file.empty()) + { + bool is_binary_exists = KcUtils::FileNotEmpty(bin_file); + assert(is_binary_exists); + if (is_binary_exists) + { + std::string amdgpu_dis_stdout; + std::string amdgpu_dis_stderr; + status = InvokeAmdgpudis(bin_file, should_print_cmd, amdgpu_dis_stdout, amdgpu_dis_stderr); + assert(status == beKA::kBeStatusSuccess); + if (status == beKA::kBeStatusSuccess) + { + // Parse amdgpu-dis output. + std::map shader_to_disassembly; + bool is_amdgpu_dis_output_parsed = ParseAmdgpudisOutput(amdgpu_dis_stdout, shader_to_disassembly, error_msg); + assert(is_amdgpu_dis_output_parsed); + assert(!shader_to_disassembly.empty()); + if(is_amdgpu_dis_output_parsed && !shader_to_disassembly.empty()) + { + // Count the number of input shaders, since this changes the pipeline type and impacts merged shaders. + const bool is_input_hs = !isa_files[BePipelineStage::kTessellationControl].empty(); + + // Write the ISA disassembly files. + for(uint32_t stage = BePipelineStage::kVertex; stage < BePipelineStage::kCount; stage++) + { + if(!isa_files[stage].empty()) + { + std::string amdgpu_stage_name; + bool is_valid_stage = BeUtils::BePipelineStageToAmdgpudisStageName(static_cast(stage), amdgpu_stage_name); + assert(is_valid_stage); + if (is_valid_stage) + { + if (shader_to_disassembly.find(amdgpu_stage_name) != shader_to_disassembly.end()) + { + bool is_file_written = KcUtils::WriteTextFile(isa_files[stage], shader_to_disassembly[amdgpu_stage_name], nullptr); + assert(is_file_written); + if (!KcUtils::FileNotEmpty(isa_files[stage])) + { + const char* kErrCannotWriteDisassemblyFileA = "Error: failed to write shader disassembly for amdgpu stage "; + const char* kErrCannotWriteDisassemblyFileB = ", output file name "; + std::cout << kErrCannotWriteDisassemblyFileA << amdgpu_stage_name << kErrCannotWriteDisassemblyFileB + << isa_files[stage] << std::endl; + } + } + else + { + bool is_file_written = false; + + // Special case for merged shaders. + if(stage == BePipelineStage::kVertex) + { + if (is_input_hs && shader_to_disassembly.find("hs") != shader_to_disassembly.end()) + { + // Either VS-HS-DS-GS-PS or VS-HS-DS-PS: Use "hs" disassembly instead. + is_file_written = KcUtils::WriteTextFile(isa_files[stage], shader_to_disassembly["hs"], nullptr); + } + else if (shader_to_disassembly.find("gs") != shader_to_disassembly.end()) + { + // VS-PS or VS-GS-PS: Use "gs" disassembly instead. + is_file_written = KcUtils::WriteTextFile(isa_files[stage], shader_to_disassembly["gs"], nullptr); + } + } + else if (stage == BePipelineStage::kTessellationEvaluation) + { + if (shader_to_disassembly.find("gs") != shader_to_disassembly.end()) + { + // Use "gs" disassembly instead. + is_file_written = KcUtils::WriteTextFile(isa_files[stage], shader_to_disassembly["gs"], nullptr); + } + } + + assert(is_file_written); + if (!is_file_written) + { + const char* kErrorCannotDetectMergedStage = "Error: unable to detect merged stage for "; + std::stringstream msg; + msg << kErrorCannotDetectMergedStage << amdgpu_stage_name << " shader." << std::endl; + error_msg = msg.str(); + } + } + } + } + } + } + } + else + { + const char* kErrFailedToDisassemble = "Error: failed to disassemble CodeObject "; + std::stringstream error_msg_stream; + error_msg_stream << kErrFailedToDisassemble << bin_file << std::endl; + error_msg = error_msg_stream.str(); + } + } + } + } + } return status; diff --git a/source/radeon_gpu_analyzer_backend/be_program_builder_vulkan.h b/source/radeon_gpu_analyzer_backend/be_program_builder_vulkan.h index 687471e..c8d3ae5 100644 --- a/source/radeon_gpu_analyzer_backend/be_program_builder_vulkan.h +++ b/source/radeon_gpu_analyzer_backend/be_program_builder_vulkan.h @@ -57,7 +57,7 @@ class beProgramBuilderVulkan : public BeProgramBuilder // Preprocess input file using the glslang compiler. The preprocessed text is returned in "output" string. static beStatus PreprocessSource(const Config& config, const std::string& glslang_bin_dir, const std::string& input_file, - bool is_hlsl, bool should_print_cmdprintCmd, std::string& output, std::string& error_msg); + bool is_hlsl, bool should_print_cmd, std::string& output, std::string& error_msg); private: // Invoke the glslang compiler executable. @@ -66,10 +66,14 @@ class beProgramBuilderVulkan : public BeProgramBuilder // Invoke one of SPIR-V tools. static beStatus InvokeSpvTool(BeVulkanSpirvTool tool, const std::string& spv_tools_bin_dir, const std::string& cmd_line_options, - bool should_print_cmdprintCmd, std::string& out_msg, std::string& err_msg); + bool should_print_cmd, std::string& out_msg, std::string& err_msg); // Invoke the VulkanBackend executable. - static beStatus InvokeVulkanBackend(const std::string& cmd_line_options, bool should_print_cmdprintCmd, + static beStatus InvokeVulkanBackend(const std::string& cmd_line_options, bool should_print_cmd, + std::string& out_text, std::string& error_txt); + + // Invoke the amdgpu-dis executable. + static beStatus InvokeAmdgpudis(const std::string& cmd_line_options, bool should_print_cmd, std::string& out_text, std::string& error_txt); }; diff --git a/source/radeon_gpu_analyzer_backend/be_static_isa_analyzer.cpp b/source/radeon_gpu_analyzer_backend/be_static_isa_analyzer.cpp index 53253c8..926e92a 100755 --- a/source/radeon_gpu_analyzer_backend/be_static_isa_analyzer.cpp +++ b/source/radeon_gpu_analyzer_backend/be_static_isa_analyzer.cpp @@ -71,14 +71,19 @@ static std::string GetShaeIsaCmd(const gtString& target) const gtString kShaeGfx8 = L"gfx8"; const gtString kShaeGfx9 = L"gfx9"; const gtString kShaeGfx10_1 = L"gfx10_1"; - const gtString kShaeGfx10_3 = L"gfx10_3"; - - std::stringstream shae_gfx_generation; - shae_gfx_generation << "--isa "; - if (KcUtils::IsNavi21AndBeyond(target.asASCIICharArray())) - { - shae_gfx_generation << kShaeGfx10_3.asASCIICharArray(); - } + const gtString kShaeGfx10_3 = L"gfx10_3"; + const gtString kShaeGfx11 = L"gfx11"; + + std::stringstream shae_gfx_generation; + shae_gfx_generation << "--isa "; + if (KcUtils::IsNavi3Target(target.asASCIICharArray())) + { + shae_gfx_generation << kShaeGfx11.asASCIICharArray(); + } + else if (KcUtils::IsNavi21AndBeyond(target.asASCIICharArray())) + { + shae_gfx_generation << kShaeGfx10_3.asASCIICharArray(); + } else if (KcUtils::IsNaviTarget(target.asASCIICharArray())) { shae_gfx_generation << kShaeGfx10_1.asASCIICharArray(); diff --git a/source/radeon_gpu_analyzer_backend/be_string_constants.h b/source/radeon_gpu_analyzer_backend/be_string_constants.h index 27b8462..5ae2a89 100644 --- a/source/radeon_gpu_analyzer_backend/be_string_constants.h +++ b/source/radeon_gpu_analyzer_backend/be_string_constants.h @@ -1,6 +1,6 @@ -//================================================================= -// Copyright 2020 Advanced Micro Devices, Inc. All rights reserved. -//================================================================= +//====================================================================== +// Copyright 2020-2022 Advanced Micro Devices, Inc. All rights reserved. +//====================================================================== #ifndef RGA_RADEONGPUANALYZERBACKEND_SRC_BE_STRING_CONSTANTS_H_ #define RGA_RADEONGPUANALYZERBACKEND_SRC_BE_STRING_CONSTANTS_H_ @@ -17,6 +17,7 @@ static const char* kDeviceNameGfx1031 = "gfx1031"; static const char* kDeviceNameGfx1032 = "gfx1032"; static const char* kDeviceNameGfx1034 = "gfx1034"; static const char* kDeviceNameGfx1035 = "gfx1035"; +static const char* kDeviceNameGfx1100 = "gfx1100"; // LLVM Lightning Compiler. #if defined(_WIN64) || defined(__linux) @@ -34,17 +35,21 @@ static const wchar_t* kLcCompilerExecutableExtension = L""; // Vulkan static const wchar_t* kGlslangRootDir = L"utils/vulkan"; static const wchar_t* kVulkanBackendRootDir = L"utils/vulkan"; +static const wchar_t* kAmdgpudisRootDir = L"utils/lc/disassembler"; static const wchar_t* kGlslangExecutable = L"glslangValidator"; static const wchar_t* kSpirvAsExecutable = L"spirv-as"; static const wchar_t* kSpirvDisExecutable = L"spirv-dis"; static const wchar_t* kSpirvLinkExecutable = L"spirv-link"; static const wchar_t* kVulkanBackendExecutable = L"vulkan_backend"; +static const wchar_t* kAmdgpudisExecutable = L"amdgpu-dis"; #if defined(_WIN32) static const wchar_t* kGlslangExecutableExtension = L"exe"; static const wchar_t* kVulkanBackendExecutableExtension = L"exe"; +static const wchar_t* kAmdgpudisExecutableExtension = L"exe"; #else +static const wchar_t* kAmdgpudisExecutableExtension = L""; static const wchar_t* kGlslangExecutableExtension = L""; static const wchar_t* kVulkanBackendExecutableExtension = L""; #endif diff --git a/source/radeon_gpu_analyzer_backend/be_utils.cpp b/source/radeon_gpu_analyzer_backend/be_utils.cpp index f5cddf4..c0b4c1d 100644 --- a/source/radeon_gpu_analyzer_backend/be_utils.cpp +++ b/source/radeon_gpu_analyzer_backend/be_utils.cpp @@ -31,6 +31,14 @@ // CLI. #include "source/radeon_gpu_analyzer_cli/kc_utils.h" +// Local constants and definitions. +static const char* kShaderStageVs = "vs"; +static const char* kShaderStageHs = "hs"; +static const char* kShaderStageDs = "ds"; +static const char* kShaderStageGs = "gs"; +static const char* kShaderStagePs = "ps"; +static const char* kShaderStageCs = "cs"; + // *** INTERNALLY-LINKED AUXILIARY FUNCTIONS - BEGIN *** // Converts string to its lower-case version. @@ -68,7 +76,6 @@ bool BeUtils::GdtHwGenToNumericValue(GDT_HW_GENERATION hw_generation, size_t& gf switch (hw_generation) { - case GDT_HW_GENERATION_GFX9: gfx_ip = kGfxIp9; break; @@ -102,6 +109,7 @@ bool BeUtils::GetAllGraphicsCards(std::vector& card_list, AddGenerationDevices(GDT_HW_GENERATION_GFX9, card_list, public_device_unique_names, convert_to_lower); AddGenerationDevices(GDT_HW_GENERATION_GFX10, card_list, public_device_unique_names, convert_to_lower); AddGenerationDevices(GDT_HW_GENERATION_GFX103, card_list, public_device_unique_names, convert_to_lower); + AddGenerationDevices(GDT_HW_GENERATION_GFX11, card_list, public_device_unique_names, convert_to_lower); return (!card_list.empty() && !public_device_unique_names.empty()); } @@ -240,6 +248,28 @@ void BeUtils::SplitString(const std::string& str, char delim, std::vector(ch, std::locale::classic()); }); + trimmed_text.erase(trimmed_text.begin(), space_iter); +} + +static void RightTrim(const std::string& text, std::string& trimmed_text) +{ + trimmed_text = text; + auto space_iter = std::find_if(trimmed_text.rbegin(), trimmed_text.rend(), [](char ch) { return !std::isspace(ch, std::locale::classic()); }); + trimmed_text.erase(space_iter.base(), trimmed_text.end()); +} + +void BeUtils::TrimLeadingAndTrailingWhitespace(const std::string& text, std::string& trimmed_text) +{ + // Trim the whitespace off the left and right sides of the incoming text. + std::string left_trimmed; + LeftTrim(text, left_trimmed); + RightTrim(left_trimmed, trimmed_text); +} + bool BeUtils::DeviceNameLessThan(const std::string& a, const std::string& b) { const char* kGfxNotationToken = "gfx"; @@ -520,3 +550,43 @@ bool BeUtils::ExtractCodeObjectStatistics(const std::string& disassembly_whole, ret = !data_map.empty(); return ret; } + +bool BeUtils::IsValidAmdgpuShaderStage(const std::string& shader_stage) +{ + bool ret = (shader_stage.compare(kShaderStageCs) == 0) || (shader_stage.compare(kShaderStagePs) == 0) || (shader_stage.compare(kShaderStageGs) == 0) || + (shader_stage.compare(kShaderStageVs) == 0) || (shader_stage.compare(kShaderStageHs) == 0) || (shader_stage.compare(kShaderStageDs) == 0); + return ret; +} + +bool BeUtils::BePipelineStageToAmdgpudisStageName(BePipelineStage pipeline_stage, std::string& amdgpu_dis_stage) +{ + bool ret = true; + switch (pipeline_stage) + { + case kVertex: + amdgpu_dis_stage = kShaderStageVs; + break; + case kTessellationControl: + amdgpu_dis_stage = kShaderStageHs; + break; + case kTessellationEvaluation: + amdgpu_dis_stage = kShaderStageDs; + break; + case kGeometry: + amdgpu_dis_stage = kShaderStageGs; + break; + case kFragment: + amdgpu_dis_stage = kShaderStagePs; + break; + case kCompute: + amdgpu_dis_stage = kShaderStageCs; + break; + case kCount: + default: + // We shouldn't get here. + ret = false; + assert(ret); + break; + } + return ret; +} diff --git a/source/radeon_gpu_analyzer_backend/be_utils.h b/source/radeon_gpu_analyzer_backend/be_utils.h index bea26b0..d42ba99 100644 --- a/source/radeon_gpu_analyzer_backend/be_utils.h +++ b/source/radeon_gpu_analyzer_backend/be_utils.h @@ -84,6 +84,9 @@ class BeUtils // and store the results in the destination vector. static void SplitString(const std::string& str, char delim, std::vector& dst); + // Trim leading and trailing whitespace characters. + static void TrimLeadingAndTrailingWhitespace(const std::string& text, std::string& trimmed_text); + // Returns true if the given string represents a numeric value, and false otherwise. static bool IsNumericValue(const std::string& str); @@ -105,6 +108,13 @@ class BeUtils static bool ExtractCodeObjectStatistics(const std::string& disassembly_whole, std::map& data); + // Returns true if the given shader stage name is a valid amdgpu-dis shader stage name and false otherwise. + static bool IsValidAmdgpuShaderStage(const std::string& shader_stage); + + // Sets the output string to the amdgpu-dis shader stage that corresponds to the given pipeline stage. + // Returns true upon success, false otherwise. + static bool BePipelineStageToAmdgpudisStageName(BePipelineStage pipeline_stage, std::string& amdgpu_dis_stage); + private: // No instances for this class, as this is a static utility class. BeUtils() = default; diff --git a/source/radeon_gpu_analyzer_backend/emulator/parser/be_isa_parser.cpp b/source/radeon_gpu_analyzer_backend/emulator/parser/be_isa_parser.cpp index c63805c..45d34f7 100644 --- a/source/radeon_gpu_analyzer_backend/emulator/parser/be_isa_parser.cpp +++ b/source/radeon_gpu_analyzer_backend/emulator/parser/be_isa_parser.cpp @@ -713,7 +713,6 @@ int ParserIsa::GetLabel(const std::string& isa_line) } else if ((offset = isa_line.find(kIsaLabelToken2)) == 0) { - // LC generated labels have format "BB1_23". We consider the number of this label to be 123. if ((offset = isa_line.find('_')) != std::string::npos) { stream << isa_line.substr(kIsaLabelToken2.size(), offset - kIsaLabelToken2.size()) << @@ -721,6 +720,31 @@ int ParserIsa::GetLabel(const std::string& isa_line) stream >> ret; } } + else + { + // Clang-15 LC generated labels have the format "L:" or "_L:". + size_t labelNumLen = 0; + const size_t kLabelStartSize = 1; + const size_t kLabelEndSize = 1; + size_t labelStartMatch = isa_line.find("_L"); + if (labelStartMatch == std::string::npos) + { + labelStartMatch = isa_line.find("L"); + } + const size_t kLabelEndMatch = isa_line.find(":"); + if (labelStartMatch != std::string::npos) + { + if (labelStartMatch == 0 && kLabelEndMatch != std::string::npos) + { + labelNumLen = isa_line.size() - (kLabelStartSize + kLabelEndSize); + } + if (labelNumLen > 0) + { + stream << isa_line.substr(kLabelStartSize, labelNumLen); + stream >> ret; + } + } + } return ret; } @@ -750,6 +774,27 @@ int ParserIsa::GetGotoLabel(const std::string& sISALine) stream >> ret; } } + else + { + // Clang-15 LC generated labels have the format "L:". + size_t labelNumLen = 0; + const size_t kLabelStartSize = 1; + const size_t kLabelEndSize = 1; + const size_t kLabelStartMatch = sISALine.find("L"); + const size_t kLabelEndMatch = sISALine.find(":"); + if (kLabelStartMatch != std::string::npos) + { + if (kLabelStartMatch == 0 && kLabelEndMatch != std::string::npos) + { + labelNumLen = sISALine.size() - (kLabelStartSize + kLabelEndSize); + } + if (labelNumLen > 0) + { + stream << sISALine.substr(kLabelStartSize, labelNumLen); + stream >> ret; + } + } + } } return ret; diff --git a/source/radeon_gpu_analyzer_cli/kc_cli_commander_dx11.cpp b/source/radeon_gpu_analyzer_cli/kc_cli_commander_dx11.cpp index 9872d99..eceaaf8 100644 --- a/source/radeon_gpu_analyzer_cli/kc_cli_commander_dx11.cpp +++ b/source/radeon_gpu_analyzer_cli/kc_cli_commander_dx11.cpp @@ -20,6 +20,7 @@ #include "radeon_gpu_analyzer_backend/be_static_isa_analyzer.h" #include "CElf.h" #include "DeviceInfoUtils.h" +#include "common/rg_log.h" // Local. #include "radeon_gpu_analyzer_cli/kc_cli_commander_dx11.h" @@ -35,7 +36,7 @@ static const std::string kStrDx11NaValue = "N/A"; static const char* kStrErrorShaderModelNotSupported = "Error: shader model 5.1 and above is not supported in DX11 mode. Please use DX12 mode (rga -s dx12 -h)."; static const char* kStrErrorDx11CannotListAdapters = "Error: failed to get the list of display adapters installed on this system."; static const char* kStrErrorDx11AdapterSetFailed = "Error: failed to set display adapter with provided ID."; -static const char* kStrErrorDx11IncorrectShaderModel = "Error: incorrect DX shader model provided."; +static const char* kStrErrorDx11IncorrectShaderModel = "Error: Unsupported or incorrect DX target profile provided: "; static const char* kStrErrorDx11UnsupportedShaderModel1 = "Error: unsupported Shader Model detected: "; static const char* kStrErrorDx11UnsupportedShaderModel2 = "RGA supports Shader Model "; static const char* kStrErrorDx11UnsupportedShaderModel3 = "and below."; @@ -225,8 +226,24 @@ void KcCliCommanderDX::ExtractIL(const std::string& device_name, const Config& c if (backend_rc == kBeStatusSuccess) { gtString il_output_filename; - KcUtils::ConstructOutputFileName(config.il_file, "", kStrDefaultExtensionAmdil, - config.function, device_name, il_output_filename); + if (config.donot_rename_il_files) + { + KcUtils::ConstructOutputFileName(config.il_file, + "", + kStrDefaultExtensionAmdil, + "", + "", + il_output_filename); + } + else + { + KcUtils::ConstructOutputFileName(config.il_file, + "", + kStrDefaultExtensionAmdil, + config.function, + device_name, + il_output_filename); + } KcUtils::WriteTextFile(il_output_filename.asASCIICharArray(), il_buffer, log_callback_); } @@ -448,10 +465,25 @@ void KcCliCommanderDX::RunCompileCommands(const Config& config, LoggingCallBackF } } -bool KcCliCommanderDX::PrintAsicList(const Config&) +static void LoggingCallback(const string& s) { - std::set targets; - return KcUtils::PrintAsicList(targets, kUnsupportedDevicesDx11); + RgLog::stdOut << s.c_str() << std::flush; +} + +bool KcCliCommanderDX::PrintAsicList(const Config& config) +{ + bool ret = false; + bool is_init_successful = Init(config, LoggingCallback); + if (is_init_successful) + { + std::set targets; + for (const auto& device : dx_default_asics_list_) + { + targets.insert(device.m_szCALName); + } + ret = KcUtils::PrintAsicList(targets, kUnsupportedDevicesDx11); + } + return ret; } bool KcCliCommanderDX::WriteAnalysisDataForDX(const Config& config, const std::vector& analysis_data, @@ -540,9 +572,19 @@ bool KcCliCommanderDX::WriteAnalysisDataForDX(const Config& config, const std::v bool ParseProfileString(const std::string& profile, std::pair& version) { bool result = false; + bool should_abort = false; + + // On the new PAL-based stack, only VS, PS and CS are supported. + if (profile.find("hs") != std::string::npos || + profile.find("ds") != std::string::npos || + profile.find("gs") != std::string::npos) + { + std::cout << "Error: DX11 mode only supports VS, PS and CS target profiles." << std::endl; + should_abort = true; + } // Profile string format: XX_N_N. - if (!profile.empty()) + if (!should_abort && !profile.empty()) { size_t minor, major = profile.find('_'); if (major != std::string::npos) @@ -572,7 +614,7 @@ bool KcCliCommanderDX::Compile(const Config& config, const GDT_GfxCardInfo& gfxC if (config.mode != RgaMode::kModeAmdil && !config.dxbc_input_dx11 && !ParseProfileString(config.profile, version)) { - log << kStrErrorDx11IncorrectShaderModel << std::endl; + log << kStrErrorDx11IncorrectShaderModel << config.profile << std::endl; ret = false; } @@ -745,7 +787,7 @@ bool KcCliCommanderDX::Init(const Config& config, LoggingCallBackFuncP callback) if (should_continue) { - should_continue = (dx_builder.Initialize(dxxModulePath, config.dx_compiler_location) == beKA::kBeStatusSuccess); + should_continue = (dx_builder.Initialize(dxxModulePath, config.dx_compiler_location, config.print_process_cmd_line) == beKA::kBeStatusSuccess); } else { diff --git a/source/radeon_gpu_analyzer_cli/kc_cli_commander_dx11.h b/source/radeon_gpu_analyzer_cli/kc_cli_commander_dx11.h index 86f6647..c6cc75e 100644 --- a/source/radeon_gpu_analyzer_cli/kc_cli_commander_dx11.h +++ b/source/radeon_gpu_analyzer_cli/kc_cli_commander_dx11.h @@ -19,7 +19,7 @@ class KcCliCommanderDX : public KcCliCommander /// List the adapters installed on the system. void ListAdapters(Config& config, LoggingCallbackFunction callback) override; void RunCompileCommands(const Config& config, LoggingCallbackFunction callback) override; - bool PrintAsicList(const Config&) override; + bool PrintAsicList(const Config& config) override; private: // Functions. diff --git a/source/radeon_gpu_analyzer_cli/kc_cli_commander_lightning.cpp b/source/radeon_gpu_analyzer_cli/kc_cli_commander_lightning.cpp index c740a81..ba4cd45 100644 --- a/source/radeon_gpu_analyzer_cli/kc_cli_commander_lightning.cpp +++ b/source/radeon_gpu_analyzer_cli/kc_cli_commander_lightning.cpp @@ -1,4 +1,3 @@ - // C++. #include #include @@ -56,7 +55,8 @@ kLcLlvmTargetsToDeviceInfoTargets = { {"gfx801", "carrizo"}, {"gfx1031", "gfx1031"}, {"gfx1032", "gfx1032"}, {"gfx1034", "gfx1034"}, - {"gfx1035", "gfx1035"}}; + {"gfx1035", "gfx1035"}, + {"gfx1100", "gfx1100"}}; // For some devices, clang does not accept device names that RGA gets from DeviceInfo. // This table maps the DeviceInfo names to names accepted by clang for such devices. @@ -154,7 +154,8 @@ static const std::map kRgaDeviceProps = {"gfx1031", {104, 256, 65536, 16, 4}}, {"gfx1032", {104, 256, 65536, 16, 4}}, {"gfx1034", {104, 256, 65536, 16, 4}}, - {"gfx1035", {104, 256, 65536, 16, 4}}}; + {"gfx1035", {104, 256, 65536, 16, 4}}, + {"gfx1100", {104, 256, 65536, 16, 4}} }; static const size_t kIsaInstruction64BitCodeTextSize = 16; static const int kIsaInstruction64BitBytes = 8; @@ -681,7 +682,6 @@ beStatus KcCLICommanderLightning::CompileOpenCL(const Config& config, const Open std::string error_text; LogPreStep(kStrInfoCompiling, device); std::string bin_filename; - gtString il_filename; // Adjust the device name if necessary. std::string clang_device = device; @@ -724,20 +724,7 @@ beStatus KcCLICommanderLightning::CompileOpenCL(const Config& config, const Open // If "dump IL" option is passed to the Lightning Compiler, it should dump the IL to stderr. if (ocl_options.should_dump_il) { - KcUtils::ConstructOutputFileName(config.il_file, "", kStrDefaultExtensionLlvmir, "", device, il_filename); - - // Generate new options instructing to generate LLVM IR disassembly. - OpenCLOptions ocl_options_llvm_ir = ocl_options; - ocl_options_llvm_ir.should_generate_llvm_ir_disassembly = true; - - current_status = BeProgramBuilderLightning::CompileOpenCLToLlvmIr( - compiler_paths_, ocl_options_llvm_ir, src_filenames, il_filename.asASCIICharArray(), clang_device, should_print_cmd_, error_text); - if (current_status != kBeStatusSuccess) - { - std::stringstream msg; - msg << kStrErrorOpenclOfflineLlvmIrDisassemblyFailure << std::endl; - error_text.append(msg.str()); - } + current_status = DumpIL(config, ocl_options, src_filenames, device, clang_device, error_text); } else if (config.is_warnings_required) { @@ -1744,3 +1731,50 @@ void KcCLICommanderLightning::DeleteTempFiles() const } } } + +beStatus KcCLICommanderLightning::DumpIL(const Config& config, + const OpenCLOptions& user_options, + const std::vector& src_file_names, + const std::string& device, + const std::string& clang_device, + std::string& error_text) +{ + beStatus status = kBeStatusSuccess; + + // Generate new options instructing to generate LLVM IR disassembly. + OpenCLOptions ocl_options_llvm_ir = user_options; + ocl_options_llvm_ir.should_generate_llvm_ir_disassembly = true; + + for (const auto& src_file_name_with_ext : src_file_names) + { + // Convert the src kernel input file name to gtString. + gtString src_file_name_with_ext_as_gtstr; + src_file_name_with_ext_as_gtstr << src_file_name_with_ext.c_str(); + osFilePath src_file_path(src_file_name_with_ext_as_gtstr); + + // Extract the kernel's file name without directory and extension. + gtString src_file_name; + assert(!src_file_path.isDirectory()); + src_file_path.getFileName(src_file_name); + + gtString il_filename; + KcUtils::ConstructOutputFileName(config.il_file, "", kStrDefaultExtensionLlvmir, src_file_name.asASCIICharArray(), device, il_filename); + + // Invoking clang with "-emit-llvm -S" for multiple .cl files is not supported. + // Clang should be invoked with one input file at a time. + status = BeProgramBuilderLightning::CompileOpenCLToLlvmIr(compiler_paths_, + ocl_options_llvm_ir, + std::vector{src_file_name_with_ext}, + il_filename.asASCIICharArray(), + clang_device, + should_print_cmd_, + error_text); + if (status != kBeStatusSuccess) + { + std::stringstream msg; + msg << kStrErrorOpenclOfflineLlvmIrDisassemblyFailure << std::endl; + error_text.append(msg.str()); + } + } + return status; +} \ No newline at end of file diff --git a/source/radeon_gpu_analyzer_cli/kc_cli_commander_lightning.h b/source/radeon_gpu_analyzer_cli/kc_cli_commander_lightning.h index a34816b..789685a 100644 --- a/source/radeon_gpu_analyzer_cli/kc_cli_commander_lightning.h +++ b/source/radeon_gpu_analyzer_cli/kc_cli_commander_lightning.h @@ -118,6 +118,14 @@ class KcCLICommanderLightning : public KcCliCommander // Delete all temporary files created by RGA. void DeleteTempFiles() const; + // Dump IL file. + beStatus DumpIL(const Config& config, + const OpenCLOptions& user_options, + const std::vector& src_file_names, + const std::string& device, + const std::string& clang_device, + std::string& error_text); + // ---- DATA ---- // Output Metadata diff --git a/source/radeon_gpu_analyzer_cli/kc_cli_commander_opengl.cpp b/source/radeon_gpu_analyzer_cli/kc_cli_commander_opengl.cpp index 9d39f62..0d32c9a 100644 --- a/source/radeon_gpu_analyzer_cli/kc_cli_commander_opengl.cpp +++ b/source/radeon_gpu_analyzer_cli/kc_cli_commander_opengl.cpp @@ -31,7 +31,7 @@ // Constants. static const char* kStrErrorOpenglIsaParsingFailed = "Error: failed to parse ISA into CSV."; static const char* kStrErrorOpenglCannotExtractVersion = "Error: unable to extract the OpenGL version."; -static const char* kStrErrTextFileWriteFailed = "Error: unable to write to statistics file."; +static const char* kStrErrTextFileWriteFailed = "Error: unable to write to statistics file."; static const char* kStrErrNoInputFile = "Error: no input file received."; // Unsupported devices. diff --git a/source/radeon_gpu_analyzer_cli/kc_cli_commander_vulkan.cpp b/source/radeon_gpu_analyzer_cli/kc_cli_commander_vulkan.cpp index c29775a..5b19022 100644 --- a/source/radeon_gpu_analyzer_cli/kc_cli_commander_vulkan.cpp +++ b/source/radeon_gpu_analyzer_cli/kc_cli_commander_vulkan.cpp @@ -397,6 +397,15 @@ static bool ConstructVkOutputFileNames(const Config& config, } } + if (KcUtils::IsNavi3Target(device) && !isa_filenames.empty()) + { + status = KcUtils::ConstructOutFileName(base_bin_filename, + "", + (!config.should_avoid_binary_device_prefix ? device : ""), + (config.should_avoid_binary_suffix ? "" : kStrVulkanBinaryFileExtension), + bin_filename); + } + assert(status); return status; } @@ -919,25 +928,30 @@ void KcCliCommanderVulkan::RunCompileCommands(const Config& config, LoggingCallb // ***************************** // Post-process for all devices. // ***************************** - - // Convert ISA text to CSV if required. - if (status && configPerDevice.is_parsed_isa_required) + for (auto& device_md_node : output_metadata_) { - status = ParseIsaFilesToCSV(true); - } + bool is_ok = true; + const std::string& device_string = device_md_node.first; + RgVkOutputMetadata& device_md = device_md_node.second; - // Analyze live registers if requested. - if (status && !configPerDevice.livereg_analysis_file.empty()) - { - status = PerformLiveRegAnalysis(config); - } + // Convert ISA text to CSV if required. + if (is_ok && configPerDevice.is_parsed_isa_required) + { + is_ok = ParseIsaFilesToCSV(true, device_string, device_md); + } - // Generate CFG if requested. - if (status && (!configPerDevice.block_cfg_file.empty() || !configPerDevice.inst_cfg_file.empty())) - { - status = ExtractCFG(config); - } + // Analyze live registers if requested. + if (is_ok && !configPerDevice.livereg_analysis_file.empty()) + { + is_ok = PerformLiveRegAnalysis(config, device_string, device_md); + } + // Generate CFG if requested. + if (is_ok && (!configPerDevice.block_cfg_file.empty() || !configPerDevice.inst_cfg_file.empty())) + { + is_ok = ExtractCFG(config, device_string, device_md); + } + } } } } @@ -1417,6 +1431,11 @@ void KcCliCommanderVulkan::CompileSpvToIsaForDevice(const Config& config, const { std::copy_if(isa_files.cbegin(), isa_files.cend(), std::back_inserter(temp_files_), [&](const std::string& s) { return !s.empty(); }); + + if (KcUtils::IsNavi3Target(device)) + { + temp_files_.push_back(bin_file_name); + } } } else @@ -1675,97 +1694,86 @@ bool KcCliCommanderVulkan::GenerateSessionMetadata(const Config& config) const return KcXmlWriter::GenerateVulkanSessionMetadataFile(config.session_metadata_file, output_metadata_); } -bool KcCliCommanderVulkan::ParseIsaFilesToCSV(bool line_numbers) +bool KcCliCommanderVulkan::ParseIsaFilesToCSV(bool line_numbers, const std::string& device_string, RgVkOutputMetadata& metadata) { bool ret = true; // Step through existing output items to determine which files to generate CSV ISA for. - for (auto& output_md_item : output_metadata_) + for (RgOutputFiles& output_file : metadata) { - const std::string& device_string = output_md_item.first; - RgVkOutputMetadata& metadata = output_md_item.second; - - for (RgOutputFiles& output_file : metadata) + if (!output_file.input_file.empty()) { - if (!output_file.input_file.empty()) - { - std::string isa, parsed_isa, parsed_isa_filename; - bool status = KcUtils::ReadTextFile(output_file.isa_file, isa, nullptr); + std::string isa, parsed_isa, parsed_isa_filename; + bool status = KcUtils::ReadTextFile(output_file.isa_file, isa, nullptr); - if (status) + if (status) + { + // Convert the ISA text to CSV format. + if ((status = GetParsedIsaCsvText(isa, device_string, line_numbers, parsed_isa)) == true) { - // Convert the ISA text to CSV format. - if ((status = GetParsedIsaCsvText(isa, device_string, line_numbers, parsed_isa)) == true) + status = (KcUtils::GetParsedISAFileName(output_file.isa_file, parsed_isa_filename) == beKA::kBeStatusSuccess); + if (status) { - status = (KcUtils::GetParsedISAFileName(output_file.isa_file, parsed_isa_filename) == beKA::kBeStatusSuccess); + // Attempt to write the ISA CSV to disk. + status = (WriteIsaToFile(parsed_isa_filename, parsed_isa) == beKA::kBeStatusSuccess); if (status) { - // Attempt to write the ISA CSV to disk. - status = (WriteIsaToFile(parsed_isa_filename, parsed_isa) == beKA::kBeStatusSuccess); - if (status) - { - // Update the session metadata output to include the path to the ISA CSV. - output_file.isa_csv_file = parsed_isa_filename; - } + // Update the session metadata output to include the path to the ISA CSV. + output_file.isa_csv_file = parsed_isa_filename; } } + } - if (!status) - { - RgLog::stdOut << kStrErrorFailedToConvertToCsvFormat << output_file.isa_file << std::endl; - } + if (!status) + { + RgLog::stdOut << kStrErrorFailedToConvertToCsvFormat << output_file.isa_file << std::endl; } - ret &= status; } + ret &= status; } } return ret; } -bool KcCliCommanderVulkan::PerformLiveRegAnalysis(const Config& conf) +bool KcCliCommanderVulkan::PerformLiveRegAnalysis(const Config& conf, const std::string& device, RgVkOutputMetadata& device_md) { bool ret = true; - for (auto& device_md_node : output_metadata_) - { - const std::string& device = device_md_node.first; - const std::string& device_suffix = (conf.asics.empty() && !physical_adapter_name_.empty() ? "" : device); - RgVkOutputMetadata& device_md = device_md_node.second; - gtString device_gtstr; - device_gtstr << device.c_str(); + const std::string& device_suffix = (conf.asics.empty() && !physical_adapter_name_.empty() ? "" : device); + gtString device_gtstr; + device_gtstr << device.c_str(); - std::cout << kStrInfoPerformingLiveregAnalysis1 << device << "... " << std::endl; + std::cout << kStrInfoPerformingLiveregAnalysis1 << device << "... " << std::endl; - for (int stage = 0; stage < BePipelineStage::kCount && ret; stage++) + for (int stage = 0; stage < BePipelineStage::kCount && ret; stage++) + { + RgOutputFiles& stage_md = device_md[stage]; + if (!stage_md.input_file.empty()) { - RgOutputFiles& stage_md = device_md[stage]; - if (!stage_md.input_file.empty()) + std::string out_file_name; + gtString out_filename_gtstr, isa_filename_gtstr; + + // Construct a name for the livereg output file. + ret = KcUtils::ConstructOutFileName(conf.livereg_analysis_file, + kVulkanStageFileSuffixDefault[stage], + device_suffix, + kStrDefaultExtensionLivereg, + out_file_name, + !KcUtils::IsDirectory(conf.livereg_analysis_file)); + + if (ret && !out_file_name.empty()) { - std::string out_file_name; - gtString out_filename_gtstr, isa_filename_gtstr; - - // Construct a name for the livereg output file. - ret = KcUtils::ConstructOutFileName(conf.livereg_analysis_file, - kVulkanStageFileSuffixDefault[stage], - device_suffix, - kStrDefaultExtensionLivereg, - out_file_name, - !KcUtils::IsDirectory(conf.livereg_analysis_file)); - - if (ret && !out_file_name.empty()) - { - out_filename_gtstr << out_file_name.c_str(); - isa_filename_gtstr << stage_md.isa_file.c_str(); + out_filename_gtstr << out_file_name.c_str(); + isa_filename_gtstr << stage_md.isa_file.c_str(); - KcUtils::PerformLiveRegisterAnalysis(isa_filename_gtstr, device_gtstr, out_filename_gtstr, log_callback_, conf.print_process_cmd_line); - ret = BeUtils::IsFilePresent(out_file_name); - stage_md.livereg_file = out_file_name; - } - else - { - RgLog::stdOut << kStrErrorFailedCreateOutputFilename << std::endl; - } + KcUtils::PerformLiveRegisterAnalysis(isa_filename_gtstr, device_gtstr, out_filename_gtstr, log_callback_, conf.print_process_cmd_line); + ret = BeUtils::IsFilePresent(out_file_name); + stage_md.livereg_file = out_file_name; + } + else + { + RgLog::stdOut << kStrErrorFailedCreateOutputFilename << std::endl; } } } @@ -1775,51 +1783,46 @@ bool KcCliCommanderVulkan::PerformLiveRegAnalysis(const Config& conf) return ret; } -bool KcCliCommanderVulkan::ExtractCFG(const Config& config) const +bool KcCliCommanderVulkan::ExtractCFG(const Config& config, const std::string& device, const RgVkOutputMetadata& device_md) const { bool ret = true; - for (const auto& device_md_node : output_metadata_) - { - const std::string& device = device_md_node.first; - const std::string& device_suffix = (config.asics.empty() && !physical_adapter_name_.empty() ? "" : device); - const RgVkOutputMetadata& device_md = device_md_node.second; - bool per_inst_cfg = (!config.inst_cfg_file.empty()); - gtString device_gtstr; - device_gtstr << device.c_str(); + const std::string& device_suffix = (config.asics.empty() && !physical_adapter_name_.empty() ? "" : device); + bool per_inst_cfg = (!config.inst_cfg_file.empty()); + gtString device_gtstr; + device_gtstr << device.c_str(); - std::cout << (per_inst_cfg ? kStrInfoContructingPerInstructionCfg1 : kStrInfoContructingPerBlockCfg1) << device << "..." << std::endl; + std::cout << (per_inst_cfg ? kStrInfoContructingPerInstructionCfg1 : kStrInfoContructingPerBlockCfg1) << device << "..." << std::endl; - for (int stage = 0; stage < BePipelineStage::kCount && ret; stage++) + for (int stage = 0; stage < BePipelineStage::kCount && ret; stage++) + { + const RgOutputFiles& stage_md = device_md[stage]; + if (!stage_md.input_file.empty()) { - const RgOutputFiles& stage_md = device_md[stage]; - if (!stage_md.input_file.empty()) + std::string out_filename; + gtString out_filename_gtstr, isa_filename_gtstr; + + // Construct a name for the CFG output file. + const std::string cfg_output_file = (per_inst_cfg ? config.inst_cfg_file : config.block_cfg_file); + ret = KcUtils::ConstructOutFileName(cfg_output_file, + kVulkanStageFileSuffixDefault[stage], + device_suffix, + kStrDefaultExtensionDot, + out_filename, + !KcUtils::IsDirectory(cfg_output_file)); + + if (ret && !out_filename.empty()) { - std::string out_filename; - gtString out_filename_gtstr, isa_filename_gtstr; - - // Construct a name for the CFG output file. - const std::string cfg_output_file = (per_inst_cfg ? config.inst_cfg_file : config.block_cfg_file); - ret = KcUtils::ConstructOutFileName(cfg_output_file, - kVulkanStageFileSuffixDefault[stage], - device_suffix, - kStrDefaultExtensionDot, - out_filename, - !KcUtils::IsDirectory(cfg_output_file)); - - if (ret && !out_filename.empty()) - { - out_filename_gtstr << out_filename.c_str(); - isa_filename_gtstr << stage_md.isa_file.c_str(); + out_filename_gtstr << out_filename.c_str(); + isa_filename_gtstr << stage_md.isa_file.c_str(); - KcUtils::GenerateControlFlowGraph(isa_filename_gtstr, device_gtstr, out_filename_gtstr, - log_callback_, per_inst_cfg, config.print_process_cmd_line); - ret = BeUtils::IsFilePresent(out_filename); - } - else - { - RgLog::stdOut << kStrErrorFailedCreateOutputFilename << std::endl; - } + KcUtils::GenerateControlFlowGraph( + isa_filename_gtstr, device_gtstr, out_filename_gtstr, log_callback_, per_inst_cfg, config.print_process_cmd_line); + ret = BeUtils::IsFilePresent(out_filename); + } + else + { + RgLog::stdOut << kStrErrorFailedCreateOutputFilename << std::endl; } } } diff --git a/source/radeon_gpu_analyzer_cli/kc_cli_commander_vulkan.h b/source/radeon_gpu_analyzer_cli/kc_cli_commander_vulkan.h index 1e5499b..ce10940 100644 --- a/source/radeon_gpu_analyzer_cli/kc_cli_commander_vulkan.h +++ b/source/radeon_gpu_analyzer_cli/kc_cli_commander_vulkan.h @@ -78,10 +78,10 @@ class KcCliCommanderVulkan : public KcCliCommander bool GenerateSessionMetadata(const Config& config) const; // Parse ISA files and generate separate files that contain parsed ISA in CSV format. - bool ParseIsaFilesToCSV(bool add_line_numbers); + bool ParseIsaFilesToCSV(bool add_line_numbers, const std::string& device_string, RgVkOutputMetadata& metadata); // Perform the live registers analysis. - bool PerformLiveRegAnalysis(const Config& config); + bool PerformLiveRegAnalysis(const Config& config, const std::string& device_string, RgVkOutputMetadata& metadata); // Predict shader performance. bool PredictShaderPerformance(const Config& config) const; @@ -90,7 +90,7 @@ class KcCliCommanderVulkan : public KcCliCommander bool PerformStallAnalysis(const Config& config) const; // Generate the per-block or per-instruction Control Flow Graph. - bool ExtractCFG(const Config& config) const; + bool ExtractCFG(const Config& config, const std::string& device_string, const RgVkOutputMetadata& metadata) const; // Store input file names to the output metadata. void StoreInputFilesToOutputMD(const BeVkPipelineFiles& input_files); diff --git a/source/radeon_gpu_analyzer_cli/kc_config.h b/source/radeon_gpu_analyzer_cli/kc_config.h index 878bcbd..4c7b945 100644 --- a/source/radeon_gpu_analyzer_cli/kc_config.h +++ b/source/radeon_gpu_analyzer_cli/kc_config.h @@ -68,12 +68,13 @@ struct Config std::vector defines; ///< Macros to be added to compile. std::vector include_path; ///< Additional Include paths bool should_avoid_binary_device_prefix; ///< If true then CLI will not add the asic name to the generated binary output file. - bool should_avoid_binary_suffix; ///< If true, no extension would be added to the output binary file. - bool should_retain_temp_files; ///< If true, temporary files will not be cleaned up. + bool should_avoid_binary_suffix = false;///< If true, no extension would be added to the output binary file. + bool should_retain_temp_files = false; ///< If true, temporary files will not be cleaned up. std::string version_info_file; ///< RGA CLI config file name. std::string session_metadata_file; ///< RGA CLI session metadata file name. std::string log_file; ///< RGA CLI log file name (full path). int opt_level; ///< Optimization level. + bool donot_rename_il_files = false; ///< If true, generated IL files will not have the ASIC and function name prefixed. // DX11/GL. std::string source_kind; ///< Kind of source HLSL or GLSL (maybe more later like ASM kinds). diff --git a/source/radeon_gpu_analyzer_cli/kc_parse_cmd_line.cpp b/source/radeon_gpu_analyzer_cli/kc_parse_cmd_line.cpp index 98898d8..1dad60a 100644 --- a/source/radeon_gpu_analyzer_cli/kc_parse_cmd_line.cpp +++ b/source/radeon_gpu_analyzer_cli/kc_parse_cmd_line.cpp @@ -342,6 +342,7 @@ bool ParseCmdLine(int argc, char* argv[], Config& config) ("parse-isa", "Generate a CSV file with a breakdown of each ISA instruction into opcode, operands. etc.") ("csv-separator", po::value(&config.csv_separator), "Override to default separator for analysis items.") ("retain", "Retain temporary output files.") + ("no-rename-il", "If specified, do not rename generated IL file.") ; // All options available from command line @@ -378,6 +379,11 @@ bool ParseCmdLine(int argc, char* argv[], Config& config) config.should_retain_temp_files = true; } + if (vm.count("no-rename-il")) + { + config.donot_rename_il_files = true; + } + if (vm.count("list-asics")) { config.requested_command = Config::kListAsics; @@ -851,7 +857,7 @@ bool ParseCmdLine(int argc, char* argv[], Config& config) cout << "Examples:" << endl; cout << " Compile fragment shader for gfx1034; extract ISA, binaries and statistics:" << endl; cout << " " << program_name << " -s opengl -c gfx1034 --isa output/opengl_isa.txt -b output/opengl_bin.bin -a output/opengl_stats.csv --frag source/myFragmentShader.frag" << endl; - cout << " Compile vertex & fragment shaders for FirePro gfx1030; Extract ISA and control flow graph: " << endl; + cout << " Compile vertex & fragment shaders for gfx1030; Extract ISA and control flow graph: " << endl; cout << " " << program_name << " -s opengl -c gfx1030 --isa output/opengl_isa.txt --cfg output/cfg.dot --vert myVertexShader.vert --frag cmyFragmentShader.frag" << endl; cout << " Compile geometry shader for all supported devices; extract ISA and perform live register analysis:" << endl; cout << " " << program_name << " -s opengl --isa output/opengl_isa.txt --livereg output/regs.txt --geom source/myVertexShader.geom" << endl; diff --git a/source/radeon_gpu_analyzer_cli/kc_utils.cpp b/source/radeon_gpu_analyzer_cli/kc_utils.cpp index 4aab969..198d7f5 100644 --- a/source/radeon_gpu_analyzer_cli/kc_utils.cpp +++ b/source/radeon_gpu_analyzer_cli/kc_utils.cpp @@ -1674,6 +1674,13 @@ void KcUtils::CheckForUpdates() } } +bool KcUtils::IsNavi3Target(const std::string& target_name) +{ + // Token to identify Navi3 targets. + static const char* kNavi3TargetToken = "gfx11"; + return (target_name.find(kNavi3TargetToken) != std::string::npos); +} + bool KcUtils::IsNaviTarget(const std::string& target_name) { // Token to identify Navi targets. diff --git a/source/radeon_gpu_analyzer_cli/kc_utils.h b/source/radeon_gpu_analyzer_cli/kc_utils.h index 7fb7321..174df8e 100644 --- a/source/radeon_gpu_analyzer_cli/kc_utils.h +++ b/source/radeon_gpu_analyzer_cli/kc_utils.h @@ -318,6 +318,9 @@ class KcUtils // Checks for available updates. static void CheckForUpdates(); + // Returns true if the target is of the Navi3 generation and false otherwise. + static bool IsNavi3Target(const std::string& target_name); + // Returns true if the target is of the Navi generation and false otherwise. static bool IsNaviTarget(const std::string& target_name); diff --git a/source/radeon_gpu_analyzer_gui/qt/rg_build_view.h b/source/radeon_gpu_analyzer_gui/qt/rg_build_view.h index 437dec6..e315ab8 100644 --- a/source/radeon_gpu_analyzer_gui/qt/rg_build_view.h +++ b/source/radeon_gpu_analyzer_gui/qt/rg_build_view.h @@ -283,6 +283,12 @@ class RgBuildView : public QWidget // Emit a signal to indicate change in splitter location. void SplitterMoved(); + // A signal emitted when the user clicks on show maximum VGPRs menu item. + void ShowMaximumVgprClickedSignal(); + + // A signal to enable/disable the Edit->Go to next maximum live VGPR line option. + void EnableShowMaxVgprOptionSignal(bool is_enabled); + public slots: // Handle switching focus to the next view in the RgViewManager. void HandleFocusNextView(); diff --git a/source/radeon_gpu_analyzer_gui/qt/rg_isa_disassembly_tab_view.h b/source/radeon_gpu_analyzer_gui/qt/rg_isa_disassembly_tab_view.h index 49f3ed5..44398cf 100644 --- a/source/radeon_gpu_analyzer_gui/qt/rg_isa_disassembly_tab_view.h +++ b/source/radeon_gpu_analyzer_gui/qt/rg_isa_disassembly_tab_view.h @@ -54,6 +54,12 @@ class RgIsaDisassemblyTabView : public QWidget // This function should be used when replacing a shader SPIR-V file with its disassembly version and vice versa. bool ReplaceInputFilePath(const std::string& old_file_path, const std::string& new_file_path); + // Get the current table view. + RgIsaDisassemblyTableView* GetCurrentTableView() const; + + // Return the current show maximum VGPR boolean. + bool IsShowCurrentMaxVgprEnabled(); + signals: // A signal emitted containing the index of the correlated line in the high level source input file. void InputSourceHighlightedLineChanged(int line_number); @@ -91,10 +97,19 @@ class RgIsaDisassemblyTabView : public QWidget // A signal to switch disassembly view size. void SwitchDisassemblyContainerSize(); + // A signal to enable/disable the Edit->Go to next maximum live VGPR line option. + void EnableShowMaxVgprOptionSignal(bool is_enabled); + public slots: // A handler invoked when the user changes the visible columns in the disassembly table. void HandleColumnVisibilityFilterStateChanged(); + // A handler invoked when the user wants to highlight the next maximum VGPR line. + void HandleShowNextMaxVgprSignal(); + + // A handler invoked when the user wants to highlight the previous maximum VGPR line. + void HandleShowPreviousMaxVgprSignal(); + protected: // Connect signals for a new ISA table view instance. void ConnectTableViewSignals(RgIsaDisassemblyTableView* table_view); diff --git a/source/radeon_gpu_analyzer_gui/qt/rg_isa_disassembly_table_model.h b/source/radeon_gpu_analyzer_gui/qt/rg_isa_disassembly_table_model.h index 2151c77..2fbca1b 100644 --- a/source/radeon_gpu_analyzer_gui/qt/rg_isa_disassembly_table_model.h +++ b/source/radeon_gpu_analyzer_gui/qt/rg_isa_disassembly_table_model.h @@ -71,6 +71,9 @@ class RgIsaDisassemblyTableModel : public ModelViewMapper // Is the given ISA line correlated with a line in the input file? bool IsIsaLineCorrelated(int line_index) const; + // Is the given ISA line a current max VGPR line? + bool IsCurrentMaxVgprLine(int line_index) const; + // Is the given source line correlated with some ISA line(s)? bool IsSourceLineCorrelated(int line_index) const; @@ -89,6 +92,27 @@ class RgIsaDisassemblyTableModel : public ModelViewMapper // Initialize the model's data with the disassembled instruction lines. void InitializeModelData(); + // Return the maximum VGPR line number. + std::vector GetMaximumVgprLineNumbers() const; + + // Advance to the next max VGPR line. + void UpdateCurrentMaxVgprLine(); + + // Reset the current max VGPR line index. + void ResetCurrentMaxVgprValues(); + + // Return the current max VGPR line number. + bool GetNextMaxVgprLineNumber(int& line_number); + + // Return the previous max VGPR line number. + bool GetPreviousMaxVgprLineNumber(int& line_number); + + // Highlight the current maximum VGPR line. + void HighlightCurrentMaxVgprLine(); + + // Return the current show maximum VGPR boolean. + bool IsShowCurrentMaxVgprEnabled(); + protected: // An enumeration specifying each column we expect to find in an ISA CSV file. enum class RgIsaDisassemblyCsvFileColumns @@ -172,5 +196,11 @@ class RgIsaDisassemblyTableModel : public ModelViewMapper // A vector for VGPR output file lines. std::vector vgpr_file_lines_; + + // The current maximum VGPR line index. + int current_max_vgpr_index_ = 0; + + // Boolean to indicate if the user already pressed F4. + bool is_show_current_max_vgpr_enabled_ = false; }; #endif // RGA_RADEONGPUANALYZERGUI_INCLUDE_QT_RG_ISA_DISASSEMBLY_TABLE_MODEL_H_ diff --git a/source/radeon_gpu_analyzer_gui/qt/rg_isa_disassembly_table_view.h b/source/radeon_gpu_analyzer_gui/qt/rg_isa_disassembly_table_view.h index b1c8624..dd08a51 100644 --- a/source/radeon_gpu_analyzer_gui/qt/rg_isa_disassembly_table_view.h +++ b/source/radeon_gpu_analyzer_gui/qt/rg_isa_disassembly_table_view.h @@ -74,6 +74,15 @@ class RgIsaDisassemblyTableView : public QWidget // Initialize the model data. void InitializeModelData(); + // Reset the current max VGPR line number. + void ResetCurrentMaxVgprIndex(); + + // Return the current show maximum VGPR boolean. + bool IsShowCurrentMaxVgprEnabled() const; + + // Enable/disable the show max VGPR context menu option. + void EnableShowMaxVgprContextOption(bool is_enabled) const; + protected: // Re-implement keyPressEvent. virtual void keyPressEvent(QKeyEvent* event) override; @@ -119,6 +128,12 @@ public slots: // A handler invoked when the user clicks a branch operand label link. void HandleBranchLinkClicked(const QString& link); + // Handler invoked when the user wants to see the next max VGPR line. + void HandleShowNextMaxVgprSignal(); + + // Handler invoked when the user wants to see the previous max VGPR line. + void HandleShowPreviousMaxVgprSignal(); + private slots: // Handler invoked when the copy item is clicked in the table's context menu. void HandleCopyDisassemblyClicked(); @@ -190,6 +205,9 @@ private slots: // The context menu item used to open the current disassembly table's data in the file browser. QAction* open_disassembly_in_file_browser_ = nullptr; + // The context menu item used to navigate to the maximum VGPR line. + QAction* show_maximum_vgpr_lines_ = nullptr; + // The disassembly view's interface. Ui::RgIsaDisassemblyTableView ui_; }; diff --git a/source/radeon_gpu_analyzer_gui/qt/rg_isa_disassembly_view.h b/source/radeon_gpu_analyzer_gui/qt/rg_isa_disassembly_view.h index 155f063..97c845b 100755 --- a/source/radeon_gpu_analyzer_gui/qt/rg_isa_disassembly_view.h +++ b/source/radeon_gpu_analyzer_gui/qt/rg_isa_disassembly_view.h @@ -60,6 +60,12 @@ class RgIsaDisassemblyView : public QWidget // 2. a source file is renamed (all modes). bool ReplaceInputFilePath(const std::string& old_file_path, const std::string& new_file_path); + // Indicate if the max VGPR column is currently visible. + bool IsMaxVgprColumnVisible() const; + + // Enable/disable the show max VGPR context menu option. + void EnableShowMaxVgprContextOption() const; + signals: // A signal emitted when the input source file's highlighted correlation line should be updated. void InputSourceHighlightedLineChanged(int line_number); @@ -67,7 +73,7 @@ class RgIsaDisassemblyView : public QWidget // A signal emitted when the user has changed the disassembly table's column visibility. void DisassemblyColumnVisibilityUpdated(); - // Handler invoked when the user changes the selected entry point for a given input file. + // A signal emitted when the user changes the selected entry point for a given input file. void SelectedEntrypointChanged(const std::string& input_file_path, const std::string& selected_entrypoint_name); // A signal emitted when the requested width of the disassembly table is changed. @@ -109,6 +115,12 @@ class RgIsaDisassemblyView : public QWidget // A signal to switch disassembly view size. void SwitchDisassemblyContainerSize(); + // A signal to show/hide maximum VGPRs. + void ShowMaximumVgprClickedSignal(); + + // A signal to enable/disable the Edit->Go to next maximum live VGPR line option. + void EnableShowMaxVgprOptionSignal(bool is_enabled); + public slots: // Handler invoked when the user changes the selected line in the input source file. void HandleInputFileSelectedLineChanged(const std::string& target_gpu, const std::string& input_file_path, std::string& entry_name, int line_index); @@ -159,6 +171,12 @@ protected slots: // Handler to process select GPU target hot key. void HandleSelectNextGPUTargetAction(); + // Handler to process select next max VGPR hot key. + void HandleSelectNextMaxVgprLineAction(); + + // Handler to process select previous max VGPR hot key. + void HandleSelectPreviousMaxVgprLineAction(); + // Handler to focus the target GPUs push button. void HandleFocusTargetGpuPushButton(); @@ -286,6 +304,12 @@ protected slots: // Select next GPU action. QAction* select_next_gpu_target_ = nullptr; + // Select the next max VGPR line. + QAction* select_next_max_vgpr_line_ = nullptr; + + // Select the previous max VGPR line. + QAction* select_previous_max_vgpr_line_ = nullptr; + // The tab key action. QAction* tab_key_action_ = nullptr; diff --git a/source/radeon_gpu_analyzer_gui/qt/rg_main_window.h b/source/radeon_gpu_analyzer_gui/qt/rg_main_window.h index 947374e..ea4cd47 100644 --- a/source/radeon_gpu_analyzer_gui/qt/rg_main_window.h +++ b/source/radeon_gpu_analyzer_gui/qt/rg_main_window.h @@ -72,6 +72,12 @@ class RgMainWindow : public QMainWindow // A signal to indicate change of view. void HotKeyPressedSignal(); + // A signal emitted when the user clicks on "Highlight lines with maximum live VGPRs" menu item. + void ShowMaximumVgprClickedSignal(); + + // A signal to enable/disable the Edit->Go to next maximum live VGPR line option. + void EnableShowMaxVgprOptionSignal(bool is_enabled); + // *** TEST SIGNALS - BEGIN *** // A signal emitted when a project is loaded. @@ -91,6 +97,9 @@ public slots: // dialog, returns false when the user selected Cancel. bool HandleSavePendingChanges(); + // A handler to update the Edit->Go to next maximum live VGPR line option. + void HandleEnableShowMaxVgprOptionSignal(bool is_enable); + protected: // The save action type. enum SaveActionType @@ -200,6 +209,7 @@ public slots: QAction* exit_action_ = nullptr; QAction* go_to_line_action_ = nullptr; QAction* find_action_ = nullptr; + QAction* show_max_vgprs_action_ = nullptr; QAction* cancel_build_action_ = nullptr; QAction* help_getting_started_guide_action_ = nullptr; QAction* help_manul_action_ = nullptr; @@ -278,6 +288,9 @@ protected slots: // Handler for the Go To line button click. void HandleGoToLineEvent(); + // Handler for the show max VGPRs event. + void HandleShowMaxVgprsEvent(); + // Handler for the main tab widget's tab change. void HandleMainTabWidgetTabChanged(int current_index); diff --git a/source/radeon_gpu_analyzer_gui/qt/rg_output_file_utils.h b/source/radeon_gpu_analyzer_gui/qt/rg_output_file_utils.h index 1eeec0b..83e2879 100644 --- a/source/radeon_gpu_analyzer_gui/qt/rg_output_file_utils.h +++ b/source/radeon_gpu_analyzer_gui/qt/rg_output_file_utils.h @@ -23,7 +23,9 @@ class RgOutputFileUtils std::vector& vgpr_file_lines); // Calculate the maximum number of VGPRs for this shader. - static int CalculateMaxVgprs(const std::vector>& vgpr_isa_lines); + static int CalculateMaxVgprs(const std::vector>& vgpr_isa_lines, + std::vector& max_line_number, + std::vector>& disassembled_isa_lines); // Find out if this is a valid line. static bool IsValidLine(const QString& livereg_line); diff --git a/source/radeon_gpu_analyzer_gui/rg_build_view.cpp b/source/radeon_gpu_analyzer_gui/rg_build_view.cpp index 03341ea..2f15b28 100644 --- a/source/radeon_gpu_analyzer_gui/rg_build_view.cpp +++ b/source/radeon_gpu_analyzer_gui/rg_build_view.cpp @@ -401,6 +401,14 @@ bool RgBuildView::ConnectDisassemblyViewSignals() is_connected = connect(disassembly_view_, &RgIsaDisassemblyView::SwitchDisassemblyContainerSize, this, &RgBuildView::HandleSwitchContainerSize); assert(is_connected); + // Connect the Ctrl+F4 hotkey pressed signal. + is_connected = connect(this, &RgBuildView::ShowMaximumVgprClickedSignal, disassembly_view_, &RgIsaDisassemblyView::ShowMaximumVgprClickedSignal); + assert(is_connected); + + // Connect the enable show max VGPR options signal. + is_connected = connect(disassembly_view_, &RgIsaDisassemblyView::EnableShowMaxVgprOptionSignal, this, &RgBuildView::EnableShowMaxVgprOptionSignal); + assert(is_connected); + // Connect API-specific RgBuildView signals to the disassembly view. ConnectDisassemblyViewApiSpecificSignals(); } diff --git a/source/radeon_gpu_analyzer_gui/rg_build_view_opencl.cpp b/source/radeon_gpu_analyzer_gui/rg_build_view_opencl.cpp index 4f41008..8bb0083 100644 --- a/source/radeon_gpu_analyzer_gui/rg_build_view_opencl.cpp +++ b/source/radeon_gpu_analyzer_gui/rg_build_view_opencl.cpp @@ -690,6 +690,12 @@ void RgBuildViewOpencl::HandleSelectedFileChanged(const std::string& old_file_pa // Hide the disassembly view when switching to a file that hasn't been disassembled. ToggleDisassemblyViewVisibility(false); } + + // Disable/enable the Edit->Go to live VGPR option. + emit EnableShowMaxVgprOptionSignal(disassembly_view_->IsMaxVgprColumnVisible()); + + // Also enable/disable the context menu item. + disassembly_view_->EnableShowMaxVgprContextOption(); } } } diff --git a/source/radeon_gpu_analyzer_gui/rg_build_view_vulkan.cpp b/source/radeon_gpu_analyzer_gui/rg_build_view_vulkan.cpp index fb47b0b..3ad54eb 100644 --- a/source/radeon_gpu_analyzer_gui/rg_build_view_vulkan.cpp +++ b/source/radeon_gpu_analyzer_gui/rg_build_view_vulkan.cpp @@ -925,6 +925,12 @@ void RgBuildViewVulkan::HandleSelectedFileChanged(const std::string& old_file_pa // Hide the disassembly view when switching to a file that hasn't been disassembled. ToggleDisassemblyViewVisibility(false); } + + // Disable/enable the Edit->Go to live VGPR option. + emit EnableShowMaxVgprOptionSignal(disassembly_view_->IsMaxVgprColumnVisible()); + + // Also enable/disable the context menu item. + disassembly_view_->EnableShowMaxVgprContextOption(); } } } diff --git a/source/radeon_gpu_analyzer_gui/rg_config_file.cpp b/source/radeon_gpu_analyzer_gui/rg_config_file.cpp index a76ed34..dd91b3e 100644 --- a/source/radeon_gpu_analyzer_gui/rg_config_file.cpp +++ b/source/radeon_gpu_analyzer_gui/rg_config_file.cpp @@ -1528,6 +1528,21 @@ static bool ExtractGlobalSettings_2_2(tinyxml2::XMLNode* global_settings_node, s } } if (ret) + { + // Read the project file location. + elem = global_settings_node->FirstChildElement(kXmlNodeGlobalProjectFileLocation); + ret = elem != nullptr; + ret = ret && RgXMLUtils::ReadNodeTextString(elem, global_settings->project_file_location); + + // If the saved project directory does not exist, fall back to using the default one. + if (!RgUtils::IsDirExists(global_settings->project_file_location)) + { + std::string documents_dir; + RgConfigManager::GetDefaultDocumentsFolder(documents_dir); + global_settings->project_file_location = documents_dir; + } + } + if (ret) { // Attempt to read the last selected directory. It might be empty, in which case the call returns false, and that's ok. elem = elem->NextSiblingElement(kXmlNodeGlobalLastSelectedDirectory); diff --git a/source/radeon_gpu_analyzer_gui/rg_config_manager.cpp b/source/radeon_gpu_analyzer_gui/rg_config_manager.cpp index be931bf..0838e1a 100644 --- a/source/radeon_gpu_analyzer_gui/rg_config_manager.cpp +++ b/source/radeon_gpu_analyzer_gui/rg_config_manager.cpp @@ -101,6 +101,7 @@ class DefaultConfigFactory assert(version_info != nullptr); if (version_info != nullptr) { + const char* kTokenRdna3 = "RDNA3"; const char* kTokenRdna2 = "RDNA2"; const char* kTokenRdna = "RDNA"; const char* kTokenVega = "Vega"; @@ -109,34 +110,42 @@ class DefaultConfigFactory auto mode_architectures_iter = version_info->gpu_architectures.find(api_mode); if (mode_architectures_iter != version_info->gpu_architectures.end()) { - // Search for the latest target. Start with RDNA2, if not look for RDNA and Vega. As a fall back + // Search for the latest target. Start with RDNA3, then RDNA2, then RDNA and Vega. As a fall back // just take the first element. const std::vector& mode_architectures = mode_architectures_iter->second; auto last_architecture_iter = std::find_if(mode_architectures.begin(), mode_architectures.end(), [&](const RgGpuArchitecture& arch) { - return arch.architecture_name.compare(kTokenRdna2) == 0; + return arch.architecture_name.compare(kTokenRdna3) == 0; }); if (last_architecture_iter == mode_architectures.end()) { - // Search for the latest target. Start with RDNA, if not look for Vega. As a fall back - // just take the first element. - const std::vector& mode_architectures = mode_architectures_iter->second; last_architecture_iter = std::find_if(mode_architectures.begin(), mode_architectures.end(), [&](const RgGpuArchitecture& arch) { - return arch.architecture_name.compare(kTokenRdna) == 0; + return arch.architecture_name.compare(kTokenRdna2) == 0; }); if (last_architecture_iter == mode_architectures.end()) { + // Search for the latest target. Start with RDNA, if not look for Vega. As a fall back + // just take the first element. + const std::vector& mode_architectures = mode_architectures_iter->second; last_architecture_iter = std::find_if(mode_architectures.begin(), mode_architectures.end(), [&](const RgGpuArchitecture& arch) { - return arch.architecture_name.compare(kTokenVega) == 0; + return arch.architecture_name.compare(kTokenRdna) == 0; }); + if (last_architecture_iter == mode_architectures.end()) { - // Take the first element. - last_architecture_iter = mode_architectures.begin(); - - // We shouldn't be getting here normally. - assert(false); + last_architecture_iter = std::find_if(mode_architectures.begin(), mode_architectures.end(), [&](const RgGpuArchitecture& arch) { + return arch.architecture_name.compare(kTokenVega) == 0; + }); + + if (last_architecture_iter == mode_architectures.end()) + { + // Take the first element. + last_architecture_iter = mode_architectures.begin(); + + // We shouldn't be getting here normally. + assert(false); + } } } } diff --git a/source/radeon_gpu_analyzer_gui/rg_data_types.h b/source/radeon_gpu_analyzer_gui/rg_data_types.h index d492a11..7af554a 100644 --- a/source/radeon_gpu_analyzer_gui/rg_data_types.h +++ b/source/radeon_gpu_analyzer_gui/rg_data_types.h @@ -335,6 +335,8 @@ struct RgLiveregData int allocated; int max_vgprs; int unmatched_count; + std::vector max_vgpr_line_numbers; + std::vector is_current_max_vgpr_line_number; }; // A structure used to hold project path and api type for each RGA project. @@ -636,4 +638,4 @@ struct RgIsaLineLabel : RgIsaLine std::string label_name; }; -#endif // RGA_RADEONGPUANALYZERGUI_INCLUDE_RG_DATA_TYPES_H_ \ No newline at end of file +#endif // RGA_RADEONGPUANALYZERGUI_INCLUDE_RG_DATA_TYPES_H_ diff --git a/source/radeon_gpu_analyzer_gui/rg_definitions.h b/source/radeon_gpu_analyzer_gui/rg_definitions.h index 64c1db8..8cf0c4a 100644 --- a/source/radeon_gpu_analyzer_gui/rg_definitions.h +++ b/source/radeon_gpu_analyzer_gui/rg_definitions.h @@ -54,10 +54,11 @@ static const char* kActionHotkeyFileMenuActivateTab = "Tab"; static const char* kActionHotkeyFileMenuActivateShiftTab = "Shift+Tab"; // Edit menu hotkey definitions. -static const char* kActionHotkeyGoToLine = "Ctrl+G"; -static const char* kActionHotkeyFind = "Ctrl+F"; +static const char* kActionHotkeyGoToLine = "Ctrl+G"; +static const char* kActionHotkeyFind = "Ctrl+F"; static const char* kActionHotkeyFindNext = "F3"; static const char* kActionHotkeyFindPrevious = "Shift+F3"; +static const char* kActionHotkeyShowMaxVgprs = "Ctrl+F4"; // Build menu hotkey definitions. static const char* kActionHotkeyBuildProject = "Ctrl+Shift+B"; @@ -73,6 +74,8 @@ static const char* kSourceEditorHotkeyContextMenuSelectAll = "Ctrl+A"; // Disassembly view hot key definitions. static const char* kDisassemblyViewHotkeyGpuSelection = "Ctrl+T"; +static const char* kDisassemblyViewHotKeyNextMaxVgprLine = "F4"; +static const char* kDisassemblyViewHotKeyPreviousMaxVgprLine = "Shift+F4"; // View container hot key definitions. static const char* kSwitchContainerSize = "Ctrl+R"; diff --git a/source/radeon_gpu_analyzer_gui/rg_global_settings_view.cpp b/source/radeon_gpu_analyzer_gui/rg_global_settings_view.cpp index c790bf8..1997747 100644 --- a/source/radeon_gpu_analyzer_gui/rg_global_settings_view.cpp +++ b/source/radeon_gpu_analyzer_gui/rg_global_settings_view.cpp @@ -1042,4 +1042,6 @@ bool RgGlobalSettingsView::IsInputFileBlank() const { return ui_.assocExtGlslLineEdit->text().isEmpty() || ui_.assocExtHlslLineEdit->text().isEmpty() || ui_.assocExtSpvasLineEdit->text().isEmpty() || ui_.assocExtSpvBinaryLineEdit->text().isEmpty(); -} \ No newline at end of file + +} + diff --git a/source/radeon_gpu_analyzer_gui/rg_isa_disassembly_custom_table_view.cpp b/source/radeon_gpu_analyzer_gui/rg_isa_disassembly_custom_table_view.cpp index 2431574..0a37adc 100644 --- a/source/radeon_gpu_analyzer_gui/rg_isa_disassembly_custom_table_view.cpp +++ b/source/radeon_gpu_analyzer_gui/rg_isa_disassembly_custom_table_view.cpp @@ -30,6 +30,9 @@ static const QColor kVgprRangeFiveColor = QColor(252, 115, 3); static const QColor kVgprRangeSixColor = QColor(252, 74, 3); static const QColor kVgprRangeSevenColor = QColor(252, 3, 3); +// Color for the max VGPR line. +static const QColor kMaxVgprlineColor = QColor(150, 215, 3); + static const QColor kVgprRangeColors[] = { kVgprRangeZeroColor, @@ -341,6 +344,9 @@ void RgIsaDisassemblyCustomTableView::drawRow(QPainter* painter, const QStyleOpt { if (model_ != nullptr) { + // Save the painter object. + painter->save(); + // Painting with this delegate can be completely disabled depending on the incoming index. bool is_paint_enabled = true; @@ -362,12 +368,29 @@ void RgIsaDisassemblyCustomTableView::drawRow(QPainter* painter, const QStyleOpt new_options.palette.setBrush(QPalette::Base, Qt::transparent); } + // If this line is the max VGPR line, go ahead and highlight it. + if (model_->IsCurrentMaxVgprLine(index.row())) + { + // Initialize painter variables. + QPen pen = painter->pen(); + QRect rect = options.rect; + + // Color the bounds of the current maximum VGPR line. + pen.setColor(Qt::GlobalColor::red); + pen.setWidth(2); + painter->setPen(pen); + painter->drawRect(rect); + } + // If the index is a branch operand item, a separate label widget will render a clickable link instead. bool is_branch_operation = model_->IsBranchOperandItem(index); if (is_branch_operation) { is_paint_enabled = false; } + + // Restore the painter object. + painter->restore(); } if (is_paint_enabled) diff --git a/source/radeon_gpu_analyzer_gui/rg_isa_disassembly_tab_view.cpp b/source/radeon_gpu_analyzer_gui/rg_isa_disassembly_tab_view.cpp index 5ecc5a4..7ee9c39 100644 --- a/source/radeon_gpu_analyzer_gui/rg_isa_disassembly_tab_view.cpp +++ b/source/radeon_gpu_analyzer_gui/rg_isa_disassembly_tab_view.cpp @@ -216,6 +216,8 @@ void RgIsaDisassemblyTabView::SwitchToEntryPoint(const std::string& input_file_p // Show the disassembly table that we're switching to. table_view->show(); + + // Update the current table. current_table_ = table_view; // Use the current table view as the focus proxy for this view. @@ -391,7 +393,27 @@ void RgIsaDisassemblyTabView::ConnectTableViewSignals(RgIsaDisassemblyTableView* // Connect the disassembly table's focus cli output window signal. is_connected = connect(table_view, &RgIsaDisassemblyTableView::FocusCliOutputWindow, this, &RgIsaDisassemblyTabView::FocusCliOutputWindow); assert(is_connected); +} + +void RgIsaDisassemblyTabView::HandleShowNextMaxVgprSignal() +{ + if (current_table_ != nullptr) + { + current_table_->HandleShowNextMaxVgprSignal(); + } +} + +bool RgIsaDisassemblyTabView::IsShowCurrentMaxVgprEnabled() +{ + return current_table_->IsShowCurrentMaxVgprEnabled(); +} +void RgIsaDisassemblyTabView::HandleShowPreviousMaxVgprSignal() + { + if (current_table_ != nullptr) + { + current_table_->HandleShowPreviousMaxVgprSignal(); + } } std::string RgIsaDisassemblyTabView::GenerateEntrypointKey(const std::string& file_path, const std::string& entrypoint_name) const @@ -450,3 +472,8 @@ void RgIsaDisassemblyTabView::RemoveEntrypointTable(RgIsaDisassemblyTableView* t disassembly_table_view_to_entrypoint_.erase(table_iter); } } + +RgIsaDisassemblyTableView* RgIsaDisassemblyTabView::GetCurrentTableView() const +{ + return current_table_; +} diff --git a/source/radeon_gpu_analyzer_gui/rg_isa_disassembly_table_model.cpp b/source/radeon_gpu_analyzer_gui/rg_isa_disassembly_table_model.cpp index b80cae0..a4926d2 100644 --- a/source/radeon_gpu_analyzer_gui/rg_isa_disassembly_table_model.cpp +++ b/source/radeon_gpu_analyzer_gui/rg_isa_disassembly_table_model.cpp @@ -224,6 +224,25 @@ bool RgIsaDisassemblyTableModel::IsIsaLineCorrelated(int line_index) const return ret; } +bool RgIsaDisassemblyTableModel::IsCurrentMaxVgprLine(int line_index) const +{ + bool status = false; + + // Check if the given line index exists in the current cache of max VGPR lines numbers. + auto line_iter = std::find(livereg_data_.max_vgpr_line_numbers.begin(), livereg_data_.max_vgpr_line_numbers.end(), line_index); + if (line_iter != livereg_data_.max_vgpr_line_numbers.end()) + { + const int index = line_iter - livereg_data_.max_vgpr_line_numbers.begin(); + if (livereg_data_.is_current_max_vgpr_line_number.at(index)) + { + // If this is the current maximum VGPR line, set status to true. + status = true; + } + } + + return status; +} + bool RgIsaDisassemblyTableModel::IsSourceLineCorrelated(int line_index) const { return (input_source_line_index_to_instruction_line_indices_.find(line_index) != input_source_line_index_to_instruction_line_indices_.end()); @@ -242,6 +261,12 @@ bool RgIsaDisassemblyTableModel::IsSourceLineInEntrypoint(int line_index) const return ret; } +std::vector RgIsaDisassemblyTableModel::GetMaximumVgprLineNumbers() const +{ + // Return the line numbers for the max VGPR values. + return livereg_data_.max_vgpr_line_numbers; +} + bool RgIsaDisassemblyTableModel::PopulateFromCsvFile(const std::string& csv_file_full_path) { // Attempt to load the CSV file, and then update the model's data. @@ -492,7 +517,7 @@ bool RgIsaDisassemblyTableModel::ParseCsvIsaLine(const std::string& disassembled { bool ret = false; - // Some parsed CSV lines don't have an input sourcecode line number associated with them. In these cases, return -1. + // Some parsed CSV lines don't have an input source code line number associated with them. In these cases, return -1. input_source_line_index = kInvalidCorrelationLineIndex; std::vector line_tokens; @@ -819,4 +844,105 @@ void RgIsaDisassemblyTableModel::CreateTooltip(std::string& tooltip, const std:: } } } +} + +void RgIsaDisassemblyTableModel::HighlightCurrentMaxVgprLine() +{ + // Set all lines to be not current max VGPR lines. + std::fill(livereg_data_.is_current_max_vgpr_line_number.begin(), livereg_data_.is_current_max_vgpr_line_number.end(), false); + + // Set the boolean for the current line to true so it'll be highlighted. + livereg_data_.is_current_max_vgpr_line_number.at(current_max_vgpr_index_) = true; +} + +void RgIsaDisassemblyTableModel::UpdateCurrentMaxVgprLine() +{ + if (livereg_data_.is_current_max_vgpr_line_number.size() > 0) + { + // Update the current maximum VGPR line index. + if (current_max_vgpr_index_ < livereg_data_.is_current_max_vgpr_line_number.size() - 1) + { + current_max_vgpr_index_++; + } + else + { + current_max_vgpr_index_ = 0; + } + } +} + +void RgIsaDisassemblyTableModel::ResetCurrentMaxVgprValues() +{ + // Reset the maximum VGPR values. + current_max_vgpr_index_ = 0; + is_show_current_max_vgpr_enabled_ = false; + + // Set all lines to be not current max VGPR lines. + std::fill(livereg_data_.is_current_max_vgpr_line_number.begin(), livereg_data_.is_current_max_vgpr_line_number.end(), false); +} + +bool RgIsaDisassemblyTableModel::IsShowCurrentMaxVgprEnabled() +{ + return is_show_current_max_vgpr_enabled_; +} + +bool RgIsaDisassemblyTableModel::GetNextMaxVgprLineNumber(int& line_number) +{ + bool is_valid_line = false; + + // Return a valid line number. + if (livereg_data_.max_vgpr_line_numbers.size() > 0) + { + if (is_show_current_max_vgpr_enabled_) + { + // Update the current maximum VGPR line index. + if (current_max_vgpr_index_ < livereg_data_.is_current_max_vgpr_line_number.size() - 1) + { + current_max_vgpr_index_++; + } + else + { + current_max_vgpr_index_ = 0; + } + } + else + { + is_show_current_max_vgpr_enabled_ = true; + } + + line_number = livereg_data_.max_vgpr_line_numbers.at(current_max_vgpr_index_); + is_valid_line = true; + } + + return is_valid_line; +} + +bool RgIsaDisassemblyTableModel::GetPreviousMaxVgprLineNumber(int& line_number) +{ + bool is_valid_line = false; + + if (is_show_current_max_vgpr_enabled_) + { + if (current_max_vgpr_index_ > 0) + { + current_max_vgpr_index_--; + } + else + { + current_max_vgpr_index_ = livereg_data_.max_vgpr_line_numbers.size() - 1; + } + } + else + { + is_show_current_max_vgpr_enabled_ = true; + } + + // Return a valid line number. + if (livereg_data_.max_vgpr_line_numbers.size() > 0) + { + line_number = livereg_data_.max_vgpr_line_numbers.at(current_max_vgpr_index_); + is_valid_line = true; + } + + return is_valid_line; } \ No newline at end of file diff --git a/source/radeon_gpu_analyzer_gui/rg_isa_disassembly_table_view.cpp b/source/radeon_gpu_analyzer_gui/rg_isa_disassembly_table_view.cpp index d6360f1..95dcadc 100644 --- a/source/radeon_gpu_analyzer_gui/rg_isa_disassembly_table_view.cpp +++ b/source/radeon_gpu_analyzer_gui/rg_isa_disassembly_table_view.cpp @@ -13,6 +13,7 @@ // Infra. #include "QtCommon/Util/QtUtil.h" +#include "QtCommon/Scaling/ScalingManager.h" // Local. #include "radeon_gpu_analyzer_gui/qt/rg_isa_disassembly_table_model.h" @@ -22,6 +23,9 @@ #include "radeon_gpu_analyzer_gui/rg_string_constants.h" #include "radeon_gpu_analyzer_gui/rg_utils.h" +// The bottom margin of the disassembly table. +static const int kTableBottomMargin = 5; + // A class used to filter the ISA disassembly table columns. class RgIsaDisassemblyTableModelFilteringModel : public QSortFilterProxyModel { @@ -262,8 +266,8 @@ void RgIsaDisassemblyTableView::UpdateCorrelatedSourceFileLine(int line_number) if (!disassembly_line_indices.empty()) { // Extract the first highlighted Isa row index, and scroll to it. - int firstHighlightedDisassemblyRowIndex = disassembly_line_indices[0]; - ScrollToLine(firstHighlightedDisassemblyRowIndex); + int first_highlighted_disassembly_row_index = disassembly_line_indices[0]; + ScrollToLine(first_highlighted_disassembly_row_index); } } @@ -468,6 +472,10 @@ void RgIsaDisassemblyTableView::ConnectContextMenuSignals() is_connected = connect(open_disassembly_in_file_browser_, &QAction::triggered, this, &RgIsaDisassemblyTableView::HandleOpenDisassemblyInFileBrowserClicked); assert(is_connected); + // Connect the handler responsible for showing the max VGPR line. + is_connected = connect(show_maximum_vgpr_lines_, &QAction::triggered, this, &RgIsaDisassemblyTableView::HandleShowNextMaxVgprSignal); + assert(is_connected); + // Use a custom context menu for the table. this->setContextMenuPolicy(Qt::CustomContextMenu); @@ -568,6 +576,10 @@ void RgIsaDisassemblyTableView::InitializeContextMenu() copy_selected_disassembly_ = new QAction(kStrDisassemblyTableContextMenuCopy, this); context_menu_->addAction(copy_selected_disassembly_); + // Create an item allowing the user to jump to highest VGPR pressure line. + show_maximum_vgpr_lines_ = new QAction(kStrDisassemblyTableContextMenuGoToMaxVgpr, this); + context_menu_->addAction(show_maximum_vgpr_lines_); + // Create an item allowing the user to browse to the disassembly build output folder. open_disassembly_in_file_browser_ = new QAction(kStrDisassemblyTableContextMenuOpenInFileBrowser, this); context_menu_->addAction(open_disassembly_in_file_browser_); @@ -576,6 +588,11 @@ void RgIsaDisassemblyTableView::InitializeContextMenu() ConnectContextMenuSignals(); } +void RgIsaDisassemblyTableView::EnableShowMaxVgprContextOption(bool is_enabled) const +{ + show_maximum_vgpr_lines_->setEnabled(is_enabled); +} + void RgIsaDisassemblyTableView::InitializeLabelRows() { // Clear existing label lines from the model. @@ -688,10 +705,10 @@ void RgIsaDisassemblyTableView::ScrollToLine(int line_number) { // Find the row of the index at the top left of the table. int first_visible_row = 0; - const QModelIndex firstVisibleIndex = ui_.instructionsTreeView->indexAt(ui_.instructionsTreeView->rect().topLeft()); - if (firstVisibleIndex.isValid()) + const QModelIndex first_visible_index = ui_.instructionsTreeView->indexAt(ui_.instructionsTreeView->rect().topLeft()); + if (first_visible_index.isValid()) { - first_visible_row = firstVisibleIndex.row(); + first_visible_row = first_visible_index.row(); } // When the lastVisibleIndex is invalid, it means that the table is already fully visible. @@ -706,7 +723,8 @@ void RgIsaDisassemblyTableView::ScrollToLine(int line_number) } // If the line we're scrolling to is already visible within view, don't scroll the view. - bool is_line_visible = (line_number >= first_visible_row) && (line_number <= last_visible_row); + const int adjust_visible_row = kTableBottomMargin * ScalingManager::Get().GetScaleFactor(); + bool is_line_visible = (line_number >= first_visible_row) && (line_number <= last_visible_row - adjust_visible_row); if (!is_line_visible) { // Scroll the instruction table's vertical scrollbar to the given line. @@ -723,3 +741,51 @@ void RgIsaDisassemblyTableView::keyPressEvent(QKeyEvent* event) HandleCopyDisassemblyClicked(); } } + +void RgIsaDisassemblyTableView::ResetCurrentMaxVgprIndex() +{ + isa_table_model_->ResetCurrentMaxVgprValues(); +} + +bool RgIsaDisassemblyTableView::IsShowCurrentMaxVgprEnabled() const +{ + return isa_table_model_->IsShowCurrentMaxVgprEnabled(); +} + +void RgIsaDisassemblyTableView::HandleShowNextMaxVgprSignal() +{ + // Need to scroll to the next line. + int line_number = 0; + bool is_valid_line = isa_table_model_->GetNextMaxVgprLineNumber(line_number); + + // Scroll to the line if it is a valid line. + if (is_valid_line) + { + ScrollToLine(line_number); + } + + // Set the current max vgpr line background color. + isa_table_model_->HighlightCurrentMaxVgprLine(); + + // Trigger an update of the treeview. + ui_.instructionsTreeView->update(); +} + +void RgIsaDisassemblyTableView::HandleShowPreviousMaxVgprSignal() +{ + // Need to scroll to the next line. + int line_number = 0; + bool is_valid_line = isa_table_model_->GetPreviousMaxVgprLineNumber(line_number); + + // Scroll to the line if it is a valid line. + if (is_valid_line) + { + ScrollToLine(line_number); + } + + // Set the current max vgpr line background color. + isa_table_model_->HighlightCurrentMaxVgprLine(); + + // Trigger an update of the treeview. + ui_.instructionsTreeView->update(); +} \ No newline at end of file diff --git a/source/radeon_gpu_analyzer_gui/rg_isa_disassembly_view.cpp b/source/radeon_gpu_analyzer_gui/rg_isa_disassembly_view.cpp index b67a8ec..058eb2a 100644 --- a/source/radeon_gpu_analyzer_gui/rg_isa_disassembly_view.cpp +++ b/source/radeon_gpu_analyzer_gui/rg_isa_disassembly_view.cpp @@ -172,6 +172,20 @@ void RgIsaDisassemblyView::HandleSelectedEntrypointChanged(const std::string& ta { // Switch the table to show the disassembly for the given entrypoint. target_tab_view->SwitchToEntryPoint(input_file_path, selected_entrypoint_name); + + // Reset the show maximum VGPR feature. + RgIsaDisassemblyTableView* current_table_view = target_tab_view->GetCurrentTableView(); + if (current_table_view != nullptr) + { + // Reset the current max VGPR line number. + current_table_view->ResetCurrentMaxVgprIndex(); + + // Disable the Edit->Go to next maximum live VGPR line option. + emit EnableShowMaxVgprOptionSignal(IsMaxVgprColumnVisible()); + + // Disable the context menu item. + current_table_view->EnableShowMaxVgprContextOption(IsMaxVgprColumnVisible()); + } } // Get a reference to the map of input file path to the entry point names map. @@ -280,6 +294,54 @@ void RgIsaDisassemblyView::HandleColumnVisibilityComboBoxItemClicked(const QStri // Update the "All" checkbox text color to grey or black. UpdateAllCheckBoxText(); + + // If the user unchecked the "VGPR pressure" box, disable the show + // max VGPR feature. + if (text.compare(kStrDisassemblyTableLiveVgprHeaderPart) == 0) + { + // Get the current table view. + RgIsaDisassemblyTableView* current_table_view = current_tab_view_->GetCurrentTableView(); + + // Process the checked value. + if (checked) + { + // Enable the Edit->Go to next maximum live VGPR line option. + emit EnableShowMaxVgprOptionSignal(true); + + // Enable the context menu item. + if (current_table_view != nullptr) + { + current_table_view->EnableShowMaxVgprContextOption(true); + } + } + else + { + // Reset the show maximum VGPR feature. + if (current_table_view != nullptr) + { + // Reset the current max VGPR line number. + current_table_view->ResetCurrentMaxVgprIndex(); + + // Disable the Edit->Go to next maximum live VGPR line option. + emit EnableShowMaxVgprOptionSignal(false); + + // Disable the context menu item. + current_table_view->EnableShowMaxVgprContextOption(false); + } + } + } +} + +void RgIsaDisassemblyView::EnableShowMaxVgprContextOption() const +{ + // Get the current table view. + RgIsaDisassemblyTableView* current_table_view = current_tab_view_->GetCurrentTableView(); + + // Enable/Disable the show max VGPR context menu item. + if (current_table_view != nullptr) + { + current_table_view->EnableShowMaxVgprContextOption(IsMaxVgprColumnVisible()); + } } void RgIsaDisassemblyView::HandleColumnVisibilityFilterStateChanged(bool checked) @@ -473,6 +535,10 @@ void RgIsaDisassemblyView::ConnectDisassemblyTabViewSignals(RgIsaDisassemblyTabV // Connect the disassembly view's update current sub widget signal. is_connected = connect(this, &RgIsaDisassemblyView::UpdateCurrentSubWidget, entry_view, &RgIsaDisassemblyTabView::UpdateCurrentSubWidget); assert(is_connected); + + // Connect the enable show max VGPR options signal. + is_connected = connect(entry_view, &RgIsaDisassemblyTabView::EnableShowMaxVgprOptionSignal, this, &RgIsaDisassemblyView::EnableShowMaxVgprOptionSignal); + assert(is_connected); } void RgIsaDisassemblyView::ConnectSignals() @@ -527,8 +593,33 @@ void RgIsaDisassemblyView::ConnectSignals() select_next_gpu_target_->setShortcut(QKeySequence(kDisassemblyViewHotkeyGpuSelection)); addAction(select_next_gpu_target_); + // Connect the handler to process the hot key press. is_connected = connect(select_next_gpu_target_, &QAction::triggered, this, &RgIsaDisassemblyView::HandleSelectNextGPUTargetAction); assert(is_connected); + + // Select next max VGPR line. + select_next_max_vgpr_line_ = new QAction(this); + select_next_max_vgpr_line_->setShortcutContext(Qt::ApplicationShortcut); + select_next_max_vgpr_line_->setShortcut(QKeySequence(kDisassemblyViewHotKeyNextMaxVgprLine)); + addAction(select_next_max_vgpr_line_); + + // Connect the handler to process the hot key press. + is_connected = connect(select_next_max_vgpr_line_, &QAction::triggered, this, &RgIsaDisassemblyView::HandleSelectNextMaxVgprLineAction); + assert(is_connected); + + // Connect the F4 hotkey pressed signal. + is_connected = connect(this, &RgIsaDisassemblyView::ShowMaximumVgprClickedSignal, this, &RgIsaDisassemblyView::HandleSelectNextMaxVgprLineAction); + assert(is_connected); + + // Select previous max VGPR line. + select_previous_max_vgpr_line_ = new QAction(this); + select_previous_max_vgpr_line_->setShortcutContext(Qt::ApplicationShortcut); + select_previous_max_vgpr_line_->setShortcut(QKeySequence(kDisassemblyViewHotKeyPreviousMaxVgprLine)); + addAction(select_previous_max_vgpr_line_); + + // Connect the handler to process the hot key press. + is_connected = connect(select_previous_max_vgpr_line_, &QAction::triggered, this, &RgIsaDisassemblyView::HandleSelectPreviousMaxVgprLineAction); + assert(is_connected); } void RgIsaDisassemblyView::HandleCurrentTabChanged(int index) @@ -1273,3 +1364,37 @@ void RgIsaDisassemblyView::HandleSelectNextGPUTargetAction() } target_gpus_list_widget_->setCurrentRow(current_row); } + +void RgIsaDisassemblyView::HandleSelectNextMaxVgprLineAction() +{ + // Check to make sure that the max VGPR column is currently visible + // before enabling this feature. + std::vector column_visibility = ListWidget::GetColumnVisibilityCheckboxes(disassembly_columns_list_widget_); + bool is_visible = column_visibility[static_cast(RgIsaDisassemblyTableColumns::kLiveVgprs)]; + if (is_visible) + { + // Show the max VGPR lines for the current tab view. + current_tab_view_->HandleShowNextMaxVgprSignal(); + } +} + +bool RgIsaDisassemblyView::IsMaxVgprColumnVisible() const +{ + std::vector column_visibility = ListWidget::GetColumnVisibilityCheckboxes(disassembly_columns_list_widget_); + bool is_visible = column_visibility[static_cast(RgIsaDisassemblyTableColumns::kLiveVgprs)]; + + return is_visible; +} + +void RgIsaDisassemblyView::HandleSelectPreviousMaxVgprLineAction() +{ + // Check to make sure that the max VGPR column is currently visible + // before enabling this feature. + std::vector column_visibility = ListWidget::GetColumnVisibilityCheckboxes(disassembly_columns_list_widget_); + bool is_visible = column_visibility[static_cast(RgIsaDisassemblyTableColumns::kLiveVgprs)]; + if (is_visible) + { + // Show the previous max VGPR lines for the current tab view. + current_tab_view_->HandleShowPreviousMaxVgprSignal(); + } +} \ No newline at end of file diff --git a/source/radeon_gpu_analyzer_gui/rg_main_window.cpp b/source/radeon_gpu_analyzer_gui/rg_main_window.cpp index 6dbc863..90d06c7 100644 --- a/source/radeon_gpu_analyzer_gui/rg_main_window.cpp +++ b/source/radeon_gpu_analyzer_gui/rg_main_window.cpp @@ -346,6 +346,10 @@ void RgMainWindow::ConnectBuildViewSignals() is_connected = connect(build_view, &RgBuildView::SetStatusBarText, this, &RgMainWindow::HandleStatusBarTextChanged); assert(is_connected); + // Connect the RgBuildView's enable show max VGPR option signal. + is_connected = connect(build_view, &RgBuildView::EnableShowMaxVgprOptionSignal, this, &RgMainWindow::HandleEnableShowMaxVgprOptionSignal); + assert(is_connected); + // Connect the main window's Find event with the RgBuildView. is_connected = connect(this, &RgMainWindow::FindTriggered, build_view, &RgBuildView::HandleFindTriggered); assert(is_connected); @@ -376,6 +380,11 @@ void RgMainWindow::ConnectBuildViewSignals() } } +void RgMainWindow::HandleEnableShowMaxVgprOptionSignal(bool is_enabled) +{ + show_max_vgprs_action_->setEnabled(is_enabled); +} + void RgMainWindow::HandleEnablePipelineMenuItem(bool is_enabled) { // Update the Build menu item for "Pipeline state". @@ -604,6 +613,7 @@ void RgMainWindow::CreateEditMenu() menu_bar_ = menuBar()->addMenu(tr(kStrMenuBarEdit)); menu_bar_->addAction(go_to_line_action_); menu_bar_->addAction(find_action_); + menu_bar_->addAction(show_max_vgprs_action_); // Set the mouse cursor to pointing hand cursor. menu_bar_->setCursor(Qt::PointingHandCursor); @@ -756,6 +766,15 @@ void RgMainWindow::CreateEditMenuActions() find_action_->setStatusTip(tr(kStrMenuBarEditQuickFindTooltip)); is_connected = connect(find_action_, &QAction::triggered, this, &RgMainWindow::FindTriggered); assert(is_connected); + + // Show maximum VGPRs. + show_max_vgprs_action_ = new QAction(tr(kStrMenuShowMaxVgprLines), this); + show_max_vgprs_action_->setShortcut(QKeySequence(kActionHotkeyShowMaxVgprs)); + show_max_vgprs_action_->setStatusTip(tr(kStrMenuShowMaxVgprLinesTooltip)); + + // Connect the show maximum VGPR action. + is_connected = connect(show_max_vgprs_action_, &QAction::triggered, this, &RgMainWindow::HandleShowMaxVgprsEvent); + assert(is_connected); } void RgMainWindow::EnableEditMenu(bool is_enabled) @@ -1429,11 +1448,9 @@ void RgMainWindow::HandleBuildSettingsEvent() } } - // Disable the find functionality. - find_action_->setEnabled(false); - - // Disable the Go-to-line functionality. - go_to_line_action_->setEnabled(false); + // Disable the items in the Edit menu. + EnableEditMenu(false); + HandleEnableShowMaxVgprOptionSignal(false); // Switch the file menu save file action to save build settings action. SwitchSaveShortcut(SaveActionType::kSaveSettings); @@ -1506,11 +1523,8 @@ void RgMainWindow::HandleCancelBuildEvent() void RgMainWindow::HandleSelectedFileChanged(const std::string& old_file, const std::string& new_file) { - // Enable the find functionality. - find_action_->setEnabled(true); - - // Enable the Go-to-line functionality. - go_to_line_action_->setEnabled(true); + // Enable the Edit menu functionality. + EnableEditMenu(true); } void RgMainWindow::HandleProjectCreated() @@ -1843,6 +1857,12 @@ void RgMainWindow::SetCursor() menuBar()->setCursor(Qt::PointingHandCursor); } +void RgMainWindow::HandleShowMaxVgprsEvent() +{ + // Emit the signal to show maximum VGPR lines. + emit ShowMaximumVgprClickedSignal(); +} + void RgMainWindow::HandleGoToLineEvent() { assert(app_state_ != nullptr); @@ -2022,6 +2042,9 @@ void RgMainWindow::HandleEditModeChanged(EditMode mode) // Disable the Go-to-line functionality. go_to_line_action_->setEnabled(false); + // Disable the Show max VGPRs functionality. + show_max_vgprs_action_->setEnabled(false); + break; } default: @@ -2101,6 +2124,10 @@ void RgMainWindow::EnableBuildViewActions() // Set container switch size action. bool is_connected = connect(this, &RgMainWindow::SwitchContainerSize, build_view, &RgBuildView::HandleSwitchContainerSize); assert(is_connected); + + // Process the Ctrl+F4 hotkey in disassembly view. + is_connected = connect(this, &RgMainWindow::ShowMaximumVgprClickedSignal, build_view, &RgBuildView::ShowMaximumVgprClickedSignal); + assert(is_connected); } } @@ -2229,5 +2256,4 @@ bool RgMainWindow::eventFilter(QObject* object, QEvent* event) // Continue default processing. return QObject::eventFilter(object, event); } -} - +} \ No newline at end of file diff --git a/source/radeon_gpu_analyzer_gui/rg_output_file_utils.cpp b/source/radeon_gpu_analyzer_gui/rg_output_file_utils.cpp index 4c87335..3ef2e51 100644 --- a/source/radeon_gpu_analyzer_gui/rg_output_file_utils.cpp +++ b/source/radeon_gpu_analyzer_gui/rg_output_file_utils.cpp @@ -38,10 +38,19 @@ bool RgOutputFileUtils::ParseLiveVgprsData(const std::string& // Now extract the architecture specific information. status = RgOutputFileUtils::GetArchInformation(livereg_data, vgpr_file_lines); - // Calculate the max live VGPR value and extract the live VGPR numbers. + // Calculate the max live VGPR values and extract the live VGPR numbers. if (status) { - livereg_data.max_vgprs = RgOutputFileUtils::CalculateMaxVgprs(vgpr_isa_lines); + int max_line_number = 0; + + // Extract maximum VGPR lines. + livereg_data.max_vgprs = RgOutputFileUtils::CalculateMaxVgprs(vgpr_isa_lines, livereg_data.max_vgpr_line_numbers, disassembled_isa_lines); + + // Allocate space for the vector. + livereg_data.is_current_max_vgpr_line_number.resize(livereg_data.max_vgpr_line_numbers.size()); + + // Set all booleans to false. + std::fill(livereg_data.is_current_max_vgpr_line_number.begin(), livereg_data.is_current_max_vgpr_line_number.end(), false); // Keep track of the line number. int line_number = 0; @@ -99,15 +108,54 @@ bool RgOutputFileUtils::ParseLiveVgprsData(const std::string& return status; } -int RgOutputFileUtils::CalculateMaxVgprs(const std::vector>& vgpr_isa_lines) +int RgOutputFileUtils::CalculateMaxVgprs(const std::vector>& vgpr_isa_lines, + std::vector& max_line_numbers, + std::vector>& disassembled_isa_lines) { - int max_vgprs_used = 0; - for (const auto& current_livereg_line : vgpr_isa_lines) + int max_vgprs_used = 0; + int isa_line_number = 0; + int vgpr_line_number = 0; + while (isa_line_number < disassembled_isa_lines.size()) { - QString value = QString::fromStdString(current_livereg_line->num_live_registers); - if (value.toInt() > max_vgprs_used) + const std::shared_ptr current_vgpr_line = vgpr_isa_lines[vgpr_line_number]; + QString value = QString::fromStdString(current_vgpr_line->num_live_registers); + std::shared_ptr disassembly_line = std::static_pointer_cast(disassembled_isa_lines[isa_line_number]); + + if (disassembly_line->type == RgIsaLineType::kLabel) + { + isa_line_number++; + } + else if ((disassembly_line->type == RgIsaLineType::kInstruction) && (disassembly_line->opcode == "s_nop")) + { + isa_line_number++; + + // If the VGPR line has a matching s_nop, bump up that line number too. + if (current_vgpr_line->opcode == "s_nop") + { + vgpr_line_number++; + } + } + else if (disassembly_line->type == RgIsaLineType::kInstruction) { - max_vgprs_used = value.toInt(); + // Update the max VGPR values. + if (value.toInt() >= max_vgprs_used) + { + if (value.toInt() > max_vgprs_used) + { + // Clear the values saved so far. + max_line_numbers.clear(); + } + + // Save the max VGPR value. + max_vgprs_used = value.toInt(); + + // Save the line number here as well. + max_line_numbers.push_back(isa_line_number); + } + + // Bump up the line numbers. + isa_line_number++; + vgpr_line_number++; } } diff --git a/source/radeon_gpu_analyzer_gui/rg_source_code_editor.cpp b/source/radeon_gpu_analyzer_gui/rg_source_code_editor.cpp index 600b7f7..481b014 100644 --- a/source/radeon_gpu_analyzer_gui/rg_source_code_editor.cpp +++ b/source/radeon_gpu_analyzer_gui/rg_source_code_editor.cpp @@ -126,7 +126,6 @@ RgSourceCodeEditor::RgSourceCodeEditor(QWidget* parent, RgSrcLanguage lang) : QP is_connected = connect(this, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(ShowContextMenu(const QPoint&))); assert(is_connected); } - } int RgSourceCodeEditor::LineNumberAreaWidth() const diff --git a/source/radeon_gpu_analyzer_gui/rg_string_constants.h b/source/radeon_gpu_analyzer_gui/rg_string_constants.h index a534f25..d2b7643 100644 --- a/source/radeon_gpu_analyzer_gui/rg_string_constants.h +++ b/source/radeon_gpu_analyzer_gui/rg_string_constants.h @@ -107,6 +107,7 @@ static const char* kStrErrCannotLoadDisassemblyCsvFile = "Failed to load static const char* kStrErrCannotLoadLiveVgprFile = "Failed to load live VGPR output file. "; static const char* kStrErrIllegalProjectName = "Project name is not a legal file name or exceeds 50 characters: "; static const char* kStrErrIllegalStringProjectName = "Error: project file name cannot contain the string "; +static const char* kStrErrSpacesNotAllowed = "Spaces are not allowed."; static const char* kStrErrFailedToOpenFileBrowser = "Failed to open the system's file explorer."; static const char* kStrErrCsvParsingFailedA = "Failed to parse "; static const char* kStrErrCsvParsingFailedB = " at line "; @@ -172,6 +173,10 @@ static const char* kStrMenuBarEdit = "&Edit"; static const char* kStrMenuBarGoToLine = "&Go to..."; static const char* kStrMenuBarGoToLineTooltip = "Go to line (Ctrl+G)."; +// Show max VGPR lines menu item. +static const char* kStrMenuShowMaxVgprLines = "Go to &next maximum VGPR pressure line"; +static const char* kStrMenuShowMaxVgprLinesTooltip = "Jump to the next line with maximum VGPR pressure. (Ctrl+F4)"; + // Build menu items. static const char* kStrMenuBarBuild = "&Build"; static const char* kStrMenuBarBuildProject = "Build project"; @@ -509,6 +514,7 @@ static const char* kStrDisassemblyTableContextMenuOpenInFileBrowser = "Show disa #else static const char* kStrDisassemblyTableContextMenuOpenInFileBrowser = "Show disassembly file in explorer"; #endif +static const char* kStrDisassemblyTableContextMenuGoToMaxVgpr = "Go to next maximum VGPR pressure line (Ctrl+F4)"; // *** DISASSEMBLY VIEW STRINGS - END *** @@ -651,4 +657,4 @@ static const char* kStrUpdatesNoUpdatesAvailable = "Checking for updates... done static const char* kStrUpdatesResultsWindowTitle = "Available updates"; // *** CHECK FOR UPDATES DIALOG STRINGS - END *** -#endif // RGA_RADEONGPUANALYZERGUI_INCLUDE_RG_STRING_CONSTANTS_H_ \ No newline at end of file +#endif // RGA_RADEONGPUANALYZERGUI_INCLUDE_RG_STRING_CONSTANTS_H_ diff --git a/source/radeon_gpu_analyzer_gui/rg_target_gpus_dialog.cpp b/source/radeon_gpu_analyzer_gui/rg_target_gpus_dialog.cpp index 9078d85..a6d2a5d 100644 --- a/source/radeon_gpu_analyzer_gui/rg_target_gpus_dialog.cpp +++ b/source/radeon_gpu_analyzer_gui/rg_target_gpus_dialog.cpp @@ -496,14 +496,21 @@ void RgTargetGpusDialog::PopulateTableData(std::shared_ptr ver } else if (pos_graphics_1 == std::string::npos && pos_graphics_2 == std::string::npos) { + const char* RDNA3_TOKEN = "RDNA3"; const char* RDNA2_TOKEN = "RDNA2"; const char* RDNA_TOKEN = "RDNA"; + size_t rdna3_pos_1 = arch1.architecture_name.find(RDNA3_TOKEN); + size_t rdna3_pos_2 = arch2.architecture_name.find(RDNA3_TOKEN); size_t rdna2_pos_1 = arch1.architecture_name.find(RDNA2_TOKEN); size_t rdna2_pos_2 = arch2.architecture_name.find(RDNA2_TOKEN); size_t rdna_pos_1 = arch1.architecture_name.find(RDNA_TOKEN); size_t rdna_pos_2 = arch2.architecture_name.find(RDNA_TOKEN); - if (rdna2_pos_1 != std::string::npos && rdna2_pos_2 == std::string::npos) + if (rdna3_pos_1 != std::string::npos && rdna3_pos_2 == std::string::npos) + { + is_1_less_than_2 = false; + } + else if (rdna2_pos_1 != std::string::npos && rdna2_pos_2 == std::string::npos) { is_1_less_than_2 = false; } diff --git a/source/radeon_gpu_analyzer_gui/rg_utils.cpp b/source/radeon_gpu_analyzer_gui/rg_utils.cpp index fc4a597..df47cdb 100644 --- a/source/radeon_gpu_analyzer_gui/rg_utils.cpp +++ b/source/radeon_gpu_analyzer_gui/rg_utils.cpp @@ -1580,4 +1580,4 @@ bool RgUtils::IsSpvasTextFile(const std::string& stage_input_file, std::string& } return result; -} \ No newline at end of file +} diff --git a/source/utils/shader_analysis/linux/x64/shae b/source/utils/shader_analysis/linux/x64/shae index 843be3c7dd4469791b0cf031a21c3b5dcb208172..ae0592f3069c0c39f5add95e077929013fea5c64 100755 GIT binary patch literal 1313664 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�(;v5^LK%d{M?d-o3R?-UrovEbnk)9F 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⁣i_sRoCHIdziw}WMK8Nt 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�S&U`jtpns6D{*B9WydGmsCO0Y&Egee&`dzz=+q; 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 C+I!#t literal 1002096 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

      u@~yKk!k5FWe5+YIESisdPxA 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

      qZi|p2P@L7!V0A_uE3EcaeFTSL@Ev0_Zlv2_ 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 z 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


      o5M}UkCE;zMi;{L0UMOk< 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

      a;bI%uei<~tuSnhoC-&GnY5 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 z zdm}ULrN*bxN7$@8!MdaN`2&^fbZu0S@$29>XMVMuUl27Dzdx=l{JPXns4Qp<6?9Qq z{HUjLPe)YdJaugy7Hu0#wc9Jh=$yJGMnfiAmuUB3s6jm!Er@zTsh)dHjJD__=#9wy zdcm)&!Xp%0qaQLBJ^ao$zedh4h?xoAPu<4yJ4ni$Rb2-*tGZxH-?Dm+4QOY}p=Vu0T{ z=GV&k1yM8c+xgT2#gO_53j9HVE)nR15NgqL5xcOBWs|9|#zsGr1jnfubM+@j`VapZ1g%{Aml(n$d zg%+k*sy*?c@fW*H*K6!wHq<4lOMg%cS7E3@C)Yv{_4HCbw{MKL+DFh%Zhke!YJs2b z`Eg!dV_Fzf4*xHMXiN*}YT^1{`WCLeN-ey@qtwIKg%;LoidtAoehWL}ZvmOqWm@>z zWN4wAYaxhw3aXx~G1Fd=d;~qs%&);%E%4LL#Cc7P)8E3h#T-tOt^eC~qvHm1m$ zpY9p4b zbbhJQ+q{9sy0-?&y>(~2w~)EFD%@M=QALAZ?%oQb_C5UWd}84@q<*^ZX-o^~YT-kd z`+MfBE7ihzG_L(@n+q-MVX4k=$}oBa?2gfpNmC`-Z!pxLpNkem?VqaWUJ|2?y`Ktt zCosQ~#_}7gFn{=;?u~xPSk&-4%lrm8zaVN)Q9bw5i2_BL`UwjBL4ht5ANi0+(f*iF zoaIq#iL zZ(3toKvxTYZ~GQrP77bAaosq3tmF(!^(c?$+*Qdrw-(R2%%GbF-5g}yl-B27qr9lC zRHfa!pHOr&>(l5-w@a1yYA9Hj_V;(QPqj?fqX(ZZ@oVCD9aS_a=lp^==j*xsqFH(zE?u3|f(Wlv{ zze*=q_kwjfp>j~9f{aBMzZvtZ=lp`GM+AO%{BuF2PyK`n{!l>|m4m`xes|#&qB7&D z>*m-MqAjshw@#$8JfTvKRG2}^9w~o_w+4+|${_05sM2mKrgT1yc15!u1ncpH%8Ez@ z8H+xCZ#2JV&M%01HsZJV_=3ui`Uw^Mp@J?d_V?g@TkqR?NIUwbByftX$QU+0vNtJd_h$+V|p@LpBb_MH_#`3EqR3;)7WGsgG ztueoL&M%01Osbx{@o@!}GW8QG_(KIw~pv&F5 z98nqS+IBx?kg_yX%1_~~K_{0ohv|AoiPWm)@jO_|kD#3a(p|UbkLB^tt-x225 z&G`jUCocRpuPCTgsh?26A1dgga{N7hxBbfHqH=_%uCJUd+7wImKv&O3Wv4DjR0g^> zD$F2dg_Lc)HR$D122qCsm3H_4Q;~ADPotNiU4cq1SXUD&hes;NSXA+=m|s8V7esAx z_+1qJ>eNrD;13maQ8`Bck3KzvzV{(fsd(yosj_HmS*jD3dNwLMbUC8Z*R@e$1}ST# zd^g@2400)hsB?x&yTKs^m1&p|U1YLB_9*-yKxZpqldw;@kxF+%eIwOZ|ij{!l>|l?yKN zpP+rAa)<9nZ?_h08%s4*&qiglE=N>4x;84zAXtZ#QvOBqC+S5(@~KDwadd>Z|(b_FVfV7)e> zvMy3V#;=dxja1Q~nez*xHaYypqu-GF2^IXIf-WlOZ1hx~e3_`+==;$|V$t@nRNIVt zHYyu*Iik|iwNYUP!3LyUZYf*2ltI*aMWx-D2NzVvE~SEA>v!p=-h)aS%es+JIWe{Fz;E}X3co7#6Ds&a1zl85zra&@>71xsOF~98sz3+Ndytlr>V` zinj)XT*@HoyrR;s8dFaDH2Pfc3RD`wdM2T=AyPrcqK@Cm<~Pjw1yN@P{CbZps5Ggc zP{AK6=%Vr;El=f)OGM>lPhBrQ7Hx*5dM#4VMrD;QM^tLMHY&^@WrLJk@z$X9AG!02 z7j<4yX?I9WIqTDCKl#5vr4_7O36+hJ3NjW={Ejida?US^Iy2yRL%E>RrhY;Nf2g2~ z%Jh3ZmGj>(D#v*0dP%lu^DNafNEx8Q9X=PMArq}dwCgd{ppuIgL>*F8&m9n>E%*r9 z;>@oT{MstaAN)2&KV&T0_#J6})tp}t=O(Dm=TTfeD-=h1 z)cO|1qHSZT4k^koLa{kULnc~>XjfyXK`j?8h&q|5o?8~9E&2!>^>^H(6lb36QGDfMp?JDSt#48++7e53 zP*H{viY+l3GSPZOyBtFe8o6je)Nw@h+@Bv&L~}lZws`X!1i!8dk5Fule#lt#@jKM~ znmNB9Y7fKj{n2ko{R9R6pgrOSXA-b$Nc&^zaVPk!f!hI)v2GLz#kOoLUGZ%Jc?&*6pDR3Y8^!_+FF+C z@SzMN6uV#_;Sq{^qaQLBb^IQn ziUz}+Ul6r%;de^(Yf?W!fj=nFh2qi~k7CXHgyI3;kKR=*+6+r|;!uVWioG!!GHDt_ zTW8TqXXMTmUevil_1w*41&Uc8LEnRzUn}^P4u~k0>DtaQ$oMt!+f5Y>$~nIvYU9H1 z#OT+ieu4sjP@oINu8#SDVANO_#4tmIM# zQAZ4wc3U1=P+9P4l*+6-!FnvAvOH2j#;=Xv?NrgAn)3^y_AvZbMZYff6Ds&a1zl90 zy3R0 z-9Qx$nmNB9YG=c*9Q}sWPpIGz6?9QK;cS1eT=QO0xxx3NlZHjx!%}S~li|ay%e}fB z?JK27g&71JkaC%&Y~@l0QD+d9cBd~ZsEmDp3OaO{bxC9SRT3%_kqRq@YmOsK4kRFJVK<9D9g(!5=EP#Huj%phfjluLMP(95L^ zqE03%?T(5mSNk;j9>lC`!Md7IIXqH9#-fVfwE6XOenHeh0l)7*sGw4(enJI*sGy6= zs<(S8Ki(iJ)1JC+4vV&yr8>zg!{}qPDn>&lT8(Jm!%%}kE?N+EGEqJE>=~6|yfTbXtclT(iPj+6%@}G>YUWNRUew7%_4ElVqRsjU`o`mTs>Huh68!2a zJVJ3&^h3s?iQkFlSI+qban9Fs+y3#;(RY+>>L)1h2L-xN9C3z6aR4Yz^r-cCv1s!w z)k!{ywk}3PCR&SVU&K&@N-kOubsSMW_qZ5s!AH<$W_}&U`d5Yc>0TA*bv34iF#+P= zc48eZpsR(8|HHR%_Pf=>2R$O48?59umTFJbhne4|E_dj1vr+4Z#o`YYbWu6?-#wL!-X$vU^1mIOF)i8>OZEJWRJJEndXWk|qJ0%Z4cfVALDYdk_1vK`+N6)5N0a$gg5RtP^9K}j z(GMAm(!KI~nfY~cenHeWgx^hnDNt0YpP;}W6zD?n_R~FzAD$x=FY~Ci>shoZmTJ3H zh7pQQF&Z+_%0#;nLk+sQXhGB|LG|2tjJDcG(DxVSR||ggDm+55Ir<@EQNiy;=GV*l z1yK)e{1*OPpr}(nL4iLg(1qf>w|W$Rc!yBD$fMTx7ZzJw?UnBS}sPG8Imgt9!MGe2_n%^Mj7eqa@@w;kIfuc$M z1O@(}Ko^SlO?wo}LGfIVS|3)6Hp5cAm&F})OR|G@;||IUQr1cNpLlC9%%u#X4h$;o z9(bTgIqTEt!)Vs6VBJlqY>iZqv1s7;FXmTzd+vbZ#kmRUxr?J;oB9bA{Goy_D(9Z& zsXSg=qx%<6U0-Ebw0V~59X?XooKWdRD$F2dla%klTZ3{gWe|0CP-*w8`wJ=yK8;eD zbthPFOQ>v*RFJV~;rDR!tK|HGsOK_%Z;yUm>L*n2hYGr=yz?!dO7$#JdAO%83>Ix0 zOLZPlhSA67mKY70XlZ%3ShUX~)kBGYHlv<;yK)GnX=m zI(VqG`>#J0RK`9?1>J#WUD8SMT1t(FNk_BtDZYH`js_K zso)P4bWu4v{9R)knxgVc-;WOH7HyoR+GZn_4GEQ2q{0k>4M};VrEKR?22p1am3G(s zv7j>P)97Y2>q@Y82Sh5nbv^o$M3?xL?vvklsG>n9=NCjhqE*j5Bl=Y}PO0Dz6?9Q~ zS@=84E;~b1zT^ARw-gp_ilw@%4u~I{dv$HmkV#V}+S4ssHy164I)kX5+jLKXVztKH zAOrKOX)M1zDm=PD_UhXFknyYF_cf|$(98J+QIBZVa}&|8u5pS2e^8(c#T&z4c=nn9 z5Q?w)e)LU+MO({Ky*-yBieVr_nn;5Vki zBNWS{A2NP5{BEL(27{bm5VgJF_t@yyq<*r4;13FPp?Gij`^6UjT_|qy{piMj9&x4 z1*&LJIx~0h@S^q<{PvH2ZR#f|@COCDP~7`mznT8;dZAeG{pgzti#E^FjT04R7@?Sm z(U3{gB-$e^S~(Xjh&pYko;&OA0>y%lAlByB34W6*JVLQD`XS@j!tW}oXi&-d1yLIb ze)~qhF7*=>_=5snC?5NIk76HCT;==GHy##k8%uR&k2~o4WCv}=9h4aaYm@SU--ndd zT*@Ho;Gxp)6lU5t9zKn*n{_W(R}(6SM=Hqpb@02`{AxMBAZky+@Atb4zdrR7DvKIJ z1zl7gb+e~((Az}iVozP)cv!S0mg=Q0QdyT!X+$c_AZ3@7zrtICdM;%Ubp}ys_u`n+ z`83+s&3X{5rxGfwA{AsTdicHF{2DpGAZmNT?pYbwoh~YG z_tf=`heg}NQoZ#@Dr*ud^+<&or0kROyLfBR%%u#X&LAr7o*7e)wW**lKg_zMv8-!q zfAk4DM%T8FBV#eZ?{((a%J~IRJB{kOZ~R|DrL1vE1%IfZi^@N~?x{?@Ra9Q*sSATe z8)vB?MJlTjDz!+38KfMN^1txbpq)z@M4drY+Wk{ZIqB2r!DrT$V7bY`^wpwFukcRoyG?w356&~Fn>vU~?$XHbHd!G6Aa(+S7 zBU<%b#}z2*8mB1m2L-xNJmj_h2086Cp?IE0tv%JEt!1f_mLrN&b#2j*iB=`rH5h8p z&qWKO&LFDi9vq`hYYd8}`870_-?R#kP^{Or`5|Lb!|xg9H^}(~ac+Wo?!&(=P&748 zQQ!{>bfI|oT90DmTZG~n9<>hW7Hx*5npuv~&epX>Lnd0CXqzz9V3>;*M4drY&;8}D zBHFCRplF$2i?RL@06*QcVhe4J(-v4q3+QTL?Q47syWXr8)_X*H^RkljELBJ4*un-~ zTMNjfZqULH2&O^ltlY82i#j`~o_lU=VL@YBXq#V$G5?f<2q*6Wi z!ss{DI7NX!DA0xCfz2L8|4l;ibKj4?8L()3SgK!cIilFCYm0_Vnhw!w7Oj?x7DPRY zRnL9uHwB8Z{|x>1%&(-e{5mQ;LUCR6L&mR*U!N)()N_78)TcxB+!4{QO#S45fz|{pc~Zu zDvWhw^V9t(&Z}yiw!k`CKvxToeWm|xo=6LiuojlAmn8TbT9{^w}`K24l6rPxrDo zuc>j`0_$i2T`hd#75=xdf)+0JDD|#vC1+TwZ@`ikZiy`*lX^%Cy9c3#cCLjW>N%x) z?nGvWSD{%SLGQ}HS0&z+8LI_;x=Z4`w#I1-tfK{VwP63A;Q0-;aEnK&cU&tu&r*Ff zk`{Kv7LaM7^nhA;inY+mwGc!-r&P~<@Rvmk3qFEAmgd)CtQPp`z8&XvHBLVZtfK{V zweW)QuR7lKZ))K|*21`z+{RLU+L9J-i!C72LYWrcf}sZ8Tnj@Mv?sGx{N8QN{1s=GV{p1yP?; z{66}N0@;xI$>xkdDA0xCgC}?t)2|nbXZv4?UW_c-9+qmCP=*nT-7y+6(P~7S$54Yo zE?N-voKija_nk$wu@6x}?}+AC(pY{&6&|6uH~JxCQO9r6{DwKdAnK!{dhW95SEhb~ z0)J4T3&p0Fc@!6(A{3JzwO$!5+Bi$K+bF{b#oibVnP?57eE>rZN@wTJkY3btO7+~I zeqNxM^bxdKn_ngPl^z*UEYr0e5stwpp8Fw~%uixxyZ?^MsZpA{%p`v@ELpMFp! zea36SudKqOyW*hehm1uVzXQ#$n)3^y?pOR~qFiqP-JC4Qjb)LDX|o_1rIhTA-Nr5%l~szXoHTo6I{nw$Rj= z7DkVL*3kmGTG%(VFhL71_lWd1WF==XeU;SE9 zIn-0vi;6|t#!`LqBbDU|m2#xQ3{nnBc`n`>v~wwgs0Y1DyWiYiP+9b8^v+_|yRofZB1)K9434;6G#+4W*i<>a-Z@(52|?<^K=iKTip zJUQ%7y44`MnfeJ8{Goy_Dpx(uQ#tR|qVg->kIwWKZJeb#RVc&g23ZrMA(N&~ zwBsz=Fc&R|I!36T+w!9V#iWm*+t&Ol!LP2u{DIO*(GMBF27b3wMT62ia>o`g>Q=&U zRrIS;Kl#|;4+?alxHruGW1%| z``Zt~FSe4S7eqa)RnNVNnfAKtBj|PaZdKxSm$6#qr@J!FYipdgFsm^wpsR)J5AiJ= zNDDuvaovDpR&t)DI!h%jtdA`q(?XjTo@Xsob1ei>4_4K4oqo~6f{&n&rTKLjs|9|# zr8uvvF)fVg1LFVXbB$>MT`m0mvA%_OzEUk5Xf2Fe$!#pv?<;BH?AQV_Ep%w%ofv9R z%e4?hJq1q75H3^l0d=mk;F1=Vxce7~SKwuuUQ5SU+yv0CM)`$?Qv);Mi}b+mx4 z7M@u1^zMFzT6mxUu z%>o%UXy&>JqPAp}cKgR}R{J#CwamK4Sl#f`9T(@-HBP%>9o?X-n@x}Q-F&vLZd#tI zb`dMNmZf^$#%^{b-SlHO%%Fh*-TZ7v=%$tHCWzYQRoc~<8Mer2pGKd4vu-d}H~e%n zab8p7v>VpZ4Z6Cy<6z&-L+R#580e0jv63?^)tM@Gvpwmi7rS8w-3;kwxpmXdbrVEw z_$uwr{BF_BtWTp`*{oZP)eS%04RKyu{%@ zbaiw3LH>91l@rv>qph2HE4hs+D#=gx{#bI+FV&li&Fk4be!4frd3}ws=3K^Ohjmz^ z%le%U^M6bEG}c#o1R`f8msl#U+FnMd$ho-dAOoxny%L5RbaV8AsJ&nH+*`g=&~rY5 zD45?M__bA-Kir|4q8~CA75v&%(V&;}3!*-A_}#x)_zkI_puis#=t8medH%O>;md@g z?fcP3!lLbAsoqePVT59HjD}2_D$(x4P=kIhS`hUNQ9bv%7;Wssq2HeQl{A)LM}0Y>8Bmv1s6T zhWVAw$-QQHQMVF)KmJxhrAqyT3jR<*7nPf)Je9346_qnQbv@54+7wImS&3BU5-ROT zg&Cx5lJYxvYf#Rm45A)yD(#*TQ?B-D^u}SkK#8k5sDK$YQ0HWv>BG_Q=|+d6gy%xWTJJ6b`ypg)N|2-s0XX+xyQz6vp#~} zr2e2vyh#PWz6y^}+!p!pOs z&PW9rivfOznO`gC7ew7k_+5T;L8VLmgbMypK^K+l5BF3KTrDbxdFuM|*P?A>sZN-Y z%KC&#Gg4s&DTk!I7;g>Qxs*ZF*+He<@4r!`T=Z!+>OUN!O1$p{>p?>0&PW9ri_%}@ z_Zai*SH&M%0%tMGe%^s7@pp@KhD&_(6X=Xfd?94#t8_Wfuh zwPjw&9GG4Y^1U>p;C=h zm_e{EDIaSo>$#Lc)X7Ap-Fv@MP?_~aN1? zfauqzenJI*sGy6=Vejzw%BNl^D%bmdbZob1^DNaPIZ|1XP^m;J%ph2wl>1uBW-etA zbuv+D_tq~LR2F<1r84VIu%1k)tc+BU@f+ZGIaM@h<@|!Ey9&QQf2r{6Qa_=BKUB~~ z<;CHz#oAUAmCJoUdd0J7+gPgOTcol)p;C@im_e{1DSwZ*2JKwRAnIhI((aWp<)Tlc z7hkjP1?y@;_i<#(?6b#i_|)Ln(&Z?+Xw`qWRT;13maQF(3nYq4(qS5Z0F zQ`fg67Hx^8dK^C~JdSm_SC^yr;8LW*3{sX!`4hY~=;l%eQHKVMT~t2O^t){dD$n=Sg~6gtu~d*El^qF{ex$+-QZ`BXVZ1dc z=TZhy=M|N9f8AQ7T6Ap1M9V7Hus{^?{01wkK42kqR?N*(T+C@z$W4OBqC+S5(^l?@a}j zX`e=)YqM?y>$M4$b&(1(79IQ!Fuz*PFNnIU@Oww}Yf?XBFa^Nm!tBviVQ3NuLACFNW3)}WqC8AP2|RNDQ|jRloipGGe}LsjCNlwjRR zsGJ(9AY;+P@6S}xppo+nqV6jE{w?~osh?26A1dgg^3Cw~ZyoVGQTem)M~`BQHqTN$ zsMRxnbh%lVqqoCOq{0k>^-1|kOWDk&45H2}D($}X`GU%VPov$=tUHYPM;*+&C(i3? zoOZ)Hx2oZw*?xZi1+DhDy8N zb&GBmeVUCE6|?R!RyX`~hsJLD8mHZ`j&9J^&D+D@0``AX>gE(rRYz(oxx`W(xMMdP zl5SeD8)neJkZ!(6Mh)7zZi1-ufl9l_#crHWqdnKG2aMGXKi#Y1yrITvH>{%@banIH zxA|S^7`pkOr>fT`E4hcIdZ~)ttWUaW#%`EF1Esy{X4n4<-E?x@1X0g*m3A*@X7~r5 zWAjwdgWRl3jMWW4-NkWUS>v=D*3k{Rx_M&g=IZCFn{RlkdNsC^<1E#SbL?ha(oG|F z!wkA9)6G9wH{Dz}LDchDrQP|TE4rEVX|(g3b%n9I;ivmjoLAL2?S^%9gRX8a4u7-Q zo+H%FpL`C*w~|vVRdd#YF4yRCbP}z{ZkRzg6}ovD-Wv3B-2_q3QI&Q#eYWUkwNIn> zezUFx>*-`~Tp#yFWGt%q{emhQ^mBeeoSUGYJ39K+sh{kP_(KIu3yJjs4{`-`Lv@S7Uek9C}(<$$6IQF{7;3*j8OyW7~8&YHYi%tuZFk zSd+$HKnxAaxyFL1r=nckCvGSjTkydY&{A|5t1*7MpT~J!jnl?hM`P$}>=mK0FF#w2 z9c+!wTgh!K)mx6TT4T59(i&UT<*2b8y0*rcOfM}OJCzt3RC0|4Q4dJDxLdC;8e8n^jBODxq)Wwpj`)1@`Gq{~rb zJ9TZ1F_~W4Gu3yJjU5#l`}8x_*d-pY-q5V%I7@{m`pES8vE&|Lu2(^V?optR4(pcnHkOllRlVk6iZQItj751-Wlgr zHBK929gU%@u@9W;e`EJo)!64fV7-Z2$tjlV#Q&V4v1Pin#>R9xYHYc#tuZFkSdYd^ z)>tFgSP=Cvm5Y1Jr;5f_`(V0JEJcm68sn$CI?k(WoHoWf8beoOJKy9RJC??ld=9-# zTFJF6)$dkW?KgIiF0HX~U5*-Cp=)c5$u!odu_qHlgJ!O=AnJK27x#fr7L85&V7gH( zMT4;#G10G0{p3N9KY-8$==eAK-~5$N7oaZe)~kfKJ^no_yY)CfMyyV(Df??XtVD}pB{_0#8T}t>e&FDq)P*|R+l3{>vU~^ zm`uhRfq(b$5O|Oa97H{z<>Fq!%&^-#A51r{r5J=1?F7)K2nZR!I)3jlzhTZVi2Cs3 z_p46fH>7?72!8;f3(&>?<^gq|CP44;zW{xDEZQEHZk%YSX9IMqE)CGME=PdY>)HS@ znZOMK-%1P(O7G5{rM;-bxKqcR&n0>4WLUwG@?*qLTo+E&@WvqK)5?=2y-61yNz}yXNWw zP?h=#Ap8M@E5V%LNXi&K+`bcVATmUhRYF#7#cKk zfrF^?i(K6IHWz@VeK6g)mZA|-bQ3^ZBOqif`uIIS6%Cp>zaT0Mey2pgCiN3Q_yY)C zfc_NzwZa`w7N7@wKYE|HXfrI;vFL>`@t1pbX{<^wDp)Pk<%rdou8kGzh&v$r^DTQT zmpzC&63Nhg{K|sWtk0->*aEc}>#WC5_tQA9t#R5T>*x_(J-+;8e-o7H@ln>}td*Q+ zsWu$NwjK}CrS&+jOS>Od=yKF!Mc39N>*#SvkFOz-2JKvrLDZ>6hVH8$D|%e;8I{!n zbr`Ehe!BbOyspM+kF29dboF>;_^aSfdXjp4hG(s9+e&U@sh+*cYCW#hrS(|VrS*8Y zE=N61>Dqc^9c`8Vt{%@Kkp`Vyk3rPIM27CCA1!)Z^cnTSZ-IJ@)gwRMBV&(!jnf`k zM~~?0@wegcc$anhC>ydS|Ri?)e zl3assuE!wiY#~E;-+a-d^BMK~us{RG>XD!Bu*hPlaoQv6=n-8#K0EZdb3#3y=2`3A z-%9RbsWy0JwI0{$(t2#@(t12qm!lr1b!|Pej&)g=pGq+9J`W? z`WnCjl^Cl>e!7>$d1Z~$9$80^=<4yB@Gl}(=<$7?wY~C$>^>(YAMq{~r{^SZVkSx1jG zdi>25p~pe4#~|tzyj46t4Dsi^W(g_#%YhNqepc0_|VYf!V}cv zS3GNdIbbE%vQ(dVWwjo!)1~#epiAp^!SethaQKy9)qaotPI_o znHhSV_8IlLvOo>S>XD!BsyMHyaoQv6=n-8#9zEuNkGuaxJ^sYA)&tQ>&ahNH>P%pb zU8hTHY(bZ!#vc^j9$(_-?sE49l+}x(3u~{EX-xK^%0r{RFq}Y}m zAhyQ?1Tub2{JuaH4azycAnM_Y--_thrhamOz#l;90(4^d$CQ7n2+$XNKl+})qRq2Z zTVkZL)u>3_rpslzH`q|N>)HS@nT#z0KiC3Sa)E=WC#qcB+b%BvE%;#CZ7fA6q?pt{ zim_X9r7ro6VO@>?u!b2}x3Rv2f*MqF)Js0YzA~_s+gPfhGT0roLYJdEs1j2$gJ2y}-ifycwOq;|>T#^n?)aE;(Wlv{|DLfb z=?>}z>oFBJK+APG0#uIH%)qUS^;^xlp0f_39xqt`&wmzx`dB4^hyoyV0XjJRlgRrY zFFVMT~z+{2mB}e9x(=$ zS9?5 zMYYc#{-+(fHa}!6hWNd}{MtFcAnFvMdhQb+EU1*JpHRUcD(Ir}(|!Dh>5#{X$_qSo zeK}y!##yQdZltm^p)!b6m_f?YKa}z#cx%wfr3|9Z3o7mYc3F{f(x=fg(X1=My07*} zRBqF?Q9;I{jNg;ZubcA=qRt)oeIWW(sh?26A1dgg@|y>FDl1or%9A~H9T+Xz6ifAS z*A8pXt6OwwyUn65N4w1qU5{>VT@tuL;B$zfK`$3Lh&pV@#qIn+0cf=krf&o+MJ=RQ z5{VI@ow_zZWGt%qJ;eO_Ilmxk>%(t-^s7@p0faw*&;{s_@J|h&{Z9h)5dRC%Hv$%I zElYJr$J=H{a@+LdZNm&w)=1gFTZ2I^We{~dQEB(Bxq`~HPoraoSvP|9K<$sH+^K7$ zf{aBSzadpL80P$fsQnJVS4Y1l^%E-iLj_$_HsAhm{dmN&hltA1_oJ@?EZPi9^}LQ$ zwkK42kqR>i)*$8ama?=Vcee4O&NeFTx|bGIW__BC`mcwp5@(xW?bQB=%5Gg76=eLH z`2CD38kBQ>LDYVSUoHBzsh?26A1dgga>b85mDfC0RDS0B(W%{{&9hYRpX%8@Oj~q0 zdK`6iZ7G>Suofu~x0ID!${^}MqtfnUmlRYMd>W-P>rSv9s{Ij_dv$Go$oRGKyM-zm zRC9ho)P9HGQ=?y(`Uw^Mp@J?d?b|$+w~mX-ExsRp)nL)Ku~frIWphHM6R9wRU>#CE z-cr_bDTAm}j7qzW?=Pq<`ZPLzn{_W(?@{|BDtmQpRFLuO;`ceKXi(4j1yP$Eeg{Rr zKJ^nS_(KIa1eE%k&Am#3_Nxf!Sq116eW$7Vk`l)JOV<-Vu;^*^K0k)f~Z4<>bW0Y zQ~)YdKLLb4fY1eK_AegL`wteN_5K&2N0CJvXQ?)y__>-(K3DDdxnc$>*^1n^@YbM{ zOBqBRXjIy*j43C58r`jCT?y9ZgvvpY3NjXD{9bK--JD+#b&|ku`-KISD)kd8_(KI< zR8BnBA84*TNK{_!sq0*4(WY3c2UVo9A)(TWRG2}^3MspIYtYN345CgkD(xN}Q?B-D zbc>pGEm)5yR8~YP$XHbItC?Rv=NCksB=Gyx#)3+n`Uw^Mp@J?d>-YG3<+G0xm71rn zcL0mFmZkdG>GNS9rh9d1AErIJ9DSJf>e@a`OeS!Rz#k-r27_GSAnHIP7kA(Lionx8 zm~1UYBc!M#fF>d!WGw3V{j>QEbACb8p#r}PqhFKy2_XCdgf2i=uJgCe)&m9TpZzaD zuZ|XNhNU|7>83D1>vcJLbT@TvRG2}^1}Wc#w+5wia|aqP>OiB??w1!7RAzk|y`KI_ zl{nA@>&b-5%18wniza>#Grw}qFNoUj@H->=wW*&_!5=E+$`&c#gtrEjT*@HoK%>&`JLeZv7JM3Qd}iGV)>XC7 zANJ(Kb!~pgShVr`6IC>*=KO-F{SLp^M!zog6Ds&a1zl9mxX*u>mdc{?C*P00hp}ke zSgIGxNM%hzr5>p;gJ2y}zRXhAaw&tT1C2_%n_2~xMW1HlM8&Lo!Fo#VkEpEDwNXLF zuZ!O=sG>nV=NClnclaG0{rc2TsNfG3bWwTx&Hi5bzXL?&7rq~T7h}pGvZ8)z0GYjkaX$oLKM`xI3) zXy^QbsQpg$-16vGrhWnle*mEi(3yYqfc6E@r+h!kV$sG~s+sE9wwQx-X@JIcIRdmo z*A|$`WGp>Mf$uvv1n%Sl2T=zaxwzLc^HRU(PWoVabXtl^NKqGw5ulTFZGOo3mGQgK z{JJ^6AZqKw?{^ytzbf?;K==a)U4Y(jj|a5hBLwI|{|nHjYtg1yx^beSo(<51E)CG6 zE=Pb?>e>P`nZOkS-$o1#dbz+s)Y(QZ?s+lrY9DOlM8i_lLW;E_F#@zs*XDE!qrA1xXpWZP*Rg$7skzYY^=w3^gd7 zmpjFHQKuNybB~SDW_^T>6D{*=1;3^Wk5HT){gAO};&-(9m2-YU)JX!r>)%zNXj4By zfj=nFh2r1t_9$xm3B}PKwcd;@+B{1|Mj1vZHpFPiL~9Xk0YeQcxoAPu(M9##{xRBu zkDw^#*9m?t6&|7382ym3XyZ3!e$|{`5OsXO@9LQXMVI;s3j9HVE)>hY;vdqdJWMF2 zJZgRUV$rs-RAiK4gkmm6Lnc~>XjfsVK`j?8h&r#Rp4&G@Tl5k11&sOif?r#OM<_N$ zKV&Sr_#I|`^_*W2wTIz%`8x{~ed;GD@COCDP`q`wzboE7CKQKx)cOL(qAjshWRziq zVsng!Otc=+K7^qLja;-K>X4#(ZqGSIH0LAew_<*S;MY;%5sK@gA2Jqw{GMQb&75Bl zwQ=D$8~ujVPf*|w3Ur}3?{^->M;S*&M%1C!|+=d{p!?DsNfG3bWwT27yJ(T zn`NSMzwbxiq*%1IEY%xwq_RArQjS!ZL9iMr>y~nmOBqC+HdNYu;mm@{v`?c?uvs^P zbzkj|sNAM&qk@cI9lrrpG#KXmf~f5bzvH4`lllo2{Goy_DjR<5caZz`6_tVSM_->< zv>BFasP7o!pOs&PW9rzb1aSQbmJu&M%1C+3>4Izc%#~D)>VMT~sc+%TswMRBrYC=;p9!^DNb^ z6RGS@s0?*&zdL3StVPNROIgXK45H2;D(x<57E~5|8f|fA-3iu%gvy zgKEw%h}z`vJ0$vbsh?26A1dggGIf*x1U+^iQQ7MI(MDp?wy{*(Or)|ip)!b6m_e`( zDfhROwOq;|>Nuj(?(8!PDvLhN#)*nq_ky)csO*kZkn!u{cQsWssOS8Gs7(&PWznxs z{e%ksP(c@!OYZdd%F`YsDp&h{^x9(4mRPFiP^7XWq0*03m_e`}Dfj$GNZH7x45CgZ zD(zm+%uB;R1oCP03^40KupTBLCOIse~q^Wtz60=>X4$+ZgosK)}eyF zGcoIu#iW*aqK&gu=e0;>OG2d^sW5|-rG1rh2i_WVaw&tT^NLElXT_A0K8>D?W?c!^rGrZT z55Sh`+V(MIEXw$;Grw-mFNiubsGhs|Z3UGo^%E-iLj_$_=6~hyl{frdRMvUw`l7_5 zO|eu5`bcGSLZuU_FoTp8Qhot%4SKnhLDYFgrQM2{aZET9)cwSzSDt zx9D-HBxr))?koJ8AP2|RN6fxrkwU^bY3v)MzAicef~h@AYGduG8T3G zs^&M$`2}%qf_m~6wB~sa(Q0YV} z%phfhl$YSGL8+BHuXs`C6_s|w=_2K|l~3K_@0E}IRa6e~)b(|MMVn`-hLOr#LZuz4FoTpWQl5>s z29;dOAnLrL((Y%c6;u{{8l^JpPOz@1ef~gYLf1wG8H+Z4%gnEu^9!OjxsLo!kA7W^ zQ!4mF1zl9O{lZhZ{x71k%v0CRVbQj+RJTr~vLT_;id2|E$_^=CkGBT3T*@HoyrR;N$#vv+RP-BaoKnFbD(IrJ_2>Rx`Q9E; zS@QkpfMU`1uvCwvNM&6@r4gwxgJ1(vKFdK#_sqJav8<=m zK7XLHO4mjO8NVTZH&aD}cFr$|+T>KvO-8>m^^+$v{!l>|m9PEGQ~BisqH?qEM~7L9 zHqKHVUm}$?36*-J!VH3ymMP^5OWDb#45H2}D(xL?zvx7w)lSZ;$zXKSgK!Gq_QfZ zQj1iWL9hxbA7Uwcxs*ZFc}1n&`ZpF-R{J#ie#NY7!FsjYA5mGOYomgUUlqSAsG>nX z=NCk6a`^3iL*ZAaenJI*sGy6=50^ZZeW7xN??*4m7Hus{^;#6EtW2m>BNb*4tVYTq z-Wm*YDTAoVMT~zv?@K5F=|0F6WdFr}3 zEZR1f>ehL2apK>r%h8Fy6sa(SlpRuj4sQ)=xs*ZFc}1n&K{4f`PqT5NV%EK2J)KZl zAE_W?(Z%m5^Q-6lf~YeCe%GB+Q0Y@Yp@KhD&_(5E;om}j=^sVqC{JA*iA7stskWI& zWp_elsB8P2GlP^pQqJS8K_izkh&r#RwEO$IBBk?b^b9cTL9lKnRL+i6kg@3FH)(#& zoL>;N$>Dcd^czw?p@KhD&_!i;__vTxxkpqcJ#{^FEZQEH>X8(w>`bT(A{AzkazM%p z@YbM}OBqC+S5(@$*A-O8uBC#$Uoq>F#i80=>`18eBNb+lvh-l3T#vT~om|Qw>b#=T z?uREAR3?2IJsHiq60BPZm5q@KG8Se0_EJTIZq6@=+T`$iWAv+1KcRv@RM17m{lGti z&i{j`?DhTVFl*7KSgNCLq_RDs(u-7>L9hxbUu`LSxs*ZFc}1n&_SY6vR{Jy?CmLp5 z3)ZsDTAoiG4k zqQNld7esAx_#F}bn$%CI;13maQQ3Qy{{(&V_oCAG{pizd(PmhxSLjG(b3&yPsW5|J z4N^YUQkE{romaf5^NLEl_G=0%vp$W^DQ4X=>x9bYNM+urH1Yc~Rb*by`2|s%9DbGP z*QS0#1%IfZi^~1q_xH*dcZeezP|f)TQJWlo`$fMl^%E-iLj_$_#sZb^ z{7zJ^^Zn@NuxQ&@s#_;g*^p3aMJmi7ScjB_QXO9+l{E>KdZfY(QkEW~l-u#v zpp#1(M4eYu+C3qrob+jQ2b*;zSoabtw?rz)Sd{TwV}9M7Ul4U>!0*Oa6jZ9zPpIGz z6?9RVocEugM?z(dr>?`SMVn%&j=GV`s)R}{Qeg%uE2R7s-Wv3BDTAo}QbER|ir*3D*U$L{QD+AHHrER(b?PTn@P`UI`^tCxy>jSpMdb)j zT`xWsZ7oanS`?|QOsG^N6=smKM#?tc8VqtNgQ)Y0O1t}CUZkA%Y4o`^>qfBdCsb~W zRFJW#<5w}iVa_jz+T`%NDEc+2pHRUcD(IpzvFNEh=PpsHcVMT~vSL*n2hYGr= zJnNgD%G-V;DtGvPw2@e}C6;QNiBxtcRED}9eZOKl7ef((d0ev4GmpqcXv;@kxF+|#4qkopM~{Goy_Dkpu&e}c~awWuum ze)Q0>XnRb#=TZXGi(_0OEuK8?O#G3#2e9!sb!k5rKHtKxT&`So*tLDZQ6 zzuhk`{OZ(CsNfG3bWu6|gZ>kA(=SEkB2Qf}J{D~)OZ8e5sccE8bR!jJkg`U~0p1!6 zaw&tT^NLEl<6_EbpGM~evu*_Iazf>xNCg>-I(|*_8|M6iI5$B(cl&V#l_vEQD)>VM zT~t=}{JrwcJ4B`Fsp}=#qRp^Wuh5ao=7dToQeg%u8>GAyZw*QtbLSN=>b#=Tt{PL$ z`ZPMHm~|^yk0(@CL@LNwH1Rvx{K`4MAnMG3U+>t0N}Ku#75t%sE-EK{-BbC=FGS^J zPhDTAShRVTY8a`^B~;px3NuLABIQ=RHK^oL22tk~m3D{3lnXwMQkiupSXUA%6Ojrs z7H#~FF~4fgFNiub;CI6@1(h!K6Ds&a1zl8HbN&;wYp19jL*n2hYGr= ztlRFXJOV1?p1K}77Htnp^+<|T)+JOLkqR?NIUwbkcx%wgr3|9ZD=O`lURY2W`y>_g z{fb$aG?w*LLSrq96Va_jz+T`$iQuJ$5KcRv@ zRM16b%SHYZ^s1kTO3(MBw-1Xp!&1FMM=C24DwRlu83b#P@(@c|x-fTM@uJQvD(zY? zD5%W(G#e*M52zB~uLSG036*t`3Nn68{BEF%2IZVz5VgtSSB`#d>L*n2hYGr=yyc7j zUODY{QMtkQqc2n}+B{1&j8v86X5G_R*3$`<^^poP z7G3<#GrxMyFNiub;CJWq3Mzf-Csgo<3c9G={67B)y7V?tInPtqMq<&HSgLL2*n-M# zU5=;>bv^oiMVF-Pk#Y%d4H~(WLDYHWlS+A1OzAX+O4Y0f8q2zwP&qqNLB^tw-?aHP zbACb8nE}7=A6ZZtQa_=BKUB~~!D-O_OMisq+<&zJ9RmtGSIbA zVFoD&q`Vn#4O+RBLDYHWlS(-mQ;vNqP^p=9Nn=^hBvdv;D#%z2@jKD{+Bv@<>dc^e zZrfBrrA+;V3jR<*7nO@{@>Krc4@KofPhAHTi#E&yomW)a9T-zi`ZRhnnsp^uw-PEFBNb#U%J{7^zi!Sih;tLvbJsq% zpi-rNLIr=Qpo_{<%YTBt@dHs=<*Dm1Ytg1ys-teCvOS^Fi&U6F$_gp3z*~b}E@cpP zUQubc_lP3pYM*A~M8m9W!Fo2KG8d^JV^PKLN#@tj`2}%qf_iQ)`qinQP{AK6=%RAL z=l#9%qrRv-$y3)JXVKQORIf#m%9eymH&S5+DQl!`;jO_SmokVtuc)-U>p2CLX`eVMT~yki^Y_ZbpmL}0M>mH>+s0DeI+4nTgi0$?VFtlEq&&(} z)^aI>sPl?SyX&4+P+9b8HcoWRx)-b$5-M9F6=eLn_|m1{risr=LTMCJRwA8jNSZHcAYW+IjK36*A~!VH4-NI7XK8@ZH0)Okgv-DS@# zs5qZSzbmsI1nX`>Wox8@j9(wWZB)^qnez*xHaYwrAN_{ZPpIGz6?9Qq_8$KUI&6oi zZ1er-p<~hZuvCwvNM&6@r4gwxgJ1(v9%w0Bxs*ZFc}1n&Otqjg_Gv2U`xUb;X)Nn) z36<@U3Nn5}{H~>n2JM_*5Vgsvo*RpPW$GtX@P`Vzs9gOSf3N)OcSYq|-;WL`7HyoR zI=)0IYZ5B;NQD^$EA6M0d!G?fc5*3$sPl?SyEiiPQvWtM>C@;AHtR~T?j=-iiBypB zE8{n3e%+j35Orq2?~hL}{HoMXsNfG3bW!Qv;HkXgR#BPr)ODD(Xj3fJQ8!Xql~Acg zD$F2dg_L*UtwArBGKe~_sI*%XQ?B-D^!jbPnRsN5E*AY)O-uVH?}oL>; zjlN&mqe^_g60DaJDmx<;WGtHa9dCZ+oL>-iX27rew1P^T`Uw^Mp@J?dU;DJDa`CrC z<@m$sM_;H|w0V|lsGjY-vRs#=^GaFQc3xoyDO;qx4sQ)Axs*ZFc}1n&elg{OPov$= ztUJMakWjfZQbER|jo;zsSIzkaQD+AHKK9gtN|*Wx75t%sE-KY`_)pMBza=V%d+NG5 zEZR1f>ee}?pt4t&BPyjxg&Cymkn%FTHK^rM22tk~m3H?&rAWEx(`=lmm~}5$yM)T_ zNCg>-E`EulfFe5-Z)tVj2-w zvKVp2EnB9faj_VzxO6dMam7l9MqII&rptG+(y3l?D~l1^SgdqPa2rdfvA9_2NEf#( z9faQM(kZEa=!%g>y4AJ)y`Ja&p3gbI$K&ij&UyQs_w)66&gb))GoRh+$G#*h_Yc*9R+KI4mpcgLQrBc(mgz)mKuqax}3r zidHy+lp|8U6t*UvTuLiyzoOQ~>O)E^>zC=UINfk`MRP9G#L9_ig))dSyxZxbNjJx{ zq8@VUSIkFVmHvqp_*kJXD;Hi7?x27Cds(?XoR2mr9&L)H+P*|9M-nT;XoVvPR=Jx} zZuOMCTuLiyzoOQ~jpvnCW4|MU#GxXGJ~a;5|9= z>hw>nz{d)8Sy}yHxK{q{W?4BJ&PSVBk2cFvZ7`#iLy46^w89YttC8{oPdUh?w4(Ma zYF+GqaA{>Oq*Ss~3av-tNk5)K>U=32%Jmn~t(u&%zsC9AGbZKQFq|tuC z(Jez)6Dwy%E0p0i;q~dF$vDTeq8@Va&WgM?{Szzju|i!|w!bFaL3hPUKb((#Bzv@7 zEY(lwXk~w5r5CMm1i@OQJl#`PmU8=*P}F`!t&8@9N-Ikt&Ej;&(H%oiB~~^@E0p22 z;k}P8npAT1?8(#xf^qV_9lU7Q+I&V)3&f*oBmbR)5{C0d~jq6%-5^ZGfS6}4x8 zcg_7uD|PxOR^VfWx~wd{BHTfL^m$p?6s&7A>(ORest+t$*_>EuL@OLY${H!Jg00CQ zm(q&buc&o#Y-5>nE~L@>6-PG=J(pP78m&+UQHOVy^M*N|74?vVw>$Eh^iQn7#|m{> zx&6K2TKTij$;w&5x_ zZ5K=R6FOSim{_SrD;z<}7AY@=tx4t2bNiK0)P6;+i^18Ym8FnI?^pguop`@u==sFT z_GpDNh&H^R(nXVMj%P(Z7Q7Ej}_{&Qh86fgFgEiS-B;gk1h_6w!%_fI!}r3S2Qf&uS6>xL9iYv zAMPm|xs+DaenqW|y;G%?)sSX!y5{JCp%)S>JE9fJ@cQs>qKhWY9M6h+$ibVAydnJ) zEAX*GT~M;|o980W>HJ-d*aVrB-PI<~!E~OQRs!A7J!)l+tIDXpmeidq*7XO&jg-#`bwUvYFr zbD?)7R(3}#l;MrxT|*a5x;dT|^^jA);`qHwUX}id75G@8E-Ux9|6Qk_AC#4A!ue=} z;?bs9s_jd(awM@bj8-^;V3oTo8690SbSJU07_CqS zQH8hLdHo#EirO>4`{9|Tl{)m zDy=l>pICv973#9`t#^gz%Dp}*E0+c9`r+fz=2@zrMbXNE#7aL};RsSTNI8J5$tai7 zirTNJb#Y!yxe(H5zu@SWp}UEdz0nF~5KVYZ=Z$kbD{9XG@6%_LR@(GWtiZ<#by+#u z4OSj}qpUQ8b=}P#Z5K=R6FOSipIGTdD;z<}7AbFltx4r=x&2BgYQLh^MKz{e3Td=Y zadgMgiIx4)%09Q!hWA+KRdYNmYR>?#_gkfvF8vcL@UcQ&R(|}>VCB(&D=Uu;*7ZWg zqwQm;Rr-@NVylbCbe8jD{8-@*2S-?Wy(f860v{{XWo7)1VCCt3S(y&jb#ZvK6_)DKiB@(eRyxrNN072d z$}3@O(#WN>qV_9lUEF%l(#mQ`qxUP09vFH#v2q|GethAyPjv&~Gloxr*PA;VtwO>)|V&(3omGvK^gWj(= zx}v$zD~Xju(F$dFV|YKLizeM1&x(4;sb4V{c~$x+R^VfWx~x25Pq6YQAD5LMhV#(| z#iLEJRNI$mWou%k8Le;x!7BGq%FUj#mrH3y?N`*g_~3@p%1lV3E7;LBLk|)whocqB z@T%~R&_$Dej%P(Z(ORes;zFcvN^HR zh*mg)U^P;n=P3udlvdP!MXifHcPp*Tg*1A<;^>BhL~I7fpsao)z_w zgSRpAn)FYsz{d)8S$X8%aIJjkW3uw;a6bCss-H#C%BI9hJzC)if;C84^^~Jr zN-Ju=qSnRhPA{!2gfzOZ9o;hYFtKt=v_ctP6JC!lnv8QiEAE-5UvXOGwdtQ&fsYmH zva7f3THy$SwMhA^-?WsKt8@F6P}F`!t&0{% zULD@2EQK_Bzw#?};{A%D*Agp7qZP{V+VI}yylReTMeP~jjn|jFF8vcL@UcQ&RxWr! zxP!j(*Rt}qU|la%JlZ~%Y8tI^Ot~D==xOKZ zo}ovHm0P0~${@P%b~>+~<5^LA26*55jnYb={)rX%SfMT}P22JR^Rle$4AymVc(fIk z>e6{~e7~Y$`Fym1EHgWe|OM zmpHGP<5_XfH2sRhrd8zIA|MR1=a!IhR2Z={pW2qi9(aN#J%2?yc z`xUn`Ams{dMQ-I%T2cEIwJz=-Qx+kOz5^URGW0mHa!0g68N?9Yob%c_o)xucfcJ^J zmR82}PprVl3U!_<+rl06>yOCFT(GV$9glXLrTR*WR*oiCM$rmKka9%I55m@@lS^qu z?N`*gSRYfaKR^e)UvYFrb1u`w%86)&GKev}M>?;Y<5^LA2K6iUtt+im>7Q7Ej}_{& za*6Hu?}?R12J70Oc(f^&YWotc97(JUqZN)IW#yhqxd*l;y#RztJg#$fdNR_A6>#96hzPG8fV;PPZK0F!cJw z%7$o#GKf07)0{WV@vNwa9K0Qo*Q9@91wK}&^IUmOxPu;by{w!Ttm}u5N1JD#^ed&6rI1GZ6i0UqJ(XD57_Cr-*M|2!x@c0(@vNwa9K1&4b?Kj2 zfsYmHvU26yf|VD1P*%Pd&POj)JlZ~%Y8tKVNvw3E6^*9U? zciLnZw;a+am7{xxt|eBcqZP{Vy6_IuMU#4tXGJ~a;5{_*`t(n%z{d)8S=sfha0k8O zuVm$LI3Hac9&LrCx^$wI-HDY>w89Yt>yh&Qp0bfkX+`Z<)Vf$aSz1{QY4m=@(E~%z zBvv*>E0p2&;eCQGnly7fE9xN!@65;>(m$~RA1l;lWT6tqnRz4BVM-LK@w#HID zW}=lHiIsM=!Vv@;kaE4JY~@l~QTr9OE?)iX(n=B1=(BS4$k6q~%K6a>Wq3n)`{<%c zJIAx49&+$bo+x=^`X^T4V}-h`?0IXj^7g-!m3`rS^rhp`jNzuyo#7Zk#;Ru3_ zNO?PKO**-hR@8n)t&91Xa{b5Yp!X||u4pdwY+_||v_cug7~Y$m*Uj;)s6B)F6~+IS zR;u(*tiZ<#by>OYs$k_WualKG2kY9Pc(f^&YWotcY)z~*qZN)IWu>Z=M`3Hy%cZoU z_A6>#JUOPE32Af%JGy4*Mq*`4v_cs~72Xc#^>aKcYR>@gTfZu;)ajpCfsYmHveJJ` zu=2Mbkd+<5x;C>OZI-3_z@nASiIqmQ!V#pbk@Cy1H5uemT2cEIwJtWrlyf1C-mf^i zVd%NU%GPLwGKf07=R0qh<5^LA26%`5r?k?fe_{nbR;bI$&5Oax-|v@|=LhTh;p5Tf zS*o8!(aNU8NjP6HvJPT@UcQ&R&M#TVC6gSmz74au3sM>Z5K=R6FOSim{_SrD;z<} z7AfBcTa(J$bNiK0)P6;+i%Lwn6w>JZ%Kxep?^g^xpIF%*txyKhhWAkCRdYNm?g{;h z?thn7y7W)1z{d)8S^4qP!Z-7OyiZmh8m#MuibvbWQca_k4T+U%w89aj?2vL1wkEY) zN-Ju=qSnPv?<`X;hctTHIl5=)R$}GSXoWI}F1$0HSI_aRxM!Mv#Tz28PyfUUe5_EH zmEoU;Yvq65D=TLP>$*5R+6qf`={zaEU(xVX{b1wkq7toe1Sxx@d^K!M8o88K)P6;+ zi(7tKT3HQg7N={D9vFHdv9cptp$wuA?<8F`Y36uV)I$#5rI9zJe_{nbR;bI$4?Dri z-LP^poR1zP9&L@Kddx&C#}X@JjVJF{+{%EI^PaMmOKC;zSJb+=>5kG$5z^>8z|kW^ zw-YNnqZP`C7{V*)qDec)v!Why@SYWUWBMmn;A4flten^q?x6eala(TzkG^y~+HscZ zD=Atznphb{D;ziS(a+68?78ltPG+Rjv!c#lxKO$K`x~g zwO>)|V)rjfD{~=@-mf^iVd$mA%ARP2GQ2vxkI+SvVUA}-J>=kRh`c8K6D#nsLS0tQ zcyhRdp8FTF@{w>p`r+fz=2@zrMbXNE#7aL};Ru2?NLlfeqg+ZWYQLh^#bx8t%0ft^ z{eq)ghVCX-_C_m|;WgoP>7vOv$FrjL4Djy!dC6*c-#O^0K|M(hcXM zyV;}dVyS*YM=SdiE4^riBM8btuc&p=j478w8tqdY-EnkcWq-7? z&#koKy}^0a9M6h-rs-FVZY!;H>7Q7Ej}_{&a`Fwq%Kv+}th^yu*9#SowvVNnMk{*~ zE8S>?BM{Lc;QFdx@3nqZP^^y6`S_UOmUN;+|>x z6<_^XX{As9#0q?@P?wdNCx$!d&##e{OM`V?93E|jrMh&YmEDPzPPD=ir0kLMCfJ%Z zaw)B-{fb%_(=p|0NTc^Fjvg3#Ik9peTA>W05ARvdYvy=X)P4ot!DFSBA^j68@UcRj z=gRBDwetRV$;z{Wbv;Nt+8Rssn2A<)Bv#td3P+G~K+0v9TXoVw4IU?mXur=xAQd&{_6}2vo|FlfG{%`1@_bZOBXfE_hV&zb@ zLK(yu-nq`}=6F`rLr(pQrO2z&Kd}NIE7WD>37f+m^mp%+m2-o2ZBRVg6ic;ziB`5I zR+`ZYN072|hEnc^tw}GJ(u&%zsCDtfpOjW+LKCoQ9M6h+$idqlc}@B!R^VfW zx~zQbwZY1d-YzS5hV#)6ACETAQvEE7RyHM8>d^{E5UfGUrl%a`Qd&{_6}2ut{U4>3 zg^)(~wWC{x9wt_9iB>4XYr-4RMU!!kXGJ~a;9VGbZTcrx;A4e4&y~l7JLs2tWMvf2 zM?aE1+AfyrCv>#3F|ksMRycxSEmA(#Q&!%Y+pmP8_A6>#^nP4gSqf?NL;Qp~@qWe7 zYl)Sk(F$dFZFpa$izd|^&x(4;!K+7Jm;Q+r_*kJXE2r%Y*UE2T<*VU*^g_j>?PIB? z(aMIzN;O*H2!eG;IqfNHxs+DaenqW|xBYu*WjUnL)6UU7LyrCo? z9M6h+$iX{1^7`~otiZ<#by=DF<6z~!SIf%5a6Y;?JlYCNb?G$X`xOn#_bbr~M-Z$> z%6oXqMlPilwO>)|V&|=;mDP}Dak}Q{fuW1U%CTsLGQ2*#>*%6MGsm-{9&+&3Mc$D9 zi52)*p)MSQ$nu96`#;y_E6@Y)yK(lvdP!MXifR#*{N5jlLNjT{CoLsuKPn zY@NoFf4`z3h$_78&gwTa!U9r4_YbQR`x3OgR_Q=>3YL8-`w=SlJM* zPzF(lccJr!Ii3}@XMlI$UrQ@Z`X^T4V}-h`{P5M`TKVIvWaYwOT|az0+B{43vq@?9$m`NSu>v0} z)Me$`dboq$vnVTP2kUyF;?ef8RMTi>PhzDTt#AY>JEYtRTa#KYr4_YbQS0J+M@uWq zA&pWwx@YKGVr4p7p$wu6Z=Lh%Ii3~ukb`%5if>ax<@5$>SB{xexw7p&{z z@MtS6)uj`y>`tt7q7{xHWsj7Xz}BRZOKC;zSJb*V{4b@I)sRN-R~$Vs^h{!9Q?x=E zL?7O5bkU@l<5^J;Ie6P5Z%F^d3Vf_kmz8T?8LWK%&9ZV^I3GPoJlYyd^_YoPb|hBX z(F#WpY(UC6Pua?)w4(MaYF&Kdd!>~kq|s;P=#io8iIwxC70U32@Yd*}Njt~0q8@Va zo)CFs`X^T4V}-h`9Qd7Z2YvldWo0d#kG^y~+HscZD=Avpo>*x`D;z9z3~vnYX1Zw7&GD?Lhn)HqGm%%Ne_{nb zR;bI$O|J;o%D;AG<>qic+Msx}DVA#c60K}atTdw)jv!d&Or_lDDSNq;R@8n)t&2CW zl~!g#8ePGTt{J+KSlJS-P=;59cYrRM^m9Bb>LCa3jL56gKd}NIE7WDBVpe|fC$e%N zoR2oM9&MJT`oN-<&54ypw89YttC8|FPdUh?w4(MaYF+I3r_#z?NTc^Fj&2xwF0ryT zTA>WD4)0pJXfn+4tf+?^yc6Foc}@B!R^VfWx~$y%&~OLc1uNHv^U)6o{+m<5^LA z26#XIPHCl0|HKM>tWcMgO)n33(7msel}@m(UmqTA7fbaMI$GJ7SgA!T96`z!DZd9> zlghht`;}1CenqW|MohUB(&+uluhoh7D~6s=tZa`~D1&IjyWDxz9M6i{Gr$|(Qd;TK zKd}NIE7WD>)t3b;4|$WUTpq0Jg^EYp$5KtBl?{oNYP7-;r0kILFlW03vZkA>N%bjwP%3$xo?+N`t(n%z{d)8Sy_8XxPu$*5R+6qf`={&LA@t@G})Cvpru|_K#LCPK}KLJ~lMlPilwO>)|;>?(GHKbXb zt~q*O=!L|}j%bB4h(5e0IIo%GSy6iic-Mccv@)cBVg)`{sLRSVmxgQQ_unWhPYBla zAn|BxEY)KsS~-?j8EZUwzv5N~q}&Hvkz2WxR@8n)t&5Z2EK?RCjlKgMJu-AVv9dE- zp$uXOZ^n7;9M6h+$iaI@if>aue94}+B#zd=@Jf^~iAc(mgz)mKuqax}3r zidHy+lp|8U8MY>!TuLiyzoOPfF)XdDzmX1lzvAeM=0fjEtn7|fD1#WoJHvV19M6h+ z$f;kkEAp!JPprVl3UyhzZ93dRuX(+!oDr;RgW}PqSgP$yv~nb|GK^L@f|QkeE9DN@ zn)Grht*HHqS{L8?$I{A7NTY8?N7oG9NvteJE0jT0;hmt1CjA`Gih9Vwduim=>7Q7E zj}_{&a{MLXTKUsmvT`Dvk2bR&ZI-3l>P9Pv5-Wpfg(C=7Bjxiw`$!pq7{xHSc{Yo^^}!sa{HA~)P6;+i|&!q%2G(9eTt(yj!vxXk5=}%l{UQ3(M9lT zj%P(Z7Q7E zj}_{&vU*9d@((*@<@#_wx;Q-A3QKkAL@T=!E1hVCBM8*7+5 zygKY#JS(OwLK=Nmjvg7h zpIA8bFYvpHG$jYu@U0*sL?Kn&I zl@zUPPpq_}6^aKcYR>@g#xIvv z>hw>nz{d)8S*dRfchGNPWoxjm&8$b8WvRBh(aPq;N+Vj~2vXKa`4QNf400*0sQrps z7aL;AxsXQhR~+3i^lD<|NVGy3L>=A*&Ku@$t1SuP&?84S$luKzv?N`*gxbtwCav`MAeeLL$ zp@)f;TcQ=pAe!)M&Ku`=R@6fd-c^y;rhj4uK31s9%KjGyE5G*|S*Zo<`jPC>cCl1H zp`(?JiIrNk!V#owk@5|&HL1Kiw_gcG?N`*g82x=|Whtc55Al=g#QPOPuO(KFMk|y- zwBeoZylReTMLp!;wIi=f|HKM>tWcMg3-255pr^fBR!$Gr^+Ls??PIB?(aMIzN;O*H z2vT-Pc`0m7YPpnF)P6;+i?7~XT3HTh^t5wy&(Nd9%B|4~We{C>chE(XdX8sBJ>=kB z9C>~ECsyENg}SV)z93vHFMO4(+!4-47l%h%VW}>iC&c$F8kX-@q7{xHSdWy?@|2BS zN-Ju=qSnR1FP2tTLz>0unxhAXE)pxpq7};U`tW{07fqTuo)z_wgSRE}hV)OYz{d)8 zSvl3LymE)E{2-i<9wZ)Zjiq|b=$!rUnU85Wu`nU5glvdP!MXihL z2BnoEq|tZ4Np;d4G&1x!v2sVWLK)r=-YQ)*Y3F!W)I$#5!y|7@|HKM>tWcMg?PrBM z=uNMbmDO-Q`qJ@e$62bcB%QNcIjZ5r%1C3k!Vv@;k@8$m*~z7}qV_9lT`c`wX=VLE zIxJ2%PU=5prJ^~PX=3F>v_cu)7~YL^(WIN>Sy2x;^(&?#uS);K3Vf_kmzDFL7w({U zUM?#)hV#(|#iLEJRNEJwvs*c$;l#>NW4FQ)1gqRfDK~h^UM{5-wO>)|;)EUD zz8O!Nm71X|_tooA{Xy6|jh#msUKQScx@gkR@vNwa9K2H_uTKBO3Vf_kmz9NW!OCB~ zLRR*N^U-G3qs_8Z8%&+ETREiR#L7TpPstGktC8}~FIdV!E~OQi|RPvhiPprVl3Uyhz;$Gnn`s9MF zTotVAhmS{_XQ_S`>73ol0SzZs`Wm|xjv!@&lq1-hjB+WhsQrps7Z=8q3n7j63n$G= z%h1)t%9+s$We`nxZRd@1JS%F?0Pnk>FRircpICv973#9G=b~_}eCg$~(hk=3BiWzv)nehnv9dK$YGjv!@=lwXCdNo8+tzY>btuc&oVk13Zz8tqd~nw5^BrxGh0 zqZP^^+VC!RUNy(FqV^2%2A?afbm^a1fsYmHvhv;M1S|h^nXFtKtm}n}N886zO?A$0 zWsimvD_xD<3P+H#L&}4&HL2xNT2cEIwJy$%DVIYUr8;R=dWNngR;HsB${@P%wm7ez z<5^LA26#7owzSfxe_{nbR;bI$QZ?K`KY5v~YzfwNad@;9mg>^cIlGnJ8cwWqGzn99&!-I7_NIcpaOZAx1IlGk|8cwXVHFhf;LCOIsmtbqs z%B8fT_A6>#-1eC=Wf9WovpQ*3Mux5@R?d%BD1#Wnn{r+|$Frgya`3K)%qZP^^#_&#cUN^_Hq8@VUS1d$cmHvqp_*kJXE7#pU z+(8fcLs>aBSl0%{qfN0?+ZUa)TiL4N#7a|Rx55#mtV}88cG#Nqaw)B-{fb%_H-DAEG8fWlr+?C{ zGz>kLSlJq_P=;5B_g%VZGR*O;sD~W9&5_rne_{nbR;bI$x3&f=PkD)~d^enre)xE_ zd6w#DktWcMggQtf(=y@$!8HDrEuMdy5i>3Mrt#fuO z8#SC*scGz1ID%j;Ql9N8D}RyOuY{uZD{5VIZY-@Vg*1Ae{GVCr7if>aud%Gs3m<@;{K38^ZbMg^EYp$5KtBl?{oNYP7-; z1nZD;ou{njQd&{_6}2ud|J%~aa!8}6ouhk(ZY5SOjaDeb>%!Yh7ftFpo)z_wgZHa` z$?MZUu>v0})Mce+R$hOJtn3Zvql?3%t*}&=&g08#<%EWlYo!vca0J16q`VEbCXHN5 zD{8-@*2T7%ay6t`oUS=~VCaR!%8qD-GKfCBE1lQO@vNvl1H4=RrnEAoe_{nbR;bI$ zGwlE74oJBMTa#8Ur4_YbQS0IfF=Y|b z=sUpCBSW_nD?6hV${>dD7M$14@vNvl1H5m1qO>xme_{nbR;bI$w%3F^=mXnjWg%GC zmySm}&Qg6PMJq=WE2C(IBS<+S<;}1)>Eu#cQTr9OE@ooN^`EALek(h=qPft!5-Yo- z70MvS@Gf#*H^;N0_6+J*tbDw*Ql)=l1wK}&%gSZ;f8FpmFOrpuf^}_BJlYgXwS9?J zjwDuw(F#Y9vT|RgJOEphUM{5-wO>)|;*6MbCZy3fqoZqv?j%+gqZP^^s_-^Dub<;t zQF{h>A3RW6snb8P0v{{Xd9GX-u9YudEGwIXb!}!n+AK@8)s0pTB~}K}3P+H#M#^hp zYcj~Cw4(MaYF(W8SebGzq|y5oM>h<;lvvpltxyJ0hj*UyhB=-U_e|5T*b{k8`X^T4 zV}-h`y!5HT%C}!AE9V94`r+fz=2@zrMbXNE#7aL};RsSTNZEm{$tai7irTNJb@AgH zN-GN?jrI$UZW+3pSlJt`PzKS2S9RVv$Frgya`0Xkd2RY9R^VfWx~yEkC0P0Qd0D9j z>$;mg+AfyrCv>#3Ke5t_Rycx`EmB?%Ta(JQx&2BgYQLh^#qh67D@!4b-mf^iNTWQ1l6OdDZ$Erzd%-g70yR5R6N=~mTDTU z>`AP2qZN)IScjC`JY_AH(u&%zsCDtV<NTXDa?isq5Sh+r0p$xAJ?^e2KQqS?M zsD~W9XGC6~{)rX%SfMT}v!{f;?Qde`)^I+$I6T@4OLgf)E4vdbooIz42-YLz6Fg-j zm(q&buc&o#{YOhHt09fvuQ+;O=;g%9foO#?ygs~d&_$DGj%P(Z~-;2`-zo<(F$dFLwGB6(WIT@Sy2x;c=wOIG5r%O@UcQ&R*pU?Soxjj$;wJN zAARX~wBsz*x77uwPJRcSuOWL|RcAH4i~ps>W{rJA$H8PA5%@Pea3>eoirTt}QoQQJ zrJ(hnA(&pZc#4YV;;kft4n;wf;f>+Fhc23Qb37~Rd8dBGudgq8Rr)7_;3J5-1bzEu zLD2czBc6}5{I zrPvw+&xByQu02J~QVbG7hod0MAgb_Q=e&N7XGQHK;2r%?DX32WL=b!gQJ0{fJ~0S- z+;b)9b>Rch7T2TAvQ)m50YQAMM`AR}M5__)UjS+{$VIcFwl3;dJSj$-3la3H#d!_m z4b_-G@NS7b${_0SUg^AHj%P(}AK-oSgQbcl{Sy`NQ9)fQo_2!&3HQ6tUnCW;465}T z$fM1(RA!W6qT*qV_B5S6mRIErbZVubtO2-bjrnDsGKD${?EX zTFx8icvjS&0p6GYs#MXYf1(0DDyU1v^b^8W@!ID|MJuS*k7SRwi={H73=J` zYZ2{B05z$+C$~unMQu{luXtFDwiF`hrHb0~vbJNqu^LZQ+!1+{LA2pL&w14x&x+b8 z!25i!RMDk>q5?iDs7uA)+CRv?rYRNA3##=N#iQ+GsjeSA6#NOYO+$Zz%xgG#f^65= zpCBAe;0}SWCx#}qTwp6|zamO;dJMcAg6R?GDSDRTcp~UT6hs+B7vA~KtLJ!D)Z+}^ z`~I>N)Te(U2tI7_e2tIbBE4yP%yKx}aSeP6X}N*aLGg zfd>SBDKRu@Fx&&SL*dXYm&y=9s!}(}~;?a(?R1X22vkO|(&;>1NI1#i*V;981WE>Ir zNglY93v5O0VniuEy1x{(euZG#8+eL}=1Ngb1f3ZLQHD2$_f5KJ(#`R#s0X6@6_1X* zD*Y2d@DW5^f}Z)9Am|fYCFq;seDngwqfN0?cbqaHh}0WnG|Hr@oTF$Lc(h(FniaKQ zQNLpU`%4uwA%Y%q&Z`-(rpEk%HywGD;Z@;%nJ$|2b37~R(Fbo+QZsV zY*6vF-7S^8j|%EivGc!zio2qsAI?WVl0Dikmg;^{hKY);F&bsk zw1{?Zk5<{2+pmP8_ABaFym4QtVktz>Bg%Ol<2BWIqGDU*QHIxs_hGtdQqA$KsEq== zyG34?{)r0ssGu$tfBSpk208cXQt{z%K6;Dd(e|-a_lq)2RBVsYD3hi`w9`FWEf>v- z+L@?d(SA>J)-^JwHB?Bi)KabLDa8!8Ao0ncCD)+ zf?l6EZ(zK(8c$U0j6BNl`taWAyk?GPMSc0h`{iGhydnJ)74T6(T`C@BDz-mOD&84X z>-C98TVtv27iE~J*d3!$Cfa~#cL3C+m5XLY?Kae}xHv{DLIiy(&Knu8qs9{zi;+he z#1P)1^V&I{74U3u6|RccUnmueLA72_c(mgz)%~Ij6BT=6 zG|EI95$z`cHR#FfY#ooxH3}OuL_0H?&cvjTc zy!sXY`tDLimHvqe_^6;R6`y)!P;u>3rQ-ELwSMh;v?-SAeo=;riv2MfWujF!D%uYK zYSPO^v!eDD>Q`)u(PlyfU7*gZ8Ly|t6BXA-9%T?!c&~O|KgYA8zUJZGa!skCPX9y& zd{j`EinC3{C$~t&tAlF&+V^O)EYJ`s}b$n05uupqFGV<3iT@<6Qj+A z2zn3VyoT}mYCKVKF!CsasKfh1=M8f_E9z?=-aovnRMDh=q5?iDs7u8=e>Yqe!>35a z9|qO>weQj9S*rU*873+Y#b}g?)*#v{Kut!uXjas|Lj8(|$7l;7g6>u4wTw4VQ_7{Mq3II^d96Ce-C23p&CzA+!A?|LA2pL(|Oe# z&x(3*!TaPpOBG%ECo15hg1S^Z##Ee+if0DZdJp2!_OVp=i!w}99F5T^6RktE8v$xk z%SE%I_7&<^OvPx+A%Y%T&g&U(q{b5!w?-ai5M6jrc3wTlv!Whc@Rr|Es_4@{Q2`$n z)TQF8M}({5Ay1NuCkNH~{pHbCSgQL)873-@#b}g?)+5?S0cz67MYE#z73x>qJw{s% z5f-Ow&KnqSti}@+cSIg#5Pf)$c3v~bv!Whc@ILVNQpJ$|i3<3rpe_~Pet1x^r6CoM z4yyJ0%cHHaRQHQAOjMkR(I^vbK(ze;HEHFdSyB56^(#(|(TWg3PjKgrj8{1)s#vG- zQb?6|9p!)%~Ij z6BQd`G|EI95$#<7HRN48;&(T5eE1Xx+T)e6pPp*nHBabqOF}w#l zubbmpQ4cQlE8ZG;Rr)6?;G=@NRD9t-!q2fQpCAh&3VHd&x(7d=~w(wQeEU zhXoZYo2BAzLA8E=d9-V8p%iHglJ8fBt2h}H(E$tV}iirQDGU-8|gQpG}upzn3( zwT#zL!*cOEAdm7rR`zdYJ5 zmg;^{hKY);F&br}wTSjIfSOd^m)lo_qV^T)SA6ZQrHZ8xLGLS^*D+pGjVCI$MIL1k zZFs+=izd|^&x(3*!Fy5Ub?Kj|fR765Qt{cjpyKw&O2se3`RMnTN886z-7m^8QL#Nn zqfD9((JuCAwOlkSYG0v##o($^#d3(CD9-B{ucgKl6_-XHWq4h9Kc$N%^&HQNdT_yO zMqZ!(i3<3rpe_}!v;RGpd!pi};e7P_%cHHZRQHQAOjPWM(I}IqN3>^qv_>wP6}7KW zzv5GGDOIe72zp=Pyn*rBYCKV~Gx8|I>%;q3x@gkO@vNu^7rduN-jM!@3izm?E)`$1 z{}Go>kCBRh4d1EOv5Xsui{D{5b%e#H%orHUd%(5K?O zk?}feJW;V2d6eM|;oU+PP1-r074_hP_t?lA(?3xG9~IQ4V(q+egFJm!DsBnqqu*a1 z?Kn$ygT#ONvOW2iFRl15UpRtbBT_!xQ+9GGt*9-AS{Hl&thBQJ^K{Uw3rANp7kWvj zKe4h$W8ZC2hBtBy^Uo?3yA73#8bgZ+!T7d={5ZVKn4pJE*C5cmsVy%8eO)It{J*}PPDRDW4A&X zUKQRlT{P+EcvjSxzxoyTh`hSysTKHGp)M;M9vrTfS6v`0%i(H5$Ep6B!_dp;L@Nh0b}N)YwBcRmylReTMePpMuQ+mLX{D=qY6U)4 zsLRS%8{rQ6(4%DKvS3|5+dSGnmTDTUY)GtBqZN)IWrvgl*qYRGDXplTiCP!u#gxk- zjh=Rn?isp&PPB4RW4A&XL>FGudG#F6irOfsU-9WTl~($ir&i!&g}SU9wSOh{sYl96 zGg#Nf;n7xDs!M0HeI09fLPP$Bp0A5aw89aj?2+;Y*qStQDXpkYidq-dm~u6wS)8sp zdSK|4bE1_)8oL$BAo}ng>%3-;XGQH9)UW96F0BkTPp!bm3Uyhz&Hk0tSAJJk9viId zLE_QYSgOZNv~n!5GS=8ras(*{q}&TzlU6RJ6}4Yc>*7~$EK?RCjlKgMJu>v*oM`2+ z#?GS*VhC^AdF>p}ih9VYU-7oc8*83gfsYmHvQjZC|6G@q>0n)7Iv(vfOZAl$tsG6P zjG`5eAmxaZSHjk$lS^qu?N`*gxb+RCmGy_{usGdtbVYNaSI>!7j%e&wD1#WoyNC0- zIi3~ukW;^6XXI7spX}n`V}-h`eCvMUx$>Wnkd=D`>)N1rv?-SA38a6v!iHAEy&C$z zaoMNghOL@7fpsao)z_w zgEtp>P5LJ);G=@NR9yC*@cQhYsQ6(xAN}z2X!9)9b43{@Dvrfylu6Sd+S5GRC>PC& z+N7vo@$vsxs#pjSv`KJY%Xnioo~XDZ@+iY=!uuz>Xfn?6tf(g&yvIjgoBoLk_^6;R z73bJhvFUfD;-A9#=!c(2+r?6S@hHPY#fcb=GHF^w+w9RQ`*S;!P}I&u{fZC1u2iuU zBIrel^E$?>Y>X<_Y3w&7Wq56PN9dwSHOI4}9%t%TJTmgSnx`t@qk_6r%x|>cft#e_ zNH`z;`toS|SgM`L#;9V0#vY9_X*xvvU5{4FMYE!|BkEVY=e4DZWzD$@y3XrqE?!lQ zCs)Op8at0Nye_;i(nXVcj%P(ZxYVzBNaXc3PgTH21$C+T(xZcl%N`~bUkvA?7bPBT zg{69rq35GNOt06_AEwJ1P9CNQH1@z8OvWC8s~)(K3v5O0OhhSOx3d(q8iEPyDF&8e zYGV|%QDf&(hS!JJql+fZ9M6i{9jIS%TI3BiPX)n85OoPU@Xhc9dDTNDs29#huTMPM z8cU^8=j?(GYUqMiG@J-Jq_GF)U@{H}{PRDyz^zO7T37ygK}Qm?8ud)>Diu zMQvjgG_A4oD8n1V`xEE2b37|*qo97pzh6=E#+s*s;3J5-1U>h@;R@RM+YEr@iQTr89it}UO^^#aK#_%q2UN^_HqBaWZR~-JMQc#ut$%7X@f~ZT-#Zy7h8)qcwlJEg& z@8r>@SgLDH=j?)R(a;60X*dydRAUd!!33_<6!_!B(4?0OY(?!?L@DkS1J8tD!g`9D zrKl%@&X0m9gQ&uLyz}}wo)xuyfcK$xDX32WL=b!gQJ0{X+$RWn^Ft))@!bj~j5Rt;THq2WZ(F^ydi2NSqP;6239WRMGNMeSllDQN1JD=SOrKRN{&#xS}psm)<+Lddq|5Y8*~Y8a(AL zmgu&7rNR$0X>7Msycc;)*D^qApjhGlQ!?otCS^;nbwT zQ|@D_o?$wDzwyr0&~Lmc4JS9=MvdJS2a~Zw;Cp%CS}w2^wL21}c>Rvj)p7_Xtf%N% zipEB}uDF=CXzV=7@Vf9mL>Eo!Ii3~un1uJ6k=LhxA_zW$s7ugS?B8T8JxGE+6wXI4 zYdqQtOBbhWI%gL&t)UB=(QqPYlg1vHgUQ$<@a?a(z>QpBD{6NnN-@uoSKB{^4Z(!< z6az~!mk8P#1yP3AhxcaZHFG>G>M;qgxV+>I>7NK%)f_?8CFmQ!6Rx0lo-09b4j+KN zXFb{)OZAY~IlG|qHFQC<8cqal*4PDcFo6dI{w6UrY2^Z2QM)5iibu!5MF=LWrx;m^ zW+G@?6hs-s5Z+6i*Us^*sK+F{ue_oZG^T$d2tIEr@iQM)5iinC(i^*0erSWi*WTq))g zLEEDs${@z@8qVwHcvjT5ME#17ER=$(^iKrAM-X)hy2buR;R7`ZYJ?9!Z*x4_6if9j zsB`9zhTAlBSMwTD=UldH?1DI$z?BCo@H>g2NiP@JirO8CQvCAeW#E|*Oju7*vlOjF z(4|ojWe`<(4{%;T$FrigCGg%7d3E|Hg5V>Fx&(dfq2U(0{s9v7fbaq6!}4geEY-`F zXysD3qUwT%lPhS4#x97130x!atBIk>AQ#w*+8v2f+;UkdXf6a3)>AYr#X=%zM-)UE zL>=Bqx@a=Y@vOLKntsKlk=LYuA_zW$s7ug|za0d9?EVsTGMtaj-J{L3RC@!RvtKql zHS}9-mxdETyES$}98AUrfuHGtN4daO)b2=>;*&2c1ucYN!g`99r$_|tjDp%Os0r`; zbP;@<<5^J;M0ih$yf*z4LGTeoU4p)7f8}uF{Uqr7;e7Pw$D{3Hsb0+JoL$hOhAwDH z!-=3h8oMA4CS!}hn>=vky4;p16tyK1rMTwOQqWQeCakCESc+YVpxsdrWq56Phv=e7 zHOI4}9*FSHjl3@X6G8A1L|uZq4+&S$XE#dFp>RHWALP;Yu~bLuoL$gf4PDSa4JU&3 zYwUtJn2a3)-^~Npa)GU=eUK={AN^q|XgLHE)>HH>MJExo7zI&=*M;|fx@c0*@vNu^ zBD_-~uTTF(5PSqtm!Nk(J_s6|BSG&E=cBho9&LrCdMC2k_WK$h&~Wl(?rZE;ID%k3 zQvUL#ma>scX+>>*)Vg>PM_z54pO8kch8#UG^wP%g^`Pd9(|a^_9%XoacyDoDGsm-{ zo`UfH^Ccy3NdLsjs^(asE-Qa(|3u(hXUoc4f^})|XlpE$B%QNgHv2W4Sm|l(DLI0a z15*AgY)x9ZlvdP^N3Dye#*{@!qtD9GBSUvLMk{+Yo?M$6f*8Vkjq}<$o)xv#fcKqN zX=P0R#0q?@P?wc=Pls#e*89rJYl3yX5AtZoS*m+W=j>MYXgIOb)p+vRX-LWuDgObs zCY@YLD{7mg*2N=Y%JqLo2fYMxbVYMMkd4vGevK!ef`%Z*@LuS=ZjNU~?Jv}?_`5$S ztyJlsSb>if>az0T2L&s4PRYs(gLSZecz4o8lW~q`MLh-KZI8S*{S!g(5ky^r zZmtDEcRNdh?hNOnH$NV27fW@mM=Q6u6;;FwPBO|ts43jRA@N4f{tnIf;gCr9Rg2#;94%Q6}8O~ zrFh%LrJ&^yObg{8XIqm?_{imJyooLoUCG#D2=9O9OWu(Fi6Hn0qAo%IWPgWT zyO#vLJDiVR_jt55mg05$If9fUQvMTcP1?DXR@9D1t&7LUlE=>eQQI7~E*=t7&V)4j z7Ik#Z(4&o&@CRYHYV179Agb`5^@jb$Ay#Z;<0zQBRtIcn7wXD*E61|EqwH3hGjE_SxYA`Qv*^#f3q&?h}vJ)S*%_ zx4FDPwrV)JK$;r+2gVVkY>=`CTa#ffr4{w0A?0Z?WlM8Tz3u3ELm%H*34i#nPH5~r z${?EX>dqVGcvjS|N&SjzpIcg4pnr0Kz{d)8S(&!KPJhciWThUg>zV4&+AP(xMd$3d z&1MZJRvH?6N{%39iN&SjWv0})Me#7`#bda++9}A4%YQwd9*G|^*t1=Y)Y)u zqZN)IWrvhIVQW&&rL>}+G-_RZ?>VKFUPz-2m816=dVOMLL$pE}L>JyV=hbpND{6lP z@AAl7rhj4uK31s9O3nV_{I562%DP}(KX5%-pQYNqL@OH;E465aBS_gJGKfCB+vuW6BgeC%HbwBZMcyj?6D#nsLY?P| z{cZW@?^oVob zn(=CC%pY!>>ByrDZwT*4bkU@h<5^KVp@Dc$kGw+jR0VugP?w7TI}rZy(%R`#@uP4) zdKcr-#w^usqYM)jn_@J|q!|%y&ZD(+(X6P)i~1Fxcvh*R@Ew7;)b?i}-V-8ky?Ch#_^6;R75jgAy8h$tzx++9SPSQ)3&x{WS*qu% zGMwVkHpgg`NmH3tw8wk2ZZ4V?^-NK};zQ3YRn$TR?V_DGWxR$O^9L1MB9Ah>D!i}L zMU!5RXGQIK;5{nxX6T>XAn;K^T`KAijjroI$ZIMSAULD@ebkSsx<5^LA9(Xg6 zH%I?O1$G;Pk2cIjv!b>P z>Q}t|_e&M65JA5poHuX0mKyU16_-XHWq3_^pP`E;qa4qQ+IYabU*s*&KT!c671X8T z98Bb-;e7PF)}ysqs`nVP1P7F<| zxxiM`MnaV0_haB*2qvtj*k>u)iJ+ZP5M>Zuc&~L{EyuH>wj=QVWv&#oO#eg>d<0RK zpkI76JXbEhs|39^d;t2U^=N&TE>72U&Zn3l{a><71kGqT5wuBT7sSB??h*JfF*K>? z0$Wjg3Q>xO#=wIROju8`Vkvedf_6tiltJ|2ZF62D$Frh#Ch$J@v{KM2{S!g(5ky^r z*8d_rZCCHFiN9OyJ6c75F8@(4?CSY(+hwL@BP!G!e`QtI;Y835ja?82ld(qNh6nEF0$WiJC{c=!Jf#%W z2*HH)6tk9MUm|FK6hs+b9o~>GnhbJ0D{99B?}Esiqkkd@K7y!A(B^jpL2s%^&@h~j zb^so&$x^)u(K)-Iof@8Mf_7;*5wu%l7sSD2Y!LVX9(b4wY(+hwL@D0#F6GFp!#{iIgkZvY zid~jsIT3Uq3Ze|J4euS!t9&rG4+=%?gW%oKD0xftPXxh75OoPUdruH_^+^eONB98r zUwO1HOZ9$4=gc1s_iE^__Gw6+=jncpT@VKoxI^IY6GM|~F0d8#fD)y6N(|i7oTgn* zu}^cM`-z}~Q4nPiU3jl@UM4%Rr)7_;3J5-1T~9r1-6~5AK@DBdiiXrVmqQx6APy$*fWYr3h9=EiU@K||BT8{f3_Q}DrhQMbrnyoK z5+z+ag8qph_z0pdK`;1^AgK4h67;a}0qDc>Xk(Tt zTC{T5t*E-H;p7=~L}M4k!2})=_zlF+q@4?FMeSfjDMp*iz?Hu@K?6^5+)}J2f{sK% zltGN)o$kC&j%P*fgW$CzZ@qY_AovKPEQSVA#lgpxDjFez-tjnZ)_5Z|<`2AEBabq?I=mmyMUz2} zXGQIJ;BAS#Ir=9m;G=@NR9ybv@U!%5$ED&2;e2$Td9)@=HC2X*ieoVvWzsZ=_7smc z%tf=J9y;n*{Pkl>6|E3K?|7UyZ@jS@PgL9yd6eNb;eDGfnv8NhD{5~8?=g|LK>tJq zd{j`Eibwn?TouKCOU1Xt`RE;wM{BcGQ)QT_I1!^!CQXZIvmR}ni)KYVUevF+Znjj> z2@&)*=QMwtW4y}!ql$GJ`wdAMUK`#jT{NkDD7T9VMeSnXJv{Q3=%1*7j|%EivG~KF z;;yJz4d+Z*M;{5x@c0%@vNx*3cLqJ-ZK3Y74T6(T`E3%ZMZ?sy;CZ_5Y9*MZ9H0^ zrJ5?kM8(D!jWTI^L_61`)pOCTs6B=H6-yVCDh46K;&jb2`R@BY}-c;nR(mzoF9~IQ4;-*o!DxUaDskkwmkDjO=ZOBqhm0_Y{Q;bHLGy|gD z$D=iK(X6Q5gZdS3`n^)cC`8b^80W1Sudc=u73W7DWq3n)AEk>XtsKva+JnHmd*l`L zPgKB11$C*om#Nr(hg5ttoR8kcc(gG~HC2X*ip?<^Wzvj@w!x#dbJ47*eS-QGSDas} zs2rw)-nuyNxbYflJW;VF@+iX_!`n|6O*%QA6}8)dcWUIV7cW%-9~IQ4Vs>x1L0@4p{e@@D9tTov$9L0u|d{DW|VTzk7zyepiK-miGH zI!iTGhKY*pF&bsk)QEN`Ku!9&XjasYK>dpCF#|A5?tu7gBLmP_6G-kJePjEPMcZlj70ZEY-e9=j?*+(9i`P z*Ki`}gvKt2g9+Rs@Ihi|GR_6IqIM6W6lcf4oe)fKQar^jOVLgQ?TmsbgJ{Fs;=IcB zxjjfIY7YYMhDVfwmgt`df{!5T5;U~Glm6n*C1^|d0Q6sZv@T1vTY5|>Xq|>GXuXCL zK^rulY??GAaEHL}CWa=}Twp6|Pa#V2KMyYh_d+neN%0i>EXA%w(C#RRGKem`2RW~n z<5^KV6L^0fdCT-q1i?oTbqV^4{hj3MZ4&gL@B!#eibw0SRC_3$vtL1HYUqNdG@J<9 zsId#;U;_6Dd<8KyspkS)Q4c6linZS<1r0*5#p#}>Sg{nHM9^XsL>WXM-l@)Ox$|g4mM%`$bj~hlT0<8!qv1r*CXHPX z2NQTe;O7uSlV&ck74?7;rTEOIQqU*_)0-4ev1Tcj5SAj%+y@cxZ1nzV8}D{2=5 z?`e@&&_59bA3@Y5=u2xs(07kX(7%QA(VG;HHfE{zTRLYKbiRfzXja3Cpv@Y)APy$u zh`@CZ+|C8Iq8?D96xTki6jb>V!Sn*hQyjMx-9*sdD2Ot=F}wj?H0k7cR@B}G-g%L? zUc6Kgd<0RKp#AoDlHdPN2^xg+(Z%J_sw~x!@!ybbNd663HU1kijv!cNMk&wsl-*oP zE9$AF)no-*{l#LE6?g)+P!uJkmFfVJ05tynkjj6^iQn7#|m{>8Ga|+ zOs8OFZ#W;_XCAG|Qca_kV~Lfq#(oEJ1i>1lybZP{!(2)$>iMJA#kQET71C();OKcn zFDF(GL@Sg*G~r$8yity4MQwB7-TIKy$^!ipEAX*GT~*DZeZI2r% zf(}MOltHxNz1Vq`59hWyp{Q*RyuUxM6tqPDL=b!gQJ0|Kx+PpTXBQIm;_w0Jnc~s9 zEY%}f84$!BbSOrnOtcQsZU(4HH5bi_+KQ-OF%zTpLIiCSoVU+-12yIkyu*=48AKP} zMb4|`cvjSg2HwhpOBKuXPgKB11$C*o;H}}g^63ANii?73y<72UeU|Fss|*trM`AR} zMC%dlGXOQI=b~9rn-29W?iZsCLWITXn)6nSH&o+^id!O&GKfCBr#Y{Y<5^K#7kD3^ zE>*13KT!c671X8Tjo%7a#kLY*b_apFN`;86&s4S}avvlMHIprcU`We`Jn=Q*#H<5^K#7kGOj zub_V-2tIX)$2*#%vyp$l5ja3W}j#x9712|Ob3 zYl)#rI~UlBdgzE!{L8tepvspCwm9AJ6vr*aC=qmP6hs-s7~Wl-*U9m$sI3dUS4Q4? z@lrwX5ky^rUij-E=%u$x&|Sj^pl>RVR%NNav*Xv%(d6rB6u*u*f|QltR?0tstw}eR z(u#WisCDtB2bNZ9A&st9M^72LNUR)-Rw#q0!uvU0H0kAdR@Bx7-t!`FhW^QA10O5Y zW#te5EIeX%{zz7S9?nOvWIS4(rMd&7l_QCjVYI>#1gnwq>7KHmOKC+tiqyLJn_6k5 z5z^=qb@Z&E$BC6Yq7};U>hS)VE}9H-JS%GJ0`G~DH%I@(3Vf_k|Nj_!8~8Y?^6h`q zHv$y0Km!3PEE*t?q6miH72`@gPp?wxb+8K38$&*x{)+ z{sfhSH>L3;!r1rWF@Tp{!o9^0-NOx-K z(1GU3Gy!c{#~7wwntFFK3l2hm2&z|95cLZ6_A+`s%x_VlKB+JcD)(m;l|PPv%AM+Z z@R3-{@>Fa>7%IyxDmg=iJ!mXLmph5eaF9zK#G-@L-o;<=spOO!?8S(5zm~4Fs7y9g z7^Ys9dN(r*4kAH%I*8JRdY?}9^;R&yMTPpL!Z@h>X_J~kt6u_@o7MFIgIF8jseojt zEVHO&4HfpFu^e5#Lv0*HgIww$>JOy$&N43Z%1w7|PNWC5bl9RY#ZY0G5(Cs*B6_hP zJsm_9L%lcl_o)mqzeR=mq{29;R9~aU%9H;Bl_iQgfQhvNPsLovb5|bH?P$tFx)aUv zLwYgVGPv29hVwLBpbZ=(gAD5+>JO-R#~8yS${03a#Ko|7QDXs`Y5*}zi30UfqL&KN z(?L`*)Z4J156EMF3lQ}Qh;aaFzghwM`#%9FrEUOLTCrB-shIY-W&zZVrU2?evkYh% z+5(83X?TQ&@1_kLq=O9WAnFgOc-6*mXd{hb14dkoX%`U-P^|&PFeQrAJ4y61L3%of zDu#N$-`59J2|XJS^$Cb^0Q#NY;Gx&ciA)Q@Hv&~mf| z5IfUw=x`YR32opY8)R4qQHnstd%wmv98t!w7b7lew2L|m&@=;xVM>IlcYx^Sg7kC{ z1r7DOjb0t|TO)}21jIN1ef?3j@VxpW03D!i0O~ri7Uii}3=EaqgbJc7(42rr2ygaE zv;`15({O}_FQyF~3Kru z(3HV6h-P^(twvi|u`@l!Xt+rX7lI7yAl53Vc(?EEvq~vr*sKv3t=dJ@8cauAuB%~P>1;F<-{ zdNc*l5SnE`o6r_O>`ad-8jgtJVvu1S#99Rv@7ih~P(~TUW=*AR)@Tj?+;_py?2|_cY_2`{7`Riqu0ay79i>q5aR%}O#fFf-W&#? z0d+lCsl-~Ar(#{eH4C6;(G)<#XqEwOL0bT^Gd)IWxHLr@9{5s#VI9O;1r_gG?5ThL zoKwcIg(EKdwTqYqsM!Ewn0hhlT`zk1AUz#K9Ynnk_VV>sFuw(e`UJ!{0G;xPnqu!i z4?x$e8-Ohwu{OX{u`U=YuL%`IJv7V9(KfUN5IfUwl7|098#pKg8P-9pRZ#Jojp4j9 z)?FJB7lYbGn^}$)S<6w{EJy4?wG^cniu6d3v<{*=qV%JC`mBa1WwD|avSJ*pPFk;6 z6`upEh3Z~lRTq~9o{Dt=moJ0qeKch-jiFf{OgqpPR_si}X&U}BZQ!67WLO6Q5-MJe zF+8G-VUI^#3~LvTHJB1+FfmMt4E1J;UZ^%;@aiC{BkHZ#!w2LszXgc;1jIN1efdoV z=%c>_&`fm$u*W0TiaZtT!tp+!31|wSN;J!WCZjEY*qMg2H2hQAz(F|3unvMARJ@PE zzTwaijbV>RT#RWKNej??1BhWtSPS!1tP8ki89`If6hJj-mH|ygTL7^$4G++8nl^9{4Kl2Qpa&K2xhfw} zL>a?&kGQDOE?O->3k)EJDUqjMNc3VsdOC>eh$7by$S1qKkqlo+AjOU#0URFIwyq9mf;Y@_EezXgc;1jIN1&C4r5lb->gm(=y3 z7!Yeoo{F)4f)A(}O#$SfSq79qTL7^$Jr-&B%VIbkWLO754=UabyZL}p${1b@#YL-j z(PjZ!WB@Ttz0eBiJ;W?H$OP%>AW9i zYiXW})e?h3M$pk{3ZMow%YbH}Er8gW9>X-en;6ap8P-88=TPx3o9qM1C}XIc#YLxf zk+uM}8$b+GFG9UvG7AoJL3%ofl8Acajb0D)TY#ufK#T*>aSy2xwBJ(z^hI`)Ia+5k_* z3^Y^{7L}x-!X9*)q|2A7je|mvOC7|*jnv*;<1(+@;1y7$2eov@qS9@sFieRQ^)3;; zksv)CM8!kB=Xdt03^Bh&h5DqzIH-JewHhlYZU&W06m+q z({%YbwQ*1ka;bwrhSc7X#^s1|gO@##9@f%57L{d&3d5AhQ12Yk3mqI(=BOab9O|v9 z^r?8vZ&9H>sW1*I7d@z`B%cJ8a};%K0*SREPsQWRP?=^?i5e>GL6=#&yqDTI2nV^; zK_EkFZ-3)5^e8jn4Ns)Uv~<>@a)Y75FeP%-n=N{gAUz#KZ9~03?c`Ibgq}@>`lP}* zsBHhPnnCA30V=Z?xzs@*LuzlLaT!r= z@LDI*HCnpgqO#mjVVDwm>U~A@VnKR3h=PWCH%{`Y)G@y`R;W)ZjDyO;`_))!-vlaO zQPi>BBi5ok6))_^o1fmGSzc{Jh6;PoWq~exsf~kVkV_o|GNkt2p6I)bDK~hR6X^ym zowKOiW~eYsi4p4UD|)FQJsm_9L%nN^p2PeW73z}; z2lU2^UM5IS2T{6E@7qSNjrlDq)F&0jL1pt_)mZ6&3{=J|>KGhiEzMKAYh$QJq;zRU zvs~MuSuR}?XqRg{G-)_Y!(XEf9AtwG>mcYs#Ty*&1Ij34cx&4kt7k6?DeYpw0<_8i zVwe&U>b=4&ILHO*=^#oM>N!TQhxsi))F&Xu0q8lsclzr`0q7NVJy?CjT9&8cJqFh- zfaaqqfLhTk16qK#0Ago)jMDItVt63PunvMARJ@zV`G9iD7~a~%MZb12XaQPn05MFx z81>dL3l8!@dOCZPcc zV-_5Y1nKD@3L5H7GI~SIZvmn{0Wl6ht2U}BcIQR_%BkzYN-fq3JQeRTxMl&=j-~+W zM6(QNG1>x%o#`=6!*7SQ;bM?s9mELAu|r1nlSE<=wo1J*l{9@EkVi^{Wx3d5AhQSaNL7YWkS zLDV+X+x(eNr4o8J73z};qtY0CbeP0eIGnwIol)>o2ZZ0NsG50P07x3}`vp0*IYyxJbiGXafi7 zAj3KcdQkD+_{2AyQpT{ziHlb4!m|KvGk_STMCgyu+e7p+L3%ofiidhv7`-;;w*XO} zfEWj$f8MP|(CcdfXb*J*P-BR-G*9iW&Ec8_&~0c6pcQDA0j)$^0I@R-hiN!P8#u@Y z8P-A2gNnD|V;@jP8NfOaGI2Z}i(?L``)SF`ThM3<1 zM12Bc9Dx4wi~{t@!vJ)bx*o6-YXzQ)S7ltY0D2Zp0W^$e8PFEA#V|Y5W15CP{YV=w z1{u~tEay=17P6;QJjxgbuDBT1E-FESe*`o+;sausdKv2ViC*Z?po&KYQSngky$^jo zkNGV?BRD1?#sTOze^P+P5m2AH0octEYek-lw`N?k0D28g0py`s2DA-r0mRNUoTcF{ zw1I>a7-D)z!et_+C>B;_(wps5g!o4lo+Aj;i8uc($hiILDb8> z=L2$>-vUH^0%9D1uGK$R-e)xc9jIM)KnznNLOqXJaF7eq z(?Qfh)H~Ja^)SB$i24M?H~`ImLIFDX0RZyU^aF7qu z(?Qfh)H}lHtzdo&5cLU&aR8e4dj)9P{Q$I4T@QAC#M%H)#Y4@!p{};xQ1j*ul|5)I zNtXwS%R-P#9mE=r)ZTS(`&9DE4MwX-4{GTcE}ws-(j4)rFigD^_3mL79E=3%=^%<9 z>g{9nhM3=?LVZ$U98?aTulAWw90Zkn)b(J|7Hb8b3Vw#lN{h;Xp~41qY$Jpo&KYQSnf(!svO- zZ&9H>sW1*Ir~OWimE>PR_KB$y8Pfx?J^wXQU|eG zBei!9d+Itcv`JrjOr*!ObP|`(KT??=@u@IOy&UzHie4m0PX|%vP;YdbuU82@n+o+w zg>g{n{jH*M{(YdbR8hzCORR-?Di$L{Wtl}KYpAdXT@KLYOVq|eG{~h6Vu?m-Z?cJsm`CL%qL``c&$e-x@2_Cl$s)W!C9x z2DRS{D&JSsvBx9UqC6EZ?1su>i%P~&VGp`2(B-4l#z8X3r49laQhQ%9E@R3KHg-h1 zK})A_`TQf53nD%hhAA;Zy|YCx6{M$wC}^nn@PB+N4)a@7s81@4gUZsJ8Y|bX0+q8B zbv(+&T9T*Y&`?=qQAryr>_L}By8H{ZagYvjse?d<)ZV_vWlFihZjMN|iZm{tf26V~ z;!|lulMTCnIJtKL={85JGS~%+L+&>LVZ$U98|72O^ucQzktdtMID1ftfhG> zhK`}Kz@m~eRM>+q!*uyeYU3aq8{O)bf=b1YXB_-9Z#LQ%&@VlB&4vCEBWqypB^ zY(`T`7YEI9>5@QON*8vf;V2C+rVShn1R2&r(1VKi${W7noHB+j9C6XFU37v3{|IPt z#0SJMC1TW@EPDAMJsm{pLcL3k-U{Zo08yWS7zd!(T?)`W_W;mjbp!DH5o-fH6^kLR zSpdyPQvkK1Sq8KKZ2`p2G@PX2b7%txg&@N^2zpTQ*1YZm$}3~o!VwpP+C>H=_(wq9 z5g!o4lt@u;lv!{v5~QbtsA8yhy3reAehU!w35an3`ikD;8XN$iQFT3FC)Nr)l|Rk$ z0bPKm0BS?C3}_MB0*IaIF-^nAi{WCBVI2fLsCc=5`+!E2F>K+8i(&1e2PF7MK+7UN zAcm=zq26Q6f`iauK?RKpqM)H()aZH4Zvmn{0Wl6h2dq>h=;6Bo=rMIYsCLC#k*8vb z#5KzZYDZH5b)s1Yv>0sx#Lo1XrQv1S)F&Xu0cbb9$F<=u0J=k6Pj~H*SPS!1 z%s6-;AX-~)tT9YC1GKigSc?W((?KlU$mg}c>Z6D#3)rj?y&A2TLt_3>@3x4Kf??|A zsrM^p!9grYPX|%ZP;Y|Kt7Cp^tWcjQ7zc_y|ER{wt9Js$uhjKmvqr2%c`D`>Jd{za zG}aiVn*yzk7i-BNYdVM}8u`3$zv82aDGS(^5xoYjH-NCMnFR-_ zAUz#K6+^x4FZ+59^IIsWPZW#;#m)T+MTjVVuC50&N~|S$DrONplu@iU))=OnBCU;4 z5C`cXYdVO<82P+&jkT1rfDIVYYt?#rB<3GctdIC87^Xz%PU!WBUM5IS2T{6E@2wFZ zMH};5D5y^qj044{n-z*LtOSZ4g&G?$VlB;6yK9Hwp^RdavBog1g=y_g3gRFeWK9Rb z3HiKv##%;Mz*ftyvelyX3P{X9qIfpqqhOd45$gR=^m0LZI*59Odau6Zqv&CN3kCIw zf^neOS)(}qPeAcQg&NCFFRU6Y35B%SW+-`7IRGCkn=a;>^Ry4 z@YHVnH$(kLY&V+ni0whM{D@tKwmf3lnTFFed>?J#pcrIW2SE=i-c)0FL>a@Tintio zF2+EDe+0B6;saus5*g~v5xvmiK{bd9q6VSf$}K)1kNGV?)F&Xu0q8q7C_q=O0H8VQ z24GV~tQC1G>TO&z#|oM^peca*(JTX6jIHSqS691*#Kgg5_#%P5WQHCo(`fiq270lULEsWBZ&G0#5e$T{!9Vt{R03^ zP&WYY%VI6cQ^Cu;J}0c#=cIXkW)He7(B-+*#z8X3r49laQhV!P@TtU<8@y78bc2=- zTU4ePDhyL%gnDl=3l362dOC-fFq^_n`8Yx*j~V#afc5 zVwxE$Gb}1GLxnwPtVoxRxJ(DR)IlIaYVWRLpGr!(!Fz;Aw`%Dci^^0(g<g_>cB0y9x$`zq8CKVWtroGC=BXG}hRQUHO4Lwc z4;l;8V}6SY^+|g`sq^aygD&JAmyK9HUT9~KemB>)p zVo@0}RM>+q2k3G=wQ&#)a;bwrhSc8S#$`mg!A^=u*Jx?SqLMIF7^Xy?dhz*9bzI_9^=3iU~aaZm}nY6k85Yfzc5r~`voi}F-JGE_EMR0@U)d(dTpF7Ki? z4w6AGbr8sq+M8lr#*`aus)%%hmQGq!<{K&uQ(}aACyHJwNKXe*uTbx{f=|U^ev1nA zNriDx`Pz>amHJEPHLuIu^C2y#(2VEBFvY*;GNC&ypK_EkF@3YOm z%an41{S}dJ)zYmNl?8?h!;}c!4ZS+i%LM7^AnFzB{lw_CF~3EH`lP}*sO&gK)hj3b z5>)CGbu6!9EzMK0_!=rJEh+Kie4^APX|%2P_NVI^)SChh5DqzIMR58bT9&8c zL2alkx2WU{751RZC|xe1HVy`YTDNx zDKCnHXqI0TSEDVDBX*|8Bn_V;h6_Q4brAHR;@z{!2b5RFx@#liVoH#tAw77B7|e2U>qpk`Kdy2)GvVI40V_B3=nH!o{DJ>4;5lhAEMw-pQgD3DVO+R07l+c+^Kx z$NbiSq&`tF4itwh)$3S4P@Jq#W9LGwMR_VJIZVO|SVMC?nlfXD&@9i`O=!!EWoH^5 zpy6N81`eV@hIJ4hLd7c$`G#Z47&bA)MT2(HZvk3v05MF7JoOF}y;zW*4x%Wa-t|V$ zVSWn`^$Cb^0Q&uH3ecH11JGgW2H?pk){;CGW5q1=%dCYyYZiL;pvwYXc2OG#$sm_H zh!2t4+q%)Gl2UH4i6PRhS~_P@xy?{vm=Yt@+e`FPL3%ofqJVl=8of5=x2RB`R2T=9 zhxLnT+fAUdm!gi^m#TJ!}p~4e7z4SuZ(rq=ETLIb}?uH zT5SL^OuZQOHZThg@q4`@UgL$M|J;e-o3X0yC)+-<}|M=0fMvr0YWvF)x zv)~|fL{RCXf+$_67czR4(6docpC}jyiZk_l$6tR66t}4B!L^IEFi*vMBW`~MtfBcn znle_#&@7LY9car~VP|^G((u+b+Hg3?unuBff{J$=t^}1u(cu9qU?eSoBw*- zOv;!#6|+qGHAp}H>#aBa930!yJde_hLwcr`{w}3IQ_I>S1k_4x97KZv=^&;#QhN_Q>;p3%I;w5Ysqs4z^u&^^#w%`7;`1nKD@N(JhD(deyUev1nANriDx>HLMF z@|!+TS*@-I`v+oefTv=b8!FQ*Dp5m)J!mXUmwSuLY>-PG#9TvaZ}DoMN?y6?u8oNF zpq3u9sO&IQ7^Yr?dVgRR9OQ!ZbP)9c^(Gs=A?CNJP@hy72bD|pkG=k~3{?K0t_K*z zT7joxRL}6&{0V5vnqP@#dCi}UwygQ=Opj3-{@_7vcp%8I4r1Ct#XE;R<-Z54jA2Vc zTnvkgFREuElH>OYXqWZSq+X1AOGPgqq^Ex`bT~vYu|EM<^ZP8Eu;_}lFi*uaGxKVyHLoIOUa<#Vrs?t_YU7|7FFRgJgE1pzxq@h=C`O&pHvtJm1g~GsDJl>N`s<~N4Z!_^3?9yh?zmP zGJ_DUL$kcvOha1+H#^ht01aP98#sst8P-8eJE(YX-sc-mDP!3C5ErfD!U9xl07V2) zo_hO;UMxsY2T{;a?}tXOjrlD=)F&Xu0jN>`8fx2h0JM*~0od#iYiXW}brIJrOU%(| zj>D8kv;oaBpc!ZjAa*8`0u5hC8#qV?8P-9}K&W_|?)3p>lre0Bh>K3`qRs*|%>ZJU z5+l_6kXdk$3ewX-)Hc*xVDx&J-vUH^0%9D14%feidhc2Q`cPdDJ`!tLo{9pn!F)fD zCIN9x44HYw9yC^@%cQtW2f5Ti%s`~}?px(k$tgG31`+9gEgiL}9BrsDOuf*bp*O-T zILHL)=^$zw>di5FE12J+LVZ$U98_xcrt?Hn8By1RZ4j|Gz*F%!GgP)&RElWJSYZzu z3)AKC;xZfLQU@{ZklM@r#ix>2Zm{FFS98|p=k z-VpO!RH#oXjDyMnS@mSvXDO&WrmhFT#9D!;;_b~)*6k^O*-&AadNJy)Vip|agYZPdnD`vsLNRXZmqKcv31fy38J(~*kNriDx*;8*iH+F%_uhjJb zgIEjmR6sIRR$El^h6;PoSeh=!2DHm!kV_rJTtjN_T=tX=59J0M9wJ?%rIQww`GyL^ z)XPw>NAyBp394dL5LFEI-n!e@t7Cp^tVD23DvX25Wc_QXmLGvikD`t#Bi5ok6%)!( zS!q!jFjUxsF0*v`3bk<%4sxl3m}^MwImTs7xxpTaNH=KdR*T94Lxo{VjuahXzXuoolJty(%|QMtfSVVDwm>ManxSdg9$qI99&+B%RrFkkI)P~A3i%Ql|VGp`2(B*y9#z8X3r4C}QA+pj)3 zYd~d=qK+j;tYvvB>N`Vau|*|gsIUiJ7U?oaZ5*V7Tenw4uTtbQz}0A5$9#*&vrXh`EN;Uh$8<%e->aT^kYUK`q^BQCV!LFieRE z_4X6JT#%j)qF$k1#^?<(zeR=mq{29;yrqA@ar+NJWj{q73$a)$@KpTB0rk8T|IKKQ z)5X7oX1VxJpe+R*JJWEKhQCc4I2Z^rtb>?#Q1Le3;R6~`#_-M|E{3&>j0LFM0AiRD zG3sq+798Y*^mGuV3-!)3dLHvzfT&MEi~~@|w^TuQ*J1$LuC50!K4PuNQ!(w}fq+OuY>CUS$>>grY%3iVC7gp97O@uPsaSU4p^RdsvBognWNFP2YvCYkI*6%+ zeBNDu@KMB+1?;bgUW3*fK;klrRYs3t>gA|6%q%#F1nKD@Dii9RX!IQBw@^@@C>RHd z#S0aRi9|81t_KULSWEI$RI%_-MzPvhW0-CRXzc{C77endgP2Ol=l$;YK8lpGfSnZ4 zYt?#rBrc;^Z}b?ZUY>eSFbfW1L3%ofa)f%*jb0n`TPUbc6pRDKn)4NkFJ1{0PpIp` zlUA&yd1`m<5ImGoY%eU&&9_F`DP@gCm2a0Poijz8lVy(I!d?ePgJQefBJZ%?P zPurAv+Oh|Y73p%SxJ(DR)IrQDr1pOFJD*BUxxt=^NcU^$VT;NZLxo}Lg;qgtC9~il z6Qrkus6nW=r_o!%{1z4JlM3UYvf`U+fSi5>sH{}igC$d}4e(UFZ@@!&fV^g`F-$jM zTH8acWrM8gAZ8Wvc~|__N0C<+uu&pAOgB+lnzi++zvD&8!h^d5p-Zzc4 z(BGM%yEZR+V_L5giOVP^8$E_8k)oa}dLu!4I*1a3dhh(&M^Onq8wK@=f^neON26HL z4iv6J-Ca8**1|j$uM_Z49u-rJHHK*|O>0F8;-DC0O$RZRkk32QSc@nN*as248m(7@ z#AOsyjUL04$WSjMdZ8nON(>c5i9x;Bf90d7V}5H?P@gCm2a0KxYJxm+8Bk;tYV3oE zwJ1;Ru8qJ$8AYwJ#xSjAY3<(>#6dX7nhs(rA)j}Ou@+Mnuo#J6gVw7<;xdY9Mvq}i zqpk`G%SxuUrZg9SSw(j#x|bRJ<*~Lm9=< z#u~%4Hb86tpdb#SLDqB-QwjOJn6Z{p7O)tJUaQt?K;klr8Agv`O5~~c9np&g>FFR! z4C)n@`zYF&-$FrsqF@{-4$&w|mjK0g6l&~vh_y6NMTv}8Frq+nKAPinvlY$pXmYYI zKwDN2cBbJ14c|{2I7kK=)?)L$WC}UXU#Ko|7(P{x&U;r^pi5T@>XBHgfgY*{*2B_h^}JQY(69teo5%>~99!*r9RwNu1eA;_8z zV%i~}chAi}iqLa9X-xFSv|bw$^N)Iqj2^?(OHuDdX2HQoke&{rUZGx-(W``>je`0_ z!8lMn+^$eGTnrR1s_Vf+ORR-?Dkc*=lu@)BYYfv(n$}`str%oY2Qk5r&-=qoK8lF4 zfc0MVYP4P_5|>ddHhK(GFGIZov)~|fR8YO5f~Z%hcZ|`iV}5H?P@gCm2Z}8v{!dQr zcE%#0D5&efE1p=3@>EP4cqpUjHr5!Xn=Gw;Rjh@Btmz=867qSs-sq!~BAnFzB)f+vB`7IRGCkn=a;x}iiQE};af#MN$J$QbL zwIol)3n@I5QQTmxF-$iDw05{yiw0TKK};p&^RhSiC{oG-hMnlOYQ26WE~8j(^cbdI zo_Y^33l3sIdOC=Dg?bUA*T(!73hEOD<3Mr9XKGYj{~e%sKwS^EM8sN}r{aYa9?B?g zGu9ZUn*yyJDAtle)^re43HiLGKlf2&lm!es(d*QDE0DO1Vx`ezn0h1ByPH{XkP6b% zK~yHxt2TN)%x|HfK2b0Z6fe$KqhjT^f#Pm;J@`nhWqB%INa3N3VwJJRFx?bsZHib+ z2U*iWOeN&=e(*CNMNV13uoJz0tv86oWfZH89>dfN-3Ptfm<0!!AUz#K4MM$LjNS_7 zw@^@@C>RHdh(_^f8&KS)t_S-dVr_t@!l`+#-XPCaMElX40LNVCm!mC@SaznzFb%)= zQ*AgKWLO6=!Jy)u&7S&8@VqjH!6+^UwF?J3Q2c{*0?qQhNt!(>_Mmix(w!om3zF7B zlp~b>SJsyvqLjsoR>+ERuxg&ChRq`vfmNrv7r-bk3p^DMUwDujWCoh!VVHno#wB~u zWt1+TrZx@+f?Vn#rX5my4aVh&a)Ti%(!*N14vF~(7t_!z1Bx1H_Mlpf(r1ZuK1f;z zQI1ghZ`b>PJW5%BXoY|n2cW&arvPob5P;57Hvrow;C2Xj$2VJJ=@>Xi&pcv#* z2QdSY+N&@wBgzdnRYbZ*OAlF8HW?}mQzApXdeI9_4=Per5Jd|0e%j|#sbhX?tWcj+ z7zdRDlWMFKF94N#MID!?yK(jnnLWT-^&}Eh`mr@%C;UJefh-rt^ z-sm#lWemq0fFmN^fMe(tEGo|$DhyL1N4;v%iv;QEAnFzBU1jtf=C`O&pHvtJmER2S zjDL0;M=I5dIwqG`OY&449_v%thGv;c5p7w6*@G?z=<@s2#z8d5r4C}QJr9?EcYP`; z9Fs~>q+4+e>0yh?7DI($O5~|mVip|4g7kC{r3>}GW%SyZ-=ac&QehlaZhc-+nX(X6 zO6qzrIK*0-r^4E?K9wzKmZ^-OEmYWp#tL+Kwzy0Nxzs_-wddjT;UD`{GB_rcP+0a? za17}Yi^^+;3d7VJq25+z!9glWPX|%OQ13LO*Tei473z};r>f;W|>L>ZK1**G*+a`S>iGsR8IUJKpSfu-L3~A4z zvdvIon0leVLhl)7!9g}iPX|%ZQ13XSw}SaCD%2+x#zE!!zbh&Y-vpIs)b-$@Bi06Z zDk=-qC`5tgZD@|y%@t^t3!0T^3m|r;$1n|lQ4HsT4C^4K9aOxY9v@I%8SAc%h>Jn( zV(?h#YU$NzmY>&ov_+adC>^2n?M#S+fgoueL_zaBq<1sYLpZis(F$2H4px6TMXkX{ zr@-oVb!k|h#btq~g6gq)*r2%*O|s(69za`MvImVt>9Rsx=7U`7AZFn6aCy;nKA;gC zGig+$hj9$OekA4}n#<8F1InQ-((FO$7^SaeLL3x=q;(Jl&GV4ncC9b%;n)U5D+I(i z0G)rK0@QdO09~st4JDqqEb>%L#$){{whYbk6w9J5F4=>|l5{yjZ5)gQxzs^S#^>R3 zj&T_p)_`InJ%-OAUBq1CAKAT+w&*cTi4^tHqE`&k(?Jw8)O&8JPo)xiHWliV3ge)% z=p9wiw44hnX+<5+FR>Qpsd%x(HS>m{xfsndl?>YAl0E1$O_z^R8wa7Ig9;24#0*4g zFKS#ylpE~2h;)sX9T|O0u`7J8cCl$s)C00<& z@g)mDrCCu22CEa{|?W)G_6Dg7mpP6kQqAZi;*_x{KS)J7=_5Umgp;{fzgTn(Gfa{%Z| z>IPu;h|4rj#foEG&ahm@j7#>Q%K}~gklHv%1-aBgOgp6ZUR~n5%qTb5p%Lj$EnR1% zr&-cbBh4OE8=>?#kxmCm>mbS;O1By59!gn&XoY|n2cTp0FEy_DIslDRHvk`r%PddD z^WC_dYPpOUm+V28MY>!-Z5(8RT>_N5A zAf#VrLL6j+q;(J#52fcC=@pc+0MQBoF%CczpHNfm+Oq-ZWp!zIc8bdZo{D1m7=Jn5 zfo6F*4jGs1L1SUMY!sKdAeTCb$%xe6Z?5qH<&_&$S0X*Ar7Nw4XR=v%7^Yr?dXF;; z4hDksbP%--^^P=pL(Fecp+2cF4k~xgQuC_66;vKq*8^Z;t-w=JvBE=nwV7h9F-$j6 zT8oOce2_IA#I!>`@20DL6eG$4swB}H)_OHa%s;NdQ;iRHd_y41w*Y}Z$ zVuB%`=l;+~5qd#iZ(j7qv|b$&mr+bJdJI!9MZJ5O1qa0-Jsm{pLcRTsUM2Kw6x1gQ z#)0C|CN(OaJ`*VJRoBy9J0#Y^JQY*$(RvL?Tt+d&=rK&a4E6rVEI0@U>FFTq73zhJULEsWqk{TG!8lM%(kR|O z11SEet_N??VlB#3F@EvxLlkJPLQ~$E2GJakD2MTCw560_XL`)i@b;^;;Yg5S9mE8K zigzA+>Yd-1GKLpwanYb%#4JF~1`xy4%Tcda^rAs}I*8JRdT;;0*K?TP0z`cRVjO@j zo~g#lhw}lbSKR>2D6y90sraoHu2}%BM^gX|p;-pB32gzy&NMtg!^5S2Bh5cLU&aR6EvQzK{s z0nJr601J^=%kor=bzHLmdJRnhq5aR%J{z(eZu3rP7 zL(~mGF(=jrcq+y^u2}%RkEQ?`L$eHM2igLNooP5s!yUANgIthd9mHgWiudB>KA^lZ z)?FJB7lYbG$^vwO0mLvRBGj8GdILdvI*2NUdfzpAL(FdhqCNpJ4nSw0r~vJGIsi>n zHvsFmSS#>UjP(g380&^gtx!R<4$blinufLjVrP0x)9{{RICM-<9i)Poj8O49FY^IKlrikvh>IHS zqSFGj*Z^XfdKv2dmRWER4${*>)Irp%G(N!Ip$r zi}F;AHS_wk&3b(*qAgU|gT}ISx#LppG7{uc2QdSY+B=^;rT9^9ux}&M4O%*5QNdg< z>oH8d9QBroUNlHg2T}Y`@7+s$J%{-%Dlr_B3ge(Ma=M~&TnnfyQ`GU;7i&qLiWLAO zK_=7DXv)IVfM$8v%s^WJu`>-1(C~}2frD6(VI9N_go@W>45ySaY~hHDR_&t40)!`3 zS&v~#v(MtyD=^%<9>OGbA0ktu|1&I0t#5e%``fuv3JC*>T@2VSseH*cs=BcQr z&9K>G4Vw`&Y}kV?3v~GiwQ-ONa;bxuc1Z2j8rq(*0Vxup4bNIsQLtqAf#` zVM?T*fSx0I*&sa~M0G>GyT0dBS;73)5TQP)Fb*n{k5*JJJ{eRTb<6PlpNV-eeUn!+ z8Smsv)(_$EymQxW+JrBCmz*~#v~_;fq)=?$8BOz>&TKl%>Dm@)amO6@KMD68XXCmO z{;CcPIi+=(8GD5~K5B7OVds8E@pp~mu8G&LcN*7K{pfvMZM>_qChYXK*Cw6b#kH-8 z-bJ;kOUJjk4bz`)>6yan0oykFF_I-}~)Jp-s-xN85Mt9@-gs+~VkX$9*^6drZPz*V6mFu;czc z-g|Y8<38!_vp=^iCLhq^u8+IVdzCzNaTRfQ!^{m6zKjE0SHi_5IbG``P3JY8+qB>t z=dANi-#rxCt@6J!2#mNwN*dD|KxGV z0j!wge!GU~oJ8*hwaJ#g+P&lMvrgAzVDros$2;y5IM;b@mh3vuVj;s}a{gHK$bl3NqtbOYJAvif$5oNOpSEIf_Rc?U z2X$lgTD=PsqU%i6b^L}|i$fb`T>`84>`7#EHg;to#Xm4!_A@e`)$VMZ)uuxm^|kV{ zxYi&qR)$5j7~bu*5q)Ll>CxgA)q1lXi9R`BUza;^t7KA^6sYfadD-?_ zUeo`ncfkK&y)y#!Zm-4_*i_1HH*NYaztw@~U&QnKCT8$qAm6Cd^#eR_+_kt*mxBK| z+^NSowK3Tv>ORe@#9iCaTw7Pc*%skV+fyg4x06QoO*8f^e|-~Us%wSQb$^EUqWvq5 z8?V9AmUfP-==fs7?aJ~Fxj*mWKfQZ6?yLrMg(!sw@VHMPWWge$v`Fz3Y`Z#>)G{@c9DXsOF)r8xmmeqLu5FT-QSv@F@1^Xbb zQ5$FJak6n%4Ii=_#$zpl$huPXpD_tA|Bwui!Cf7xT<`|-Hm zexwSuN1eVa!+6G4de`m*|4Z{7`^dWCjNgnkrl~JEu2lVFloHNHmf?`Tsxs7mqSN(Y zj&ryDXs7Q%PC%7o=Km$f9F=1hD6zAvrua;C;wiYz3us1(YY`rl zScCAvg?MNs`X16O?pAA3JBVlrRqa)64o+Id3tF8x^f{zrh<_9$%OTzgVH^rm*BY z3zK{t{7a$h-j7cK$L&)8;FIRQAF{Oi5310VOfZD^OOfA9@lm>J8r;*j@Y zVbcz$erRg~8k)TD_s18?6?eP09H~BBSJA%P1H3LgqP(w%n2+~ZjQ_9k*>^upG0kT0 zV6=3aN)8i5_6km8jqkpRw||pTyotzy;o?o$V^T<`sS!7uO02m5mmB>&i(rhXN7#~W zId$5^bH9$K;PmxQFWv_bQO`B_e8+K{Fjg?PIkB-&?L2#W3AI8+#|fF^j_8=!uIVs|#9Q>+yKW`W*gY?Rg&VD@X8CC|%2GcX#@(s!SaB za0Y#ih@o6j+aVR;RPWx{0~g-JBw;==@%T1+hV=$(&6m$k+UWOI7&rVBjKFa0qq zgSqXA-fP;Js#Wz_jy_qIo3lRTkn_+iRX>bicfNfRyN>RT(cGr`rgYx~3UAEbsb=&%EG@O~=Payr#y^hrY5LQp>i55n!gIg!$K_A-%2mK;`~;=Z zht2zjCv{ZDdk@&!iP9p0VzjTifMuGGkF@vPyC^ptx4@%TuX8)6L-j!i=vuDTTerKv z>Ztja!sVaRDnp`~RmPQVPi&bGRPg}k6f6JEQnChBWL0;s`rs5W zYsQ@Do7b+MYP>D2ye$o->Q4B^2&n7wD%ub28XMPfHVd=?lm|%T;6Al-{Cx2<-1x5b zsdLup@@+A*;e4llto^`*>t?8ftPKfwqgo0})teXKf*Z#=cFtS{i#Oy)?>s6$dIu9r z&L=-D=Pb|ha{b+eQN5vwW#Y%Y&>QkSO^Zv_zdCzTX!?h|E2pXpU=1jPOD(7v7BR;3 z*r=gA1{XrJP%h4j@W4R>kJVW*9<-u?0XGZ(KB)Y=6L;<5Fhc>_ds&-a_dfSbcidjp z5d&x^Jb7Dy?sMx)LOs%((s4f09rvd_pptNxa1zFQ_fXIBCdh{|lle$TrMC?e10{v` zH4b3>_j~r!qafn_4X@do%;&$=pWnKF`SV|@&p+?yUI6->AN9QI+wEeks@_E(PW;?j zO6F=kBeJl5Kako4%-hfSTzMjONx4dqYf%-7lqW1qT0Z40RAXU!sXOnu?>SY?AC;LIoh-v%A`BXljl2b8KGJqx#~%pWgpyY*a)OT?21oKC@gxC*nk{K#Hst-pK|e9Suq zQwftEZKlDKbMP{qKiDIcU5f; zH@~WTCqz+uq2S}_2z5j-I@H?i_HvNKdn@a)1`}u{fpUmo(k^|J!|3O97pr;*i{e7u zVYO}2xTb3MW_QijRrrV#(TVk7xux+2HOmp|LM# zeFe9uy|U`Qrc&ct!kU#VArC;7P{ed$*Qt3-zo+S{Z=GD2gBRe-@NxV1P-eD;I;vt- z_kr)1U>oaZ$EE~R^v%P)3b&t`;jPlJx}P6^L%d9ygvTaRZ7rb3Ie^uvycU7uF8qtw2hNSob9u-8zkuE%gi zm4LSc73LE)TB`n3jfIZA@x1ho{DdX71~uQ;m*bM znVWXpQ<3wuc21*Obk+CbW_<_LG@7fY(Ofl+PHX2{A9eJrwQpFz3Sb!F8KNz#Caz9j z=Kt%`)FTVeD=x9qKWyO|^a2J|$IdNF^UZy8CbW-l<{nh}c~RBe|!ePS1rAf z0|*c52#a4=J$|qzR>XQPy9E1oJ#9WzCUD_lP=5sO?nYfdt;Fw!#q-?$@9RX66n-+jc< zJQvl%6-aYx1TSnjY;_if@lPZ^zR*-(Q0Y;f%t2v_Pv^995uRJ4yEe2mZs4-d5NAC; zuW`mdR{xmpivbrNJy<)ci8ns!KAGsn*qYOTI-$3&{)tgkqYX{)qfPZs zvJYG{5AG~CuCdDFHlY}AtGZ9$WT*E$j3V6Gp4lPB^xeh{?wJes*XarR6ZKE;wfg8f z_3-PJ$@>$1bS?jBs=5zvp4UsWs;OruSit1RAZY5@9XAhc3=VLDhtpCRt)1$72#!~I zKlN9Z7uvDH>8e;4#H{;OeNw7+Fv*tYuiVvNjAiU&yF<-wHU9PbwYath<Tb^O~A8a=(4FzeX&ySILAE=J@#<=W>z@86;=0*+d2)C z3h&(+j)9I{l!vV~h?N&PsS(twCTkpO1l~8?L6!=7anq}J*EM*8O)XU)ak_eXsjmpC zx;LWasJd@>>%;h$@AI>V@qeDPadwe=J3X_9OVvA)>V#$&uXDP@Y4IHQjH1){*kuts zbl?_e^x;graynJBW)C;_OsL$@jMwDRDfsqbNblQVJD_FQJM9h3F*Ka69~RlUWjNus zc!}|kCR73h6U=~g1~Y@q%^qR{(q~~noz_;W{!fc4PbQ)~={O6Y z=bhtlIudq#v#c{4I%fI(^Xw%5|Qwxwz&de}Z%>enW4A@NfFtDdhjr^#6LP|aw<96Ihdz@=q~Uq*}{#+LonwN(c;;|`V{uX7X>b`H}M<=S=p{Vk`{b=sSxp3#MDR0V6Ro`>C@iBfO)0H3NcO94S zRH{A^**1ASZ%+*I(b_V`GU=A$#89Gdc`fzg?m0Da_o_(TeO2ww_~T!VN7TovQmWB) zO4u3y6mRR!Rrg_Yi<^25URLq&!Ri_{s`or@PDyxX!`@hc1! zN4fsfQ+U((_Jjh8rZJ&D<$8=l4)dZZ=~m+P;!$Ve8oZpAZ~E ziNRxG{CiIQCx-#bsSVD;bxs9fJVcmC{!&%y3Cc*h*P8eg#)gQb0c zIjj8UtWJ4MoigmykIMcLu17IZ7tYd4fYrY}`cMCk5KfIMD>QF~Gwy-_pl>JF1+{oU z@QblB*CS6>Tw{D7gDc;=-1ic0WeYHpYipV7Ru1gbmp*#+5l$n>KI&8@MicHM-XYu> z;Ip*;pNa7w99D;U8*>&uLb5m^lF$>4>89XDC^YH{2NHxb%*%>8_3w!_luXKkZ}D>j zO6}Aq+?i_oYtOA;07(DZ^>|bDCcf{&o?7{fXlyZ|I(cXMi>y838#l0stvZnRDHJbl znAtG(sE&`gvAwWq0?rm;aCnB&VGCuQ?-YBfJ~gO zzTIoCjmWn%>gOWdPr39HjLN==SDngpP+sEmG#>T~*kvaHKWOzGU8l`)kCX4F@$MSo?TdLw zlqQ6-34X=SUyyK%9A_8!Hv8T#OgV&`eF^u%p2f>;mix`EYSa76>Y0oT)1B|;J(6Jgk5ndb@){TuTsal)>SfV6a?D$*t$Dcn(9tW2s|ix3U1ob4jv#~uZ&qr z|LgI85>NDcMKHyu|8kG&%WHFF*|k2+4Sain1(3^kW=%f8^+RIDu^(J{bAF7M(r)wb|}AzQo}MBXK7atA!Jxx+dJB2JdPt z3<;PizsF%Dq3oLnaVPA(xiu7WXGNQO=SG>OPQCfX@n!WvDIsPeUKeE|7!wN>5Mqk+dhk~GA7=i;{!uQjMn_?x1o_>h~arH%2%mpX3Y z3n8I9hjn7OE!VGGUF(x-_54QD0)DBZ-j_J)V!Ve--)zUsoQZEF=F&XBUhX})vZdmC zl`ZZzemdCFdl5c4h!=C=g%_6RYutUQ#XZS!=jls2LR}J868}d!_<_!UUD6d%Ud}VG z@p2a8a%QQ^*?=#W<#O;_7JS&U6kkr9g!wUgYpMDS{GLKBdni!bJJlf8`_UX#*jvD+ zKfVRv^Us}Equ}B_Ygd{n8wvVaTNybSTG-tP!-)DyJJvJZ=~`EZ;nVSFKFN^Y-?J)J zZ<-}WWD(}~QmCi+5c=GFLMiYH3aW&=Gir;L`t9*GC5)h^$~X%6HDlxB>U|CucOZ6$ ztGbhFg0*35As&v`KkBU6j?PaxPyHwE<{f;$j~`fFcL@48eG~A&{2-3nwQ5!|-dL=< zj^Dl|`i|yTZMcl~+P3(T&q87RK%BpUus$UVf#K9&fa+T!7#@)fiZH8PM-dvYLIy6$$dwE!lf*&_CY4$MHGVz731SA zjUycs6ZLCH_ib_4<6rOi_mK!+M6*jvJ$~l)tam6vS;wv75_crtfy3oxu6%>In*R4l z`7%e!9j_o+?}2!NjpB74UvN)80RM(r6?Dn(!s2r@5oq1Xp`KZ z`LgJJ{wBo|d|JMPG6Od$f%4n^W@Vy&B)(?Hq`2Bc#|;|a()e;!_m}YE9WSlt{lT}+ zxIcKp==-xq-=E8?6TSEmCD@{V%;P-LADy9Z*p_(Xdfc$#c;gFI*FDV}=DrtS^Ex&$ z^wcchvY3C%?nEcA{bjjj{W!9JMW^cb>G_0vLoN485;EIIkLR7N<()i^r*aYHqxb*p zxHBp-{h@E6>y12qI(bsO?;9~y!o+)L<7H-c82?w(R29ai%O11wA7LkqRtv(haC~D- z&6uVQxN5BW_`fLruK~Sc5%$M_gqUV@^;;ub|hicwm4)n8o7G9`_(RIw}`sBbXj^^0M`3)l+a3{vsyf!H@ z{tc|T9CIf+y{Crb*c|U#A2Z7+$K3rVam>wojbrX_Ct%FkfB&^r-<0Xx7pplQwRqjy zTDA0APDWOYeA+b3p8g?b3`X{Ie4ehsDB|0oT3#E}qILx8vB>{xRh!L8)Be)L&;t$! zNAG1(TohI}#lE@cvWRyUK5TBdV&C?ks#izumf?xHh}Dg}H=c*SqQYZ=6|)v~WEWMqBaC#(tTr_QlTt7ONnV#N9Sj7)YeP>2Gm6Ypmx5CbH9aN<8~bg66^u%;=1w6~zUm;)Y8_$N(yY!6cgL_xtDbnatdK&ppd?p65BwdA6f84YJy?Y(#+0 zae_!Q1lzb^B{SS9Xy<$tw8sjx`@RRX)mj`uE2f~W7B!UhIacetLW}RStqT3zR+1za zlpBEZ17o`^C`tbrwrE!*msF9=zhWg*j516^b}#D2=K?HRm3dDsufi^`YrU3I@u6vn zX4O)v*00X{VH~s7`ekp4=k>DpZJ)#5*LL1D0OCKs_pKStKIm)geSa_G>aq8|3+R^I z+{>o*IjR-4)%fIob)J+Q*-Oa>6D7x$txJ>DF1c?_?Q4r<-}`uK>kOCr6XKI>oiE~5 zzq_vFm#UFiR0=+k+y&1Q@&YN;mfV-x1I8+U{#P!@Y!Ey6C5!9 zoNx`2m4FS{`14a6FcdCL;#|M#HV9Dud~LfhiL-j4#y||QF7mnR17cib>)~&Ti^TOv zBV^`}T!(&3kNYEcS{IwAzb4Lh{>bcY{>TF@!N~N+VB}8Tv;0k8_+5LIJnc76-=p}i zmV*M;yt~C8-xxGD`i(X%2eo9Kx1B0*+e7=$cdggL&Uj0v2T^;HY}5<2fykjj_ZJH; z9knT7rk#I@nHGlW*6N0*);C6O21iDONofj*y1;bqYzqWw)%s&}(($3i zV_+SkW4T?}%1l8xu=csUuz(t=e+A!m90BbpADz;zu%bn)1yy7XV`C`v4-ZfIcVMEd z6Y(Xf{|e7{;&N{mJ41gXE+XO6DgK7P09i%CfI*`%+FvpNuC1KF>#g&53Bwa5tZ0R0 zZGrLJSYyrkQ&-)EFy?^KU|gK*H7?K9-D^wPb~crqgVf;Eat3KR*XH0z%axz+i$(4j z$mg0Ik8wq=j@d6VF4r5mJeT+NF}~c=djjYT&e3w@4GQN>kvAM#j(XEa6@#>a*XHPk zFV`5Ct4E4+BOMKol7`RZCFhqlEG^mX>Jh)~*INAD)D}8lgh((t7qiFP0izX*FDquC zV68tzfQa+{HjMODzUaZUfU(veZN13vYT|`;zNUi&g**z@Y(xrd@fU3LNy&{;Qaq0p zwKjq``Pw6Dm&rDFk}?;uosbEfBJ0;QpLuQ=R1f>2AL4LXw1$~>K*H?M-n!IGyU4_O1#GDsyILhnB(&U?nAQ&8{^yE<8v2g&F|+ci^;87yRnqcJ_bn!{esM#JoA@T z<#T)1Ucb>8Fq-}D&9g5R`ZLDoy2s@%95cUIX7|i*HoHX2T7Of9NPkgrpff`Y0_sdh?^suCoWDt%N*SKV7n@)=>rTY|juQUZ5*1=QsY zFjwtS8Cz?U%w1VEn~Tk%xi*NK1yC}IL3}`Ys7T9EO-prywSm_`1{dc7TOAsTAdZz; zz@bGeFQ+oz`34y(96_|q_3Ri&gh(Z)>j8?7Q+P6--T(3}T)ZesOPsw?)~pZMKd7F?dxPke*r zHLqjP{$?%K8F{{zO(3!<##1LT>3vEEqJOT34=;w`E;vW>E>aKbT){ z7kDetgms=2@Cqsjqn#!UR>H(YuhT``P4ah)YzZYT;(5ER=!2__+AZ!r?k!sR9pJ9e zn`noPNjb%%?>H9AgyG999zEmO&|sfi&j}Hm6lHl*w@P+%5u6o$*YWLWE&jRn9NAalIdNBB zuKdfF%R;n?bo@~X`}j=xC1anW#twfgR<~sAEiu+| z?qr7Vqs*|BK1_UkZ~`;xRV|GF{m@bgZ8P4I7BAc__)hQCq=6JOnYm)6qqPQYmJQ^5 zVh%dbApS#QrV<~b9>IM|{EQUzdtbEoUuKdLQ>9uKRA+~&tu)k88i=9kdL!n>>VSmqd zsqks8?8;R9UqUugkb*viyuk!m5R@bla@+nSGjhNDPyGo$QvUcIs&fRd^f$kqlDZMb zs_{^H8vzbdvn`9hvH9uH*Wwq2VZ4?U$CZ33GWVHGokwH<6M2yEGU>VPkEB%D8)XN9 zu5t~MdmmM|ynw*pMSk$RSzYTEpvXYQ zu)#W0sTlqi8(;^7SSN6e>RaO0KrFk{2*kqRQEvZ|ZU)RbEPGr$&V{JAwVb|w^9DBb zhxvJFPLNPef87M77xGqq%P0`>zF4qOMEpta@8@cdERuTM`%BOzBU)aEzsCdH;JxSt zGOg=(K$EV>coxIMp&eq0E0&IWcm4tW4*KbYI+cLx5Jk$A&n8kW_xYr%bG1dp`A?C7Lg*+9txPiA$rmN^bPVb`sQ2UXDD`-`~y%yX?y^q5V zD^H`}c-v}zSCm4b5k6$g9NRNXZ8g*u1Ah_sA?@)hd-tJkr6||_A><)0i?Rg@81(@Y zpTYtHST`l?{eei%WsxhLE%I+07+qW+G>ePt2X&m!$ZMISuAMCr4uD2#?7L7?<&z$G9Z9 z-$noYuBf?=#`_`@C92=mAZ%vopM~Rs#;$cf*QWvW>VEhB(65C_Q@v^nGnnizeYTL% zxwC*Y5r3k+9xZF1H}@pWr(6H@SsWL?K7T04au|yre2y>NAmiJ4o!Ahp^gm?A)i63) z>30{)Jx@<7`TBQ2VKe=$GwtWSTj`Ja6Yw&Jj*dxA0x{eFCvUA^dI3!r^Km%;(ZAkn z=(x*#bu^LsDGPZDp9{tC;lZ($#UJC23esjS^Eb}i zM-Lw;EV&6OFe#sVj2c~gy~!N@6Z1OD9Dc1Y9`$45%TcdVcz$1A8B>a+g`tIo@c^!G z{Yppjzkg`3Ij->%{2Gw;eE3X}CSp#1aiv=r!`U4}=s|e(%8a4~C22($ga!$h8(=+E z;B-W8$ZUOBNX!@zo1=$Yb!lSm43%wSJny>#+AkVrUxUsT|A}~wpKaNR+Dcc^_vWV+ z-Cw%9Nay?7(!UnnShBsSkl$lUk@=e0F#DN`vS_ZNT5)&4%#7!OwdxcHENfn&3YM&i z4U%G<$BG8l8Y>A6jJkk{5N|u{-N|Y(J0FKVVjIjeZaGcx9{;CKwDM%p5ol$3i=vfZ z7knA5#2OW?WLrsEnZsKhOtN^gn8-l8q%W(QOtjHmCi5wv2hUWqdAo=)srmGZ@bh}p zM03caUh@iTf;r?0HKpr%Oeq3!=PAuQ(v)WD60??^(?eSMb{eHeU%S%nHR<>O3;mc?HXEML^y}eT?+)v^L(fF#k><*p>V^y3N|@Fp@w&P zt@jx`ZYOgqxZH|tR%r34LM88tTJLDwoV=qGy=k=G-av26p$Gpe7!ho=ZlQb%A^tDG zhiyz}Cwyq)GJy|T0r;S}xE!(m>)}Jjv=lzDJsJ>U|JV~99!1-$ z(4n77cVE{79mbr}9UbEGN~9Y)+>aI(R4D^_c-9jg)~;9R5c?p34p(*2+QQ#`?Cx=9 zo1&cMrr1l#GW(^K>LpoQauaVQ?O6=z?cenm_da4}<3rO=ByYsZMp>kWHl09EFtao(4cv`|z0<2HP zV&)5l!SQb?(c?y4mi)+z`E*R= zyL^v%mD5WY)|H=V*WxHAmJl%sc#NpNXd6t=5p6xjV>F;Z2@OL(K4&n9?J<9S2mCB( zt|GM85xc|KObnpQYpnHleQ-Ja2V;XzMf{2jvTQEcOo4COF-(Y0?&Idx+_-ao$P54;t-waR1FY#fdZ zU&Y$%6V(vH41y>yj_vZf7gWv}mhc^6qeqOh$fvqad(dONgEmVX9JkUHJX(XGfH*i#t`s3zIeMy&s3+3V$Z)(IyhqSR zK4Y2G{Z&0~p~po&L)B+@dYQB|=a@t%Qe8-vvAe7WP$8XAo!84gcWULkx#Ts$Kt@yc zn&6;Q%+wVMMb&uZml}^e^be%oz1*Vu-{v+9Rf*v8eXKG|(~9P;z$U zHVrS6hQIE3744`=S|&YF<4q8f-9^T$$|S}k6INlrWU6wIKZ-KE5OiZQF+&8@WHuBI0N4@DO~m>e=cW-eHjnK|PuGl2D>{1xKk} z!AI4e1Z9Oh>r}e{vU}|^d)6Jv+GWa>gFbzfTCAr~(I$S289Cp>4n*mN4+o5?;efF@ zSn-ZlUP>1c5j|876Ph>P81h5ZTmkL*YW};b;Ql`C`L(v{Di@=)FS?hn0}~@@KlI0| zgYM>8bz-)^09bz|4Hs3aQgNJbDJ&J?c(GPyC`HgyN6$t};msA)mnno3jqV`gU?K5u zy0N-D%6p8Kh*{4_;6|k$V{?KV&Gr=R>)6lqz^8SBPt`U)HFx4ie>XloC6kmwveqAP z=`#)|@%bC@Um#G~G5OxGEP$fUktj6iX50vI=UuHAB)D=1?R$(yXA%%I6=_YiN$Z`G z?*WW1`+*+tSlffXYQ7PDfyiHvIj4xHM%=s!U{%CpuhJg(2PKzNK#;pmW%mpiAHe8^ z9%gsYig5aFv_fTm1NU~tbP_AMsYol<7mq}$QQXHjohTesyOFHEiawOoKy;=i;cFP< z_5EA)@J^@4*pC>HE9?TPsu)8&D>lmG_myVAeEAu$O?H!5Fhmc@M$2OxFhoXS?Xspa zNrWi&CzyXn0#by&gE3Q6B7o$WC~Vcje`K`p;59V~f5|A|Gf>+I|1gt(bK%s0J} zt?CJZ=~4VRML#R+qLIB613@^Fz0_B>%XwccFulef-PQ-6exYXT=C$dL)20sdpry_= z4ucRLW0`cpQ!p8f65M!Cgn^rsz8g9e{h_ScPmD9NAH|(gmyKZkxJdS+cms$@oSmc7 zAFm0x-wAE>vf$@;rY~CL1!5Y0=qqR(7vU?q>mrY_mdNTI#^i9EAEn2o_M@u*WkpLJ zp}z8D;a>AvB!H=vva$#`nBq?0Xc0aOs(8c5FlG|S?Z*p{waCecT};Mkv>=RuS)n

      X>>aPcYPjqLOg^pLRQFOsh-Q8F+tW%9z^7q6)#|R{U&r|S@9*v!7;6jOP?ltD+ zcwC2c<1MdyudW5Q7_Z5UxE2%=VCt@0kccO3<(_*>X(n{u`Yyk5pJCX;+*617&9Fi~ zEzk%N$h$_LF%|Od(}HU~#@Xi8aUG-g;vcKmZXt*x%rA!#9OiDCf3)s?Yr#OHx*%%Q zCq^`+Qo6a>-8_G=j)8W7v9@5HMEiS;H1z~mpK6u@L$yT}11QvAYS4}B@>m~ZgWpW+ zr_6?nL32Fh2^$qbMSFObTt~O(0xLI6nbB)zh^g|oy?uO@y$IW=$@0X^P+&AMx2(~) zFjQvf@mirNyee5=x#KN=N2@?9FngFrLf*t#BMhpT!+ql-!ylA2 zFTvd3?M2uW98>tF#D%Z|NkZ6^>Xn$6Tuv1G?1aB5dGUxXzH>xj(H10Nbhf;Tu&|9e zO0dulVbN!*0z%DG@HJQXZ8IOO++Y{*$Ns!!{cxSwDnR?zx!kh@lAjiT0VU@M3N7Ob zusyPw;vQr2FeCuowbe#FkFlW8DR`uR+elfz-|Z^0l zkb@*rLww^SLn>8l*C+mXH0WMC>(9LL)zZefvh^VsjEJ>rgDlI-nIs#A^ZhIuj$(hD zkXf18x=u*qeV@B!&Okbgr;ZF<_0_EguDWV2w4Di$r*Oddurq&4an=7kS}k1}#^Khv z-4?C~WZ@cT7LEGG3)i>og{uQTiqv4I=!loH!i3cVwyWC$_KO;|fT=kVQL2+Z^N6e2 z&9*#?5cPlEdX_)bUe9u2lEvXVHM4qUQCb&HcXe`ne-FQtr8Tv%B879E+*}hy5p?g= z7Jn*AoD?$r?HH$nAmpytw_XaymhI%4i{xy z5IS0J+haNG$%u;sYDIkE`%)l0n#Z+{v-P;w5j%dyvT>}rbgAn}q8{}Ty1jyU~g(M;}#K1P?8nN+2zE{Q%({Hf?yG0L-{5?DG)g=?}P z>Y1Z<6S1T+2z~4)z@@A`O?!~3!JvNM7d}^ez`ao`lSEai^-1C~b1_il3D?Nu2j+_g z>&K+H!n!(!ORYjwNUSV*B+ed)ruM<-xi%Lq-xH6It>?y^>_rC(M#_UF>Or`P2baxp zIOb+9I&e`Tf$;a6iyY*I9QzB@xpVI3B7=)Ky_hr2T(r+A=^6UXnQSg=Rz zSJ9Zm=XA;VAM6L&NQ@tz;B1!r;N;;iIG~kFd=}HpQlHPtg1n9qr|DL{Pp|akooSu) z28LF7C=gSCQpO@to`O$r`!Arx6D4PPOOMs zuD5N&!{g5Cn>__p>jm&ret2iA$Khg0?s^gsrO!Z&+Q;Re?%(mV8r{fO{LDlx01c8?7+>lHw4AZSa!Jo>}-6}i^H{r1T@C7?PAm+<&Zr_ zD@U05MC(LQY>J&9t-GYxfImoT1o1eNDfleCV+v#p(`6X83!xPz_E6D(z*WoK=%n|@ z=h;^lzj@Xr{#UvTC&e%DOz<=0ww?YmtGDsAOGoc#c9{woA_Ky|CC+5YLZw&Ei^uw_ z57Qtic?-4teYa|7)z6y87IUIJ59xj~_UY_zZF$Hk@=${af)kMq zTg24@Hs7MW-EPeJBh1WUo&O3>Xl?K5Ms4dJxQkyx3Q;Ti-Io)0FA3ztcY`;jlFZsP zCjkNziDPPwiYx_A&7_0#vi1FSnW5o$mM{a}6}qum%#K=qt@RG9v~?+ED>mJC9i`Gr zPQ^ZmeWBLM{kDkZRcvqJ_2>bD#KQ;S&E9icZ{!6npUq!zg>~AQvdYNwLM^B8R=-xd z&suh!@ch~DW!}nF>)DjXx)567ON6nCaUrEV<#5#`i49kA;Tzf5VQ>(4#CcdZ z>b%8L5L?TNlK!X``qQTsvA(+Ev$`1;(?dl=#JftKY5Cq2KFw2otG3X)!U(NGKE{ed1LXEb8Z|6bS7q&MT?~( z*9P4G8GIExkw|cr-_;y2gUrz66-;Zf8aY$4Dh|Na@ICH*cIp`I(%Oi3JtmX3mWa0z zdv0N+_fHlEG-|g2FFA`w8{T5jrH))fXdfo8*9+cs)$3JI9<@h;#d>&~Q&da2m|z5X z9wCU)m|7eg$UpGVHMNnvNmk{_vNkbug7PKjfmAsma+4Fni}(Wf0LkMGa3z_K@R&kU z1jQTTu(e&z&^~Ihe7w(&jJ?xLEgynPSuSx{#?+k@mDKmYpC14FrGG6wo_s`lT>7mZ z^!T*DCp|t1*>9CL;u=<=B-c317hPtq<{yS27r4SwaN+ z{V(i=eTprD`LuEM(sG1YS>qBCa^vGEO29{uaAtmIwyTr*Y<&fDaZ7%6Yg%a!~*0}_WH+48G8|A>eJf=!5Gepk$};tp^9`FG0g zHJy8$lYp+WtQJqr!?WH7H%)2jfJ-7H0|dNyBIgH3{>eYRmPK1O!Ne-Av1C1L{;M9o zZwNsb#8~C%u3FuxXY(@~)zc#o!NU5ziSsoYO1l9*lS!>@}w_)@sir?Oqs^%wX*5KckJ9>e+Eu8`zNfJkAaJrs}qTI=zC{uUq*_tV?^+w-{s?vTQV_)mN$Vp4% z11=$SDPRt9C@kSfq_m&-ns=cWcSt?qYBViQX1#KVQ?5xEDb?Xpsg?bN>63crzv6el ztCcCWJ|PPQ;C+i$CSLx2&bBDnM0SX|Luh4CpunPf(h9B79-6M^KJBg@2J}qsM5Eh=N13Lkb6n zNH=*R<@LCp*?NFM^CPEqA3wz1o=up$Y3>lZGRSB5h+Kl&L*i$K|F!mDjr=gvj+K-X z(lt?aQ=xu14H$LwjpzsL;nIgM?_cQy$-ZgjC2+KE{fk{c?^>ULjVv*ZbB|NKl1@s* z82yPRbr>XfZJbpgbX-vFCzY*>xUa@p$B}G<@w#zsbZU=PGhIxS3_F(o25T4NCHIYi z3LB3KrS(qfxN2@)`unT098dCD#OGE%m+(22Pd`4f$yts!`TRGZ&H`T9!Nc?O%MSKi z=vv{dDLZ)8!sDUf$KlBS=~X`1g7$ni0|``TYCo>3Ij5>7>3?Y6mDhmJSEKZ4y11i` zs;czP6}`JZ)2c&RBl2jS_i>)XwZ_5A&O42?gJAl9aIOUm{k~Dj%}RV>U}TjJj@eFJ zX7+WYg2>Twvg>i%^wf*rruT7=;e9-IR@os~FSomMTxg`?yyAJ8p=U zKpg4q_i^}q*ef0}(hcpj;7%&^J}&jO)p~CODZIBK>u*Huxs%=1MoSwdHMAsLL5JYD zADNPdbS$Gx`hiA5FWLT`Z?J-$IY>F}JzVQuBL1D+3O;Q8`Z>l)v0Cq3aqOJSgO_-4 zqUHE6s^{E@S6Q{?dNBo;3fvar==L+a)?ZPp4?P6^+EVL%Uuxx6aEtX_yVjr4ajEq- z9{h|48P@;&Qq{Wd6;*47bv^|@qPqReocVOjYUUYO3~1qDc0w zqdFb@H?oO?>rA5i9c<#v>|$(&-RH`f{CMn)vUaAbj$&qZ1^-!8c9reWB9ob@7vyp} z%9n=Z%Q8_o^+ny0_~Pw(@zoMS(F z%+s?JX7+o|Qy;t5k#?;a)*}>D`VOVt`BHkC`?-v_J3YNk>Ott~;x8l>L9g_*R{;H$ z^wdD9-snk9Q}6U7M&_?UPj8&td7cP?$iU(4OUUVc8=zgM>Dpf(VVYj}xtgX;s}j>R zmV&*J(}C<>rYX&?wdXWlXV*I4t~JBj`AlbW68%(<`RYthclGU!p3Xd=rs`)TtL&Yg zluzJS(^IXQs_yh8;!p4N^fl+{m@a(ptLN!ENA<$?e)p>*%u~PRYM#FRQevK#QLwjp zx*Xq}9^`brU2D&I`u)#Tt$$jXV0#x)uw#Ef{tVIgN~~7usF0WUQPkco&6CJ25nTF;6P|0a}xcz~W8)P3-C|fAR zD-=GXWs8P9w81J!#}CoG(J3)Agj5bd>@M53FRM19lLVA@akmkTx97)#QJA}^mOzyp zf>b24G&YV8&>FL-$iBuL`yxlk2q22p>LOlEX8LIg&g>{~8XwI9bEVwH0$}a?FAAIK z2ioNw4`+Z-hjJ>XCW-r`&=kx4Qw8_yUlh2@jauI7SZ`AM(`k|bP}06q!#D{asuJav zUbQVPuaBocaTtt8dwpDHS^I6;!#`jY>;%vHDMB!@YRQRwzE(Oiucr`w4OaknU+?U-_j1+UhnNXuSu-^+j4?MLG2kHqd<5 z4|!|-r{BwRT)+sOd3q)RvzO~D`F8aC2mhSB-^Z19#9GpM(l;YhW>J|+ zRJ^AolUIg?PXcI<-PN-T!=o333bd62J?6zfBh=_vY;zaC!S~#w!v_N;xF2LzO59s2 z!AyV*7z4yw(s7FrM}_%*W36?$oGQmE?yl9!cYy%fN=H#{$}?(RBzpuo_cg{ z*d4Ijug+BM(>U5(4&=389jL9$3LjWdf)Q7`R_Oyk3fCb16reiD$JPgQiLbaTZyP); z7ydz*X}~yJ%)-R&V<2kJ)y$uApIC1d0xoVF0rQmTC&C)e_@plwYmO)YlRNo)z^>3% z6g{9-&|PZ0VOYSNh>AfCSzE)5aOkh!O{&lJKwO3K5Zeo1`Vlg{sNDh22J63FG6{99 zp8(*Z2SUeF2Ls+BU|YA^u0tL-%bcO6DNLSWTXaFm31Xpw(@}V%b!nZTK)dAXx?TLh zVo>V_E1#x>Cu%D-Ko{by#yZIfyumulZZ=jLK5#+kJJKjQt?Wmu9Rht-Q-8rzl494z zu7c)V0tVilPNjY$9vjEKc$$6hvc$bJixz~=Rf9f*L66SRDo){B0f+sV4VzD~TnKEa z7pT7VDKIwL+%rkWl*T>q4lKSo|N_UPdYA1KKs z$q!?w3lv2E_yEANez9EYwMeg_m0!urLC%((A0!(~LG2$GP(W6Qg_KETdb)&oNCGRr z(8}+maQLDHTE$JtX-)NJOrkfOq(WO=sya7SRcNIQm&b`Aq$OSonjxp^z0?bD?hB}n z6L^+=A^0GcG%kKjQmR(jWPuC>$WxIy0p_8Q>W|enFk<%$DinhXJ_+eq#(ns(qIZ1UP3Wq*Hto7 zkl_Tf#xsbLQ(DWItHeB+!I{>DFR?ajV8pv}mMXm%OIzYaa=Sor(Q2W()DBw?UNnc+ z^x;6kKLsMUgzXJmCD?GAyd9ZZRqL&n4I8(DRn~w0R2GI2&obRS3)gz5u@ZWx@jT3P zhxG}<8TAeRtrB1yRw?C|QtuOXy~`otv#3{0bjd|$@^V>nbFGQ0>hwvfYVQ-Bsz!t) zV(@Xh>Q%o{RX18A?W%7kxtpDcozr^mCemz`TK%W+&I;?(r&V`9-zVMW2rHm8mh~oY(BYf&Zco&Ti&6UZfT!y^$zAF5kEDJozP)qBx2x`2%r}tem+Wo{ zMUyPimbYyMFMFi7VTDVNu}iOgwCw4qNt<{aa*|EQz2^gg6rqON=QwZHaF_iU0kz z3TcDtiE(}uy-p&=S$p_-!4i@hYUTgMFG-v4i4>>BuA(yd>>1o6IaD9o(8}>yVn%OS zDB;TsN=|?Xj>E9HP#EVRVVp(_DgSK(h-GUlC*S5b)?1_Z5iYh;UI$u{oq+{S@e_ckt)V_>?sae>{&_#?IP1G|l9|0gkyqmymi!vMC}(0L!|sPk4M zUeq>k2z0m=e93zEKUB|A#iX<@TX?Y7I@hjsvR&(5tBQiQ{G{UVaW$DNE(~%Gf;yIv z$ooX#eVBP7R-5=VvCn#qt=+=2@e;+Ysbm1`uAg9Ix{9|~E<5Z8IHMVS9AV?*LsVtQ z-2bElALq{2<$%4r@jUZHa#E5lS<xJNhFqz)L~_!O7#nNwWKU zd2^lhh^zv_k>%Bx212sYsJGfcNGcZAdIzbiov|kc+j1Z~?=CfGjW$?Y0Be>UZlmBxZOpRU_))Tr!%xTzCiX9I8D%O=FW*5IWYbul7v_#g<$P5q*`Ev6sdRG1 zxjaV`=VQwE;U9=yY6G@f?-lIj^%@_+0vW{&MYH>WJxhgOVg z;z-1;{B7N6((yPyPM;AKdlr{tNAWkeUp&g|a?4E15<5q9TdpswI#%>DrW=Pjek9=W zH@E5(Yih-cIY1}*sE&bC*E|h)VHph`_r}?2++nj%Qb&0^>N6Ir$(DWgpC1CX5D1 z2DITsTUe{n=*EuH^4}BxqK~Z?xil=aiiG80M>Z$1$TrUTT_P7sPV5;@a>Ck4Sjv@o zPM>RwI;G@CsmBrNROnjTD7nG!f>&%z+6(2_Pw_^IH=JHr)Njtdf&=l5oQ`5Wu}t7R zei)G=96~w=nct&NZGy%Em^1vY&+Uipb4aSfE?#yZ$rsvr zp&bX%$OAd8vQfO$9C8tf%q2r!d~NuGTS9+h!Dsg~jw5c3x@7-|B0)Zow0j;i+b6;V z=aYq6Un`^rzj>KcFKE@nhtAMAWQ`1^-wxj&FZ7xB$3t2o-iB1e;fo4O+VuhwcwXJd z9^5OB5e!=AH%kOo`x4`sGng^jd(EzcEZB?rNDe?qn%1Y3+c>zKK8V9kF-*M6(Gjxn zB>uh(A6LEmP4UqOK7xD-ANNPQBcvyVkPbn}sy?-jfWpaa8z+fUxFwdgzbU-kS+zYq z++d@n&skgChuntcj7G%tuZN#`*oQme=TI*Ht@zpg=>Nm`c|3#r2k>*%qHl(uw(EvU zO$3)b`JEJ2PLgbmgkusSyr~2ZdOymN448+U*@Y4_zvGG{sfj-(C6N6XTB&Ex%xPMQ z6iM-%SP^-dmOmgpYnKfPFY{AXWxqVU`^#jlv}38`9C4-gEDMzis9kb}6IC-Q*-HP8 zf>H-8uu#>UztmTTs?`ya1I3iWN7`d8hW(PoR?8unSF*=eN|sQRK%{?=CFZ`cbW&wF z|3h9Fny?j{HbJxBX|W}dgKwuKk>%V`*(q|_CFdHAQR|pRJ0v{?9Ic-86=&; zps8GzIO|k(mg?d>c~4r*kQNuMmWpe%Kkhmv_AN>dAGHbA$kLZAwS8enDgEU;sZS24 zu%r&4Q|OC4m$y${r2k53ng5X2&ZV|;t1t3uUL!yEHwPlW%&X^D_ycEv;#K_ASBX%h z&-hs6sDL=7ax=giEBKBcKH6j65bva~@|h6B2ULWbJ<7lb%vW-sO$)#Kl?=WF{F4x6e z7jiv`>te2xQdEt1#s?zli7@4thtu%LTwVC`MO3OsKPNFro!7P9Z|v3!*87@wt2_qc zs7(sU?aF1uXCBqKlg)*(DJf7Td`B8R?ziR!wX#NPLT1t`2q|_*5F}ATY%>qUwZ&QX zufC-txIR@|a)_e-=`|kh`J$-DJwKYJJ#0xo;`RC;Z{`PTh?{AvX}5TxcnaP!v#F>$ zUEg2r)GDr!%Cwc6^rl_03Pq zLCHWC<}wKEm1`*JFsilZ(~fm}j!m0$Vhkc1@t>5U?YDGegM#TU>3w-VXo=`qPx7m> z0~w|L%!~V?p3aEjDdWdwxpWx5IvsLl|FUZ2$|}NHE#2L;U@#9wcC=;5be_bk5jc%1 ziZMLh)huy{B2Rj${qTaLwO8xB1#j!|8r@x^Jza&@GSmi%)vM6NV|3FOj}7D!$o07`ZXC;7xNv5CNY}v%iTX)S9HC^rIaSIX{3? zA+K?_)0>20X=P6UOiJNv&HB-~UY~f1^M@OM*1lLS&00vj4L}Pzs1*&E zZ-1lc>5B7Ua|EPUCSWd$$c$QnW3>Hfc95c?F>gO?yxaDU(QJME7lGdVyxgE`|BPmV zs^T6&V?)r`>o03Sfr?XKRDY$I*P;gpyEYfBjXahY=E~o^n`HIP+wkd=m5-y@SqSoF zllp`_GHB9* zR0#c!eoEnsR`EA(l8u@~wyYp;y(7odYvtRx`HH;mkFU2o27bw~E;F-#sWIRX{_L>yfEK_ zvN8;SyAJ>T!~V7p1FnPq=Dm`k!F$2Ml6(Ce(afB*R#Phcs_HM(d1<_aoCkE+I#u;H zbiUlPdzq}$&T}zhIQn)}tloXM|MHV2-$-`UD$rW6o%TBL*Tgo;nVJbfK0JoPaXH{1FD&7SzHY&wzqv)E>nJ-h{qIy=m zzs^Y(aiJg1bK*UbJmeKAIQ3qsl`)Y}6S;82Nqrc)xmab@jSu|^0O_Orwt7BYIR=G)iCPdsficP;)RRk>1p1biFbBd8$ZBif)l`U)s5@0s?8>j z33w9fBFZz)nQ$<( zHN<|h1)+?)V;S3*ebj(~E1MbSfwZ8MEd7SO>G>^=0h?w1;nm zd-$F}E3B7_%WL_=?G<9=uZwTFf$WYZIe_KoJq||N0(Y5Ae=g_FuMS?`}cg(8e{14%!cC1vL>Z4zebHi>Gd$dbQVc*$B~vSperadu=0=*FelMl??=O4G_ur!)JbGqnmidQaa!0gY|NFn)R} zZ<&iDCGW@zgmq7BW)A&j`LC>lQuRXXX0NJxp;WDWh4Bd$QaH`qmLeY3V$Lv=c_iqn z?NcxxZZyama}2OJi~4x{74LkKe8+n{?}%9Z4c@sNnrju0MZYmR0d7D&ArmHkTG8y1 zQ;Hb8JO*IO3~mq1m?@1wIel9VX%Cx%FL`2*hwFG1(eT6%Kw9rB@K8uq0V>#Vud^N> zl&m9mvBaI@`zfqLy^;b6*dgd65V?)=vD^-533>{q4zk`nnJ4U4`}ibjB~hR~nFHqx z5$7cgV(jB^R%}0=7{uQYvZeWi>!~n^Emn){@6Gh>vZ^Qsk@9O5262p)e?Q$fhx&i0 z7{oEwA1J?+>POqvce1fu#V&*@k`^ejvD8`j+0{R2S5MQa>bLN`&1$$$RljSgs=m#d zO!@We7iBq4dN9jz1D|<(hQdVTQ_b&fd{&iZIX>c(TaFJ6pC&$s_(+))^Wul_FLi#v zRr=Mk8VKiF!3=4q{UL8T-##OK(OMc76M**^#mo+LVrE#>lFohdz->N=t|6d;YrdOFtRiw^$;t9|-`YNBkg(oM3P-jb z0^WnwvT;ALb*i*aiIe?Go7>cJsI)YJQd06bICz=%?6(zHV1C31WK01aPi!4VB{r(b zxU`cPL^`+XyludW^TeuTcMx zhetcez_pfTZf8;-sOZIM)5~6%=T2dstdc>p0R=?F749H;;=OIcNM-$ca-2+)cW3Lo zG$k|&Jb@FYmLr{>U0ivtQyrhph$irouo_XQu(TS-8KIrp)%&&6LOUz=-#4g^m6FbD zSEoN}rK5cf?KEmnLF!yMR{m)fzmE+0_$v`H!k)zzUu&@GJpe3wW60gEXy={r(1V&!STwOyE>(?B50x}C^ zLv`ZLc4qP=${+P?ZGTL*0*Pjs;_G23tta!EuvQtCf|0KSNSyc58A{hf;Q}R?k1r8^ zyll3h+!A7ylMIMii&=T$rI@O*P8y0*8X6`*91ope)?75m_eOMaNN!B4sfht zkDo%GM`hb#9<_uo1&$xs*AMg66C9^d&p#0yAG!g@aE6@($FjW&9KT&n*K-_Qkw|bv z;Z`R!@{Xi}cbI-eX}_HBiL?JfL06k&$boj@qCSq$e&W*lh>&0YQ=4o3D)ml~6_Kr) zJiIOOP~1kpF6$AIqJwk2bvx_irJ!_X!abtSiy}n$2rH+zPRl{k7)WG@F^(j}-uD@a zNa}63`n1vp;_lzhlwbAnM)*#h>{xgU>7|aS`(s4G`rmgjS14~}TdUV zP!3XEa^vbQq$9}MgHYHQ^JaK#+a&>#Ss+R68z?tKNauD%ET?^EC$ zyk0%S_h6WS6B}p3_u$%l6*wQLRN%C%59i4a+Z=I6kLpMFR{gUSXSV*J=2l!Ax>bKj zs$bHhdb79c8%6bDroXLbsu$qo+STjH>Yt;$0H?4= z^=I~0{k?Ye_aCYH==T+Hc2p#Q6HHX!RNEam8#zR#2XF@2)gOPP>Tj~EFH2UxCuH}2 zR*&ju_E!DxDGqR6Rfy0Fa9novdCBURB&r|WqxylpRez;j{nR5>|I51-aMqM3fKy2M z_4xb!2yy%md>Z&{;j=sOIb}(fqnytNe8w%!a{Qc+C-V`T4<_^*U&8NWiJzT?Oh6z50oV!`5~Gq#s7L#pWj>c z&r)3YpPJTQsy}q6s(yH~`iB$MXZ5JQ!B$9hCGmh={p2H6|CC+*YY!%RpP#7yxti|4 zd9=6cch6G2-@ism_tN{ZcJ((Tt8bvZ;(tA=AJtp+kJ!~eex&N(yF&pdz9`ZAI}+9J zsqWtUKeebHb_LE^cJ=BsqTYJH(5`-Yviht<^-FqGAL_08Mp3-N|I|$N0-RjCdOcbF zbCg&7uSfMq_g4MAcJ=oksru*)1)Lq>1aN|h>YJk7f%DRqUVt;muKxHVRezIReOa>l zJu?&huSfM$daM5T6c_%d5TO^~xa{illGQIsR6n>!^#?Zh()%mz>Zcy5`d=c@B37(f zm;g>8`r`6c?|x?=L0_Dmcjq{IDQQOxHC^ z7~?ECUCan#eUc0q#Uf_iqSD1>4jmz~LciM4rHAA;vmrd855nt`vWg_`eU7Ro0@`gr7{I_<2l~#EKAGp#Cnp*Uy_Rr0=-k&M}-)j z(Vb4C$Bw9VBFeLox1mo`N3vktlcX+HZ7nF$z2%#5U93W7gRQH@XxGcu;g$JX4O(8Z zMr>3mKR5$Ex;r;8{cjlMjwUOm9Jw)DvaoP$A5qt9MQ?<4mUBDGH=!_cqVpm1?gq&d z_bnVu?RAxJ8BaDfQC5w|1LIABST2r$s2!}z=Vj7~ zl!}ncmrw-JB@iriyPZ&_%ub_{@WSk{KPWJwpaYDP1dLvcROWeqz6B!#Fv7D)z~o1j z?l&%$wCX@KU@YD&5JO)l*~9#p7tFK^$hfRMNUQ_8sc}&XXZj1Yy|#fQ#+S@PtR3|h3444`rGvAOy@-&?3KvWvrUXQ=<8oet3$+QqF6ccSnh_URFE z*pzcUX=ElkwM*6EUE!228wcnFhB$odwkM{bNd80>d5+9mn z)g*dFO%x2m{JhU7ehAD~h$@lUWWFgakdTs{l#D{23KDVbM??fkzi7>%U+(&nGdXf% zl@HI5#DT%bG8Lzid!pS}5XEVICW;#mx+HTe11J2NG`XZ1$zA$thfdkKgi?V*qR5~A0 zAhTZIwZUfmlPZa27FRxQ3YP!ncE$I1zhXaDtHDg`k;h1}qpFZn^Q_gBin&NxudSS) zS5zF{m|a}Sk1qi*nIWxVzlmci*rtw-z|!5P1jD;o%#f@bOo{ZVkM(&0sL2d?my%pD z;(fvsx#g)&GeBqaQ?md*Za_h`G%*PWF*bCc1R|4!=DSRU_TXZ<*UMx)G+SUc^xl;$ zUtgbpT>HY;;~!h2--LgB{)e9YqrLG+{G;-=ug5qm3I^>JrlgJ8}E4LX2m;Rc&Q8TxMFEn-cd=ZF1#bt<{ce;HpP`C zoh-oJhLyi}zVWTdKh8I*2lSi(t=tZ7?##fo2bUg+Z_HJEW6bY5iM?N+e;g;_pI<}% z_>b4V3IABVq9^}Yh3dC=`QyszUypzEMTrLgaPg)1$6?e`Tp!}=-_Jk%CwJo?c`)vO zt^Bcv7XBstW9*xMFaIbztta|^6aLYBS$F=iebPUXf1Lh8PyVq_seyX(kK3my{&DZ` zyYP=ei@Wj`% z3xSvIzPO^Q?Y{i5gFTS_eAYQv%jMATe&62i`>fY^H@UyZA5QH@al0mcrzABswp!cR z)ri0!z$1(OJ7MIwXGUk8%XXNw>!sLp>a4&s|_yp3B)J)j&X8k|e;aGIza<5U3RB;3XV)2jf~ zy8wa&sv}aKOB0N=usF>Hvxpj9YdwwDNPLgk4qyc($Movr>uNYb6+`uA;7$#7eEI8; z`51}jRc?BPcx#Uf7iEgMSGE=+$&$;Re@gaNJBuJYXW48NDnAD6#oS)nkrAo!6fzi3 zCB2Z{orv#BH)Q*up>Rlfr3H*C>zxy%Ch2LR9BNxkx_NPw2WwiCCpTv19OGaG@!9CO z#uMN;$$8(&68zY0&(_IZrtSS0N4g!MM1kz+)U2DQJP$0;vS^E!3Mzq<#VQn}ZLfHZ zPclA<9!@uEQUAF1`AEuY7I_xM#n*cNw|n0>GItrG)=BOgkG#dCq$Fs$griSrsB`%{ zYo8JYM6s*gH=PK@Nw_K(d6YA<3hC@J=&#*evNa9^khbJ#1AqX?Inm(8)KS6;A$!UP zcjdLBoDc|k4K_I=?gwb(Rrf^hext13N#;~&$`hH|ti7hrl|maby@_-XUZa@!TIOsx zek+sb`d#nJ8DNpAHQMVJGwcgUUmtu$H?xOn%LwhfH%@q`OZJ*1iZ8D~~sW?=2m>ZR-c8vfOW^FGRQ8D{Yr#(3651)&irZqKa0jofO@k= z$sDS6Dl)xqNRxb{Fj9>*^G(VJ)hHeXs!?gYbE89XWo*5cM%&)T*$Btmig!YTB*v*C zKCiz!x}YyM#9LVQ_s`I4iv`>G3KOfYB-4RYjlZj|~9;qPp}_qDwMv z8Na|mx+GndE=gCrcWK=Dbg7PcKubC<+iM)c(LSeSpwYiz9Rbw`(CjS4VJN9bH>i6PfzH zPVTbG;0J#4c#y&@J>c5PF~~dhaJ|E_6!x4VpDVxVsoHcP5QN+T(Bhkxp_2z+~ ztT#A=ZbK`C9%ZX_*RxXNywr^>o`o!g z4mJ{<0r&{mxn(DpwtKAid7CT*V+B0~9Rytj9Y7PHY=hTz66mm*zCaeU6j|W%U8~!4 zQ6+To5^E)OK^LT~E_O;Nh@uOcmmIJP?}a{|=UQ6J;5$i-f{fCtwBEVZ-AJ9S(`Z%b z;tlA+YZFGTgx4nsgWHNQGC`%#GOmC!_7UipQ!>ctPcj5Z<71mNHb_1X2*RcfG@lEPL>i3=(h%&`_irk1 z09gQncMHT(1uKR+cG%QW1$FFzI;x=xsAH{H5l6kJa&k;ByU3;vHOmR=kSVdJFYPQv z9WTX*ipNN!sAHqGVR~okkeEiBIt1H0>;IC}@#Xa4H}GBErW^CX`%OX=5_|%Kg=oAe z&dCN*g&+}G@O+XspbJ(Ex6lS7wHJ*HS%YlLRT)D5N2ccW!h?K8?zGE=khh*k_iE-Y8=Lk9sGJC&$fU6OH2m)=NpDT8n6k`PAsE-geq-CA!G#?I>EOUBnB3rYB- z?{8LQ0RX%kg)9gI(207k48G$hF@j$8L4qovm32_XP9z6U<x_EcDPQj7x%NN=}RJ$Shl1XjDhH z(KnpAv-XL`co-w1v-YraQ8@6+pKBC(BX%3|}B z9Szu1aKWKn2ece}4e@sZt*>AsX|4pc0d2y@*bqR=p+_F~*3y0wnz?pjSIEk^G8mI~ zB=F9bc&dBBjBg5F1y>Jv$Wlz`wlBIp7gn3aZag5eMTwZDB|=K(@X~%Xl1(FB=cIns zRg))AZfo@*;6`_ysK={4u1$77PWFzuDsAC#l2r^_*(a;))qkBR1ykjK1 zE4-Z?n;<*KW(5oW9CWV-(OdYej}0YwFKDdiuxpYz8C$&tTiG%llR)-BWU8zIM@06w z*k!kVz>%VMbeX{J3Owjr8`UYJBTo1!x`D{lH>!Vl*mMGL7_JW zl?vhZT9vE&fHQnwRE5p*OQUR(4}AM)db z7TgQy*v-P0$s$4CteJRkbY{!A?}^I!bC1oIGeIbJq>IC+^X+%lC)qNpkswStkYdVk zTj9%BW-7kSY05$Pa&}(p(I^^(F(V;c-}xE4DoLBNUYUsk`v5WoA|M7pYU3i_ce&2qZ&NMfu%a>U^ys>FzC={0x!0Ok9#Wb{z(dG#m=ni z&>aA6T!M-(5GqdPKl?`H?5VsfFSjcQKUyXr^e*v7((+m*l}7@E6V2flbmq7JbO8QB zc0Su>k@`jeOae~e)?|egjtR`Vz)P#xO2xqJ!UW9Dx0frF5Z?%1;%CG$IFbSZRUW$5 z*;o0eqbT-1A8?_K;KV8F^T&%hkuT4gR#@ruHSG=UhP{YfZ8`7aaF@t%j)PqdmBhsz zVZ&%R5s7nT*b+ynHs>VUOloiGW+pArV9Ap{*AeQE{m;K^j&777!?B`yO`z+o34C=a ze6?q8q<2hd+QJc%Psv`Q)UlYhNMaKK>c|9UcblbG>{9;A<=suVy)ZQP2uVBDw%{v;q#`@?Q+5S=Gr^^1-}J}wB)^5I&xKErSp~fi z%pyRpK-zyoo{5P9oa8*+uK6pqm1~2bC@Jp3(LypPRrU*gl*kCS&U)iE;UFipMpf;c zf|o+pYW9C6zc3c7%E^zDS`W09STL@L3p;9Rt?U!pEAKDjeX-53c_Am$usls{2lK|8 z=MH0a9Ev*{dW?e20rv*h$412I4Y8r4s_+V8VRWx6?PoNh)63Kg(06^aKI84e( zCfX-CjreyZXARSeUmG6{pdXrI@0WO#xZB`&tpiU=j@Mq#MD^!xDjj&Zfehty`^W3_ zf<{7_V~wiwUCVP^fQ%@4(;P<{q1OXh@h963V1=POtCk7EDK|`YlJik>mqF}hhi;zb z>3k}67_4ykIks6HNc{nC%28^VEg>$L;Yv>3)gUb^OVH#%~GKF zu=oc`ofu7pACWp_IpR|lVtLBJkd*tV{54M18C|@*1CF=6F(XJ3z|13lYZ_mMGJ0N9};t$J9;XoL@E9 zb|umY_g1gwc~7N1{=~;Gf4rWo9t%yzJAwgdD;3Bo&k#$}yp{KhWc7^DMIrQHn<;H7 z5q`yPRi(=xf{U}bs`tTxNo|O;^L|ens08c`+X)h7MQ0zHS;KqryPJ~{ANs{3aB6Gf zSrU36_@}V^yabjru9O$$kt%pqRnV6Tw3Wcp6dDtX9a0Dip(-jCF@Mo&p~Vgfro+5o z+ZQ^YM>$y+Lv}7X53|K>fug2Tj$m)wLcvUq6FoH-E3PiN@-FEv_{$)c-y(^s~~8ETA;xY#_s zP?Pie0;v-VuDA&Fk_O6}5?&$ucRf(jTDa?oa5 z`@biL6Ue~9jG2tUJJfH6>=9fjO{DmD@6~f|LeG)xb%vT^*o#gt?3C}2@g&Y4d5|`J zWfWpOcZq2mxuGO)ir@AH5RdU(W^ihkY{Uuu_m|BdQ^&k9dtWtmpZu`<)ZL|~P9ea* zVE!JRmYhEY=_BKX_#50VJ`>tXOyAkcxK6&_K!oL+>G@vQ={ftG&d5n>Mw0m`I_Be( z8~=CbW4;abbv^@tt4Mrn+YLYjh~Lu{;$vm%lJNVc&_6Og%#zmr z`Sj3@pMByhDCyv5A1C?Q;RHYXE9}+gXM24GDhKU9%FiJ1-uc;sQNaw)OI=%zj8$Vxg5Bv+%`n%C~*H1>GXyv6)?=+`rr~_zKSL8 zFPW9VfCU4^Pl;6v&OS!aVCj+OKcgo<1l5}0Zm}~Uz|l$kQS^spVVyPWdVz=FqZEQW z6P$rXK^jDmg*n0`6^HD?8I`^KpTZA!Ely7Tp2Sl2ujPjiUY8tig8l*$Xa?w+0&B8z zCK%QWzdP^9jPuB=&w&HtS>)!C^_~2p7rJA$;t8lAM*YLKC1HUzTbXv zQ5ygDN582u)o@*<)WY)ckMCxTg*eHo2wy(2<+zVf)^@7)d>z(|psI@EMtfxNWBjsr zTIEjmwJ!TM|h8lFnYdkkMlqs{I2EbkqlK#i*Jk zuj(k7>=amY_woKx=uqZdiBrMCP~x?%S79<;!+5NOGR9TvaE-4P#Uv%`j`aV%j;=+A zAh-&42YJ$*OL(M4Z1^kt-3X8hMaNXq@>N;emRLr+RwkWF z{VkFJX6fXTNrgC0PLslb3G`pL$v*Z$*9sdux`PGFvPZJ*&o9-f^bva`rkETI^JO-U zDy;Fme5Y?&7yP&^Dug%6vGfUDK43 zxmRtc8y&Ota96>c1EmuE^$xB*V00QE#E&L=_O>Yy2dS9jp$HY-*xQJ&OV{&I-GI{e z*p6(&sVjK9R<{g7>|rpiy)}&xX(>SVtpC>r(?eaBQc>S0B@QB#*;rU#wQG zR$LqKFXwvRr9l^iO#GkyVfRgRL?AZ$i&EZhl#O7b6>sEZ=5vYLNY(HIOfr_@$=%v3 zI$*zcjA0#nv)?Wn)xO`Z#cu1`Z`1fR#LZ1j*014MQCr@?F_)sFs8ADC3{tr+S*^4VP_WyQzvMAiXzxI!w z6#qx;RbQhFXh+w}7i+ItYo+Jgl|FIW7p_lSX!`#@*58-TN(221-)~or%-(PRb@t&& z#D}?vz&`sj?86tHo5sKY8~uIxjP%l{IrkU4->wX$=i9}8`xW7hU$DLG&FVD%?T`N6 z4S#F*FYmK`@*A-)7v3L^*bBVpeev+V(e(cxqHq7MJn{DQG|<0r`gZ&9G=BZJ$P)+) z=bB)TX-F1`yJ$G)mZJ9foyiy)G|Dj&Dr6{9e1Pi=n`WfTvm`PqeyD5ps*B8Oqnhr` zA9iIhjgJ|6H_h{hxxywwhZ_lzt-1W?_TMWvq*39^p?5b{rRUoPz5AHdiZ7VneK;(Q zkN-FH?%UJ8TzK~|^Ob$13wXcu#l!pdbN+APz3aL!7vA3|P}{Xfbph|#7Z2|PO#lDK z{AJ#E(m?;h`OA@KrSVJf{x8v2{YGCEUy;6=!UeCveJT3t0f99B?XUf7ulnkK`adZE z`X$BJ9Qn2E_5ZKapMG%Um#jY>Ff_gX8F}L0kFWW6<;!_fzr6LYOs{{}_V7*A_WY09 z!$Y1ud?O*a-mYes|JT~Xdz_iZhyN%&*k}FjyVUahGVNCfoROZd$A8=7eP}YGZjXIKM-Y}-c`sOYi>WexbfzAAc75>?IdW7foe_qi%nNM5v*cJRct1QlqsGJ&P+Db?wc}kS)^w3iqiXp1H&KGjq||u%H0f&i z!Ma(gmR|_^ddTF|wETdd>huWX&T>0FyS-B|^xx{QkE-vhzt%qOoyB*1YjK3E60F5` ztp$ZRE*gxN0!N5*O8){*Y^^!X@2!PjYf*ZN)}qOHI=!`c`!m)8x92RgAl{K>LhyF` zfk_J?@eGfq&KlilC4vZo!BQ*!-BLF2w~KG2JjvITsa9ddKP#Tz&sW^*Ss&2w4ajZ1 zK7A5>>Nd;%*ov?8S%D8MQmn1y=v-^=&Ya?$oEuNFlEGt1u$u8rqCA}KpJ+(Ugq_s% zx8n83TJg=Bt%TLqIv`cjcqwT!I)S>tS;b>y_;R#6-4i(6?3~$;-JZCHF;PZrIxJTs zVs20e9Xb(T;-9eC8B7`aj`M?#x(WJjaX_8DFodLG;)=-b2^RA|OF1n3ce||{cw!S* zp@YPmec?dkOyA!QND%Rm7+I!VRd^wB*ye#jJP@iSXT0Almlfp1C_#8W0TJ~>);g#9VUoOP9(#Kn zJpi&M&QcZcT%6%2=H$bkl)|)TH51ub?u(3JGFHXZCQy4WlW={uyJJRNefPB zWzgL2>zSt@KC_iVu za{zzaS1X%-Xc-F4p)zKJZFL0`618#xBqU|XdsbpJE1dZK99aLzI)nIYP61y`uM((QP~ zH`H;SkUs7XKduC5em%?wG~749T=x~959zVpdu)%Uk%sKlA^I^{_`U?KpK5&!0I@-v znVWj8e)SBkO!g~b!;$iCC8>bR@g+%%V>f#^-|EE}k_FS;p{POTwG_JKBE6){Z{!JEB+?gvAYZpBVi`krex1>Ir5~wwjDn63`7*?N}2-7Nz%d-6sJgx z@bf>i(bz)g-2+7hTNj?a_3plOe~7w&i;by8&NCZF zJjuW~Rr1{qeIUq|S@D|+b9}WFg<&z_da(4$A=^#TzLl6($Tg@VEcGT6pMQf;t|CL< z?AI-O7$c(<61GodTEuuR+ADaF)tj9WjL)5aVmkAqi0_CpvCOKv>BY`5+(Z+L{oLJF zaCDeCIl0WCY;mgOiLn_lrPt?Rlmd>*q4!kDlnX%ydz3#_a)tYiv4LM!>gdt>oxwFh z+Om6t9=>^xP-I$&!E(axFJRKWTXK9Xli))&bQ=;2NPo zmBtGVr&&Y8wfv1E{H)zrWDA-)fx&)WOGl`s?H`zy5GqYehEg@=c}txtx$}Yy#M9%2 zK55}=5Tb}Y-iJMHHr3tq)8(c*I^9F(_AfE*FI+nMpG)+gdfKtYYS>jE`qGmnzsK_k<)y3nCS<4A~} zRDDU|?6(PQ+8$<{A|9n3$K$L0qn3>r%L>T^X0N+L8%uqd{lSHq!i6pGg9}mzJQ=*I zuAGswUpK}6l%AQH)aJcTs@$8@Pt=?tK#7yB#P!VUdgjGgHMy$vbyTLd#dQ*hkC z`vc(ZtCg5-=4aVRE`iqwj#R+`Q*Xi!$mB%5t5wb%9(!_{p5@0;>NmbvkHEx>zE|K4TQzgH%Oa+U9duhiN=(HbP z`B{bpSVUlX&6S{5X_~C&)d)_9=Nnb2j0QIu++V&~D!?JH> zC06(zzYf~EJ~HW6!tY1sI`!nQne6QD!#d9D~VY{fLZy zXGLv`HQFG^?y@FbkdL`oJ3mTJ7e@83TkaW#emBQ!at2>G5=7ZvUOg+Pu8->Bc{yHN z4;3USaeTNGJWC4RGcD{pmVX+HJ!ZmU>_H7`nf)gRoD6J)j=O##1i7s?5!#<2*hLavEdKk`%7l0O){+vz#A{ z2~3)=t^TKsK?xe`#|Zx5dDyC`yG-#->UcS)l(+|J z4G6WlBZwAuF@Q~GN;+V$&G-04gHHo$4>~Vz0TYs;2cOza`h^yXB3d5AH*CqfH^mv{UvDmZj}f?xq=p(Q$wqWx#8uZ6BI> zz%=v5+oqYqny<&-+Tnt?y&V-g`}}H4qfJ8((vYS;MF-7HGg=D3&)L2>zh-Rwtxp)? z{Hzgz4ExaXN7b6?Ii}^=b!jXF(Pq(ZkD3eOZ+%9)t4+J7iACDch5OL#|Cnaq{f7oT zyP0NJo8g8Q(rRwaXqw!b-QM67;8E+nLb~f+eVa}}>vMjg&zDsR3Q16pnc^osf#~wqy zXwciJ)5(&7G~oP#x92mV1=$mNa33ag(+Gin@mr#7xFO>=73b94kTsX37)V4Tf@XLZ zLyR~cSWXW)JP^(BIJon8%sklal}fpjv~Jg=<^IIwDI)?YEM39NSvvyz zrOxm zb1xmX{*TL)_ETQ@wW@Re`|?UP^2+z{SGUV6`TzeYuSmZ3O9`%U1!{?c5P&UvNY&qf zzV543jeI&tjIFBL9u3)9NA0#kxul`VLgyUkk8cRDrLLUp=AX9B-yccLmHHTJ*J586 zLNcx#3CRzblLju6Ym01Ck^zyHDqKH8clhNA!}bS}Nt8FOuNlJm#StiNIIpdHF?|n# z7^!pblBSGXFb|Vme{SKN%A6P#{l97=2#{}i`#iGsN0shzdb`(CT|Vj_outwdZmE%Q z&yaBK#b@lje;o^^2HgB!Qad{e@P2KGn{ZF-oCbnTJWT^x7@61z#Db&|ggqIuD|q_% z)Gvm5`o&HtVYmC$UC>_XU|yVUbO^C!_$6GMo4(8*r&>$CSlPdl-vu&EHB0&9GuWPl-0cNHlX zNtT)-B%f17bNA0&!pp9a<_5zj_tQwj+pdvj$iHPDx&@0rmKp`M$+##o+lj1t^k?or zMa>bR2cMcDLDN2mq;{r39qFCwk8`2|1{+g*VVt`Hm5Or{O_iQo`Y?qASCTWqxuwza z#!MqKGmXTa3d_elf%gdPGw)TK_qdWoD+t?{`os1$6=8ciZ0{|j*$_5**aK&Rt&BVS zXyBh<36@!9kE4OtVs*gK`|42lzK#a2V>-DMt2SRm^D892Sk6JOGw5VV<@VmZp$os@ zT~|QK`2Xxh9OQI(-Xgm>zWMNmodxBKa_z@xkAoT&^J4@C00|OJH>T1`j9vCBt?7*Il z5Q($u-11ANTcSARcZe(UqCEt|EVJvMOBVF11QrUY%C&Jpg>kL-8=@=c<66&izm=s* zcAlzht5PNP6&#O_nW3LKVM0!=*3!xcbG7#Ms`c!lw;|6{GNdDJwk$%OaN2L2N_ z#D}kqCd4PlIVU~xlD&>xcq_=?qeeSGCRI|->Sw{fYMc&SCYIO!Czjng=EZ`;PxOdj zsLhtStndeON0_b@wR;5ye%{_gu``9Mh6RWINyX2 za9l+RV?M z`gys2HenvqTb{Ly&t`>{*##qcBoSKZd!iu7x5TaFRg%+DdjT_{`F0@VgOo|91?*LDQnG z7VXf(1TTuH+tD_O9rv%|sw-|7?#r1;E>RFYhQD}4g-#|?-*K5Q2|cfTXho?nctpp$ms zBeQyKvwX)l=s>Xs#GCjVxmMo>U8>*a8_)k&^m0bMPPoFdZNB1uf505&JGtS;1Go7u zYv9ZDewLvObT$WM;I$L#t-OZ66$+Yx2IAQ{M`q*ngRQxr3N2H zn?USikHnN4u}4p-W}sD;{gRcu%S^#}VV5L{D+&pG32dk#KnGZrDKa53P)rcC&rOcY zRjQ5qLMP6sBH7jPwp6TdP_giRofqglaW1eRPP;D_G6PXRBAMAjII^#xG}(q4JZUSO z;IRzU=B$~%fDF+NzAMnlm6;Xlf_&q54m6JvUobQ;#_&c@VLx0bRlp7xItOnyJLdM@ zVt&o3l0;cS&Z)1q7OCQx>Dc%928l^yoIkvbN9ys#k>o=r${4YYFx5_CTNW?TR}X)1 zC67~v%dcT7s|8@}Ci787UXf2xYd7y9`#IlilpFA7lr zXU07$iA7{ZoA+4f?S!aWvR}bjOiG7+Hic40^G@ROC&WC`?mnK!`Im^Uw>Zj>Bj}#c zsg=Is=z8CP=s~=*ehu&7I3ogz`(>f^lYO`GP+4>bU!ps3vOPiHJLqz~bGxO{axiwg zQ;K#!-zW9t@!Ht=D{yY{`mk*8$FckH`pxF`rOWek#K@x~wR_jom=;BlWl>7Q_RZkT zTbD16@AAjcbwq?+kh&B%zO&CQ#RjIWPsevv#g4WYwf-5Dc>ilaFByHpIpam4b;;{n zBp~zq_E(XQxzID|+$`S^O%q#sx17PA`5%#BNcj z`K%$Y$_>h{-{!jw*GjehmT<=cMTMKUibwfKp{c2t*odzUWJrR2D2!qJJ&Z&n-r zM)7%R3FGAnpTdgIk+e*BT!XK+6yd;nmN0PryG>k(?#nptvYG!kfCZaf2U&BDb2ogP zn3)6BN}033{Z$w`HPv!F^9Vix(Ti;k$9MO;5&Q4u&3u!~jE0&*8~U*r!G-$ESYv`L zd-j4?@(Gdbm(${yrCO=ufKW)w8zO{I=l(|UY3ncv@}<5+=42-Vi?#G4bm z#2eooNzDZ|cT+R;TYAZfxVWw4c(QNa+Dw>DTWdcN#h{kOB)CGGA$kU6Jif* zG5&mao+8shmQWqm8d`tQ;t)>B83aYngvHHwSfT^vo`3n1{jt#KYDR^DPF-lKZ(xdZR=_kbY<$^-|>~Rk& zJn;vu1Y~gu!ar1DZ4JBftmL4Vw4k30x^Ly{{Hw-%^h>slJH;HPXxVI#X@%jyc3flqz4XTjTs)I-j;`UdoZ zm=V=*esOZVuZ|04AwnBQ`ngIt{`nR5y1Ee7{-!GJ-l~?PCBhnTUqqkeyF~0M#UO0B zd?})D58v%X?}H>JLn>;Y!6MW}le2p~r8TyavARg$6W<+k_z@<|JifwbEi{`>+b*y{ zPKym$C=bqla^ONGFOl!b>_%l0&D!z(mw-tNlvwKF`x$~savJZx1HPY2wwYnE&J;ah zZ*A?NKzIg{nEfE5dwAh>6JR8Xp6sR`=5(l+orN#w=L~PmKgWeUkjpiYV^Ql3Z9c`7 z*&h4cCHxJ*a!#OM7)u?D)?8i)M^_EMkWi zYHB}z*RbQU=D}v?W<4lTSV+Ip)+)fl(hQ9`t`=RnS}z$b>3#Hi=Unp=shnZ^1?ONu z>fRejo6hlW&oIT=n@!Kn^i2EBjz81LJE!wtE)TZc_!%WGlI%pKyODh8y!ys&YF=FB zx_7F8QW>YxvaL{XJxGBdnPafJrW147=T46$tWf+D=nJ_ac%q~9@j35>_1^Nudau!J ziFxmRs(rb?D^;j=Zl@hXnKD$V4kBfb+nha@=Fc6|V(`^DLt~NiSBb(>=Mv>riT-I0hOsgepl=BG-Ib3cyM zMWxnPdSm+7ScrN%J6|#?jJ)^hVCV=$YDzfpdJR$5LuB(pJYVU|S(i$A@y{!rqZVnI z7PCyREB;w;1E6VE`C_Y~O>}W7&;V$Q(^1^siD{RjTa!=Z>ef1P?R!TsF5&o^2DX+b z9!xZ$JZd3I@8iPuCLmlhQ1Rv~oU&CQg$ag#J@$UI{GD+8AN6?C!gD`0DL;pX<4cZ> z+B4e1<&D`L9ifh>Xe$Hg)%3MMNNHR`GntFzD+w>iR{&^w6*3l4f5uj+lsXdX-dGBp zoSV(x7=N?nA@nDcN|(ugeEtwm0CKY*k$`=V&lNw!RO&0C~P0 zAm8ztKGD3d=94{I*W;*=2_e6`iq&DJu;+6I%p7Wk)$~^H+ zJ+ZL;iTAuGewBG*n4b7y`x8fb>lDvCahRT{;b(F>7-=ANjQ7wLTqTM8sP_0!?|~BU zfwR?$im1Qq-N^TD49+zF?1?mAVt$&ocX>nXk$K`FJ+W=g?i7(;)s^?i4#gSU4Z&1{ z@9{g6{F0lD&^JH43A4S z^5ym#(`ue+RoL|&21Vx<+A{2sz2KD6VX|Zy*IUQ(Wvd>zbdSz1?xr)-4CDSe&9rjH zX-Tu*KSb|y7IC>I)9e(P<_x%hWiCPgS80RE;lZBzg`ndu$2{-;M(%r;en^X2p+<8_ zlc-T2Pne&uu`Xy%v-6|d@^Xw6lPc+{85$%gqjBdp-ZP***=v8a*ZySPFsqy@S$k0W zosUqBol)GvRs%2Q?9iHvB{xk`ZfAQ6*N&Dw^S7wC(t!^Vegb=_&t?xjphU2TW+(iV z%NyELtuKDsD-m0(lehZ3dLvA*@K-$yF68Jl5rfUd90cgCjiC)W;ih_t@R@jY z4t5+q=d2v%vl~;)2IrNpn7Bt};U{J@hY1Ko1fVnCSrL0j#J(EdLwojjHq5#C;GEb@ za~Emfk2t&`9RF13`Le;N+Thk(0H1I-T7ew|uQwXI2@xEFtibN+y^J=|T1Y}kV7Kpq z`UdB4l(zl^l+9w&OySbvR`Uy(vXQr0_95z$+A;R*g~2(u()(C+Tfb$0gU&JmqS%+c zVZ5N?9Dz-Ayx6g^xVRl}>(KGGbjPt?L${U%zd?U`iP>qn(Sjn zA6cN4TgpD24C?aehY=9O5!i=gP>RD(e~WAb{Zm4U zNu|ukn-nIMlISP*bp_3icNU?IgwzFb50W>>BT4#ds|y87%v(=uiTO7NGsf9JMHb-m z^#4aPL15-q6v&xdC;P7JwaxcVy;HF)KgT(oKOg$WHw{@f*>`f|jr~6KUDl{?(<$ij zJjV^6Aj>dT7#16tHI-S(k(;Tp5nGToVhv!iEG`THd-K^R)19e4)Xsmkx5DMoX?QjY z8NivoOSc0dbW&g4L`*ZrnB8&>-%=%iJWvEBnUvILaLU-Rzq;hj~^frxu!c3*Af; zlRbz?B=COJH+-q{9CjA%<#6D$ti8;y^j@y%*Ax=rWL=;k`XLg+(bs7b@}P!P)edk& zOu|-|#3cBvRw9G~;*pXnxBG#Sz_#f|I;h*z!!gH61;uws+|C3Y-ih8;zj^bBi zj`&X`u*`S+aaf%q<;y%?6b&@9s>Gj-G#6d3oy?w3-nhQq*@wUt!-2fn%cdaN!Y$2XP}v%w zRZmRwXEE0{kGWF6#4y*)&<%5CV~htPCs>oOaLN&O&2CV5d*R}00{guGEK`>B>vG72yv>rBtdHFq-C^`dd#U>Feq?=vYR#A#)W2*llfTqY{n>EGj*P zyU7yY(MHsE-d!w-e}kLy^O*C_Z@O;FK8SZyC8rdn1@uD(!^i&DefdeKzp$m*`FS_5 zKMD2YiOAq8r?#6%w)rmE;VVNgqnky2)7?x|HzU+dJ0JJWyRuE}RC%wGD2ypWz;E@!;xZYm$XYYemN=BG@)br>kPd^6uGx3}?>%dj3Ab*c8Cj#GDr8%ug1)lp zTlsVI=8kr$n~K;D&Lr@5zH_CagMCiz?Wr7y(RlXbf2(60xxRVV zXy4mGu&9h+Yv-t#(b^d9c;|^S-D)EV09AerNakfh`s5Z1;-OZa83AP2hyfVx+d~V3 z3tb;UN$Xd&Y%82Iu>&=Z@a41~DaiPBmz2mCxJyc8FgXTi0Tt2yF2rk-+4eGIQsW=w z4>^sLJwi%#lgWwbqh3~fHu>SkF3?3r+Y8Q#sJm>MeM=4yR(S>%rx1;)@=QXQSb!l<%gOw6R4bH1 z82n#MNJ&kRMY?mmi8>o?v5#bDs*IH#95PiBhA=#zcKA6z`9#}XmBP5`yzqxk z1?z~H#i-4Kx67m6d#2fB z`$90*ZMFneY2FI0!CW>Rr}lRWt-h2xeWqE!pGc^zq#k9hu6s)b{wku$t4opRf!HC= z(TMxu#O0Nk_4y1DIXk=1)N$HDtgf&2A@-_tgEDL3(MKIw`;Uh{T%iP5fB4Bib4Map z+W!!-&o8680sHfeh<%$s9N$@dBMRBb;vvgW=%bW2Il^c->F3G$%g>cOHe_|!_lLFN zz^WVn8MVJt5jkp0xZ&;mXx<5fQBDxk-j4MPCuUQ)ZFXVHKj_m)?(v(;ig9ny+i;h` z5dDJ)q&~6m6jPNkHY{p4IbX%Zf`EQ<#LkNZnre=qoDJ-mX!FtVZBk7kmWj%6!s6rW z{67+Gm|fU9!%QadR*luJk0HS0ocjE3i`DI;*itYW&Gy=fkua0#*GdrGqlz7n9U^Vo z`^{+ws+58;mc6?j>RK~Qn7(=U8D)+okcbQc)w=R+qDeQCKTYUV83ZSpb5^%qPq)=3 z)+KQmZ0;>QqQ=qS{V}L3v?1v$SQur4+e1wtQ;)D}jiAteHInFsxhn$H_`f*Vh_y)g z4F2%e;`nz9b7GW-#6}euSsWV>fs(fNjU<>xuUKA0N3m8FhV6B8W|g9QePmFnDkozP zqS7!GPWWG>CV2r*qL4TH=DlrDpsLusR;wT@o+xIw#V*w&7(XeI$+tPPu*&3HEN$3! zhYUCZR$gF_B_IqxI3=t4O4Ql-F%Pbql5yx47<=ATYFwW4c^yE^pRU65u(Hh)imNvBT*p zSAgx@@tDGvKl6}m)l5BVigY!*K}kL6Ix~_#v_}cOGYjAd?my95zgN$SjY7RA&Pe`HO9T%x0ci?7r(M0D6G@#&sN#DC3{m|P@r23260+KghaqPmhc4O2^%49a&wWcb;*uN(Pc zOc<#_xgsC1Z+*2Nu=g>WmQfvNI22u?#Ra9(Xu8*FN2m|EvoKmWlt|$_!UgWGiyiu5iP< z@RFCKdAp+a$x-`Th0aENu~zDQJkcN3aHRG&74SMk;WB#V5a&tnb~Nx&>po>}O8xFkKz?KOwXRK+wY z=a`=6y7t?#H<(W}@huIvrk|N|%SGT26GNtenq9+EvPNP{V87N8{$NRYDpQ6urDTFv zcoL?!-(xsooQwZw&;9P*53%E%v%9)4QA^tltYIg1JfGK|3TE!KfAkm-jo4eN?Hh~p zTJ0zGv)XOIgfo3c@8t@i3*InWQ2dF!`yh*_}uW04TsdX7A=&N)>>f1aaY!KcP$&#RBR&Pz>_=;e7(I- zJ?`_6$d}JJ+nM^Xc6zfCxCY?FLKxqSFm6E(Oaaa_a@gG#M+g+5Vdz>*B`@Gd(QRkp zBke-5X}{f}5m-I*QiO1dLKH1!h=}cODezOgh{PGxbZd56f40}&7pA}y5&zz%>t}d6 z-Syd7T^j-|tSA zjrl`>Nt56SLc6q%qPJwP7}SGkfFmN43ttc`$~@q4iZs7S$HNoP;qi^BjAm=Zr}>AFL$#0_lwRnB-bfHQMi-WSxKW4GxaVQ@R#x_hWc?nylHWj-sgYUbB0 zd6}E6HCwFmMOMI>iMo}4yjl)4jUskB<~^3Z*;T|^`&fTFR!f5@;#~Pt z7DDF8d-xe4OfF2A9GX)b@${euN?EgW4$t5(5|VEhv=Y;i7YLBPnOUuLevGjp*qDC? zl%5$uPbl4sl`+k2kS+|jk%u*1J@*)CYlGElVu;6Bj99$bP!X1#s$*1XPL(Y93_NiD z_ZMKBQ?0-J(_%sj6feV~`&DydE9k){oF{pt4ni zZ;ESk>!13Ae#uZzr&lbNSX^Q64*ctuo_VRj`?H~>!NN7ECN_f}c3Z{HfUMZD*)^$- z4cA;FoXRa>RG-yc8X*UE$aZi?q&zAmflR+SxKxnfl0|a>XbE8pyI**Kb&jETnorA^CJNGx1xyoF1LwAW=~~?JB@;;rOdd9VH>)o( z1`m`mkB}bu_W_t&;JtgKPyRqwgk-@(07LgHFk?(3cT(n6V|>8SV>z3CCHbTz^>lBZ z)rG0Nwa5NIGJGXMc3`+TX#c<^)@Due)>H$kP+mh2CA-8Bx1cfG27TwFYQYE=iy$il zEXQsRCND^pFR%86*8~HLZaE|>MUMYNc7D7%kpF{NNvb)uoLjTs3oMHLNjp~!n7gigNn#@oqo!(b_MkKfm7ZZ$7s9 za(w*S;e#SHg+3`ZAF1M;0sP7vU_N>skaGaP`W}!okPqKL^D%H>&LE1HM?w#fDf5rM z7a5~$BJ@7LoEa8AK#(D{gI~qJdeL!zrTF#mjiXED8%TtD@vG{)#oNANei7iCGpF&9 zTNR+32pz<)oQCT^yyGbSI$XcLcloT)Bw`an$LiNrkN)}b&HeawvVJ*<{G*z_$FDO1 zZ(`g7{Qt8^BKjynvNY#a7)|C()eNcoxO-1?D4mZSS{u$u^OCk zgA->$DjLLO#XnE`k*WXP)@eH!eF*kWCe5Po+%`k6OVN?r!eYu>Zx6?v+(iC>n_86vJY;QTQWG=p;lzHOpL3iUP0-#^ZQrjEh3r+; z<%TvyRe*dpRaH|p6TN)t;r5{Uqm%jbiLoyXB`?e!ZWlcmPAv`sZS=wN)yg+b6o(sH zhDET|zYv1#9?kRjyW<%}zI6jl z^sL)sJ$3cAkCL;X{Ng2TEkMSPd{dmjvsr?PxyC1I+@Xdh+W94;-|I?BYI{8~Sgj6!r z2TmnkTZsS_iu=K=Ugj?B%i?AJ%n=>vD0qFIr|v$hUTy#H>Sbj#>k!8EHKTN3X*8QS2+uZzkd- z(p*gX48nfvG4VFv>|>He^UPq^ZHd3>OI$R#s%9Yj#md8&>b@gBTp`zGg{i}sM;n%! z7*!mXy1+VQa2Ssb942m-55z6LUjk9TiwA| zzNlemzBLI&?!LS0uNsh(EXuL8fO)D(m!QZq+Zu{%7KW`WNi4pk*sW?M{A$-h_pn z@_X9Oj`3_~V@=zp@Ni3_BW|MLLo;6Cd0W_d`oWZ{ZQR``56e#_+U>6-rgMq|A>hL z2tKKkJi3M8rw^LB9G02OoxGJ64*4|rpH=^O8IJR<20sgSwxl(Qlf%l0M_kwlTd5R^ zp(p#Hn~mT|Bzg9k41wt6o7z2uw?&SsM=SCr?}BiOh#EG-i7Fl03|X->*m^>Im(Q2{ zCXXhIjMNie=L9)ov6^XBisLLd9LIfK9H)%xGQQdhwVfPM%5j9g7`euMWh2g8r3CWh zZib!K8)_06T$VE4=DZfsp{9_u06uhZQmQd@cuxH4qvp)H`q)pKLS=sLG=`{io+N!b z5q+PnwF3d3IHOQ6;(y*(xCumSq5u%q(3syz9-VJE@DVip zGq>SKY1ncbUey>{uZFo4UFD2*8~#~`hJR)ndhCa$;bp(`8a|Cj(4#kBcTm72Xsb}P_ya}g}imy>?4BeZPU8{aXV)a&sSQhhBys zk#BBj=U&Gf~070x_iVIT0t_siAOk0b)6;jR23^g z7Em3dX#d4bq@&n%`hjK&5dAE%>q9dM(1(>SV;ZEK$QI&vE?{6x|L=mX@T|MnmhigcAc6TMIv1`OVq^GoSxWc*mQv4>z=Y#n6vwKrlFUts0oxkaOZG zx#g?p?ova(JICo3wrpSRDSWGT9}1@L9_HTd;pV7$O{8xsIDl94e6`PMz@1+Gje9rW zS1Z9fH1!qr9-RA$8GnrT3Tnm%r>--TGGm!p&BdNI$4p(MYiFD14z^dLJ2q_TC3_rp z)bqlL+=abpZ!wpzX}-!TbPE-77Ebim^{LG=HUts-8k_>%E6Bbl14PigM`BR( z!u;%eGD?_RdAda-?M=!~;l9>G_hfF#bSK*dudQ)(2Z)(FL+Z1&v37Z)G}Rn$>oc>b z%L>za!eLi$5%P5uDR%C55poZNeHfbs2>a`Q?hRpE?==Wp^y@Uj&fqN|>;3cSSC{o3 z#2Ys=56doi?M+@cRyO#~&d8*jibo~~4>RevcSe#YJ_{d@+Aqj6=!aDzFyDZcAE7b{ z+f2mni3I9n$b(UALa-;|Rs7Lp{(?w39BZ{MJKM0Am_WJ+>VvBZNt1YQ%muYgc&MUC#mS09EX=t-=8=X8$zO9^~ z2`Gw`Z>QHtVAJfcMUr1nou3>uzsvsV?o*1-?J*3>&)u>?BM2rArRr-JBM8Tv80f#K zb^#D#-zQQhwQSxp$`2DB6F=*FIT%p*jREBn3@9U|eayhb(#!ZBJAhB3{|3e8*>}nc zlvkfHpJv^W1s-6Xb)XLdL2{5$q^0VmJ?b*Qb&;3#?YF^4xg7pD4?MP`$4W?8dWQt9 zhX!w^m+TnH4v~>UVI!Z80Yd|uJq%TaAF#}i(yJU?99kQ(1&j>t*dRI@PAyw#NYIYW z4O{Yjk1wj<+#^|3++$hw@eM%^c;=K>Uc}h+GEW8@b5CqNvqSvUzQ2!w$TJ67u62mB zXc3Rjj!<)cpai9}5tF0k4N~DIzb%%Gf{G+(Md<>oXY|I+ zkv8^W+d7wW?JD&wEij%P*5@N`~BX0UCzm* zcueg@)v|!7jxaVJQ`M#PIlUy4j;OC*zKb`^tqMInUYCCDUQ!fiQ~uzb97Pvh-!Gni za3U&pA+Hd{?0YtnKM`^|Zy8M%VNO@m@X6d9-+lFD^GvGuJ-Y~}>u@_#TY6M;!y5+# z6TO4JXGi45HxFyrT-3KAn8@Y#s2=e*hBds=vv0F^Kacx;F(O84E7m!~1NpT)cgV8% z8&wGkHRT?i)0Rq|or8e3Pyrdf>h*osBnAfO4ozWkul9{xUEOzWH5WJuG`GR&5#L-9 z?7JwD$M3N{8n)!e-z@68+P$3z+v&SV{aEp>$FFNkpM4-I}; zzvnKQ&qs%tL*u$s^zJlx3F}kyT4sGFnk(*cx-z4U;a%wc>1!O(dujO~(L{+V0GfPB z#d2k=W4_`(zT+Z;D@gejuK6?SUX^nRC19;4Eg+`$krGSv=^l#G%TQtV(?v9jfldyMbk?DxI-AonH<#&``8c1I9Vp|dsa zQUx}2#w^NX$GML|UlP>SOAJR78&2L~5c}NlLQbqM^$j?WYr)bwG2%s5Q_w_XyFPj>l<%l{UC)dqM?}Z zrEx@IPE{>7u_w!fevISKda9j%rAjV*U2+QJY01DhJ;@C8JLAJ{M9@9pJ@wVB^)l

      z*Lk<6*1MnN2@oK~gOQJEj{+ z3xj-SwP$ehMOLB9@g3!k@A*%3AHlrfO}=Hus7nkvd!%kBJebRr(%|s+GiGRQ=S?>e zNwTb+ZT8K$D@GO9^)>z;<5(%mkz-}G(B_0q9rs8Yzc+4Ql?Y zM*ruRVHkw5c@22%ABiJbP}k+Hti|SQ8eYQ1=3SZ|=;zU&X}5KRt={CZpSzF!d-R9* zf3z`cKl1xtuiGx@`{>_yv7Zm_^nRlI_rLmR7w`XQL&yH-cK`lK1p9Wx9L9TahxhFz z^4J|q>F_mRWe~cmM*nM-wKoy!dlXlDpDmY zUNR|bdQS&VCQtv9dAFtr1oti`@14Tf6BiYopm(fP$+u_^6LXE{EyZC7`x)_$9uH9RA>(&kC)+(-~N(wT!Y#e~j*VRap zv{Uu(SQI=nzW~Ii=j8&3^hl9Jx*j)N%1qdDR`e#Kz@5f}R0h-6F{zRlUes5?YLvNn zaTQRUZ=7iJ)YmrR#&AA{diBAZtp$&a&NPX7ud z=LXl>ZuxFqDwF%la5;{<&#Z=2UeIm|+OHGXRe0l#8T;blxJG<;niGAKXMLtsOM9zW zUC&zua^*NZMRhP5lERZ!Zt$Q~$wpS6@V-<{Ut!|wGqs2tNN4dXzmHA`l=+97@p%!z zB9bgYrHEsdkw`r(td#TSF=RVn)u>wW#2{bl-=pZLQ*eud$gY1Wb8c&zN~u|d89+7e zV(*+#oXr#6z4owxY!_6m_4e4j2Q^(2;Vc!9k(hl@kkTRbFxf=7GLpPWOMi4Bg^Cls zqKVroLqq-%N&I{cZ}Kr;4K&SFI}%f>>&%U&xexP$K2wvM=03vLT%Nt!5pI<^UmMFS z$%0Yjet|k$g{xRD$elGvn+P!=tomFj1bJkqAoW2-l(#y?Uo!|+CIl-+V*I=lK9mex=nA9G0xHFYocueH3pWe%l~W~~^_$4aIY6Cl;a zUhixl&Etv7%e0{1WAzmvs1e*fw0#5vI*))QOPXF8-a+n7WPfjX=@F^I7WacF{Z)#G zX=sCgxVpchYqE8J1jg*T+o}zA9c18nXJO2csQzjQ>w&`J*Kp|dr|Gwmb`~8g@iIF~ zF(}dUR^E&xj)^2D6O}%hxJN=bk_HLbl5>HEYzV>aT^>}8B$-Qn9k1)cHjuUz>L;oEr^7<{|NL=Ws2zCC?jx!neOh zy27``)6@7?Vn&m}w>$K>hj0H&LSY);zM3_H{}jH_sTb?@`S`Ybt?X#|0lHD5`UT)a~2)ZdyEvbfov_%sgKPn{#A>2QPz7sfo5M(W=AS8-VRS80mpacTE6q!=DtzSJ_nB_DpwW^iaub!F&wv-on zs)DC>z0lz)8iXLGZau1t23NH|Y8q=L+=d)H1?YF?Jxa_cH2YnX4_j=X~$W`~97j*eZCxfN_*9_8M`A z;mYrrSqZAcxXLg#b|@}NF?VOyYASIolbhJo79UmWhAz1W$g0{nnJwO_xOGO4h_@RY zgr8~qBRNP|y3eDJ3$YO|pME&zeVD53jwn}da(G@fM_4yj7v|=)4h-pV8+!$?C;vOw z2~OUflF~qNZp`lqEKbFFDrj3giW0Ued_ICh#U)au&89%UlQlD~uekF~YlrqmX@!|8 zR+{oWN=W`&Q}*cpwVa=bY{u$Tm_Ps}O{F8(Qj6!D^%bLmo?klTJs0Q=VSE{igsBDX zlrc3Xj3H3c(fEjs7RiK_B}+o%Fl48J6egN+$f#s~FL@*mhy-@eEQr`|xAu+N??%es zY2~rEm{K@dM7HL7=kHi5qV^Ib0x;HT<`)Tf;pCu0qvcD8-8|OHd)fJuxoWzj^VY9w z9%UH+B!@|QGNA#hoY{xDbR5u5R7uUmN#VqGBtl-tV)P372J}=0KA)WMn7F>Us_taP z6irE+2hBFPqQe$2_#t_g7t&6obo|r}g^CRR)LXEUkK-IaC*t6h;Kvjhu8?}6m*=Rj+sFyCWKVlDM%`_r@NgG;)7$3#Ws;4 z<+~8TSu`rAh#ol)45hM!`_J1Co%j>vdt=nzY;tBk zh}fsh`7T+%GYprKDcTUb9JOE^ohN6Nu#~>^pcSL?q(K| zq{h`ridPPN!m$tWn?=CaDdT6LdkX0)XYC3PGO}Jfjm~*ct;H9QVTh|W z#E14A;ykLix%dUVW@%AOQW!X4BJy@IF03Q?=ZNe^+=rK(p!lZteB3VK1#ND2zB|>x zD-(QORX4=lAg{;%q@`j_q?wxaN|k&{6}B|2^r`i`Mx*e?!-0G5I_`Ak8&m&q-m5hy zFO>SX)z>hhkT8ju-?G6KqRTUvi*y;0%v>H*$Yw33s$uN8&alYtT>VS*!+?}IX912w zswBc+M0FDv;UEk@nNFz=+l#_G9C2Zh8<;Lt_pH1Pvc!ier-iwCkJ^~eDS(21WTCJ3 z)$S5^N?r-o8V%L$`VD)zIn&pFrLSrq~ck-aID4lXW~P?lXc_R(L#w4pAYY$gvS+F!>5;*nCGfrWjLVgeAz& zLjQwW^^XL$#0sMJ?$)nF?3Gabu>F!#f3Ro;VPEJ5{&+g@m+y*{w-L-xXo+*dwVo3e@DIjKL2$o_Z3;pg zMrCcLWFU*OMk#*~iE^_3nho@bn%zxu+wKm~Tj6|oU_11}@pm^z^4g-wZ$Tj+@gRr3 zNKP^-0j_UO!UQu{ICEbQI`0TN#48x+e7_w!V_oQQXNg0JJt;eVr4LjgH>d??h6-14 z%}ddbzqxs@y0)Q92TYdkGekT&oJSGU>6}F(&cnQJh6u}>&;i=1lKD&7YtD}sX9GQh z?>eK*WQ8J9Vi6^vV_T&B!*IiHHV}R*z^5|f&lzZ^QfM+wzS?adOvGe)2;c-Z?d0Ju z03HscKv!eDpXTA}X@dl9NEf&|I(gdGaFRnp*?Y5)k)jEzP{4I`qP5f{dv!RlA$C|8 zKj&4#f<$j)6~B;8-9Q$4b8Jg%#0spaIn2=aPWQPH+oF~t7@wxlPz_9HB~_@>^n@B5 z2;$WT)0(QQZ;1WV;I4@TV^ghoP3kg*&0T03yuEl)281T{!X#m2AbC-c@<0ZftS`8S zm_C5widOlD?U3wgJ>@|XLa^9Z+hQO&5kioLWY07t7q_GCp?$)EzXQp?YiC08l#A|s zV_*hvk=;^42QP66kJwmj~MS4L0^PW_9$poK$M+3QWt5!_+l3(L*EU*$}AMf+Z`tIDKVYu_J4l}nHA z$|ML8+GEpKMJ3)X2YLu~QF0VI65SS^#A?LWMwjSrb%}0smqhm|m*$G-uJhF@aM2~Y z)XGuzLl_^1=XY(^-q;19(`G8EZ0<}c8>5|Sw@{o`RG z0Ljs%oUv2tJao0Y5S9F@bZ#~GfUbE-#d25#`?qFIx>}5L$n4Q#q#tizjKSRLxESBx z*!5z3k3HSa1iM4!iinK`WM7Ezk^4=A#h46PSmAtUKn9>?BEr$+3B5Q01uBe8?or(P z2G8LIrs_<%ic~Rlopv((W`;?*WcWp=uK|%^QX<0ygmS0J`DkDlWcYoPXtjT2*q*po zGOX$joyc(SdXeFQ&l<4r1O3<+ppV>7pc~^1Lc zioLFk7-R>slq$I%YufY9O;2ZSh`sCwNc+Al&9MDk8joU2q+8)!&Jm!VNN4s#Mku*z zuz$$1aKaZ(K*SQ~mugwGEiffvF2IOm$!s7iPPQ@0+d$QG;w*4 zC0Vp>|Ci*7%RhHXI&GG}KdmKs=gIVvbh{o=<+Qon7CG_FNcrXnDN%@v;f7Rx*r)|? zTwheDCceRvgi|PvX*m%itHc&XN0v)Y^xdg|VJt&^qV^7qLlNJItyyAVQWs3LR#uLuhE<*=WipaN3GwuF7%s&zPF0)dtr>lm%{<%bpFz?z!l@nj({DK3fXSV$iVVAA6~B8p{-H((}PL{+ghvGvAw zv&OmX!&IvE7=sr}C4D^o9&nO05*2BsaGaRjD(6>R24j4llnbaYE_D37t7|p}gK~M4 zw(eERrJP~2bHb(4CJ%S3^L!FX+=kb#2x}Tx-!7Etz!(W;sgmD4DRdb*LEg(hvglpu zb5*A7$u4RLn&g1x(emZtr}{0fDAIpnEO|Rx!pTDipwsp0tkW&$wsbnmAvf&eZn}DD z__;g2S*rhX!&2)mXVod<1Z1(jgzYF|Mt5&2A7Blcei`*Hf_ev%MyW|+m>vd4vAQKl zEfIUOrv(~S8K0LRv!}G7l z-c(0o8j?pM1QXV2P=Vbw$0?Pu{B_G~I$0Ee-#ZhtI%Q;z> z8fqURp03~0-aeCTiH(%~u|hLUuTN%vFE}bCZ`q$vlZ!wDzjGy$=93f6oL4z7UF^-3 z@DEyWO){7x74Jl4m-b1je+&c)jX*v0cd*x8rEy{NnPLhcR7UM-#o*KWbgiC)JTo4a z!x6^$(l;7tjP-Wzog(LniWSLhx+zAC9?h`TR2!jEL#dLT$kI?IpdXvx4Oy4kN7tpj zW+DgankB$VfT!+0Q^++;wIfUi7>T_QGH4#;RtSuO5#j4X^A(xL42HB)j63B^jUik$ z>?Vkk!#wWLkq+!g`MxnQgb^0Zzh0_pENy{kkFYG`$)ceW?kdCOtKIWa+>P!&gdHc6 z9Lz?4gN^=%DMxBBewA}gPvT`5&H}SiFI(mJnUR?$l0{#$8s1RyjCOjNmAK1HfV#A;X1qOE;Cr?hlKzOMrG&&fhM$D#?yv5G&{4nJKyjN z1!9Pxta6sTz#Am;X6uPzYNM5--{Fd&CngTaPVt%vv`wELChVqsC&vzo;~Yh!Dj8>f zy88_XGC$xd9y^fv%@-mwL6B=t_^fn_#|u7_t|K#*IbD_zVF7|3&ehZH&*QTnk-{(xv34E=T?T6v+{awx)w3Hrvf`- zcX@g5X6v%A1#+{MQziZX+?jxOJ0Iv99;xLuGlp;!^!|?h5{>kJP}n_B{?y^I3>IdrNO&gqP+_0&|! zYYPCjoQ+p@>f%Cvk4g?YSp+HXWz)ehJ(4&_fo&98oFc|H(YV+&Ghn-kp{R^X9(tNtvu}E9HsG6jld9_8n&t9a%LV;3(EI?q#y&6C9So!Oq*TdCfAE&; z&w4wn^&j%sv|Hs_7z(-MC{|CZCY~#?mqs6oj$!rhhp6S$2FsJkD zFO5&O{ z0h*qo0_0EVUXGtyHE#Xgt5Lez*Wg*o-KYFeSvjCDM=dK*Lk-@oz`y1ASHl{X`yv{u zD(sG5le@3*AyHTrwWIIF}hl)*b1;Rz!NN}LNlW2QGMU8+LTpvf_ z>2^?nykT@%Gl#V9IQm)Bb8%62ojj3Q4=O8l42F~CQkiozkr{kjbB$k3V#6T+3t@V| z8*JMtO%b01or^3>D0v6c+K7}=WJOALvS1JRXT8L*Oe;-Nip*KDpP$IWxV^3?h?9l0s6Q42L z?Zq-40{=Tsl3^q;2v4npx9r>|pB5#pVzLFy5N2|xTPaI|fX5+t4mGH9ScdRhAVVy`^rOpB~G zSja>IOO5XXBqpg(a!wI)ZZ?XsD}>BA_2suf)rZ|g0m_Pdr30Ahm5%xW>}M9)VgIo0 zqNnnty@Sfj*_Y5#HaDhQ)%QYuG3||g*Qdk2lOrC!_7TYJnD&Nv7jDPEAVC-Ty{H0x z#xCK>ig1dLX5RK3yzio!({ND(hVm)PmY-z>I4ylEZ-j7PSa$|4=IDq{r(-U$~M>B7JR#@N$T)+Yy_5bg>-v3iS?qdI6 z(x(5v{HTNe$LF2&KkbwHwv_$fgPjREGTA$2GCTZ&SchM6`u|#oPZ;;#=x~QXX}80B zf*;!L@H_q>9X<;e`g0cQh`7hb>vqXe!eeSH-%~mIkqD$)>0R(YE}ff?+?#1><)t@+ z6?y$R=1-~&$WZ%szFzmZegH`$M}IfsyT=RlZHOo@9Q{$@h>r+y**fHxbS|sIw*3HF zGxbu~EQcGXd82y4BRwIW8*tWwRakkF#FL^D4}4mylK1h_Ii zZr-J?((~!PGuBP#2Nh}T!Zi#3pazUJy?4gu;yFCbT4NfXt_LB;Vb_3a_&H-o!htPvPQlM1-VhI^{3m?+QQ0`P zZU_E-jj%K%%w-0v9o9jZ)yfmNJI}Lax~P6nb2bgne-{5%;on++WIi-@v~S ziEk65Z&cQD<3b=Iv1apES#2&1&3~4ZnROOi1fXivTjJjYGv@$}WEFK_?E{0IRezL@ z+-!WC&+uPw6y)21LvWqW0fDbUa3{bXLs9}PR7rXmjKwC8?XX^Shjht)4PBr)3t*4; zeoeRe{>F!}sL<^_e`UAUbnmEr`~t%)as|+8u+TD(>RSM`u*Is-ntLiubR|H^yJ%k! zry_04@Z(&eV@TAN)i{wdn)z*wNTJ=hfa$$k{9!l9HkgWvCcXD$w!x+?+*pH4+)Oxi zgHdoHiW--BxkeQJrU4J*0`|*dJD)Ru4hw_NfAedL&xb+*RaR|m2nm04CXZ(-rCdWo zvv4sodK7~eJlx|S=5gzO{Z!#oq^5B7$Ofg^X619%gdf;UwPwq3?W z1)NT?cnI_|MxERpEq`B(@}^@g!V}bSnK=H;pI3m>i3o9TQBp7K#e+?ODy$5?j|GyM zot+R!Hg~!)2gs7qKx|$IE2%&gws?yj)T+)vWg8;^icB*^onF7cD>k zN#URQ>M{qHWd3;%ICRcGpLh<9f9g0QbjJygwa-6wZRHR0bRjKbxcDW%es{9`iMnRT z>)|$ux>obqaOi7^^VwvW!^21l8ZLeyHA5X`PH0$9gQFf0j=G($Fr9JKUX!E7 zjEQqpq#cgR#5X2Kp&lDc%@NxNvebp=SJ6}eWWiTrk9pR(W=099xmJ5 z!fz8}FLxPZ@zO`X`ii@=u>Bn1fsBb0-a4FEPTOvy@e>RsNonRIe-K(#{i6d@_ay$Qs*Q4(dJGj;t|GI=P8bb zeHiT2!opb%XnBj?OiLjADj=21hi1Zt&?NV5ltLLY-DRMP1cQ%f)>V0=aP%D$w|u_ z0xSom3b35k&?94hTI<04m*>+>3z3yHLI3S^rs05%)I3yn(Rl#1aAP@|6I;7-eB0@j z@!wjGi5XXz4#a&?61;32#6r<$nt*zQblyT^9ZhDBfS(_NWn>ItJfwGP-glF27?4sCqEyMKZ8_O<%YN zV?A`~5KUjoQLpJMJiNe>WhnjC`XIr7DVzx5Kei4UMMaq_EqE?=V>0MVw6ir`N&>C> zRImfqj~QnxA;#Jv#E@Bewi~Me9#vLXKOS{QGSArncB5D^J|0R&gqngpHAeqYs5p{2 zatiR32b&7O=l1_3K6CuEg!oLDWw8E~{3tvq8Wxrsw7o>y;y5{Cw%t1g+m+b*U?g)m zPy|~`5yc;HL|u++)&L<`z)LW%8PUvs=t0RSL_RUYh%xKIK8_>RqnZD>AFt`XQ^IaS z0@zFxhf6`^?&^GoiRH+Z=#g``5;Xc*P>!J1BQ z%gJ!xP_^v24>-XWW8Sp*ejwiuGv7D!J;bd?OJ|-Jh`t;x9W;gLy!$NfPFX|gXz;j8 z3K>6OXV>Y1Sm%z8hbMq!GxZOM&v3{MNRT8Ayf7kF2f>Q6$u-@0Wc)qH=5{PX&y?eUMq(?TkcfsD$r7}Yr3D9%5#p{m-N+&TYrUmN3} zEjkcY{Bw=ma){o8yTjn0312Fw6MGnw zKa$ieH=6kn%7D{GzexVM6&r00-Wtdq$e-mg`SU)~N+Txkv(o9@ZucjdDp9rZI+kGk zV7zm1IZKPfYYIt|V?2Z}6_oKXdoAFaKu&o7kPCpI0u!v0okhqXt7X$ zq->IE0BDhGeEhm%6SQ!7Sh0yGnt6`gl9E^B?l9OS`}B6$1T$S=7{$yR=uz8Cr{DoX@xd55q%KKzglOKA+3jo57R;fA z;hr(8;_-+u(9+-6#^3|^j^0q`gXMT2Qlvml$hG+b%5P-pjC%(v%sR#=IFLn>AhpGi zlM>Jy2J|qOBp?UHf&Pf;P1+bvPlSc+JKS?oPBFH4M7rXL6Arefv1T#$p23x8qj6;h zj2GO=stX~PXlrlDHR`!q<$=L9fy8W&?4Ki-kaD2jCUgE@>B(~o^%?B(BMziQ(`RJ) zbr{`w(5YWPj}Om6)`-{Uf$ns#WR%^23}&P`WnK$*hQ7 zU*Zd2kj=iwT#Nt`PQ|x|632-6>&OXnd$AJ$KEPlusgxn?C|Lth3K0ZyL<$P_ z$3etLh@OKL#`zWal(a?WbiM^c0r@6l96{)yb5j)Q4b-a>-hB-yDJ<_1T*L`Vf|f7C zinLnoSLPsH2!^x=U7YrEH{)hPLOX`>8Kj3ma2wq~GGLeWS}#1CR(aHvpes_aZuw_H zNBQ?9!5*VNZteaG#x)f@Y@i|Xy<0wZzQ_*!{d$@lM2g{(A9XobO6b3g45AOu`vm`G zKXVvG?gXoi&49NrLXqGT6uud1^v(G6Gz2CwM9CjUv{v{gw0#nH-AYGc9S}T4Tz4+d zA_>9;v3E!FG0p*#%zdpmhG0Sw9F-w|IL~lZehtTd%rV(EV%2^wYzw9g5mL~}s`BkJ(l9yRh`(zUeYgFYTj2R5cUT~5l7h$rY8Q{7UqZUg5L>z=K%|g>B zL{7&cl3&l6uVFKzPlL7={lNdQ)!8uT6s>kByDcrPoU&-^Dd;*-9A_5CgUnhztB=M9 zWW>C6@E69x_3_Qof#&AuoLgGojAqUUlgQE0y^X~LrEhBmM}4G)PlQ{j##BV`p63B* zV7MJ(4Z)%VXKs&%Td=WN9*FBElwJ5a*7q0z5E8FJ*GCR4cs=G{v%z?ExM?9GeXup> zk0-GL)8(=~*yA68h0pVUATz=r%kiAt<-4?n>z3j@&P}^VDIsDDl355IHe9yPEtdhQ z*5wgLi4^QH#$3!s%yg<_egGY^qM64648XsJ-FyvMue64$a@LRk8mdC-2Ca~VttUP) zm^?!K(NQM;U?Ob%ALOPn5^pi2M2uS)5)o~fadtLq!2ce+@F2;KC#xGi>jljet8a)B z%$;x>z~J3tWWyJNv2g^V7vTHx*!J%QKgbNpvXUH2s1et%=BayV8ky5< zT|PD+Mrr!Z*uDLC>BXc)4%44vR>81h4pa=?4-M^cGT({fiQ0q(oAEpr;98`|8ai{} zLk>Q~CUP`-#2?KJ_F?j)|FC{A?}x^eWXjiHnF+WHsls2@iP zFfG&#Z1jllC8`MZu6U2_-ox-qHV@f2wDbdX!(#Yl2_>vs#4LXzXsevOCLXJsjYm#F z_j9hoE7)ogh`@YOa{M61At*MT)S8KoLW(GR!Y{x6i7$M$+wRe^aCe;mcGTX5$zU{& zVpah=0lg)_xk-X#!Kk^u@Z~E4;R1NoIsWntS+yGvkiqeaIO7HX+}H%bS(Ew535954 z=Kx=pFFXZe&?9!+{1CqxhJU&E=i!NT1M+dc+9muFkFLU0JXXF89S32mrE&QYew+gg zmqv9#S~@Vs%QOHZ)$VAVs*U*^rh)J{p#=V%Xiey$o?Im%-Uj)+3wpsQ)14?oFPbOz|i*WIU2W9&>fPD};W-A6|;~Tp6;j%(qYSpC< zm&gRSahsc3?jF^DkhN1JD?BKJ0TgkxLX5D-8^&dvi24yI0rbJ)QbaGQ+SCild~kyc(<+b!;CWob-+y&gJ}FRIb@?vfget6k6O#hrM~1En%XZ= zowC3a?GzyYFRM{)VwPn5TER<0RV^;~uUlwY9qz)*HmbLc>e8$(+tg(zF8=UK1}~A9 z_Tb_RPlZR6*JL@lcl7}{url&FW&ZN_=nwr}qXH}a{LoaSqgm#Hb1E)b>f%X6O>QFKT zbeRWo1l$9;ase?Fi&YXT)j&c$sT~&Eh~+w1OoJok(Vhf;$^2BWhhHu zcEMGDOnv?y*F#&3zN_&L-Ng}s|FAAa7S`dEvXT2F92sLV8l`dr8!x`U6}dRIuzX+d zIT>J0AL|?%n&IwZPng`sX}34p$(2dfAP^;mC!cDO-yC-fH@GNp>b|phJ?lq!R4gTxRY=>IW+EMT(U#svT->jH0~5!P7RGa6_=r*aYHrz zF`@p#^&H|{F23Rg?er=>MNU7D78I;qc@p?&U{3X0j3XPwHYdQHlBwWs4tK}E} z^4Dwfi+}lRt^DF&{(4h>@h^XI8zWT3zrIK{86Qb&N|E)$?qWtp?}?_G$l=2xpzP24 zyzPhY7@y9If2fBj#i;uC*%L*21NGadmzy$9F8VV0DEt5~NU?(6MYg!%dVMTa9KvTX z43H{LJxk6Lr%0yhAz^B(GV8ZqZnC^w^kr%YsgZuHPMSWi`}qrV;vBPZT86GdE_0?!(n$(mm#?6#T~D`Q0#ho(wj<7Vx+ufcUB{yANaAAbWcNt~$d z>X(jE&H4p$TA$ zBiWL;zw~zFq!aLE#E}Pg8EQ(&3u)VW%N~D1AI@ghp*yzUZgP5iyMd4&4&e7HLOiZqB83r2NFD^_O`kBI)a0A!|fImwT~&^+Bnq0P_W7ynK%m$!E50QwS&_Ai{m(#UFb(m zenvhPFB5(^TlgVR)dgPIisbt57{?z?0P(u&y;UHF6>7rX>`ZV}qTOVTt(k-rZxlLJ zFgt`Oqe8+73!D^DMsjkX4t&WNE+sVBcN7}R+V&Gtw1YSH<6`!=N8S(n;|d1q*Yq$PL>%wpZy2uO zs~ioun-=!IU+?`3=9^-MH_*##zXGM4#&E(mefJwsejVNq#r=o4p65l5tB4ni-{PUh z>`ZBHA;5`AsaQFznet>;7v#yp+sPkI0{|f6ILd-^2&4aEj((lxQ|Z19&|)UZ{`Wv| zVB|?N4GT}3nTN^o3tHQMni=cJSbxHlfldjLjJo6Bx0sy*7c%i`{7&RNcJaAUgFi?# zt;`gdj!ioSEE}W0@`b0{Ock(8z&rsd$TyoifQNp(rISGrBkjyUeSomk2_ce2t`hunPzI|Ws!Y1Mq&3#ZD{K#J@^ zTI6!Kv1g!Cuu9Zh(|VYjU?a83Z^fWr2ptb+em{7VH6S~h->(KzYJN|U-yDXN-=(M? z${OYO?YO1dhes?^#7hHpKcfB#y}C}+d;O&6y+b>#-Zx& z|KAejAM_)n|6G*cFL2ru<<-Eq-KjqvO~Taw!>x%7+aAAu@~c$*dM4~R{Q}We5cZb zol48<03l3_MP{B+{kYjw>pQCS^>6KMvyo=w} zh0Ni$0R|Q(cGBS@52_pmZy{z2wfw7c7{}b1rb>L++M#{8i1ESyG8WLxRm>r{YIz7| zXKxZMz7j%EG!yS(6~l@+RegqvAXlsLQz@wwtykVGoO&59_VvrpG5e!oeeNgF!;x>t z-q;oSHm_ew`DW>-^j|aO+vB)Z`sotf{Xfu8XWE6@kx+1;pY}ynhbh#$-9(`_;fVj1 zQ0pd;{&S(WI)fOsC)C!UmUe~OnbU<;hT>uly!d=L>wpY|yzt@jOUuu@!Y>p0Sp3q? zdN-5nU3fXjdUrlfnrvs@v(FD*Tfh9m&L5*;jp2G1H612@{B;`nV??k27JvM;Cn5dk z{PDQJX^%gC4Sd_>kN#*9CcR#4nflLjdE(Zc*iUrFk0mjo+zep^PhrW2{yCGPVe8Hl z7s^Z!q;awtZn-RYLcBG%%D7s{{1C2o#;LI3ctSIe$mwR3VCp&EFM%K=^* zs<^Lc0yke|(9#foNvxC&RqptEc@e1^#`lqaU&=xeI~kr_d|iWw4OPqW7ysifmg1vo zMeLcC;sc*^e*u>|b!p@!Vp^V|UufYGn4B{rfni2Y4-R+y-*)qBrxZ^7yjy#p>x;6B z;S$ImzXO1XM^~XU#>6z2FIznTYGUY zh;YKcA`Noo_9c(HXzEg=E>qN{1eb=Y>G;e4>Z@+$9eqTg2NfAxdQ$c@^T#mbvRB3S ziC=1dH69$wZ5sogD!G1~@^dD&gRfx4hMgRmfd;P!rc%V!#bY)kjw;U|o`>zsdDzax zZ!I#_?Z@^BayDRp!zzg-8cWijfF;Law>?%&LsG`b10mpOR2)r7XXdAz!@~Gc!#6hx zBy|je*yM7>CTD5|@er%_Vui;1oN}t7JJuA=8IG%$^147pHqYV zeh&Qyis}CsTN);+eyP@%mr;v34i%9kmfpvuq3JO2M^z78sB^Uui1hw^C(Ww%Ei6sH z8gcpXSyFNNJoEETBz{B0eUq`S8-$Y&g|W6}=$lXPo8763_B7f<&!*|1-L^L=` zNosI|Kpkjs6a}`u394}qm5A(RzJ62o@)Dn)-`hh5aV)uq1GZy*PW)rwUoEj6tK$~w z@mE_j^u;j~(s?i;ohPUC!NW)XTfj826$b`5??qtp&e-pAnD3*vJvO-T@)TVReJiUXX&!7VT>eW-*Z z4n7J8VaCEi?N(%BWE_0KGGAGU_C^A`j9CZ|sxFL7oQ7Ha7?_xLaeMT(e{vQ-=Wcw2 zqrzad{?KlQz zaA@2kC#3!J2NZ12IC&m9Xg5J)dxFzGc&DF-#Zg%Dod7+F4WwbiN%!uqp z^p2vr5q{m4a}9Bx8dxamq;rysf-C5%vp8q-XBr+hlo_^COrUZx76qx9!R+@T3*LNWbOC z3)w4Z#6jXeDuKGAWU|?*l^%{7ZoJZ>4sHiq7iJg93GTnZ52ykf#R#MDJYp&{u6Z5X zBvcUtHAeZW?u^{7!z^?Lo!p@|mKc5Rg;3?l$q^5o&BkjxC}njdhon|w?r+p|Vdi;i z3S~#@0gyW4cwJ<4Pk;Cs51e*zDWZ>3!{RBp5XJh%e9jjo>itahzAW~h&-uPwy{}g9 zm&V@nIcj>dM&1v#ZI$B|=6op5y{-?I&ZtK&Hh*Mg9X<<$PmLM0XpDk`BfraU=*bWB z>&KBO_wU4);!SU?eNQHw-)`d;1r3?#j8`VJGoi0Io{~HG4o4=q)c4Ew{KyX1xfD`Q zB7A~I9Ox-+NrOKner2c&myGz8r7pv80fBOGQGNJKu6p577foG?)Mbjgl&H&ebt%II zAj)wuL4?$cYIRx4_ZHi@$tB4=)8MUTNz6klGI*^$c-w=2|BQ1-%2H}dKHrEEosm`0(H)u_oByGd>>5~&8>#v}8EiOKgn zjp=9#rpY>C@FwHR=hM;{f8J4y!u;|C!iDUF1EH>in;1v{swt9;B-_LZ=l&myaF61w3lI)Pu7Ov{VNq>1 zM$bFO8~-BJR1bn^$rQ>~6xzYrm=wAQ$=)!WexY)?&!oUBBg^I2(mo4Xekxy5t{o|# zqL4qbn4*FceF-`Ci5ED-w_7FEF93SlsCF~MERX;uXHWs6M4z$jJ%-xB}% zwI*sKP1JG>hoBay<30fhkwZdsdjbXnrj0L?bO!?wX~SsX5(Pee1Nt76juROhFeO+% zd28i!mwXN(z<&8)JwJ}~cD=VI?Qn+DwU?18mVX1L0D>M(cnf|{5t;a)KEC)Z)-_mw zaAvf}c1zd`79qCvwazW=u4?`0aGN*eQHSnoGyXXWT7x$Ts9 zl%&axZRRlODrrgD-FXk~UTv48wDMr&F2L@x8ltgUu#)v*`s={DE`^H=99KH8|3RH)e5{B(i4B4DN1eZGTnz~$o#1(TLe>uw3aDPb4oi z|C2_E|As5wVuAFZZ!KITaFVPYU<#Gd(DSuoh?K5$uLOiCUckk^fS`PUjoUgOi|2YH zy6<+F%?=vn2rY(lhX>9b9zHW>@IiQ0IY)bV6%`j;mg3@cRq!F~^KxE8QLDOaKyoLrmzUYvF|Fs$oLG&E`n1L0dPUC z78#G0_j_K}i69ZT0TPCO#WV<_sJ>YmmLgAptmoDuwyez)DkjAzVx)tx5f&BwB)0RAC|G^&Xd@0Vn_xM~&iVJLAH z6z|8B4O>~0ar*?BE{dIY1sAAws^B(W!qGdhH647Ju8f`&FnM5*q%if+m{~D@B&()b zv)>Xwxx#Ydfa?axvcKLN#kNUczws#-<`Ks}`3P9TAZJ^39@7QnMhJ4jF9ps;iUpPT z2MCRR4v5()2;@`9cAGt#y%Op7cXT^^O)x^ip$HYyGU#k_p2BiDh@Y%Vi2i`tY`bz# z5g;`Hq9D*71!#n1`mOAyp(5g#Y6q2L%V7}HM-)EADe-w$0ZFq1aVsEFp2K!Tp?%mQ z3JC}>OpGfOOHt%6PY6%wt~VUWDmwsF0Jo8j#C6rw2NA6b#B z#t(?{1VQBR44lIvq4pSnxeyGbrrG~ImYbjTmID=ArlO*R1Q|T45wH7#tYV?iq9s}O z57c{S<;Jo!DX8fPkVbqO4rxZ%d}GTGk!aNZJ#3gD=cU*TJfg*oMYoA>#3B98=(lc0 z?p)40O@gErJ*8WrNox{Z`kzycn?`xtIg)3peCM(A9Jd(V?&pFhetzV_f25~8KaySA z@(a8a`1;ls4LD2Z;*Uj7MBO5O=v;ax=d9%vqc_ANmh6#4^ZHgq6C;UGAWrTWyzMx= z)ot7_Esaf42|8{{?v%vzwSNaUq!6XjsnJZI*G4Z3e+&`nNT_378wba8GMtE-VzHt! z@0fM`-RhH;yg9MlYNT0meYc`MM9Ob4mfXqS=%dyC64}Z4pM}W&FV*pj)>*AuH{QaoEj|GYpV5e1BR(;5#1FeoWoMTPFK(~G4+<=ji#{ZoWHcRN zgnMOES?7?$Y6>#sCJ9W(rXwQVRX&$IoPSk{101&)H08ZE6Ein|y#ED-9<%0s8pQGt z?sO6xe+5Pl0m=4pTyki7!2w##wGl8!ZNTmKgXf+s;aE*Z7?9YBNRT)Vq6z^u5N96p zI= zd{iyWu+>-@BD3n{^7D?2!rZyX2FExD7t$8M75ox;6Oj*$Bf|W6i+Mus#YXtA>1ixc zinF)m3wdMA!edmS_-(6kxvHYXUd6f7VDAz5@;IXNVmv2b#^DdQ!{-+Y{y@Ulb#YS> zM!+J)Z%8*h6;i+YY|{(BA~V;i>#4_Y5VWz6%UVEu)bOloPuJCUsFk2OC&7?Ltj15{IdGdsfp$LTg2Z+r?I z8f3AL^1LM+)?Z&R6F6L+YXO|#?hN2b1bC|eEXYyN3UU=FH`sz2BK-d^uv(Ic|D|C3 zIP#s=bvEltV_gx)%NJp}gCl(GRbo#pqrL#u!t%tbJd@_+*vJLk!lGO1> zXC!&t?8b|LAN)KUDhPs<(86n)aq9`K5jgsiT088TuE4&~g#9^S0^ACgX{aC^Md~#I zMPIVi4!OK5kiRfHGNd3^vkWYsxR{UyioT?bFDw=*;g8Pf5jG*8sUXi(kO{|xEKs29 zSdeoxUH2qHPB~wVCgW}U5R}0BH@v1u0VWs|umFj1LrcGZV=0>Xv-4sc5u0CxWla%{ z+Qa4St$4dq)-F@bRji%MTrD!s1A1|)=6@s|F2ti=O+c0)RVD^An;)Dha^-V<0;ULp zfqK?~5h9xT__;Ccp}(tTYVX%d0HkH}2TA6L`1@ge|9{$lukro;souBLyrhl=AxvfJffe`S)?PfCE*!YnLTLg}g0k$> zH~I6Lg0Oc>8Ocv6h{1XyNFNKN{dpSziD(zOS&IPdEr0v6ftD?ajl{`}-d;R|Y$RK& zzb~b*R4V`rz!Ma8qIrUO3_pTw?cwJqcrAXz5iihJr?Rrj4ftd{ZSKZjI3AQ2DZH{) zfH>H>RsY%LA7YPj0{h#g!;EvMfnS+J4|YT@8R2xpbqoyWTnO9Nk*MPuu&78@0Vw%& zXR-UW^!3>L?lHisDXBh>L?Nn}XEc|Ah#AJ_Un5UqU9beIX`9X42l>W)v(uto%e z(6{jb;c)SXqxbp7%ygCd;pO}xiF5$35@>9?gtxf!DLSc%)+o z1;+dl+^6X|>pbk!z}({f8X*xoIJIDR12^g0^J_6bLube=Wrx6sk^|#ReL+t=^6qGL zOP})#@Wf^KLT%k35gd+Y9GC_jBOK&E_z4H$Nsb*p;ZXuo`L)oKSCwC`H8Z+$<>$w{$jX5{5=XX*37BGFX|I?tCJ#65|wnh*Lmg<8cb_glsdMM`}d|`F)!+TY?UAuTY6BjcFXs=woj&GZ=V=fdXqxL^IL2Lyw9<7ww7mM@H~8axWL+q*3f#ChSm>)* zP?UyD#rSZf*pKvdB;N7q0^7OhAat=f?EJiqgoHyLaB{~7zP#%)0IId0bC`D(B4}`o zm_BvwBBX(%TA%`=xo!;!x+I$?6z~V>nB!--7P6WxYbeXdIcXPNLp#^uSp|Vh{b9D}L6NHUhC7 z2Q!@aATcPq!s-VCG9wgChFN3e16 zd-N}rgSqw_?=`a@xZ}LanDZ(7Cv(9!8I%pHjE7*_c*pqlrnp{Yje^+xnsUDT453-= z&3Bm{%y*lyd4I*b;pQzrMP-cBV?b{SB*_t_{ZW8()*XWbS8Sc~Jr=#BpB^N@$xhNv+KA8pK=VknEGx>#H2{lmkDSMoY#&SJ^Bbp#; zBE>sJLB<@`*nlObUJN*p@z%y~Sr_jYdykOQIAZ?-v-|Xm^zHH8vJlRQWx^p!0l*xa4eL;+_cg> z;7}*T1TB!@M|nlcsH!pii^)p#ZKjV)-lY(cb;MmzY#j($SwmTg_r=TQ8y;On{~ExC zBz9~1KrLEde!(api_-)ca~VEOb&F~xl|FVcbJarYQ1*aOI@>hs93QscanR#i);5ax z#Rc@+4){jAWuKeR9S%Y>vEzIUaiv*HG~WFnJ*U9wl=}-elId(wc~FkQ({R_^{}3CA zEE1TUl3WrYJP|eu=G=lAK%L{4AUw~W8WWyyC;;)P@_GQZ&ba+|G3i;So{EAChU)dM zlA+kkig6UWpmP~IaTpnDX`_;%wRSb3rVGWLQv6C3C&j%hFn^2dH5kI;Z|6O4FxG-1 znYn&qC^_$`;qw#+M=!3zi)iL6L+K6p;yaMY#;A=k3D8Eq9)Qmj^aZt^xcdQ-uTb^d zQa+QaK1dEp$+bi;Yc25&HuOx{+F-6FaB@1<5+YlFs9{&ivd2{Q(NvSGOePBfn*9Ug zKvUd>v15EU-%or?4+-C!JH*$282D<*_+ot`IaMHAnV*mr4NZ598Dc4LLj(FAzpPPq zxlx1s#g zJfS-fuO8SHz^PpE(=rvByNtJynp~{~Ol>}ZwNjaVfs(&sIK*`?%9g40atALDwvQ~V z>N?fN{*}#o!`}k;;%~aDEQt^F6L1a%5szWVk}s2()k zG1qZK>J$td;|Zx`UQAZT;;%moBK{iP$ROF|=xgUawJ?^d;hPYF?OePJFQS?MIvK;4 zsFmt)avd|zRa%Ia?4X&>T0Ztsn*EMw=J=B^1fgo#Uux+v35*Hs2=>)(Sg+-+5B9*> zG~GubDS&g)FQDHq{4Poksd|(ABJtv%!Sj{$0M5Sf#lG+Ygj}1sUqi5|fMk7%GjO`> z(5Y0qfn9OPRC(agnUB^TR?l#6D`n5@z>8?+*}yw>&$!VO#&A}u1lBQT&kV*DqG>dC z>maan$N9LyF)NTzXX6eM>L^I45x5QIAB|pt&}pw%h7CCc3ALu^FeTJwZuZQRb%!aT zj+Ek4QM}!b{S7H&cI=h0^C4p1Tb;|NBFd-l)*eRx&N73^5=I@fLtHZ$t)?OA_W&!| zvXn3SpV*MNaf4HymDV-3_TUZYb6I~#BeC3#+12Auj8>*i0ii*IT#j#6V}F^KtX7&tC^uu>>J1c89eP91ZMZ2<{a5L zckr})=g4sxbB{r^08&Oka*vY*eqrdMmIV-T{Bll)bJ*r-n)B{&;B~tI+v~{@C! zAd+xC?Bw&CF~@G>>IVlp*HI9QDX-4BPh2>lJXXx#Mk^dO`OCXGhkZ89=e&EbKjIio zSc?Ixn$?_ZtL0d}>1)+;7h}k9ED%+xGFBwvO;$~eAR8i8;ZCc#D;t8wS-|_m+TOy3 zwvol!fOCzdU*fugCJx;Z$)mlp27{~$cd%DJUGIGcrU@9Yt)QKY)q=jp*m?ri2|&ri zKSlgAMf3pp=sLx$hsCBpS>nl}bTWc_EMsN=S$Qy4_NS&;q(#IrOw5(MqrK9MZg>HOMU`_<+}4NgJpj%yF5lo>yM^p0zo3CQ&$o`3|@r&8<~Z$ zD!_(Qpxo%QPIUhO)r_SvEPKov3M_F@l(!m|(sHUFps%+aXFIz~XSnMNGr(wgVVY3E zG{k6V3?rOV3fNn|v=G{9BDALsLRj5Juoe}3V9vR#PAx^?QWsx}?CgTZv*CD(qkgX| zakSK~FqL3CArPk8|@Sm?q`&L*3q25~qXf#3C5iIEff|CW_Zv|eP zQ3?dN**l=F3josvU;qF`{SUZlW4smwpi~V}LJl(}JlCK%EKQ9)T0EDCt z*`TlIiT4?jSw_>Zl0c5`uxP-t;=`gFd4!!~8;o8}v{S%KF>l9g7oAT~d2G81GA?h2 z^D(pqkJcH`=;0qKkn@;C=faJA;gBMr_q z7vniy=+rZ_$i`)WF5_T2nZkL`KS@}%qA!XAao)3)&r_}FYw;qQ`Bx-t!_@0jB-qH0 zxyRW->pRyFr1jfYb<%oIy!Dp3tt+k1A;QL;gw6#%!%e}{_mb8NH{0Sdz6$~C=8ZWSsz zya-S)pP=6JOZicFe7Vs&jz~``k7lk$O}GnTea1VeC9%PTD1#dm9?A7{Z^NwrIn==V z*$lIOxmES|QT6i)>;HvS|1Gil$HeNNF`#YzUw|y2fp$aw588;vmdR4Dx>qz%_dH6< zq7|=J|7_p4z8iu#vQW%e`l{+-2n1WCkSb+sUt~2qiBe&UkqH~sz75?<`@NcuI3OO`d3nc&XCwDI!X1%Z;h-_rD+QyO13(FdOPL9) z;ZJN(8(fG`0zM?Z!snbAJ_k$~6{%sw%d_A?|)eH#X9a2WEdx0&4E49CGI%J#Q^Ks*FZLLOHG@N)8jS4NJf8HnTAa2*!xG( z$B*1-s&i|4DMtD7kL`9Yps4*YSj@PW#7QtF*nJ@ZrHt}v#}2e8gcYJhe9TvRW4>PKVanRF?;y|WiRLEhVjv>N?{H`%c+hj z%*V_+A5$t8<;;k3jZ&zfG4qaEy)5!0nTs(1xp@2^*fZ)2jsXH#+?ZNDKYOab;?LNS(DaTOnC_)gK;=_ER*ndt1X zYna=*Q2Z$=-ujYYV*r~yO2ywsWSZ^B)OG>d*j;{0LLJHS3(Py6HHkJk_2$HMXY-J9)>*H`dK!g&4Ydz!#EXYJUKdFDO)vbH#%qp%yA$9rM2Zi2yzcG8*5oN{{^Rlbdx7@V z^M^HFSE5)_s%*7NmGN2&6qCp6*{H7CICDkvc%?p&#q2cY}n{KpwdjS?K^(zVN$8GL=+O7;9V)ZijV};B{T9H{OJ$BA(b{%F2^s@!5bM5LssUs zoaN1=Sx@w4!!3gfZ;Gf3a9i*?e1`oG8uV5e&y z^icD@18WCyG_GPW0H<^}J7YR6gl@vml^(&b95Ejz)=jrT-LV(5KFWAd*O$0OU4^X6 zOM{);AE^@Mm=zlHu8&4>CLgrNL#qd6^*khD&dBcYS{x4+tA0V zPhTd@OCVfdlWSs# zO;8jL#~ycMFUq2qo&{%zm!(mYwi-55`jmf)VjY`bE4$E<%!xo+*=DmdgzI9AX*S&A zykc9!(O8y4W2NaU9b@q;RLL-z`bs!Fb99rckw;_*fCKkms+tzA$`I6IV*|*wH!xt% zie#ROF=>s9dwK!Gl#L;a;^V+5t1&;5Pb~_^nUiGx_*#=c^<{^M%;QJIk@+_=r>91S zd<2qJ5I&*Pf$bZxh%m#on#$BH~gXe-T3@Um>E1 zZwZHMima}29a`7uVqsTE>~ge64YOB={LChajBp1`ptRs|QyklKB>% zXW-iTH9Q*_1PfFf{$ttyTqxpmEsSHuE`e{Iw}xNg-%|X;HZhXWaT2FfVYyVt2a(7M zKrx;efyyx0`2!#gW6Y~;k76?=+J;VHE;#f1n^o4iM>qw_qUJoYwF)P7VO=w?J0;y) zzvCRfOtFbM(MZp>@u-oC1Kq~?>FqJAQsFZX!qHeUs}rB1XRP8a({HYj;+vULgTF$WGz8~2LHL8v6-KfUJWqeE%DB)0O(?Q28 z2)`BxoF5-Yd2kCSPvO>`)=VM-$X1sBFzkltYnDxXTxf}J@DEqM6}X+crE z1+kHlT6EDj9b9=<42K0jv6l8!ru^C?RROoH*?ts(2zx9AGYq&4eHyM}Cg@HOF}ZT* z2#YKCF*A7wh`1CYUrPbSl^djpEDGX^;b-F&g~C-OonfJ7xy&>Rh1s2;U}_$@aN)JY zf=8hsqQg`QV?%T!Musd~^krQ{<=!adql{7GhmNUX>K(7b;MHNHRLM~m6! zb%KJ)Y}zTrS)rgQ6jCzVJ4o^?eBV&j2&E9#i!^_DZL^p)B4W&d#bho>#jMG+b|B9s za$L^F(Jk}f;`IgH9PBZ2Vn4Eu+G&P`L^+KeZ15HVG!(woMOeYZl^{w(N#t=^0B~bb0O>!5*XQS{=vNRWx?1gj4KhDd1=wM0R4gMFP#y%%}eigBgGmaqs9& zrgEAi-4)H;_pO-I_%-&7aWKvwP#XE0`nsv_%EQQm-1Q7k?mLLgkONMg!ooSx%%=z% zyu2Ok!Wwhxy)UHId!GW@^8R|fhn1dsFVqajN!hRg!9fd;xGqLh%_be6zuJS}-bnsB z@j^pk6L;j~}9{M>99#ckI)Bg?)2+mfiwR zyO1(P?{@{>8kauLUG>b@{)`Kvv@_QwHoo0f6Q4gUVOjX$MKj-K_H3bT380RuYk7=~ zi9E2!w7h^a58xA7F(|Tj2zf#r^2`|Io@|{*i!4;#kL0F2!j)kQAlt!i!Bg1%ZolsM z4T>;?T=vujg-i6w-L+_DU%Xg>ec~sxg-I7~B%jGSLgqG~c`^4>7p|)#`rLEeiapIN zP0xqx`~j(Q0Q^iG!E+X#KYjM~HwDiqzq7}!!J!c?-N=3vlpyQv6AJWO4&O>GoFP%< z=58#&*}-%Vo;hvd`Ll0e`JTq#9x=W8b!At%?zn zc_2NQGi~9RS=R@Lm*3HSE{i*i8_nYI=j(Sy+v2M;fR*7fKROy84Qu-mmX?f}kMBJv z+lPDXLCE0fjcUCjTe|Um*Hrf5lRLK$pA5WUAHM47WczT@uc(B|rr{Rjl?5^f9IAcz zzK78#9ovV)BuQKQaCh)*weiE!MEh_;Jn#$I<;pBvF7k7)@z3v~Q9AT5?7=3P=LkHi z=6lA}-5mimf8-fCAcW`dzGEE!5FT+TPBGFR{1LOD98iL=RWqK-ryql(bt@LQ9Kq>& z6C768!>4vyY(Lw%vPW+%x-S3x!i;FJHwKd1y z&jN+<^(UFl(w_MdFp&TMJ|2N^fVY4Dp0|6nyaT0}xdvs^Et+}Ewf_mDYAM*9@z$bxwSnX znRg&5-;m#x(O`yW)V`LfHjo@r{DyZxxi*Vn0z? z%#}mom=$EpIsVl&a2Y!vfa(Os3&(Il?A4>wNmfp`hJOi{r9uS1-UzVd)?ErLfhsmZ zEPA27xEiH6Ho&kq!YkUjau0??=|Dt5;gm&{jaP5Vk2Y5``CvbU0GiK`&k`Fq_1x1)zdST~eu|RkZI7Thg@lbbZl!l0x_cO>15i%WyjQJ`EPKStF1laHy8oG{31Nz^bTf=Ycei>6cc5|1`i$}2@~^QGxasUlGxokE9C)}c5PE%=gP)^^L5{6C?m_{$Q-EF38;E!d6| z-;t^gjbLsoBrv-UqFeHuKaZ%aggobrRP~Qo=i6@_MxJwI&uTOptI&#Y-h@bxmD;+U zJ+ySh_461({1lH{^O+Dw&IY05FPp^n0wrXX#aPm<~T*qkrf z9Q1{1&Ru46VrkNM#t6^I4TeY9qc_eazFC6r2yNXz99sInwRO83$Z46OrT<7`qiagh zi3~lCx!(iLhpqhk;9t1jKt0S?NtYDE1oVReeJ7GEsg&xa3)lo8snV(EvTro!V6n2r z^QrHAE*g#HQ?FPIA|~Zi#|lQ}Q#Y9^mXJCnQz0eiHge_|LIUnZ=#YQ-!#ERQTn27` zQmNHT8C|8=DgPQYYz`HX z+d57Lkmg-gX^t5!JkoblgKXQTzXf@d;k&8c`X!^r6hRXCgqCjo8|6e?{;Z+fGyX$* z0m#GmomKw_!pF}e8z91bF5iev+PZ@dWGM7)HGCrw&D1!zk1sL^BH$y;j!2~UvJA9hWDEgWYq3^%isSaeCRO&MQ|Jj@*f*H z$P{9?y|7}5=MpB_ySfDQGZs{^dw{mM+&C^cmX)O=S0|96&rjqEV6?^f^L3maD;hAC z5EmLx$~kcghj(8F*XSQ&=^7rNYgWnNAGJQP^8X)PJ&ZN>i`ST=MSccc9cK#Ws1;b> zxtLo3?9=44wTVAI_95)3U3%dCgGZY0Nk{y?w3F|LSoAl)-<$ONjwE;sVOZ*@{(O6R zd;jE`h*?93_r@E zuhW%}^NGf0z_rbn1^>89vXIBg(PF(%jlY`k$gfLHLR$2g3IClo^uYL+sl_^f;oxeG zOw?E&Yc`n3afBBKeEG|C2aCD zj{jrH_^(VXZxI96MeiXB%#CKYJcMsH*yVA1?dkYDBx%n$!0M!*6iV zi*qGTBM1C9_Z1X~Bw=+a!fspXv`<7Wf0g5>x9qdI>7dh&aO5*3k1F3~Kh zfk9yBVCMoR-Xwj-^^{GYd1XF`BKpi{JRe5Nm;(4(TLXQ7e`cJitkXuDjQ9Uw(sKaaD1B}RwUlvY)2N)PH{`R2v-ea#QfGw?+$Tv>MHn#_#n|pnlxgB@XHoW5&S&q5acLd6EuMfmC z9~MRyG9<7tT-f(?mcl;L>&&noIcMq*tdruz+|Wa&FQUZ!m2k<6X5I?ul4t>?j9nK= zCMc__ggPP*vI^`cp041r8eETqSzFq*PoOt&kCppa*kg5Jk2MQ> ztnPq1Q_$LDHRmIQ`Jn@hUp=2JaV38>g8*kEo&~+Y05CaTE2CvAHag$IsBIXVMTc)r zf#I>PkSQq59uqA_$Hu`OuC(A04Wt3~*)W+mw=A55@^t5CLQ~imD{5&xO`DUB_oM1e z9>e?cvOpTQ9?G&{_qD%c74i90uxc_U+?}B0XsBDi6sH7TIt-|2+K7A)lWfUSDZLrV z^lZGG2#>Q6wDGG86G)=+c|&F+uO3oCA1Q`xf{zk$XXAO94^Hey9At9KH8sbt%B zzY^zz<3w^@nq@}qn=obH7npFJ#~sZ+%!572m;fsRV)w^E)S-1asYEY8>k81igJ>OE znBG`A9Q!EUgGgA29Mxl%t^g;L9*rAD`j__OZf9(UlG{;rNs}K4!to~Y8{C%0uJkYd zY}#WMWs9z^18J(4ew@46d>2XItVQn24&iH~?iy~09MB?5_P|ao{A#>ledEubZY+}z z5X2bEJ>qBb$k^VkKW|;|NRARL`mTmy1?}ze3bR^$tmzMDmlLCSNF4xn!QJydjEr}T z56Uo7Fz(9$0ym4Y%W)+WBk9U?;QVlQ4SoplT=6DVE$RaN(*^zn%e9rvNsa6)2yt}INL07Kfb*B5qa`qBO|vs}S* zrThRbd=(xw#bTiA4!st<|f0J zmj>kYZLNa|P}8SaZ3yQfg*%LJ5XHDa8P?H|+oe(Y8Lb0-`os+Xn6uchZfqDF3h>0a z5(l(~wG31$;;G$gJ}+O8#q_DpN*<{}J5k<2 zXXOTI#spXS9a(9?$@TeJ82S@j^#xh@qMK-tdN*kws+|J7s8$j`KnM09x(58@ab6bj z%OHMmvIrlmg(u)ULOwRlS^2)yGobv=tZu>n5Vs&xRyXG&&V1Id;4$@MS^ZXEfrp!o zTf~n7=eMpb$bvgdC_f8$;RD8rZ?5-bbu)&eB`t3QhM-@p(C?$L$5-?xU`^nr4$y}f zL96nnxTHC*R-`*cBdw4_OaVp9k3RSn%&yx3x6n%8&~~6we9~ z!g{SCUqbj)GrXe_?(R5|!63>6;@5pVO9Y5s3T+P=1j3kZlvxD0<0lrGHvCliiHBXD zqRGtw1#pHxJA;Wmxj+@m;C3+}j~Jt^i}p0W7(%ArL&dU)DZ2GKnl!;m#M@C2= zCZD)!o6EyEf2v_@F8B}_#)Q8jl3(xc;~X27OZ)uMPw_{Qok1Yz`50_rJ{EQ{@6A3y z=MDc$Mp~>(@H_lL;_o|>-aq$Y;``^IV%W=XN-BRasr*ez?_1taEWiD|#NTb|Pbxn= zsr;rS{8lG@e^b)??Me6_n*{HOBz#(u;U#^4Wy1FryUUn0nND_lAXupixcSq=+-$?K zlrh4Kp+Q742R;Z*jW3L&U=p&12$(rmKIaF1*rvQsm4C0=D*tC#8?5q5U)h&G6O6gN z^a_YxkA~?CYzdoR!4&NVoT#xCj)r8IE^!H;c;wPhCkf*IDgoW9~B#1*eN;=dEkTZix~q3@FwFNX-%s2JI_Oc{~*@V z#{B6PmKJwe`5h+b7h8eRjmiU#K1*1B{Jp_kepI@l6=2r}NMz^8Uf<_nNXqOfT38&p zk<7l_AC{Oh3>$EWY(?l2I6k7V{$;RP@YXWoz}i0L4lF;?>5OUazXGkq6Jgrq zCaptuc^D9o&mBr++d47ju3d^oBkA#9z%1nphIT9MQ$K!axB9B-=y=N_bg%R18AevSlF}(%5#`a<75&X0@0Mnv66IWa||s!V+WT zt)_t@!U~P@PdNW&w%o^wPCaVDDm^ZYa2Hnvi!Z<8XPUkn6X^6CAr4QO0uZD373%#C zF7J(Q-nJS(xj^B&iTY8EWAz>b#yE1n&q#AVa1|Cf{_xY;HF)jEu5t-&mQxtISmeo_ z8*o;BfqwGq&)49h>AzmiOL!{ATB~yrLnvS`!fED~Jof2R)0mfW5kD`V7r?6PQGNsq zN*c_KvVDfL54^XimV$V9!gCHj!E9~=wSf}7v7|`eAb8NbYgLU}VjDOo^rTg{KT1C_~dmtE~ zCrqK+Xk&qxt81MXb7xtg;oOai%}yzs>^5NsNa zzfPleK))8}qR-jocHfr%vVt<+z&G@0@khpEaqF#PB6|!_H*G$^3Zo!W3>@b-(?9r{ zY(rHg;P;-&qoZNPF+~W0;wDIqP$teX(m$%fA``Q5n`-^Z&EC57E$=z(1#@ z=l+rHI>WEWoBJxB>0$1Lb5nCyDr3!`>Dlu#+?&5`Q1jpF&OdDD9vP{$qFE8>23oj{ z=6$h@($_{#vmh7wn!w3QIvdUA)J>Fv{xZt3)vV2fW;k_|cIl+$^y|#!SpZ*^ji-nj zREA>i$$(XwVN*W^;%Db}P@#gAuW8Ed*qq3JeT_x)t2@>t@;B(a`Nj=+B$;dUFTBKy zJ9Ei-49=?=zm~5Fr!LMwraRxt*`!FD_#pGA>?}gnbME7AAbQF|Js-Hi-nvKM=Yvt( zFXJ7Z_f-9z+gEz5Mza3SLL(r=qw0)6tls_pJe16?4|=y%6v6baM)0$^t8l576m%Tb zzAaoMbt&f1{BL%sXX#6qju)7*9ZFX7@?~10{CB=1WTXpMMTCm1Jld_kM1vZR<-Go^ zH$Xr2B|2T-m5_987ou0lHOCO86^!)_MknPu&z?5|4!xkJ9c|1X04Mw9IQL7{Y$9Zw z+S~XQTP%X;Jib`^q|kLcV#-@hzUY;)|NA3fKou*^n>g$|$p8w#DgN-vz;&Nm(-@w^ zA*cMKy5|E<`DZ~C&cUL7QbS9jx99=AT-xF+k=uH^qhGPb))~EMv1RO}ucqdpv-sb% z>@1sf?30Quq=)iVV2y2jhgwsMj!)MR7oEJ*Sw{4G zM$`DYr3KVeuxVIr+>uhGh9Q>wOulv-|DVT+kLN`aD>4*51b8+uIld*R3K@0iPGjUv^gg03R>(lP?E~Hrrvq|Fu_v z@PrL-$&;ou9Pw0LK^BEZ7;8nhU(oOhr0z}-EM{#bhmUbrBD z&lc*M68$K%ITc|!MPe&`D+Mniv@^Km7>-dE{$K`di@)?k$G95|vb5 z`$P+vKazPQ6nmgaAJOa4%b^k)X^EdQ6vt{b9>j;L{=U++PThwZ9gNCMF)DBUN+%kN z2TcR;RhI{$ezQ&r#xF%&=1^zAU49Rlf9GCn&a8x$mB^vNS&@U$bxXx16gnditF=}Z z&P|@`K~~rv7{xvzJGxSk{qohYPa!z=f{x=^w({7cg<=i8wwZA#rn$=^uBXb}#U}H7 zWfmnyTt~6?w_(VR&%bFA)$)bxRGi;0+$^7fxc^=& zthkMZ?=`Po-K8y+8lbTkXLW7t0=KbmCL3GeHa6%sLLkf(2u;oSoB0a=(hR#4ik?!Y z*oc;#FdxEXd_9A&KvmZC^62Pe_}-jzB>ytDL2DjEp)#AJ#_$G>;G+4}HE=caY01N^ z?njsS!kY>kIBJ#J#8}REmeHF%Y880vTF+xDaZm?vvOW8xcMAuE*hbog^pAZ<$Pp

      <#*9bum-7Xs}Y+$HQ%=*HsG6r>+D11@BmKVe0!j1iW{Nt0Q2e58S7U;79D3 zR0NfXf}!Yi#_84{vGqlJRu6=u(;3Hpq*=9&+=-xC;c191RyB^+W{og{^$WoT>%ndIQF*mZ-H>k*b>ZSdvGBJs{w{| zAZBPFR`&=`YA-l}{sO_pO#P~G^B+Hw1Rzw#cE4u|fJnp>_c!XXDONuhZZxy6v}a6m z2*Kp$dVaF$%KyW0o|!zeZVIV~$waa=7`wlWsRm;!O9bFlb3Dcw24J{}rDBdb8ott% zWr%og!2tGoJ8;}obrUnO6UIr_X2Sy*7*yDv8fYbxo^0oAZ}RXCyE^W)cbNHC zc++NWnRv0ekqgO*hm-S$_4)&e7nt)^oiO~J(zc?gZ61e#da59GE}g-*nD!B_`>iEJ>iX+(hFWCc(}-i8rWlh?K_mb zjGfnMwvjI<7+(%ENPky#s)QJ$c{Nb;Z8zxiYauGlX?VMrE9`JmLH)!6XW1o3>(aX6 za%q@!O!XbdWJM;ROZ|HN#AC?)ze6LAtlcm3O9ey~mmrcb#dBj#n zt~*svv#A|#@OB66E^16#9bP|iI3I=e6ASq`wtnKVd>mIl@i?sOBe2+xIHR?ysFsQt z3!fIj;=h8(;8=|qMtF;F_l?%*a{aj@nrmhV4>RS6qbZk{TytDij`;ww#m?BvP4?_< z9!e`S*%x6IOz!(3ta7k)gY!dA5gcssm#8-}i2<|aLLSAD!){1Ev6z9SMYSx+hn{|A_(-|?0!aud`N_d|LaD-mV%mQYOiBCFFc;4UzIl2;WJxC zYH}lXfEDPwR5N>lUE&wa*=P1bxQyItOApwpq5;*n%r$S3SRJXe_FrtS>y(5+hU1RI z$m<;h7HqX@kWHc3H}XQ+e-D67tv9&mqIk;6k2O3%N1m|lnvAe%)(*s=pn2+ zQ{)wakSB3RZxwqP{;Jco9K7Px2APn`L}o<}4c0s>l?Q%Dl4P4c&@gzrBOAvCYZ12+ z?uvK0?w(5=zL+{pL@3&*H-qu-N|70i{of<{DE+@iKCp1x(lPLmmfh&B&te(f800O?7h*}wKdlgrtviTxP7|S6 z;G|wV*Pg~EvkR6JZZZFL>ozJwapDARpw2G5WY9jnK4PCH&Yq`r&=0U}hs(@MJiHX# z?`Z|H%r!`Z@Jl&wze?}6m8IryTywuSnWNnnZ+Ba4G7G%^+r9oP&7GGRb;`Y_oKlQj>9DGc(`KzyJVcIax2PxiFNbH+<+`gny#BaLwtiCNMbQxuLPag3ke zsA)mg-~rZ*Y+uOJIIifP=`~sU#mxS))!#*dRe$fBG}W9)eoHjeFU%QlCVhEFL)?yD zlAWBY@bs0R(bqi}doh-7e`DSMY=4^H_XDfm?vvDtcb(s+^S^X{KYhH*{2t)xK5PLGV?>U}MPH%$kvdjGLbmtczcu>!s)qHtp6OuRgksmg2_sJ3mdAk(7Pa`C<*>}JYdmAZ@qzFIFNUJTtkryxD<9v%=fuyvJwP%B zXwF(>$?5<8?bxR26QX_2Y0nY{T`5Bt|J?}%qqTsPtSCES{%=Ch6(4m7Mp|oT3e-H$ zrf!;x{_-!Pb}zmgD0(hb+BWyVbK-qqs|cKHMKK6VC=Jy*Lt$)k_}ww|{CJoV9pDpUM(cA)}z`+Shzd9hP%vL&4r?4WiP0(mIJv^Luahl2dEH1 zX6kD5`wO%MqF#A!Jn*GHHzXu>gVx^fJlknk{FS*QH1C>S)|>kDK=jr;pNtz&^=5M@ z{WteHEvtRIAabQ$WG!>)PG`xdx`es{-C`N*3g5YDE~bE2QtKKhHFL?v(dUHBb;SlX z-Wsz`3B&`SidJW_(l>Ps2s}B0PyVAOVMxmfuW&a%L-Cm-f;InY6CdA^FTBNSwVG|` z+Qc6n*~m>AZ*(@B1F^mXul|kZ8Zhup1f_26Uo`2R<*R6 zlh)T;+5i};z<2f4itxScw``8NsDkA+@1O6%d6Fx${v*7VbMCJ^_6yEM>l}+V2vWhU z0F9OG3T)A~nAL5=xfGZk2-q_Dmv~;>Fuw&>$&;bNj0HX5Sq1X8z@w_9&A-u*@)*1w zFSJVpvOvpNv!)`mD3#zr^+&-2m5lPChf<@gaEpx!644(AnioC9;&TXG{bK3DR)$}d zuccpcC5K{RT@x3Cs5%bP!b9K|u3Et*^P}xd15f)bWWCtW^pwZXjWo}OHA7C&R;+flV||&DWc&X6Y;*%p!zi+XD&K z@7%^v?2Z+oqEDrg4wklHIqKxZhsnT$D&(($_^m^OMaWQZC*?UNlS~Xa1hKj^7$@^! z&DSk*>mMqem=`(13_~x3I(bMiu{J2>>gs|(O>;rGbmuI)@Zr+!PTgXyE78z_ns+O- zJP(pt8V{jd#xrdN(2zOmM60a2HJ90CAOQbgInJ`Fjb1z%O_W}m=hPm~K?p@}F9=1? z-~&D1?P!H=AIjfIyi<#{UVO)Hb9)(oARIQR-Ihx1ws_%q1Yx<^Sv-dY)JXQ&{j&=* zcRzSe=I$5SdwcAD?LT_heehCT20$MllEihmz?A6d^_q699VLHWvSgJbNAmg zi1S(VRY2urids!52xT|JRIf8*wzP7dI|U%IhbioE7Lm7zb#Vddza7}vgPxT{MMNe5TL0tO!qz`gW6xXJ8SU!PS?%9V8rc#(0 z3-L!5B^19Bf40~a1;kd4BzLU>tw;TWCCm744|?0xzM22CB+(rfB0EQP@=Dn_qv8Ac zilSSQb>W1WOZiJ&-QFoL`IWN8xwzG4VqlF5%oJ|BLiSd3<=aBz&}ct+a&^^Y(8?he z9zF9J52m=Q9?fTy&67TvptEt)V&w_U860*(QGB^Q_$;pJ^fQ zZ7b@+vJH7aur!sngRsnY+zsXFasRSSp}O*6Dln^#A@kb=0w@y*p!^>yc9`Gjw zHGQ5ptB>^y1lsTngH4GX60F%RGc{t7-wBuc^CFj;*U(tNN1UfyvrY-dFM(ZdNggN9 zj(jH@-;(6joh6Mq+Sg6ydfT1bm$T?{vM<7$^=cokFR{gWVgsZ8he^aZ)P4;wk=tKw zsos7PYM}q_#5lK=Khi5r+Zl>c5)wF1#)=Nrm}U=g_hYN;`oT=LcFYOKb_Z)VIib=| z;U_;0#?MDAaur3RQtpLU+F`VsMPKLOgEVTNQOEIl9YK6R^n zL|AA(nZcoU1}KJ~6@w(rYk}n6f{r_bu}@q#$qxh0*&p`oCi!E#+O6iP@fxPlwH7n~_+kgYD#bPs>#Yg|Mx~kAwmRJ4R)m1t5 zgGn?SNI*?jM>;&m6Rne`Z^x4w3i|k>&A{c|%6r8GsFGUR1gG58rT;+o3*n+Rcdd*5 zj&h<`m|68QM=};UtrURa9+%fjF(~eC&!AnLs;pC9e|=$r_1`(&_21bCq;Ft%1?jh+ zspi#k_-=aGO5@u@F+d?Ub-N%k6uWt4AQrj5`dQ1>IkhiZMw!miU=fN(ELen`i6Gj~ z^JWuf>JmX0E;{B1$mJ=g*`z8I6~&jh&(6`Ig4g&(X&NpHHQo$`Xc8{I%`<7ZKw#?S zInZtmWvrV82NAbocWa_-Mw~fJ4>;cj@9)lI=x@8XoQbQ*gA|Ix6L>d143+-7>Koyr ze@$QdL@(2EDuaspHxc5Bn+!gD^#>&q*i_`To5&wa(rhx5!hmcN+#Z2)EO8+zHKfjs zk-N#ux)Ez7QR&3`apMqhXg%_9#tzGrG1&iQJACq2+F|Q-%MRanhPT7oUAxO&cUZd% z@($K4z}%U{tI1=&DOfr+FOtXMF!f05bs(DuI3X6$zS=O323`bcgBb>#>%(kffkmFB z{v}S`22w<4qHt%CT!6abYG)CqKQ{k4G+|xw_2PBhNaRodku@n?&Byvg{uKSP103^} z)~Q;JGr*ar%fOIiKu&ad1qS!!49G%LqW2(2E+cJSmRyz%^J&(sBa$H)8h+f@DTSi5 zBu<~=roSjr9`}x5BL5fn+1@vqb}prx6Cb2@l4Ofc_B6*#P*YFv-k7FvbQ)1Oe#@Hs zn*Ewtc$hfA-!n?F!o}K-J$;}O`A2I2=IJvr=9)j*e;?=H4Bk**b%e0JCG+Je*1mv{ z(^S38|9n5iJ;O1#2U=Q03ImCj>NB0J$WBu+4t6KD1H<2|Qezd%?YR{x5r1bX;_8TU z5>p*mXep?(MD}ZO=eT%Uhs;-)=s4OCEnQ^_0LMD(3V$6mO%0%+_6ix``WMKBPFYhN zhR5mAaTOhT3au*IEWBH6vWRSzH%4*5J_`omyYz2vPd@nk=f~2O*N+Rwa+XTJL;ElI zED`ms0B1pmhzK%o@>XmMoX6?tDJx?eSG5oLWL2-K0@PmDFZ`5TC=HRE_{=^XV;6qP zOAV2J&&qwcqj1#+eQN&ItERbk$DuW*ca>9Ps9|4Y##H6hbWV!o*i_O|K%#v3ELR1s z51tHCWGys@G??y1~v`Kf(Rwv zwuru?zqEzcJ6|2l6b#*Rnxu%I7FKfuK_V|0yAgHn>;e+CNT4A2o9ziU%+^@ zm>V0BEP-UD0?Wf}L9r#2N8`4IMBuZ>qP+fS%i$2Xu5<`%>-*ME>Q!Dpy?6U9Y)2?I z%Q9!OYaGPOlo{v~DfY$ID`zoBB%ScPeHN%2M%)d$g9*y|qo2POnb3mQ8Efk>S-Pw?qb`p}axZRSXIAD~_l3Im0JKnSHs++=WQuqn$bn^U!QW@Am`bcu z(^@D{{#v>7?1JTNSWCUXC5%ctsYg6q9IXiPCX$IOtaz}0o0AuiB)Bsatz_TJTulWI zFcP`rlebBRzh<@7jZ8*un67iqofNv?+d1m|zRuAE4!NksR=w^l8Y{Hg-CN&T^tLv_ z60R;1rn9(}8;ShisVP>OP$UpLzSqD@c6CXyQ`cARaU*qcUaxulj+CdaoEPuIsef6o zkk;q9-bBQ@wAooUAnx0IX8$=u;=Yw<=FAyb-F{8=r#a4&-?N&GvE!9g8$i&v)at0z z75GkCU8hz7?p3`p7FV6`EbBF@_{@HDtKfJ$-cLQt+t)@aGe_Ce+k@S=d(Ayn{4!|* zU@O7a8%@P25(qI(g!>7(3>L0+<4)3Q8oYu)*=#yyt99nYep*dJVe2}20umtRHQ_9K zs67~Q*E9tpkACkffXLb;h~jpb!oz|#0lzb7L zL2>a#DQ(MKg0&EfHcJ4MpF#Uc*-ZNfYS{Cih&^|1{NQT*81O0hEZI%~P701Hqa8GJ ztCEfU(l&CQ+eijM(RdWpLcIL`jA^oMF7aJEri|vSKLYJ3{(gVj%dzb}-gA3u>xRvi z$bHr6{^>-m+0{L?C;OS|nKxKS$+Q163jbji5m_Qe!8%>CrPhX;_PXR4r8Lcgt^?9r z*#kpsjTUXA8N^;{)uiJ!-eBq}6|WnEB*o@MaTk7EewEO4nN$m`r57Lx0*D_$yDh@a z3Kz9vTvfudKv5?d4ABS$OIIPFqg4k3yH90@0k!x*bP5ymKy&>=Jd|iMcS^&OrbO{R zr84!iHhnE>LkR&;r!#bxU8K+vjRlu7_}XB69zx-*xdh~fVt>aQ8Bere>F%m&5?H4o zHQNwe|Je7%b5~4Xie+C;r2RtClLE05)l1#`vifc?y-9E9xz27d4~^2OTCmhKli+E0 zq&1A?&;~HlzH}8dO?$!Ex0$vCUF>zZylygoCdpkYNA%USqS!d8$AZx#3WHJND6T(^-+?3^mlpMRt%D{*CtvR5YUPU}emkcmqb&o5`|5(yH-KfU9Ny_d-k zg<^A&HIqRmAxzG(jVV9e1MQN9WI(i)domeE>NH>S} z{Q!Hb&2K+JjieRW&Dw+(9j$=Ks4+-v}8QFvn(6u)aLR&1t{ZQkL(D>4@L>ohqP|b&CbVP9vRbF)53&LVb~rH5L=hqc0pF%pGcd&rH&R(!#KBv91c@p5_%HQ%9v+C0H;u7F*j zp2DYn(({%RgO`z=M`!A#fL|W9vMl2;<*$9-sr@bwX{HtC!cm@pbePH$JtZ9%wK>9?4`?_h%Ak_iJ{QP2cy_?9ld$ zG%`jr(ySp@L23ZY4@eE*i_-sL0GmjBzup|$!vJ!&xdV8K<*@6rQ0szDzz*iL%)y+| z;w}xV@vZ-5Fca)x?i#V@YOFAJFdczp92n-&Gs&etRQ_)^4#4%jA`AcukwP-iuyAQh zq`#S2A_+(ynXVaheX#VZTtW+qjtZ>$Jg1{ypk=i^M`^oWmmr)TH9BFTldZ>b4ED6^ z$${#66saOkK(%$A0jghQY9fSfTFS1$xQYDo#UKd4TJS9YqVDmFo9+7NoT6YaD^d>= z;*L&UV%6rrGvvyDFLcNkTk9;Njg&tJPQ*An)P$_)jGg07q-QbRq1b8o9f4r*@aX%L z6dYz6>H`?GV9~}v%X4-~>ZD(PQAcGYVid}s95oZawpS>6^Zooi4okn>x~ll^$KCor z&Z6shAXxODU<)b*f`Cg2F}5m=G*cooG70@>@oMV;H<(*{x(Ut z(Mpup^ZRrh`ke_78n~}yGSWlBkYWRF2bwqgq{I)j4OL=&A@LxM|>($#5^|4?%!uq-%(Sa9V7bA-egN^v%>Ae#IWJUbayy9 zsxT~FtNwvo=?9lW+9krQ`9j*IQ1n}DTgt;uteL0mUCa1{3q~?gaDh&DTBeqd-MB@T zVHoXx9Or%v;{$v>LY|WoDdk8$f#bT0b6xnol+rgbKgIIRgypm0EI1FNhl2$6R0XrQ zvq;g#2s$=*u=o*@Fh3cnLH()v6FKM(D^S zj@(KCz}|@C*oB(wf}?5vx_{W{H4){*(cJ}N6|l76c7tdGzbf&zXzqDF(Ugj)fV+@5Eli#sPi>hwVAuByw$J*V^SILn4{YVA0G%{Z$+ z9}t1Hu_?nU%=mP7-Dmgb8h3;PHNpfQ+PfluWE2k|Kx^P1kF_CQ`|Fr;Q~{IdiGabD zdn)C_*#RK5n&s-k(f;600Mx__={L=d^-RAqf~q14#j^CP5{U|Hc6G{yCmODYp52GY zQH~}1Vl<3p{8fNfr?_a<{%+%Ur+)Lf18q}QEa%s_zeW9R&hnfG`8GZ3f5%yt^JBi& z`~Ov5KW$qmdQ2#KEe?a%=2?w7f=2~^7n5lB==zHb$5nrJg;RGe2eJCLW2WLlYQGI1 z<6jjF#E9)3R{k)Lx1W)m`qpqMHXR6Nu!mL)fE z-35Ith~~@YtAQ&0b0z;s&wOc@?8{*a?-S9fOn7 zI!}NRpOA9K-DuIZ^^Wf->ri3yxtdd|^Gua%EbAvS> zRG@mR8m(jT7Kud&l?p}=pb&`$zmK|g_ zC+7u=z*2v2lgRHiYsq0aHm5UKg#O%hPedC(2pW z3SZ5}-l~CGp?@yMNQ`ceG$CW$G$DXb8lU$}(03dJC2c$$+e)6Fs6kF^UU)P5{~gnV z&bM1Jnc%j(R>O?@X)N3niiNiXQS1Pmt1Kv6Z5ua}7lZMNMD>|@0J9`EG?u#ski>&W z{l(0+#Ll&JGfWs$nVfv>MR#Te=9N1LjI7z%Cv#GhnN*t5*!P@{(478yn4Ob+KQt#C z1HwCym7~fCHhD9Da-D0#M}xm%kji$D#7Z5Mht{o5IRy#+gRh)M_fMZX~h=wif!v z_~YRM6W*n!yE)<@lEMf@vNDyFVGNT6!%D_6Z-)<9}(E zGB$rLNAN@t4olT<)>s@@*t;+C!p_8xSssh=Q%I^2z}G4NDe3}W^Q3-R?S1rOY<=Lx z_P|pTKltxX&9!J1F-mhBrF==t3`N0spMkDtmvxLk8(;UHoVk9frDTErG?dv29}Z`* zU7~6{XRaUe00B-mq$W97Rju1aaT^@i05^R`aVvva?7@(Ia;J zU3-vr)m^-*s=dq#+zv=Qqb%#5F`!FJQQ3= zNg+K`t$+si*}-6$#9CV8tW8U;m+QLYuLzQ~Yf(fep=fQ;Rmf&gR5+|DB4Vt4HeSlC z<`of9o=tgLNXTh=HJi**A_8@E_j8oL1~AOUj1q#f1uD}7d$HN&3J;VJ7xy(qS=qI7i^OzP&;q|jaL@%+iYl2Bj3riQ~v%hhSgM2zpinJLDXld#b|`j*G| z1`(BTxBJU2*`!9O8gJ+B5UD6kI^sMH3mB3|n^uR0fkd$!kIuGy4D*O=)?C_e26o+v zxffFFGhVb@j#vBI#ii)B%(x-R^>LfQKXo@VFW@f)Brb2XiskIe7bTa^ zriz-@f}}73^DjrHxP?FT4=-r3I_0of0&#I_M@iS@;nAwI#Z7}l|5HV}%Z;YQL4>rt z;eR5ycFHf7)&t?9=Abejx?0x~^Y-5fT}X=yH_3cMja~I18xUX0#NFykARIj@9Q{@< ze_GZo^U8w+@qEOlQ`Tin7VahUCDPPBz?D$^W;;Ph?0Z5dhdIw;1G4(A4dx>0DL^JU zK(`d7p1}c&&b7?7iM9*O@%i8fcly$h)7#n4cbmNkdUEz4APY(E3OKb*{L(6nIWS`t ztOl^_SU=WV-N(u>pDM5oY%mWWvzM_twNLU$YP`1{yqmDECaXiLgY$$^EMzeh@;<_s& zqmdEfXPvppj)y4kRSnQB)if%@F>u@IC!xaEpyLFz;Z2xQRUV}EfVQl#x($|=wJ60A zRmoM%bw^oQC8BdZQ$By3^ck{vQ0I)K(=4oig;F3W0xS}ZkS6(+ySg+t8K*&R#*&Tu22=b^?<%LC2+ z2B5_DZ7g+@uBBLg&+_^%@%k=H_DwGTbl;wyON%aIbD_3#rc^CQxbco^X(WU2z`&)4 zGqjfTy3)fL=EXPD_;rR|PiAF#LU@Gz6n~VR+~gg=Dd{%XBq4BWm6$at`?z$wx?i_( z_Dr{rXPoVS;O+e%);|CobK8I(x#Q%>s;)?lYUp%(j7;C|8<2wX|I93B$U!r3C2%Wom1(k(F>brD8qSH7J z-FfznCb-tB`wCn{0L7k{t+k}6RZTmVgw5uWaT0I1vHi#D+1^OUIG=%|k@@Eh8l~!B z`3V2_+3}bGW@%Gl}zgaU$QAAW7uUnSt>lk^e0|@cNkHeq7^zT<+ex$o&;^Km6{;*Yy#K z;Y?y3Fi(0&qrQq!Uj#hA%L<&^Xx_jrHc&HBNddaehb$SI(vlL1dr1|{DK48_kijPJ z&E(Sb4Vhd9n~Ya&YUJQ*sq}f>rI3G_XMsiHHEtF+0$W(G0&xfh%04s zP(~43_Nc&I_KsyDCJq&%92qEukFOfy`a7EN04+9`3sg@K?iL>yGm>p_9lnShMhtKS zLgMcjW7c%Ol$;1%=R;<&0-3><5q!^@LKh%~xkzt1j9v$GZ!qZumxD7KLm& z$q?FRex^gb)eB0!;;$a$-7<}h7oZ=ghH(mrUnyF3#Zcl03R1zy*36Ui_m`867ka$Z z&L-!_l}XdiFq`a^3PJdkg*SnjaS&e@ips|yE6g={E&g>{DUR$`^Ion%oP{MUxy|TY z?@ihG++7+QF=yynq--o3ljz7UTMlq~5y>8?(OgQb-y5X9dc7dMASXMEI@eBZKP#Nc zcjWVwt6(X?2~O=34AioT^1Yix&sG8W69FSUf>_1c@AAXfc%tj$o-i>mJrSLu(oUy# zBeNveyWR5#?03?GkQR|BYR~DcxNB6u9q%4i1^Fjw+h_I>ed^+P=5G62k;iOG`AhMS zBz?!<+mh--Z~o^JL;E`UR5}?ku}$mjhH(JanImb^b+|)Tl)C~pk$$T0D$|H6Rq_e_ zAA!>xTc-!6ChT_?(X4zGgAbLBk zt6G8%k_y#)z+lt%bk@w1U(h+Qig;X+w8x4oHc~^v8W+KfYk1xbEobIXu0(+b%O-sECysyC^u=1CjukG0B`*v zyZDbiN-1ynfranMj2poJ_i_(U*EP@znSbQiQKo;$3yOIUE(7;Pb5XX3m~kyLue#8T z-!yT4S~}>J<^9s?|5tsC^Z?hiN4dZ14-lFma7wi|JI6|;BKhYaf zM{cs{?4fBg*YU?h{y|rB=;eJ~+>s;C>Ed8?93Idz0rO8DWY~sR$h!=}J5tzW)n_?@ zx|gbsO}UmSA)>S7`aZ(1>rKU7QZ>?&eStD!PA&WxQZf!4N&e7vG3-hvst$YV4wh0R zVz|@}=>4QJ3l$}#eRl&a8PXJaN6!?aFar%djtlPr;wbB;U<&#tUpb#wV(6ZVq>Nxw z`>@@vb*Uu-LP;JwF|T@lZeoE`SI=#0ucFa;7=iFSU*#)g*dEn zg7HvXCUU&*M)6L))$&>AlX>P6v^lunjhn|r7Qlo?>czy*YX>=X_r*JlUV^dR0n#Ag zawcEA&J4R6qC_I)i-!udC!5+%D6WY4HM`he5!!ooflPG)GSvl?scw*>vvWiXmgz&GtMc+nC!A~P)kw=RdEG6sD%u{ss{ta#=$!fA~%$^wQrOv zo#EuMFS!oWkfR1Oh{wr~`&cz^#gF|pAJ!kbS95tzLoY(FNdFtz;kJj80cZ-8em46c zg0rgU=QLzh-RwqZ$zggG2by3%5;siP$mS;d%nlUc(#2U(5{dZ1(C=1LJxJJdzT7tE zS7OS? z>J%|W)fB+bLbaLxeCD1hES>q5{rA(|Um&bp1pDF1C$4BRSw6oWTm5|6fqmlSBwKxw zS2Q?E86CXzAyYQ8I{v*K>a@i_!j(h(!}R%)lb2JnFq_Z8ekX?CuzaKr!2o>{-|&$- z9Hes`U+euxHv5kPj5C=Nz|}FwT#l6UrV@_uM-tDec!Mf*bGzr1$|X!&Ug%~$!jn?H zOooY(xm|+jtfOs8jwqRf;{NRd84jR-`}CGRxzwEFQb&Q1p%(-<=vor{DU?w1W<0#z zyo8%$FnUxldKFCQRd`ntHYlZ3K+cs^g~{l>nfa@0L8T`JY|jA7y-5L^r$`Do>{G!D zGi>qqv+R?9yIKPiDQq;#PP!5_SZ<$k#kXyXt)0EI+AH*8Y#|nP6_fpcpK|rbHwhLOCh2@R4m2uI6jpD zS$CbOo4}Q&xP%5{FPh%{h4T6w1)?s=>Nwbn;MVj)AVGMO*?#OUq-(Dp3`shqdL(U! zRXuLCyWBBQ%Ooaw^=E(sYUNn?BptX~)>t7TI)F&3Wk{(3g@|13yNdj+X_lz0Ywf3M zyDK>#T;Lt5+QNBU3CBKE%+pAv%tA5XI=bS}s$vusR(`#n;y?M7r`d8neQdcNuRPaR;jaC2s9{?M&gE*F#gSD;`#dy2^!b!)5$Mfkb1%9Q5l_|Sm!zgUuMC)It>|KYk*rv))@qhw&zb-&|> zR4x=!n8(m(GIV#O+5mJX73rZbd#U@-|Jb?b(08np-fK&0O((r z*L-##-a}k-*L0#gy4s<7x$e!|#*wfC5qTOu-qVK4v;|!HK}Bv%TA0gS-B{Ys(2J}7 zkzBjWSi5rzSg8T(zGnPkeAt!xj5s_S@1=++7*TF>@7#jM@Q zNnv+Jza*BuN$53l2#x-U=f#IlF%R;@()MB6dDIdS^*GbsysK~p;9+WX-?x&%WwmeR z9|V-(&eucn9~N4D@6#JRA>y`h7k)RGcp(Ufv9m3(>Rkk+=bGAj#|P&1e!l#KRle$` zVt;+_5D35SrO2y1>1*yiy5qDS-+z0L_n-Gwuj2gyq1X%deQT6ZVbgj>7ie+gUoAq0 zt7DS2cAz23N)HWrKf+kJVm2^sp2=30H#og{zLhg*K%Nx^R@;d^ zBv2N8F>dGVo=&F{xGJt!dwb$Do9{W&hb3Nez5dN9o=1$=>CLPziI*}pB z@0m-dN=)7~8tQ)XaGPsyVwhs|DpF#To22o}wHPDSKI`O$W%_R8qQ*Db4QUq{n=AE_!9+a9f#?O{(<;X!}Cxy zAqRW=B5>*k)BbNDQzWjKYN+!4i``|ZlE~c87?iy4Io4@@@(RqugZ{9Hnq0F!=}ncd zhxv-ly7p7~JRN&GzbNgsgbyt+U#s}4bKjD4Ip3;gMW&V4AA6}Diw_D-#5xlD50J!< ztGQ;L{TS}0gtoXaM;8X!PQJ-kIvMSDGG1@D5|e=bbLD(R@{NgW_mPd1K*o-TKQKUZ9-5rkNw-7+)G?EZ_{i00(F$sU`#PLd?ehu zS=6VEc1`qZjU)fZL$pBNwWG7x{fu``NxxIT-k8bmJJY>)?6vn%UD$X&<;Rw?{7Ja_ zCVD^#b90c!Z5+gDs&pl$WAfvuUm_2a==>2OamA=SV;_bcp1hn~=Sy4s4gj-+< z5f9TWAxTsGHn>SF_Hwa=11wiJAkEb+Hx2K6Ar5Of1ne~=&T(hfC#(BZO{n>%GAfo zT#2X(8iSua&>ZkX=rS1?kF!=)@=lrDT+vf9d>vN`yaTYVsV)K2ha}*rK{DBb;-F(K_*lrZ*Ib9DV(cd{mn31`Jv)a0kd7SU_wH?4 zWrk71>LOYzlP2?`_n}HjD(WoqOXIX}d%z%3($;p6?7_T{$iF!#av2{KxeZMGw|78@ z-TvECUwuFPBegh;~9a4P-9Nqa|j~ax^;fLAEf8-ly30fu$)j=w+ zAJcvsKDjn@Jr6J5r0Yw-K8r3EF}$jO==3MF){%p83n&hp?i(37l5YXNm1%ny)^pQM zd=M~Wm*BS>tFxLN=kdBn0euNE2lnR(*ou7qdR&L*1yA?SbZV(fjubQvz9LdAp?5|) z96`<+1StK>sl87+0ph^QY#i9IS~`;~OWbH$hvF>yF{4M<6eI;6VglJ8`xJTts*KgC zGZ`Or`AxE3t#M<58_jB^MhcO&^ZdN0Tx`>bs<{Ol5hLn23~+9= zRj;MhpUhFTBLx$+TIA+cdTq?WL_I6}K4eAA+HKO1$$xyQ>EB`Lt5}^Af9cjkTMXxf zN_Pi{FIPk1JJNi32jd6+u$OEw6L*M6cUpUJtOE5?Qmy1H`kvk(+iM8hWFWTF4v(XE z8a&uJECS)~bB;mla3FAZy8Ycs3Zv2w=i=Y>f$+@-p`!MVzP@MJLJrS)Sdd>eQ_v^i z5(wSzt5@L0%D93m<3!&IJr^$0y?1Zq9{C=#Uol5Z0Rb|ol$Lx(#|hesk#37QtM!<$ zr(5{i7r%f$Hkmdok1`EMBaQqu@z?5B9c}cgj&cdQ*pdnu28%b@4M`7J`JlWXg_aeJD?-M#Eu|($Ke~KmBZ^%-)Y;z;;YV`n})+7|u z)W}RA1u9bPLC-+Cfh{!!G!?8_Q;=~uIhS>}p_S(FLJRx>?cxk#hn(7@(cYv^YntA5 zJ+H(~Q*e17=T%Yz?z+Fgwv=&Rhdi4)uV;Lf^LkPuKd;Rd_JC&}S|K{Xe|KUjBGGhb zrakB+6q+Msw_5xZt1JD+1^*BUbVJydf**SdVH?dewjv;!$41#Ytcj26De(5#h+5&O z+|$9{&EyDS$MR7bpjU+CDinTwVe1zOd`IlrZMUdIrD7?c=Anlqq z!aXeECb(q|OIN^4>&_4#s3Lm{sYU~JO=ZrH#G&se;(QpuFn9gEx9gKq<)X;Vtf=u& zWE&`Qvx_2k2t^iHN4p+T5d{> zbk9YRyU{0fMU21E%{>ug%hLb95#x~zBoi@CBLu@mjCmenEa(|A=Is+PzFX!ZMi(P_ zh;iQ-NopeV-L_1`=#^M#%)n+nmRPvcT*7seAA|BXOiIP8r$nlnVfHQaGI(CTWpq z%ASrBW1eR(auz+N6ED|sudZ+3o;jVFxck_g6LRxuG_SAFf?G~!xO-qNqtk`Yk(EKF zPmj;>lHvu-&1BKA!`uJk+F#V@Z*PHf@K|Sd>G?W!$FWkZLmBH3uoIU!Y$u+cFSJ6H zslIH!+!m#ncWsyXs_M^wJKqI&cAxK81+pW}hkr}Wwd%0+Y}=0)de5&R{Xfq1)2fpc zBS{Ke{t4zOSjpknhE4f8bV=+BLJdZn_2%Bk?U9jXS_!5Xu(Gx`E&=CM&Q@afb!NyL z*t0Mn<3Fbar3zXuA~Ve2+a&FF^$+Wkf?Va@ww=k?#DSg26xxrXd0FAS6t0(*1xhaq zRNZDJ1D7*P4!yiS(&%d(?TcU1+YWsD-Ne>fX>2mA@_KXiP3}>*h~8PWmhG}KQaJO- ze#f;fcS|pOt6jA7+<{$&Bj{zt`xt_(qK)RJZbSI%jTu8Amx)BQ%?;urMhT-^t2vlPb?YJ|gf zIg5^>>Go~1Hz_gm;x(FO++VGmhy^WF$-~E@`$ekeIknaUxn?)z^oDD^8811@0=>*} zzqe+-+P>U`>98$^sNF*3PD;!{IWr?rO2wk8VzSltQbcif07tf@a-%*wehIjBop}La)T`=D zUrpO?w+$&7U6i;F3E~-Om3eDR@2px%SpQzo-QsUxt@XJ=0Lq?#;)lw}NvvtW^~i$p zQi3uf(~@htjpv-X!`RtI8O=e7!Zi)11tki}&>FJZA5~)+Z1fIiNvB|n(%d!caKPFk z2dph!9k4!6IbdzU{Mc*H3N>yWomSKKng^yR3fY%ElcBBT0X*8=pgjhOtHg@rK;=$* zDC4A3s7;5~AZepmzF6`xqxxajG7+;pS*#0wc9zVxRB)5|9z8+78(_Gr6?+83jp`^| zZ44Qh!Pm9F5NueTAYeBI!%KW}wE*mqH>6Bl4S~N>1zkNzTEm_|Wq88ES-{*H$$+z8 zX~#0aUMDE>H33bZu}vvxacZwppIx8p9XUeJ4Y2hmyFOiPp?AUNEN972fRD^=4wimA zcN~5aO@tLnjNZzQZ?yGm>EZo2quM>)Hq1Q=FlfE#-E`-M1d@SX`d6AYTGWI0(1&3ffz?-69TzT&}! zN?`}$Q*ej*M;phx6E6;&8*K^MU+S6I7P9ByCd6c-8ajR-c0#?p2`Nl+)=6%i545uT zVnS~)-%+d4sh|_wO+)gk1G`&r8g0SJrS(w#S$Ot(pp*_@ntPHE=p;KbaHr*FMIN9E zRfk)g3Oa3n7b{jGfAcuY!#>Z44FjA9KsCt_cj*>cmXDh#^pLK3XDs&4*J41;y*GO7mGWDXK#GfY9~Q7ZRY-RC{;Ya;^TgRJim)j zfGjn^*I;o{&zELAeW8Sf6+^^1RwPlI+{Lfuh|u9`98l>9HthP%IB~ zBU^2QRf8!R6)4@{-1D3-QBgo7dx-@?l<0!OzrE-}VRw^`*}7f;@VfnX%872Qnl{y1 z;cU+COUOZ9oZP<;J!@R-$wx#ji=J%I$Erl14Evltq&1ozS}6M;`}V1`M4sY-_?f%7 z!%0Zk{QPL%&PVgM$yq#;yXK8e8m824RR?xaxgDIy{|#B-)+-S-cD+rektYf8wJVU_ zqR3vkY{ZX%2(01FA%>F%U^2> z8kRF$7aG3Kmf#Q1@9E%OyPuV*{rtIR<-$XyyPt>H#OmxKpo%WRwH%U#TOa{!P-2?R z1vaXAlUFT#&GXu;n&P!JF9jRi?`K=|plpNM0XDF67QH25ko+7h%pvGbfQ?eEOxJ$R zzhBT^ziKY1y6gnN>gUPoS9YR8u2KRzihVVuS;iR-WR74V|!u#!eAwY~Bd zxK&3u*&qBg+fr?OA;%S*L0++os|RUJI4} zW6n2K#M-jKZ_EKe-@uc<;}}ZZeU0)sguI>G1M4djgmlgS_S)6gOVh;wG zHF^Nnw>LGSqjbj@Si$Yh{iy78elN@FykZVT1B83)2u+HlK1?c3rPZ1R+a-ccevN>u zZ3s4O+a|M_y%*!)dJA}pm)9~FhaR-Z z{#|NLAZMFDFWrglyKHi$|Gg6LAHrkR0Y=)Ez;E zBd7LFM$*+s679SQP(Dl9{*1;MyC5$`r|u*rh6_YTTX@9-!1JvH$tWV$Qj#QjLbLW= zibIgfE|tA@p1JFn+9UY9d4ZZg+qCZ5M}CH4wbnCHz4s&kIUAYby_a-_1CONS#=WtD zmyxb+y?GFHkW_WdlfS?pZS&#SLjj@5*fSM;V5%(LR^x zYR^}{Kx_(#&}NLUFgdiZ=B40KXk2Wq?PXKqW$800OXZENYj?ATx{9kVUCpI{$A>b| zUh_O4sO{)nE5A9w*z?o`l&7(}fUsabgX>czhBrqtO0)I~CTBKn=nlSn=3lRQuM)l0 zGs9CnRRwj-1h}53_(*I(zbtH}BfdOpJut_9(lRM>SPxb28eJm6>3HgM3dEWVCY*?a=fF{?Hn}CY?^P`RDhnrnC&FlzFaqGeg}h zuv$05o*gBg))-H;8q2RB7*?8FTi8?S@mY+z|JYoxbAhn40!2Fmt9Iu|f}c~tCfrrn z#L8$jCuC0PxSpm|UO&)Vp06eHn~vjPX3T8nGYX-Az!L=^{Fn#M6MmF4EPO>}24tn& zj6~0KFNJlha9xSOUb&%CU!GGd{)-e(rCTBsf>C&=GQwKQ7;Hodr zSI^Er7xX|UP~*!5oDP%jqf(ARSFhG&75W9u!>}Whth`E=LAO2Q#nf0q#R!T|OElrHaB7dN>z|8%r zhCtD|DUb8LW&JUVTi5>AzmJcSV^(mc1SOs4qZ@OiGNz6nj*>81nQ)!X{l5$?v zVI#!5HB|IMpa?aH_~IrT^t&2`-xh1-QBozI#$uWqQi>)*Kir^SrD%H1sw}L}TbZ29 z7?d;uu&-CAfXm7UtVfsl-kSy$K#YyrEi;jpT?v1D zI%w!=RG7^153sM)IiDS>y3vJqYhg+HoeUtXD()MgC9DXooY=A$d-!)FP(e%B8{FkmN5}iDL6|HgJo*1Tsr)gzbwaAZQad;CuqZLd(oWk*}KbCYRUWi?@w@3SlC zxw=+&K{A%p=wdok3x}u$a}BS%M!Tix-0zcAfWeOU(d`4C&Y};oUbqIahIFIOqE~cz z&xW1Ff96Ia|EU5EPm;+mtd?D&YE9XqdKaRV7%!L7Rhm+6c<_>ovm+0;nR_qj z8D4TMyyWx@FLWk&c{<>Na0{A)=7~8;c+p+pYR}_LPcXp0@Ps?SLfh9sM(8?LK!I#Ale}(@6}~?k`)WArzlCMo$>bzh**ne!?@QGR6ztrMI(x?@&z|lA+NX2Z1?}T>_QrIiarIu$p6}1F z-n<-c_-}yw#4Ahp*#M14O(JCB{#+-GQ3$DXi#*Si+BR{+}$`vu#7AX&eK?a!XJ zu>Ifc{Kmlsk3-6Hxl`d9iy;v zUp;6kc$4`xh6)cX{zY_?3l@DsJ%hyv3l<}K28$6cSjw*Qt+++@K|7u{tfcF6w-I<^i{Vs+uADD^rGI%i;Dm2=~>#SmGY)?=z$NZO2@iS8N zTc~)4LeyZq{{|{9Qyb<%8u)UkNaE3^G)mYj-pa9Uo==-D+br_^5A9x36@I50Nvaq> zw`X#`*jW7IrDfzh2(LO6pOaEAR)8wbpg)P?wzzbr z2Jv*a7Fp>Q%lv1kA<5M5xx6Z;RL7I9rtxw$l+rX-GnA!h8t=0zMwBr`^P}s)$UXo~ z<7t-aKA8gwWc}PDU)dGADh{^tNjwjrxk#48D~tB>CET6(mLKr8?~^sXtH%3k-XV}F zxt&R=yfS0ydsI%2H*YS-{{P9EUR7sVZbJ0NBUjZKFYk?9g-O#7{i6*FOj9hqN)ni| zuh76i+rT9>U?V5P*7o-eyPQ8Qlx?F2+n;&uX(=*qyj7J?X{NSq>qL<;PfkdMI zHog|PUw6PD%}eAj8UhtVBq*jiArkb*o#G-B`8#a-<{0m&&`>;Q3zg?M_Ji8U&S10#dF2>IX{60H&>QNZ=T_6#CPnTEG-7wvhO_IqiTle3$t>I z&_XL*Xb>^pG(0cEXY8J#dQ%%q%}#Uxakr%mRluGkT3q_AWc6Qfp8k`zrXQf}jRE(B zL`4}0y1Q~nBN)#J{)aAilbUV43DBi{NR@CvI3Tvz&BC!*sWm8D!8N6@#n9C|aNTB> zuGOq=m2ZU2s0Lk^Olhf59nQSq6AlE8gSFQT{J;({=n@Z3ZzYO?30ul20%~ z{^9&9lP_Gs3*;#r!@`o9&&ww?#HNu_dm)UuGSt&Vgeb54&BMKphV$N@>o#;R>y~3} z)c^HXH3K;4xBkdc28BYIGIz`5A|CIh-#8ZO|6#w*v;E%p2MZ!Sbd5!IFC8EJzjge| zL7MO|I!1)47cIp&esjHixWt}Ho&@Mg=1GDAJ@SYi0n6U}2)CNNN5C>!St|yh;J_E{ zk!JsIc=Db$z0PSg*G9Bz@o+uD*CVML@iN*q(-%v(9;>V1M<`xKbo1{D^fmgsVm<;b zb+VSLmsBZq+y=|^IC&Z+KYo>Tiurpm78bNW1JX1y8mdwE~g zsXb?KonCeF;u?)Jn2bD{6Ok|=uvVp9BYqzrEzK0fHIEaJMP{K@XDG7}PZ9RLobTi_ z`zHC!Zsb+ltha=ArWsS@tGeNTmfJo!fQ7h81oS~Kg?#VS zE$UDcivpQb`gt53tesGSC@uxh@SuY#pS>m1IEXUHqsop&>clWwgwTUU96j-UoOv_^ z&sX&`5Ac{`QPyg5Wo|GE=HOP-`#C@hk*7iggb9QQBl4C3C2LtAZn3DDS}R>=E2t+A zgh;;CCeMTgrxTxm243}`SK0a|s1AFffzKnbdze)rX~p0_e?Bb9fA%szf6F59?sX}p zVOCvAt6?U-FqC1JXjUoV{}#o6mz;6y&6dX{-u*6*0kN4w`4DI{*V#R_{$HoK{$Kla z)c(5K6TeeOlN=C#lJxxzCj^#Qq%X|13;LAD7m4Ky? zDD+7Glu>A=s%c|lB;(G-#5w=~*_6s)28g6UO5}zf++)RV&9LV+nMti8gW>5pZtZb; zHZvX*v9flFnHv8*7K?FfRCqb0;amcfEb0rnAqYg9Jil;;*j;@W%fSM0I&-c-kQM-s zwB`hP=T^8TQN)NlhEP&omAr@!RH`$3E<@5`tO4WGJ#y@ua(rU!>qfg{ z7mwBAedl7|MBZl-pwf7QGQ~Sg7`46z22v$xS+eJrp0kZc~!C8jKsDDYwrJ3&k*D!95^n z^kdGrA!ft>;X(wDRM8XZlg@f5O)>V#>?cf_=SNVI-Vhuk_r&yb4=}}#0w;K}bi}F4 za{wpJR$gXmX4x&!s?@|;$(!9d?qxM{HsU!TfC1d~`e|qCz}YqG)8Ac*ibVeD{q$8E zvD{tkWRe%s0tkw{ppBs#EM~IKU=f_B50zEtu(@~Y2vz@|K*(uT&Xq0?wc_NFMlKhdkP%#fTQJVi%myq09)8UbMX$dgeuk^ct) zkBc|Fqi;WYk_Q@Gd7#pgj-2o3B;^5-O<(L&8NI2_fW-@Ed0Xz3$Uv^m5W<+JV+eS% zQaM?6Re|$(&aM-*zjwFy9B{lfrrOO6F*-UMtz@zIa- zHiUB!u&z>Y zCi_0m23bs(dM@r~V*a5iHz2IggT6sni)LHGNFn3b11Hh&7NzGbK^Sc#HzBY>X2S3e zhQsUOJnT@S@PVSI#rfdamhJjR_#50RRgJ&_7P$GO#B`SUQHFPSXv2Nkb7(u7yQcrI z*;h&CKZH5y;=YV=FM-P-H0Ga=@QjRP|K=b!gyN&Ha@^c#{n#|^tB4v2#y++@Uo4#0 zfpi#o1n=?&5=P;@#2yGM&J4sB*^$S-Z%2-Y* z@j|~4D#ZaJnP1lWqxo0Z``2lG<=QrRh3kz*4ixL@ScS!r5fLjwOJI+4k{*wzE)B>( z&fjF;KR)$-lly*mPe=Ru?#MdY2snP0A@Yb07m9FoO3L0BaBGAIhug~&NGM2#=<(V% z_J~nCwXbQj0E!ub7&61WJTZwS^uIaj*$x5F26#(k89^ zDSaK5uZureI`;Todv06JE58yvh~;x?uh+yf%V!SI!sM7I^bCUv*~*!g(;KQGqpVSS zT5tZ49K6hJ@Im|@5n1s8Gkl5Hdcx>b_dVMav;($RaJp+ju0^wDTfp3Z>FF%!Q+!%%fAd+owHbG9)0o)TkNlx z1ZAIFC|8-5l5o)nL41cOCS=`#H@eD7LzClxMS;r*5$@%#ifWS&j0g0=ibRA zBy9aX&)-LK@7(3wbKdiw_q_XCZVw|kzyQ{?LY=NTL`3SS_c&-rg>bpMjx+ldVIDXr z2kIYX=(0bKQ5O1(1FGMc=8sOg zR3A6?F~eBlKK5*znqlvWZ%+V@0vq*c`ean_Mfn?v`%ghk_>bpvb zo!S?4nb~lxkj9pFt;QoS6`}R?<=T}xwl*U6elid4!L8=+O84zv@lvWD4T6S6%P%Di3XO<^ zpY-X4xTcjRUu@gOY#doRdGwuyUdVLjus&2l@kn?=h+l_XPbJrZ$OEaZrLA&2L15D3mY~sR_NCLg>q}S zs7SeEzy5M}1W6x%Z23-p{1)@^=0BK^r+ulSTg{a|b^6YJYB%$#i}+Ls3wLTz?gbmV zS8(cMZ!O!&as3$tTIv3WH3CpOeXj={mA*E9XTNr$`C2Vsd$_-qD;_;cDxS5lzfmWm z4bz)KmQy!#$WHp@(w!XX6G~g>_Tk$mfsgq6yDsk{9-JBMdBxfFW#obbNQ>pk1)qEe z{QV46mjME3Cz=%i{^BYE?eiIi~RUNUXi6wt(HFJ zZu01pVQ3{q#z?s1AVm^vjB}fzNq8n?-GSD`r#-X0bC33XPX9!E^17itV>fl7J>~Y@ ztw$Wro74yy|iHGLl$_jIN z4D-GMMLEy>y{-f46O92v92~iaaesZ%>LsVKtgGWW!&bCQK9@#83*nGDY!Nyj> zU5yiW)i{>7XE$<|PM0QZM~lk!ztX**7Q^woYt=wYgW6H6&7lb_tl9H)HOuxv-m z{Y=Ye({f6pegD!fDEnKhm)R;wA^3fH|y-j?|6E)QPR)&69k zmtGJBlhZ1%);-}ZG3mHV9v1uTy;k~ef27k%Sr9Z|g z-?v}E#is06S9suIkz`%!omYT%Yw?=}D4i`>Vnl_0$=oBq_7+Tur)Sy2zB{l)a)Y_( z3#S8z>zy&lT;)&aE7xG%*Mt!Ge|-~ntk&4DhooGr#_2Bi6;n(Bdg5++2-=ajGn+eI z(pAFTeToZj+d(?xW8*3NV(2~MtbBXkLX zxTZs}^zpkvuezxf8G+g8484JR>D-uw6eZ|hym%F;xf_11IQQyX>Hoh(`kAK+clv{3 zan^Qxs>sxv*5WD;plb$X37{3#WVCdLTDXP2GHho2Aa37Twu(O8-k!wYLVrg$D(r zmIg)Vi3)Klij%F=MdyUhu8f=$Di6mSYPryCXcbJP`DGDkwfo?M{=AkA^gDA6-|Kc> zt7LXg&45RX(`TS35FEyWSn1v{$IPptkrLJZ@mp_RO9HcDJa-&}*RVFJe?YUQ3R)$w zV=`^~360r3lTXZI`HA`)zb%dvJaf-`AOd!;Dy%(kaM~EUyg76Q@CjAE{+@Fa&umm)ZJw`lh5lYzN*dH}gvOsXNW2tpT<|)u20IB8(h* zl>7{)4Y`eLVdsME+M7u!TKGfubYd>BAq4HypNLAv-n19T zaIvHwbxc2rE?s6zj-yW2FxV73S3@~#3|-kAx~kJ$z5h3Vu72WcaNW6o?P0F&TI7TM zt-S&J6rS5DygrMSxYGUg>@Fa3RqWY=%w8I8pyA()!jtcB1~j>^qEWU>|62rE{Be~e z#i&F}q}sdp{%%D8=<=Hj)BC#JRPZ_G&s~29v|bgMrZ52qah9z!NKx^aoEkDBz@3+v zOVyw9qy1oWCA;<}o*CSs-=ppx!5yupkIn{K4C$C~qW^pse0Zz4Gd_%^OIzSW zn2RiAY3VE$-8H^voIAS97jEwIg>Qe=%@;o8qQSTpeZyNW94jp83{AP>x|%DmnuMmT zq&XB8qLp}yS)1XMc|NY~YD@&$Opd>=2V5&y;N#j2cwD#xc@Es@Sd^z&pOjhfgicWAE|6_xArhw)?7V%y;?HZiBtgnxAGwjC>^0zNYUl0NUUPw4`^z+ZJ7in<)^>)$B9PFaT%e(t-+-zUzO^Yc8RP$4 zTv-R1={ro72u&fdG45Z_73(ba&HeqqbRD@YF;{Sa$sGvHq+QAu7qw-fqi*?4q(G^V z3=MR$CVt}cn@zMCk$ConiKR1vDke8UA>7}WcqNGY197rG^Uf&sXHzd03tlSGnECTz74rwm^QAx>6E z?ApR}Nf15hm_q4~Cp?6y8CT8`{aAu0j8NqA8TL`VsZNRtD(7N_x zFz4Qi;yU*U{G2TL`|eNQC7rucyv7!3&eP zQi4B0D5Z<^Otb(&_Pk!<%-7vV%#Bc$jVa1EEl9^`$-YUjn}}7pw<@z-d};~*@En;s z#zr2Lc##KOf+_7tR4)`Vd4QZ)1>+o(3Wew>T?NKLy6gZ$B?^EvrK?KXgXu09_hBmp z553Y=CGKDtc=PFoT83f2o)Bl*r31`?9(YoD53Q$WM}4a-&CD^)yq6HSG_@1Al$H{Ihxz=Grq!R> zRwuBT*g%0$l}U*|mQl+xna+sK)$a}}+SAHvV@<4dhnj|;Hp03!avBz|L52D6sj@P5!Ut*T^hF2*CBRwZ*!M}=(Zlk%UNBp`_M9_;v5NOAri{pIc*F*-W+;D%*fw?P(XUe|J26hbaqeJ=ASs!!0YJ$`C@Xkw^d&Jt4Nw_7_9R$bxT@fRa@pifQ z18-OKJOmC&@Gcm=HMQkP+QV+~Z^Qws(rpQ8@lYW|>yQp((oUS8&&Mm=Llek}#?2VL zBOKnLWT}*PG7*BXu2CmS+{>>v?8uI5A`fRdt#l{FwS-JMfw0>*ny%gR2GWgMFHINy zD<)AL2`6)_J`@tMXD4%Kli|sNZx3Ar^|j}*V)K5gpZJ7nZt$(LEB4~f#WOn3XUac3 zX#GLfX|X$5Gyd)KJ6iT~1{r6ZLB=+c&IRU&at8Q8P}yK;QtlE=>_!PU@er#e>%aCi z7)~T4mnU=2)l8N?r8zE#S1GYVk7gk!nY)+-OkgcI!oUTSIO&|^Ty7rm-39!` z9X280c#Bvqo>Q}y%y#S2Lo(2YQQyNHftVDEnGhpVdt=-nSbFWcNgN2wIPH%dK#%~&TczL zR3QFzp&E`qU1ASm9i}(SXc%^G#q92-E@mvaCQu>=*97C=if&2IieAYl)jB9_%`IUU zNSdhlDYvOR)-7S6zLxHmu&dk>`nh}a3~6eb!g2GhH1C9;pwmFzZn|m4VOZgw5|_$pSx{Q#iuV1%4Fe5p^bEU! zJV~c$Y&GGqje?;w+k9IyVdFZwdNp(_{2c1mHF&c?@|~0)hna`xO%9tqKwa`s57a^N ze(}&;rF19H^s|BbFZ%&$N^6uy7Bgx3?|^XPg!y7l6S>!aMav0LrD=}DIFj{Dv#t_@ zqZGUs$QL4H3gn60tI+DXbM##NF@xi*4b4F!VSm|m;82Rhd3c_1px|LRRUDYU@8dZz z&9i}>b1>;IVkinsY6J(A6?*1zD5k@SR^>c6ITU?F=#|#3#JdT~f@6~zk@HJ4A{?9cGx^l;XTlF@Db#5ic}bML&1+9C zP0D5nvrlQ6>fxTgM*c{(W*d#59k8xNwbmbLcjeVm0U=U2m_D_y@lH%tp>RUZksGQ{ zR*D5Ms>-y2)2(dw>jDN98ZLuvpOY(^8BFxq23{D`tO37hVzr-vlu6U z&vrNHCg=kqsVSsmwhebOrI1+{r1#RgNSFymE3FwcT4_yN)G_g2PzH70eSe*avER9E z=reXccSf!6IuvRmXCn)g+7Bik{;#WNqLBaFR?dlMM9$k8{CBn7Q((_XY78Nufd$1yMepvfcU$8k~)qyUex z7XBp<2+YK>hZbOcSG)Do3@ek`JOVR%sd=+X40fbeNnpl%>TY*DxNsqv+x9k10W&Rc z?C8iLFs}Ycax__2&)A&wIcFSX>?+o9WN3daH5Pe}j@Y3A9p5paM{eyrpdIq@`%=BU zffkz0Qjnoa3&sjRCRm4&vOU;2sC&ARn+7vA2r$z~7~1mQnrn%V9!Teo^xQTHPc;v@ z?NhaT=H?@^X5L}A^#u6}Z zPQ*j8#GcQp`%2;EITadHWQ^>-dZf-e6$WN1X_@rLsYXQb)9k(^_&D$IX!TBH*xhgoU+g}^u4>EUBdA371*^k#@2(Stnf{I0 z%g-gB9a`wl8Bk75=AQp1xRA`Pu!o2}jN|}AQ)~~%+lxopUx(UX2k4;sGyvg>Tg*A` z(`;!KfYVigyjH9S&a~<5Ni(wgUy`i$q9u=6S&K;RYA$Hc7a}hIjPrvhhwo_H~_k^2-CdEHNvwMkt4*^#q@nq*VmbL(-De zl&%|bkEjJ@-R0Bt_Zj}Kbo0qhMQPN@>ik{&o#ozZ?yet{?2?VJ8-K<|E1XR+D>LhZ zSAF5Eita>I2OPOD=C}xCbED3??5@(dMB@n^jD!|u%;(uL&*yZsJ#AvFh?b8r)-*SL z%FS^DcYjJZBy)qWnJEj+_r$Yo^J@8^`9RxTONnO>@Iou{oPk_cmHbbj*Wh{~`DOX& zLvIPB`>oa@9EQ{pC||2pXOxmfmMWklV7tTg_eF0^f9!5(LE1TOEYHg;X}l%x5QX^! zAsHKaN`)WZ`?=8;m9V#_r)*R5oBMFjV$H9IK5NTvOlZj)SB0tOw3~33YF+_VXXj{^ z#r%8PaD8n%F!O{rG`Z7m(lBwdm#*fVgwfSxjg+B1ZX*i)z`}+xd-$@R3g#M6t;VC!fNEh@E2j!(%mZxCa1PiGC7AIrzS0?N z_tPyI`VzUn<}v22$sPBz9&A~c{#Jl%MVIB4^UVJMpInv^^+&*Buwk66>v7}p7Eahh zyg|zth|Je`0pS>dWc6Q+@Q%Z@h_#{7^($Ej;vY;BJum7)BV<1;+WvLjeN#$$(F~tlC@86LD;yb zO&cu@S{dF3uCMdI;$L+$sEIRASqq&F@|_r#a4kezi$csGS~A`PqHRE86?PTTs#$%W zoxrS*6zAk~VV#s9((f*ORoK;wQP7CUic+kkC92O?3gpqAd^dWC`2yK7w&`yl(;WP* zMhySWpu`rL>K~Syec|@!eh;Xh+6>R5O_TV;mZ?Z&C5+~4YeWJU3oVJCQIRt23<*0^ z5SV0vXE!}dnhUzIquXiiD+1f|)fyjA^VMMaVJ9K_q^3P}nVAP)T}JRip#BIRh&TeB=;~*JjCK4Y=S}b z@hj3oBx*A0<-3j~n?}|S@10Szfh}1$=05)lUZXy~%~sE}8@$r!leKHn0~>7n#Z2u2 zgI4cWvrm&r88GKpry>^oNlRIg? zdJ}6(=H9eg@>XGT60qr(sIEMx#O*`!p`fxMy zb*mDF!MY{+3@n>?sScLSL{HX`Aa0gBZ8eNq=l`TR%+co1DT$@?iOe8EC`y?)ZOqZ8D}~Jk%Kpkbo%TvEGv;o5%}Ay*oUHtEAk`G@Vpp6%TCi2 z7DKYGpq~oHOUpNp5~zuPYxuX;YDm6LX-G~o8j{^@0)bEyyzp8P==Sk`3W2SuYY+6) zA-7KeCXQ8yoFq7PqptlC&scS>By_1lOeEPVX;R{2VdZMj#L|IysDhG|V-JiZsBfBx z&2t}$nVOVMilU@M&KiYKTK(c0zqh171WeD72iH^Ru5;I(##%;>|20?8;)@&eoKTw5 zSg~&RvT5$O=Y6Nh{_I){?9$ocZT<^XrwlH zI`XLW{piRGy287y0iY*yk7HRQ4;AQuOx0E{W!HA-&3|v6Yjyk5aepE{q{Z$g;=LcI zPsAvHB0{KM>_klUCt{2yLIpynYBm@$vk@ex7zK;AH5*LD3jX2aKx1TwjHqhJ&P_+Y zdmTMyIu7-U4ptx1F(+-xOO(vr^n!ugmpUM6wZSd}hp{EKHy@Zm(W09VLUW1x4|HN` zzUnkav{HU-rmLLgv=i%Ns=q!uQV%HcRp%5N9g4$D)1g-Ps_Q!@Xk8BzRLV2mtdu{a z3NaHT?CV%9V*(2%u|vQ{1_+v&+U)Lng@CMVDk!$P6;0%)rT3-)c) zre|s{h1mwB$LP?hJmh77A0vGQ{-2%T-`#rIl0Mz!FN^Jif1aoko5Tk{>VSW5UF(KY zE#a9C_@@>~o-{CqQl%CMt3Ol{STN?Gz=A2MIrtu)bthKHVeCXZxkAd^)9JD%A;V09 zDa{#Z5d4vpPTY*RFRQN54XZAPj*UxE|4%<}W@v#9ZpC<$AZ$>Ox7>a=^vA=MJML!o(3S4j z=I`hF>+OeLYU`3xxprW!c_Uo+xO#`{tMs1KMs(Ihoaf!ouhN`t6mU#2)#kEWdNr5b zz_k_0+zBlN>rhF+WSzk|N@w{>{J|e1w33h?|IaA|hL--fe4<0Wo;$Mk= zNoTj$8eFtJQ!sr zjcX@U;mvSOJiDgZJS&|$3{=m#woPsmvgU}RuOcd@Q;5S71uq#WI z8$7t7bV6_APZ(&J0O0C2C2RJuFRP^>vprTed`dzyPKHoACVWLvICC>q5vmUl7k@S> zk31jrv!t<*Em$e=$BE^+*mNZQ^&v`3;1op)z|>D8f%464X2D5)OB2@z+xMf)4*#7x zsV}7&PHo@yX?{!#qou5S6IjZVhD3t3m}YrXJO09?fyeU_?-W_0$qiDGkd&c;xAc24zi zGLZK+`S0T+m3beLzc&Y^B|cr*_;HIODLhkD+6XlyG5)f)Xm&?!CJiI%ygB;3(sN-~ zOAHy!`qL7Yh0_1k8v|0KvB7z+-mkx%v?&9@~7jB}%;zN%wfTe*0l>sL%oR zw7{;O7>~#5mq>_wEb0sm7yl7opNxYMNwNep_1S1p6=zfUF4aB@j= zd7ogfNbw6b>%qbkNjG|QxOi!xu7wW-7G&4nGBB8d!+Wxcs}ujzCLL3xK;?Vr=b!ii zviPGNP&+((YM>#Zs{+7oVFwx5XbLjdL^4;m<0(2C7tb~3F6cNw7nLKwc;db>ltB1g zMV;s5@>VdwNO-Xu77UZRdSvl{6@ z4Ks1%uHnqjDL9%qa;Tt^`DN63_K5?5Mzmmw`(LRoknx=tNWal4UcC5)>O+CQj{6(^ zN?^fmwVMvC&T7mNxXqoKc6C0?H^(uRf?JsHirT?p3M|wMDFDd(U~w&YIb5(FkJ>%F z%womOKyQ7tpji+BIH&`#7aZ$eU=%1nvnY&YcZl{GuiWp&m!w4{di&LNc|)MN=h;}s z$Bmjv@ri%6i{f+9y831GXjat0(JsEmbdEY{)bv>_R2ViUSbd?gp4I-u#!^&d>rAl} zBTXy?tM(joNwE}5+YgI6y*ZYefQ!A;I2E! zZ=*1dMxLe?hv>@^f&QCDT#~cE}6v{DZRz!(RnoMxUSCNG2xLefzebPkQXrF7p zT=<|ttxFr!^9;)B!!)w0)X4HVvm@J!B?^E2e=xq^{U44`V{pfOoHo7zjL+yUWmLnR zItkGn_WSufSA)I$Hl6T$k^fsK6nV24aGR!|+#=PxMurWk-ak^;MD3HNnlFw6#V?jG z5N1HLFI;lzB_z8vdGLO&SKS8kT+Hv)zE=6wOnfX=ofNr%<$e>DjiKrwcLW-0YiMND z79CVg`A>ph?S;(RqQe3vjxXw8R4OfJnJI!3SWw6{e7`4-+$pMU{LTS{hE zEb(i3hf8v~u{~5r#4!|Nj+__>7yKY57vBPQx?S7(vgkHC zjnB-LRX*`~7UJWEGoOdJcA`IryKlfDcQ_}{5PePtqU zv8liSW|6qL(#}4aC6$&eRgje=raDm(z~m~E(F`SA7E3%O4B4Iq9Hi_j5r_*m#fmpl zFzz#U%Nmjj;V}c97wVv09mqIwo_NhY!Dx0`+71+w7i<4JrA-#8sB;$V+n@7lIgdC?qRxkC7NZ3p zD9zSPZR|>e8D<|I7{+;9tfIkt3?#9{k@WS|Nam~DJrU=(8~5gfWw(CvZjs{GCifZo zuXdco{uwEFo9)1Po89mr^ZBd!JP1M8qz1o0ohkT|-TvT6=4(7uz@Xg`<{7@s@Q8S@ z82P*~6P4R5vTf3>pcL?-0jjNR2Vj+%;KmeHASq#@DoQW8l*}`;p4>tm==-~0C#4`l zkTK1feFel~_S$R(x4y7V+9e%Q!DYUo;y#yo`s`?8QWCAqDHQqnatvdLOLh^XfC^@{VCO1p`kCe{{R*l zY|e=_yj0ykI_&ImllnyCXOH75i}spv7&idve`V_^_%ek2HKw$#tyguRwC=^+Llvou1hD0CRhH*;WTd z;`^7QiFZaKhmlF0XAjr2d0esMA8E%wGFY%89Opy)78FJ@d^6-|eD5?Eu!sZ$;|$Qv z$khYY3ud>eLa6`XQBQh786Y|-CeCC^35T7>&0fz0vC+QnW|CDW++y~BffHBOx|?${ zs*m!_2l?(nVB<~xt^zB8sP#bj&mqFyG^49Xqeu^Ne!%@<<*+L=vy(B4)R7}=XKzBW?lsbJFmajDcLxgLhK55UITtFx}DdP zHLrg@Up<(H71#zMH8Uq-!hV*gIgxScj{?T@<(f3<=$KWNZ`@b?Py5fu=kz!!)z4k8 zR-CM?hrPKDp(6RGap;NN=Vvv6*QYDV3aH5S3;73c5n3(rzr6AKg`U|I0qL}&BQt8g zw%YrJ?r#?w$Ick|SGgL3A`_rOBFQieY$`WIm9=>s;IayeX5w(LQKLy`l=MTe_Yz7h+zu>w?J;3N z@VpM=CTb(I7ddv(KUaN8Dx&^%_x$UOYfzKbAr!eMeQjXi6|(id`}%f#_Y(8nd6hzQ zN1_9iE>QnxMv?ZlwjX(3Dkb4!-1n-7M&rjsXUg$D>>_zOS6#Vt4Pb9$nWd~p7!zQ-+Wir~;O%ei4O~No;t_q zymx$w4mGb&<@I#R)Ers}L@Eiu=veSyZ^y#>;2-MDF|=m!*I=?@QSLNz^EL=weU3DN zJG4U^f1ZDytuA(&bQ2;}{7#MW=Lt&^tb1>r`037@(~TQVMIP(kE5D;t)k|>?x6x+A zQ9d|RnEEc$@89KxMKPu?7i~{B+oWv=yiFOGf?hbnW*J6W`-8C$q{Y$BWq+tLyH?f* z_xt;UQjV|lQxU|-uWT}31*38Fwb!siT$2MT2YD+aI_%nF%pW8;fK?78PRa*X{ zmW$km5?LkQc?l?qHRKNuf&zM3)Y>?NcBCO6^ngJRy=O!AzFK4283?cLUG$woQ)$Tm zN_#BO)6J9Bd13HlKIyR*iQ0wT`w2Xa5s4PDk!UgJL}%)vx{uz87?Z>_oa`9`F4%$k zd348Vsaw}~c;7(%Z}}nnLn8K+8~(cp=6WcDSQ<9#6D~962x>-F&M$XXm)5=8r`&0- zAzzi@eduebHXJWxo}JK~I0US6e#wTG-Zdlm3z=Jme&KmNJC28Vq!Fh;Qg=I{x$zuH zB1kSB?HKb#Xb!w^-D;eiPPk$lCzV`*%Z#V57x(E1ow5IQw?4!_%>}yf zPtVTt*T(?_B->!szk>z~TSE8o1gyDM1c%aW@0g=wsmbv`4vqU16p7DA)cN6%NZohF zCLyZWx2!GT9#Q!5Q_6HC|=Hz16QPS)^W9WeBI*CVktnv#otB)BT=ZR zbJXw!po`rF4-(o^x4O3(L85Xo7vFJ9E3^~nY}99xHe20GXX?0yYf1ND?%K@Y8g%8? z20^_1Lhqy@NcUOR5>OF$Rum(Gs%YEV z8v{bARMEEf!@!Fl*xGEW%A8i1jTDexVB1eUqgxVGxc!j4xA!TJ^N+G%Ip!maO8Iv}BG zygt}+nptAL9<;eHsY61G1G|wrB(^%R+nG6Sjo*Qmb>9+Mc&pB2Uqf6@53T7ElM(18E&x>CA=b(Z z?r%OeNN*RQN1@+IL)@M^u#{+5@*B|s@IFON4pSSsuwLv4Su&n!#e5vcpKw9eW1KdI-fIs1 zo9;gER())zdCCk{YD-8BWNZ@4^{#*TOZyA!jxaM3) zl@0s`WxPo6lOn}yF$EVa3p{f!UrP+!-;H#%wg;`1F6?Cnt5$3N)*eXx_IIH3bF5?L zT*$+GoHFO?$w2+N4A`HAMbK8t^8|qojvfG{47Cv(QY$nO%WSJ8SieVuC9*jV`a>>D`UP^2I5|GXfA%*+8eYq=4xq7`^YQ}eK%*Kw>QmATN>T( z2MVTlzX~xqb;~fqj)IV{4b)A9N;0&$VAG;*2zpwSZ6|_0KSj{zy6>ZZ5J8^{woyh0 z7w$Hx0=f|NLEzi}M$n&S03ugkm3s(wpe`gPuo--~E*w8?V>^0i6ua)rdcawa3VVZQ z4KlRIC+e%*LetwmCu;pr1H?wjlS(=?H>{Z1gS1KbYOq3;sbRv><()04`fu?V7VY>o zU$xVRVk5@%oh8&MP23p3Yn1gAst0cZJe;a7Q6&=$jIj7a{!pyx;=BXp@%w}pqqxH& zx9n@VZKG(MBC%u~<7uMfYnww&7qj@09Yk7}G>4Yz+qkgupyyHC$g^v_XUUsu1A{@e z8X{xI$@&;eVS%^_vzNq(=5I(e_ZB^1Y+c2sML=nhT+d7i`@@4i4->4$LH^ zlZ0HKBwY7zOA;(i+9A5|FG!jDW~r7;Hu~M8A&V0MQZ#a{E`0H@-mx219 z0a=6H2l4krFudkyEO^I`pfL&2j0i>o0w-L~cUy)?3M&~hazmd9;ZoA3w)YF2{B>#I zj%F&)=2Ra;Xz^$Eabx9TE$>S*29iTanAi=wP1NaSmxiNyo}u~;;BvB=p48OZH3sj) z9>9how<#^&Of0#@p9kuvnq~dEe`9bOQ8)DkMI#J#FMh3>4X+vdzd@qvKfo-Jwg%Qc zWaZAeB0-zWHhT=a>&;s!7-EHi>2GzP80mv>S9vO0 z2+n>B$sM~_BKKE+6hf|cza*);M@HM8AP(K%LQ>KKyI9!xsKXv>*`M=!;7Ask7y%hZ zTiWW5sE}&QZUi176K$0@?G!W#b9pbr{mt$oOKW}lDE9sk(X7jhrHVv13S%zS=$TTB z8lEW{pERU7lU`O1F_5*@mSbEk-w{=bIwr?``nY(G9_&3rFjPp?=9Cb+02bQDpt()MFFEbUVRS1qU2?3mS6$({~_Raz0fB7OHM~$`)i(Gyf z+cgw#g*#Dc*J0=IUruxSG4`tS>F)%zD_7s;aqm)pQAJ1A*9gXi)l!L#`pbSV!y^wIpnJuuZ80x( zbxb=Xaf#fD5ECY&zdEBx&y5Hduc#^1!_Mn!MxXX>nZU*373oc2a4;?5^+FFP@u=;b zto|4-0J@yNj>5_Y<$}DJj+rmwXU^9K`#nz88Izumdl2y|p~l?d7B%K*@2Swjq71bojY%eHk#?5gxQS(hfkOnIDE<+Ks)eG53~(A5V!KiXx_+X zY6A-%o6jR9jny*lJiUl>d7(@o$Ct1M8?ee?RiM|cdXoOcLqSf*+S9^tBC&|xC3By; z3oI>tnwJrVuFDJSPlcgK(oDvJ$=rkPG^>Z#t){oXX`*}(IA^cg?#Q3DO$q8uurz`Fw8Nr@LxXDJ0sqpCy)_8=Eo1?4M*zNf~>ds z)!1+}Kgt{batsF&iRnRt3iYX4Ll(cBXsmcPD^Z8F!aSHp=(-m<_M_k9vUdn-;&2HUz}I^!w!FMvOJL!C6QIG5vXqf zXf$R8WWOP7scPuom^ad6suD#4%clC)Z zH)$a*12~<8L_DiVxTcNpemw(c4q)Oc4IXMeGm&?q|9M14DJ;m#78d(()tazl#v(W} z1m#@2Y7J|pm72Em6bw>TTK59#K{>}dU5iQXZ3;+|2KvVI0+JRszU`bcY_a0y)y39+ zN7PLSwF`Fj0OK(OtY;t7!8CzG{ZA6fZ%(H*UW^bg5O&j)Dis$13S;#m8L|B zSE9X_Vnn8)wEo1LU@6#oFxVR4HaUWFtYygoq!UsaA=U(bUD$8as~!@VTJr;D!M*e} zQ@O3gys2Fb+-mjJLJTF@FVJuwY6q+hU}f9mVC9kKl|X~TWd&|D%rI&R5}QVfvCGsP z9;tiEcpzoqAchZ3BLiyRGs0GuuLlZivUPPHSEFzV6C%zzNDCDA_VIHXb-yY09+>gN z-Spk(Bes5HjPjv%H`(-ryF^(9h1#_9jW2M_Sy~cUfXr&C*-Lm_fk?=_#*xfYru%Qx_vt(31 z?-dDjp*iGanH8uP&u5o$LnEi`NOL&oKV&3y7_)U%ubsMDuRW%pQOD$CRC>UWY5vRQ z3Nu%gPpN_nJ6A0>bbJey&hZ8*THWU3 zAP`$B>TS^OhMK?m-z1YaecaMO-n};DHKWH`<&L9uDIW{V8?VdD$GJW4T;?$dz@vGU z{AEtrh5?+}Y~91JVJ9w^t7&Q72k&@vre>BI@O=WZQ!@uHN8>(!){c$$40Vx6wp7^w%9V*ph^qQ@GPR&qa?hlXMnmzKK$XVYl{Y@7uh?|7_Uue#(u5w1#?j)XChkO~P}x8)b_!CZ z>P71@!iL8LcDkT;#9dNAi8CNKyGb{ggTRcdb!Kw<&C}Vo=HX*z+r5_7+r)g9LUHGF z1S6Cg4vJ91FUWY-L@J4y@rtJ7&125#ibhKZGfHJtU?Os_{iQbYRqlmSe4Lh*(e@hG zrE+<(EmhEZTG%-G!9U!H2iORVx()Y8fN z{ugNN;{D*CH|nf$RG-r3QCaFQjsy|4;cOps+%CP_l}8K4hJ$a82tM@9E z{Gy@Vhbh+Y)kpLywS4Li2MQj;_n3wY7}s*l2;3&}=kavqPoiaEVYPC}$Jml%HMl15 zI7|~<)ug$n_mk=YD0sOVd*-66D#S%&2u`VtJw3}PZdfk*g(u*m;k<<+M(6eew!9xzuCN} z-@GT>&{I#E*Tm76sxLdc9Aiv_yZA_L1Ey&Km{Vb>T@3oH7K8eqPLMQ=Z7zfjJmg+R z>xOwzn8i55D4B>W@ybZvfrd45*@mft?0=oc6&OL^K~rAPQ-Y)JsbHf%`bmLSOlUqt z4H+^*k^>{FNJeRx@TITI^~>aiaBHZ0m6kz_SS)^Os^_3C7& zn%P2xhjr74B^3|D0RHL}i7!NfpzF9>lgGi}O#E(5s=z;iEK+cF>%9beQKwMBnUgLg z#8_Ft%}X69&~_ULK>h2Vq83QzmfOP!dpOY^j^Tg_KHvU2&>r@-hdp%YIq`#(ns)pD ziE?(w&DWI|+;i!=yqI~kUDrgJt<~R(Kp?|al%%+dkwykItI*6XB(kS!=7sJ}7_hZ& zngo`#t#+OPQ%c3zJ(B$jptv&+SBk0S2qPZ^8v2_++w0d0B@A{MoEQxSk0x@j!56MW zEDkKFMnJ}kv4ek$Im7cLa>6TYV)rPmU2OCSf%+$)q6lG)5l3ZqA^NlCaS-bosQ-$_ zu^L2B#F1;ODW|;+zpF;(qVDnKJOrh@#k@_zQ{3!uNp6^}Ch8Ws=5GB=4lyOKCIB+x zggbHhUM^yXPsAj2m|Tl7LQBw6iV=pYON*$8KaaZ?+}y9I)IA+RBSTF?Lp$92OxS@X z#p4?{ThZC#r`g>Rqz%!L3|%pNQXP0<`6M&5+v1asP@hNA=k}P_j~e;`qIg&n zaR}FBALi35arTKM&PN?gc$AenC9sM9amUiXDJUY{Uk%ew=}a9G44Aqt4Vo}Wi`jBp zOp;;kZPpGmAkGAPGj#QBf`a$>mc+$~*>;Q92TCcu(oKymw)6w&(yX=v_^P4Ag^|Qr zbbPDg^fx@bBjPk6Ja#SBeZSc*xS;q&T46M~o93B8&Eu!ryTMy*77AFC1&l;32NR`W zh8wVp&EDH$v6ZONZGgp2_*TJ^JxciEk^Aeq5BKOYIur7F)`W{b=#Gv%8#%z+KkwTGqKgV-#(~ISR@^yq$XqN zw60o#aPfZYxmB}2u1@Z2XfjYtLvL2Q$L;@J(yX(#3UGiVnD6qKHn+MF|KZFuy2><) zp}eE96>2P~#^ScIJ=NF;`++ky@nxGy952^)6ld-&dER^qQsdQo;K&P)BC;!@&eloy zBkC%)1E+slD~x(2$V7R=l{1=6yo*bL0!oZaLG7?(Z^1}M=TjGkO+zKxaUmRd1{M8k zH(#Akl&xt$J^gOrnO=2GuhwlmGcfZ6<{&%=JUr!y&yy(QdI#UwHN*MYj6FFJUY~q7 zWQ+t!KgD1L~2NQLHy1|;M0!^Bh>0LDH-ZUT=aki^-;x~be*`9xK^_V zux75^z0uD|Pp-%T;{jslq#rImy=#Wl7L6y_+>~BF?&QZ^eM6TgGi&y*ExM_OlB&I~ z((}D1b$-6o_`ung2h(!jnqfnqizc!v{{#gP{}EWwr#~qQN>47&PS&6+{ibitCuxr3 zHT|CyL23I!zC(2*{zAA%PBc(XZ6vOw0qeNv|D(P#FWIKfn0R2fSR=}mMchN(80R!Fc<1Z4Ca&% zJ*pcmSs(s2^`S30^**$YQz>nntOcyMc-C^=T9EZ1KN_>13e?6Y>E&|Q< z-KV(dw$q8WO7q>^%s&7YLnjX$Y6#~`r+^CP!f&wkaWC)^i2oWis z%!*k6;>dh}3Sdas*)4fajyOE*_5BH$F&ZGXo2jHm&PThK}CPl^?OBw6>`*)ChCB6d#P5*YF1N z!VnchO;Gco+d8<8-TjVQuERK$P-E^6W0DeLjB_XN$8Zx_6MPvgkb{S) zTw@TTC}a`XO<>U2G|H-Q!l)SqGK}o}K|PF**;t&^isb7-E&`JNwBQ;Nk&{QzdX(rz z&!i z;{{~=tw>JrGsB7rjw20Rf0wsLl+3bNHgmw^QvkdFU(`9fDCYFmI7iFpCwxUtBy&x) zci@6Z+JU5aH}`k>VFgC-Y*Yc+HJ?m-5@`9f|iY03k{%6dz}D z*^z2(%M^B9_%*vWPMws(J?O+fS{6BhaQ!Cs_hbFW*!Ia$wc@l$R}u|u{8 z{V7ZZ`Zwx|Ebnz2@jZV@Z6sT}gyZ--%c&@*1Ct59CeII6ZOT0|RiZ3Mpr9Gqc=7SH zbe(9H$pb{g)?=1MVE&sHE&gv{rjjtr^{lQH-tXBP5ATS^(MqWj)zbDRt#mjs<}fPU zu4A=sY%dBs?&CkuFh7w?Tq-BNaB!%^q zz^zupgU)!|7wsP3rCm>w>eQ}6W%s;Mn+eTdMDt|My2tIkkEER6?XACuR{NQDw1Ts> zlMpOlo;O70O@gE4e+GEp2q(xo<6d(I)BuN*d@|Zdc9**x{W4J(I2}CKJDIybUu$SG zW%vSNFm8F#rJhe)TB|mz2nkBotFS5K!<+3JcYtaAI<>w^T#etl@#f4<<~~`oMbpak z;IBW()EocMQU=&KtVN1ackB~Tk4{(208OXN$kScL@DViW#Yw4!bIeOIGWRUH8rK5- zryM?Cf6V5KOGzJL>k{`=&_PM!A_e4cY6^ed7GAQck8DBQQoh0`?VCUB8!mo1P`@64 zk#vh*lB=qRH=O5XR{{oXI>l=ylO1qhax}dOrFhd~B@Vu@|Bv4XQUFBetMH7(zy%cZ zYmFst%{P(xN*L0}x5ADk?@o4Ud{;bJvct|D#{aOC+^F-Oad6x%=6n?`5R@~af<$TqPD&O%=~0XW6eC#w7XwSY^GV(% zA$iF+Jp5w##g7f_ma>@`*!7PTzXR;v5$wiEX#wnxS_)5RVK)UwpY=+S7K!61JPJ7A zaM&6vUI!@f?A(jtada<**A@KqNUUHvd9BO5YFX2S$=P8s97&W_^gdcaT8|Bz2>7f3*?;By~8mE%wN z>CX`ONfE-241QJ_{EU#3Dh)q7O;M!yJMi;6(N^%&%uix*5BN!dx)P&;pBq#7NvQKu zcQJyD#m_SEQ#pd&2aIfE0efr*BscndQMZshT97;%4O%!plnfvrhU3aAG!Ph`0Swum zO>*Qk7(R>`MgEHGJHyb!Z}yXJAXyS~+D!UtNbD}Lf)~5eSJkwJzRGXT5K)i5D!c2p z=xa8sqJzG6|Aw=5`kL?2hztHmQ1ew)^-2c4!V0R zmp!^GwHJ#oaGD6c=EllTKHWX+y40lDe3^1>E`GlHlBn}?G*OxzEqF0B^j}6lQtFgI z0ZQ`YnUO?z<5}^Gd#@#oFJC9F{;X#-C2PxI{(GwbU?C`KR$3AnM$GI9wJd4lEBLC+<+YqYcZKS z{Ti`zdM527BKDvjSEaG&mBFeuM?~%xg z-l>&-s6`Dk-<|}VqO}A7J=vCb} zVv+s)a@{aeWahcZfpC-g;Y=wBil4s~8i1D63&X>~5zCHVa@QZN2o!b#iFPG;#37sG z4~OPc6u53#w)IaR<4)d96+2f^T&r?SxNhnMvBi~Ru#VcnyZ6x$W3QYb5jHU6B1UP0 zdB&tkvE7EO^mm^efbPZCz^eKY6vZSNkq|m^m2m^m6j+D&f81fFq+5Vm@CmB!^S_na z#=!TkalFAPdCBFEXs7aY&gkq8L~x%b(zplx?8aqJ+lv#MB7t$YftpQJ8X#K4xd=vg zQi(LDX6GTlWiof#wG6QHe+FOu9IsOOz#6Av>s42!u+`+DgD*h;^RADueijoEUk{*X3d<5%pT+IB#*u4fO$u4jRpW%5hOC8G z@mTTOf%<-0dTGcyST}k?)-BDD23gCF+y=6Si*KLLcSurOe7o!f_&WWgmyf}Z9Uz5E zXo7II9VzGfF%)s-FwTz)olxEwBIBhB$O*?yk|$2gr&|j;p|_BAyV3j2Y|xufTU4{t zK|Ij=6$4B6iWObZ`=wtPp!NX%teYD>nA_LipOeD!e+Zfu%TF<bqappAA4it2ahF>Jy@luJP+EG8Av%ZdjvrWPy|WKjcRLHEa9RSxlqZOj9c|df!R$d9Y9MzQId<5GV-EA3^0%qYk*1S4*y|i02}yrp&!c6W3*OI z)*+Yq^aGOtsUJSCeH<*zz%Tn{c9^geFX30jxzo6Fvwa(RD@(ec8l2N_Yhr>U!*0`Z z3e^9BH>{^L08w=d<+dw+G0;#z8?j*zZDc9}^@G%4;!fA>Ph?yx*aa@%1KSz}N1S}B z+-PoMTRr= zE(N&NzoKrD2R3N(PTXyNDW4t1)W#To2zGghnbIS*2X=($b8$=Q<7_RNO?|X`_mtnv zXwxcZD$%~lah6gD^`yAD=t@Q@9_o*@3rl&sHs>IlbL<}Zs?SUxZp3*jLRN2$QMKX9 z0KGwW1xu@$pSN0iVgr6gi#b*D1MqYO0gBV?GbJyb8o+b zu@LKGmfA0WM>e#%dcm8Y(g!scD1#WEac^GNX>uM)pPWm5|Gw1F3Omn_0p}L}_DZ^- z;hmS+;~e3C-s2p3E@+*UYk`?Bn2xP*d(miWJ($IyXcrB}kyIeHwpgurXl68ibTt0s zZ2sloKw&4#Ce{;L?&yR;6@nVI1U{Nyn+_CKYy3LsJw0h1kKqkQ`TUs*rDBTv*XYvUmdtA)xFwX;7 zPTs|oltRWU1cGGl1-uhY9I|Pep1hJBuO&2>#*tFyNlGCjned&=XqXBMq>VGVtS5T) zEXWT{d~`RPZ=pNkAh{mccfF0Lpap9~c*#0S1h47hazRG zWw+l_kGHa;>|uCzFy@6jZ@1hOqrKu{?Jp?flez0J(y5^O11p2vzy?CG(lNWbUDi&|nLA&rokBv5dhO zql`-CPQJhlJJS=u^3B_Q@If(G62GW`eTkpDm(gGqp^yN-)F2yVXV)afW+WaeAlFTeU0WL?i`GIu-|RliJqZ{HP`betJrj(t{kSX7!PqRaJCj1+8< zVx)bD2gGouY$~OR3alt|Ex4EYtRL%MzBiK$`==Dwpn-AKGE;A>>!5=YSs=4C+VXg5 zPSiOr>|9HIhyRk~1KztZQt+R!^OkgsMd2miq9}ja&A%UPkK?NTtn^n#m$VT@*V=HL z925-oI(WEnqR%_>_+wgS9h9C6Qy#Dbb(L1A4t1c6^(lRfyA;P-a?Z3aH^^+=xXvB&Ltn-e8`It%E}X?hCw@DmRO|x8zae@Zn7!GLqj;OgCGZO z8k^8MxTE>1b(;P@xew>k)>`Wz5?X_=2GM>wS^uO#IH^#Rll3~M1m_aK{vu~2Ia|p~ zt5^e3wV$X2wkzCgu`z}dBYvfR#EaQi7a9K0OI?}40tJhwQIa~8_v*lH8DHyM8gYl|swJPG8V$rJB@ z{CDxhXJn$e3xqeh#z{FeGn6><#~|`z5SgXC%6;)W%rJ=&4}-|j_$h`#l(d;_istr@2A5CYVd7C9uF~h*{L1Qc-&r1D|i`l;c$& z$ixjhQHqmOXnr^`cCP3b8eC44OC4WPa4xrirbO<>qkCvBBl}PyG}o(1peOj)E<9oP zDjcQw*4e~=7*F<4lXYW{t%=5~z|d3)f*96hGERBj!*j^p{0*yveR_%za>9qEv!tdH z9(t)bo3;ZFPpUNQ|G&MoHSah*-beyB{Cjwv%mbeA>C;aN`%6X@_saab!vT^BuJ~=5x21k7ls?RIgWr7HwVZm|{(R6TL;v>BJa2tJQT-RgQX-Iu{;d~=I9YF;=`Vm| zB0^k`1VZ{MG4F=@g&p!rrsXRTD)$e}I0saYVtTW|BT*6-fWU>;7d7i?PkMnMNsQ4f?3hH33wY~vAQUfIO}@tKviI9tuS=SSHjRkjxZX4Lw5`%W_u{H z`7_Pt%`CPwH_8-BY@7C-FT7f08tGE&$0Niet)*pM8ipUyjmGiD++^;7XBqU^+aC7N z!5wRwK2(C`7qy*8=@sj{Bc;awI$Qp4K@qq_)+-f4C)^sT5$t?}x)1Y!3NE<^XJ`_$ z9vH9t{V1M{s40g4gw6OUcIr_~R~g2HQ9;uCVN5uSYh{IvWkFt=*1$_GWkm*ktb7Ia zl%GmaGG6+B9r%4Y)5W`GdUxyey9fStuZWM}TjO7E{=8fM6-AaIgRj*4{Of|OHJmqw zZf_3F0uujsOzYL@OzXa17&02;Q#;AD_K%5-p8KgGqbUY?=b6_2rltR#XdenuQ zrkK{{e5FUG^`xl5^g<5lxT5n8d^rxt314p8HomC%SuGRHCjXTp*KDi-JQ_66#2QSH z+s1_MHu&Lz87;iIe!eBw%1iESB~!*}SK%{keOmc6BHk=8%Q z`D79^i|anSxPX?E^(W4?5n#tWJ|l$Vm)cH@p6m9<>lncPi2D$p9S70rA8!prCI)Pj zpa_WOsmmQ8YKm+P-7$G=`1T{tg>P`R zS8_^fhvPxL6FQ;Z?VlLb%jf=1q2B6`wgxSOdMgFcEm1Et%0s;l`gYEzrZfAPsoSc4 ztOt2!mysS|L;rX3%v-l?fqtGmGrFlqd1mct{~zR;FKc0FwAN0S}ZWYEP{_v3#vWXdu6no2YoJG4oe@}GY(jdXUZkQxLXlElP&0XiF#faKNv z%)|KsJ>GsC(zoxGM(rR=qGGIfZ@ZrS>YeY)KPhc@|7t`Bz&m#Lp821>12Yzxsal%K zj?ue|u5NGcqdvP3(qI%E9sJKzg0#02)wLO$<&H8ux4Z`=w$AX}Bv@|A@O)7!wEN`4 z&Kr<0Djgp058p9(>}%n%B|o^Ypp?k^^OP+JWC|XIXs6(D@w#oo;{t(f zOL)9=s^GEm{m$_4^(QIU>NyaranjZ}S&L5gU=zZpXsz#Bt-Jy#_rm0~T%$3orcFaE zi?iZ?1{!w7g@C;2frg_@8yFzFXb=YnW}E?^ESl=OFym#@Ng3|d`uyfbEwJV^ZSy;1 z`2vTOqKI^tzBatqM9M~(TD*<&J(?o@73y%#RE>8mSjuVpfhH1-PHF9ahy~B8zDhd(bVWt(8r&YD&bqMEEffdnTib@> zBgETvKryz~{mnuPL>C~gPXTdvV^Y{X91ppe6xMn$?l~K}oGnYbhJd=mab@c8T zp0M-I&Db3G61pej^%Q2jk$6rK) zRl%nX7wa_ZO%`f=>O9ob^Cdbqhvop^NX{Z7OS<9w8o-fPSZNWs@AmrtOSNXG|1Gb7-wPQ=!%ZGsXiztGO%cXfZJ3<$gWj^%LAk=3c6nw@M9$1ZG6k z^j7eAh@HBEN$Gej+tZ6U6f@xeof@pgSlEdgjM`=AsKIAwhcyMWEYMEYsu$bYg&N%5 zw+E=zb0e91_{l&mig#;WF;vwj2FsqY!~mHN(o1%m*hcs7TvGtFQ<4*Q`~uUguey!9 z2WI>fxKU!7C0&LWiC1De>Zru@uWukBsa>{-qkh7Vh)PVKL5b;Tu{(M9Sn=k`gpYpI zJ|O0N6f5{ZC8j?l_tx&@=9I_XzNixj_#>)Riy)g{gsmPHEBGpssN6l0`3hm!?iXk! zl&5k+)VVS*OtI+{mB`0StuNnHh)2-+Cy81>SLTz>&gjOc&N0g(K6Sn=HjM(t6q}x> z06;QDk}x8j&h8y*J<1*UqDdUXf{^N_ZR3#tA+?3^r7vsGm>7hIn)# z|NqhUCh$>}*Z+S42}A^L5Tj^SqM}CQ62&DLmjn{H12c*Xf>o3jL0n6525>T7psU!kP6b0N-tE9E+jpKqF1{d;wf1Z11NeBh{{r!2p!pz*|SkW}554eczWIEUI zojD3AB3UX!f#CjXUk*trGW(OmmOD zX_~8po-Q)P9U(*nb!{eju1^!wtv0u(Y3>5AxfYsR>+yH*@ zXibD_N#zIh%>PtML_dI%lrV#~MiTw{bop zQ>o2EMWnPRC4D+S(MesX^6l=aZ*?bF4lshHsPYy}1HeLK3)T?lCz`xJ!$Yv-QcAG& zY4YEB!W*J!^6hReV}yuq&uId&vKxvFUB8hmj5{Wr>U6_!^Qby5m*?5;DSi{%i%XqE zTtie(@YEQdNV7v^@RvsllOBBK{}CA+XquboHP?v@5(BuzfZZdPERqJ_2; zu6LMV-dUn)e7F{ZNkh;${$J#NW&ZzES2F$?{ZBXXWQ&C= zPVO6rB#-!mJ@>aK*`V2xGA3gRlJogR(wcQ7v4C=QT<`QdoUgIa$4ylU5Y6*O{QAR= zjy7P$1-vE;9`8mnCC1DXO{?iVDVo|z(bP7g>1NcF70;RzW&D`+(pgG09c@I@4YPI$ zlx?1s8*+Y1P>if2RJ>WD>5sN2nj#gu^H7hF)5Q2duW>Kq7r75k4i$e)!hJ+jYId)1 z$8!~d)a!%*2n5n&BJ^aAut|aRb?x`T*BXJ8SfKU%;gEURcb-6skERhwxs=vvR@UJc z9{K{-^<9ei^)(V-Uuer0NPO!>{Uq_NHxi#`;wosH;!&5C>qY$f0>G;EzO1AtAb`z0 z;Zc{qKzF@+-;Y1wv~t-p{?_pKmM5w$^F=i-O+!jfdF>^|B+rlO64ptq|2sp8eP+FW zJDBxNhiN1H^JS^WFH2RdZ>m}^X1#l6YaQFsTBT|2dRh|$c5u7}&+l2SpIfb)EwuLZ zRcCdHt?6HsMB~C_5&(QTjiw4aw{ir{u5i`@yH@wkQQje=8$Zn+*8Feac_eP|oz#LD z4CLGfRt51(bNyP6-z)(_^(ma_V{oDmIMI#w zCPzlPD){LF4<{aZPdL#>IFa<;)Dz&uyFB6HL?7n0*uDAtA3Br(jC{VaiEH^oa>tC2 z_T{u=6H-`F2YcQkg#g}3`y48kGqIY#Mf`E@QWGf;q|7E@6)c-D>Gssj@(7$I9R)L6 z#DJ@PZ0F01Rop_iu`U}zFId?c^l4z&FHAwu%+UIY&Xg668*J&ClM z$@+e+erpZe(c1Z@wZD3;t);bfUTY0%%^d%dV_Uo(tqm}(o#VB(gw~9|K~vRYwKmAi z)ISJtVVhc?FOjLY(!Y#WP=iRo#5xR1Z= z@lD|w2z=>~e3Nv<_Z)lMP?enm4rku)6%0fQjx+p(M(H#>3Rl&cBtROcxW1ASu0&(I zuZ7;@IbWFQhD(XTiIM&%o&%c*<9LXE#tX_Z?qcYF7*L9X`{SXwnMA=sUXT#+HQs=H z$8`pDJ_91+ez{vVQS@zRJC*88!STW3#=v)OmxN~VU2n1*|J^f{MX0;s57Y47X037= z`XO@X^li3HCLz8vdc+kjpyy#4W75+gl&GWN7Y8v9$mUL>Ww9Pm34Gy5{evw@W#3fD z_l36WhyqGYmM^x`L*+EGB0E*j4rN7pF3DbgR6~Xjo#0VulFo>}=lMwp3YBR{Vc}Pj zWNVmv;jC0vtg#}>q#N?GS-B@(We#qgb5xc3AWJQ2YYHY>&Mr~Nv+yoxabIr|9~^2& zKW_CBQ<0-8nXbyfVS*P@MF!N4g7F8YRup(#bVTp0)Qrr0GUYRZsG^@vLNq&`s`bWm ztE$~|&kj0mgd|ir-;|d=auF=as=-x)?M719+E=X_^rQS(W#hUC<{A6w&eg-tv1+k( zm>bE9cE^j=C-j+U)nYL0d?R*7etF%|1Ms3JsUp=kd{uCHU1S~2=F==GB>R{H`4%Z8 z{ag$`3&tmBn>3Pp3}^psy%Tc`ofH)kz_a=Lp0>3EWER3q?1OTM(bYE$Ug4+ z6;e#LtLhapR0O@�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≥L}XZ!QwIiu_=7PedQTaC8a3^fVIjmmjG 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%0A`L)BnDxB!2CPzx-gV(Sp2Y` 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 YXZxbsX3ln9B^H@B@KltB&10=uFuK)l5 delta 350189 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

      @uN=yK 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�~!u$S~7}5yvUp!<-GJ4i9#fb6KE?>OP#yW&4+IL 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%0A@X}FzC&>*XT_X-y0h6Lt%#c*V16hUXl_p~ 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 diff --git a/updates/RGA-Updates.json b/updates/RGA-Updates.json index 12d224a..970276c 100644 --- a/updates/RGA-Updates.json +++ b/updates/RGA-Updates.json @@ -4,38 +4,105 @@ { "ReleaseVersion": { "Major": 2, - "Minor": 2, + "Minor": 7, "Patch": 0, - "Build": 85 + "Build": 115 }, - "ReleaseDate": "2019-07-15", - "ReleaseTitle": "Radeon GPU Analyzer 2.2", + "ReleaseDate": "2022-12-14", + "ReleaseTitle": "Radeon GPU Analyzer 2.7", "ReleasePlatforms": [ "Windows" ], "ReleaseType": "GA", "ReleaseTags": [ "Windows", "GA", "OpenCL", "Vulkan" ], "InfoPageLinks": [ { - "URL": "https://github.com/GPUOpen-Tools/RGA/releases", - "Description": "The Radeon GPU Analyzer Releases page on Github." + "ReleaseVersion" : { + "Major" : 2, + "Minor" : 7, + "Patch" : 0, + "Build" : 115 + }, + "ReleaseDate": "2022-12-14", + "ReleaseTitle": "Radeon GPU Analyzer 2.7", + "ReleasePlatforms": [ "Windows" ], + "ReleaseType" : "GA", + "ReleaseTags" : [ "Windows", "GA", "OpenCL", "Vulkan" ], + "InfoPageLinks": [ + { + "URL": "https://github.com/GPUOpen-Tools/RGA/releases", + "Description": "The Radeon GPU Analyzer Releases page on Github." + }, + { + "URL": "https://github.com/GPUOpen-Tools/RGA/releases/download/2.7/RGA-2.7-ReleaseNotes.pdf", + "Description": "Release Notes." + } + ], + "DownloadLinks": [ + { + "URL": "https://gpuopen.com/download/radeon-developer-tool-suite/RadeonDeveloperToolSuite-2022-12-12-1037.zip", + "PackageType": "ZIP", + "PackageName": "RDTS-ZIP" + }, + { + "URL": "https://github.com/GPUOpen-Tools/RGA/releases/download/2.7/rga-windows-2.7.msi", + "PackageType": "MSI", + "PackageName": "RGA-MSI" + }, + { + "URL": "https://github.com/GPUOpen-Tools/RGA/releases/download/2.7/rga-windows-x64-2.7.zip", + "PackageType": "ZIP", + "PackageName": "RGA-ZIP" + } + ] }, { - "URL": "https://github.com/GPUOpen-Tools/RGA/releases/download/2.2/RGA-2.2-ReleaseNotes.pdf", - "Description": "Release Notes." + "ReleaseVersion" : { + "Major" : 2, + "Minor" : 7, + "Patch" : 0, + "Build" : 117 + }, + "ReleaseDate": "2022-12-14", + "ReleaseTitle": "Radeon GPU Analyzer 2.7", + "ReleasePlatforms": [ "Ubuntu" ], + "ReleaseType" : "GA", + "ReleaseTags" : [ "Ubuntu", "GA", "OpenCL", "Vulkan" ], + "InfoPageLinks": [ + { + "URL": "https://github.com/GPUOpen-Tools/RGA/releases", + "Description": "The Radeon GPU Analyzer Releases page on Github." + }, + { + "URL": "https://github.com/GPUOpen-Tools/RGA/releases/download/2.7/RGA-2.7-ReleaseNotes.pdf", + "Description": "Release Notes." + } + ], + "DownloadLinks": [ + { + "URL": "https://gpuopen.com/download/radeon-developer-tool-suite/RadeonDeveloperToolSuite-2022-12-12-1037.tgz", + "PackageType": "TAR", + "PackageName": "RDTS-TAR" + }, + { + "URL": "https://github.com/GPUOpen-Tools/RGA/releases/download/2.7/rga-linux-2.7.tgz", + "PackageType": "TAR", + "PackageName": "RGA-TAR" + } + ] } ], "DownloadLinks": [ { - "URL": "https://gpuopen.com/download/radeon-developer-tool-suite/RadeonDeveloperToolSuite-2022-02-23-884.zip", + "URL": "https://gpuopen.com/download/radeon-developer-tool-suite/RadeonDeveloperToolSuite-2022-12-12-1037.zip", "PackageType": "ZIP", "PackageName": "RDTS-ZIP" }, { - "URL": "https://github.com/GPUOpen-Tools/RGA/releases/download/2.2/rga-windows-2.2.msi", + "URL": "https://github.com/GPUOpen-Tools/RGA/releases/download/2.7/rga-windows-2.7.msi", "PackageType": "MSI", "PackageName": "RGA-MSI" }, { - "URL": "https://github.com/GPUOpen-Tools/RGA/releases/download/2.2/rga-windows-x64-2.2.zip", + "URL": "https://github.com/GPUOpen-Tools/RGA/releases/download/2.7/rga-windows-x64-2.7.zip", "PackageType": "ZIP", "PackageName": "RGA-ZIP" } @@ -44,12 +111,12 @@ { "ReleaseVersion": { "Major": 2, - "Minor": 2, + "Minor": 7, "Patch": 0, - "Build": 87 + "Build": 117 }, - "ReleaseDate": "2019-07-15", - "ReleaseTitle": "Radeon GPU Analyzer 2.2", + "ReleaseDate": "2022-12-14", + "ReleaseTitle": "Radeon GPU Analyzer 2.7", "ReleasePlatforms": [ "Ubuntu" ], "ReleaseType": "GA", "ReleaseTags": [ "Ubuntu", "GA", "OpenCL", "Vulkan" ], @@ -59,22 +126,22 @@ "Description": "The Radeon GPU Analyzer Releases page on Github." }, { - "URL": "https://github.com/GPUOpen-Tools/RGA/releases/download/2.2/RGA-2.2-ReleaseNotes.pdf", + "URL": "https://github.com/GPUOpen-Tools/RGA/releases/download/2.7/RGA-2.7-ReleaseNotes.pdf", "Description": "Release Notes." } ], "DownloadLinks": [ { - "URL": "https://gpuopen.com/download/radeon-developer-tool-suite/RadeonDeveloperToolSuite-2022-01-18-884.tgz", + "URL": "https://gpuopen.com/download/radeon-developer-tool-suite/RadeonDeveloperToolSuite-2022-12-12-1037.tgz", "PackageType": "TAR", "PackageName": "RDTS-TAR" }, { - "URL": "https://github.com/GPUOpen-Tools/RGA/releases/download/2.2/rga-linux-2.2.tgz", + "URL": "https://github.com/GPUOpen-Tools/RGA/releases/download/2.7/rga-linux-2.7.tgz", "PackageType": "TAR", "PackageName": "RGA-TAR" } ] } ] -} \ No newline at end of file +}