From d0d4af38eb92a47aa27f0458c1c8bdde5be97b09 Mon Sep 17 00:00:00 2001 From: Filip Hazubski Date: Fri, 20 Mar 2020 18:23:40 +0100 Subject: [PATCH] Add helper function for bit shifting Change-Id: I8a6fff8d1ad61039dc00c6d25ab904b30946cf15 Signed-off-by: Filip Hazubski --- opencl/source/kernel/kernel.cpp | 26 +++++++++++++------------- shared/source/helpers/bit_helpers.h | 4 ++++ 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/opencl/source/kernel/kernel.cpp b/opencl/source/kernel/kernel.cpp index 7831c4b27c..5d0981830f 100644 --- a/opencl/source/kernel/kernel.cpp +++ b/opencl/source/kernel/kernel.cpp @@ -1861,7 +1861,7 @@ void Kernel::ReflectionSurfaceHelper::getCurbeParams(std::vectorDataSize, param->Offset, param->ArgumentNumber}); - tokenMask |= ((uint64_t)1 << DATA_PARAMETER_KERNEL_ARGUMENT); + tokenMask |= shiftLeftBy(DATA_PARAMETER_KERNEL_ARGUMENT); } for (uint32_t i = 0; i < 3; i++) { const uint32_t sizeOfParam = 4; if (kernelInfo.workloadInfo.enqueuedLocalWorkSizeOffsets[i] != WorkloadInfo::undefinedOffset) { curbeParamsOut.emplace_back(IGIL_KernelCurbeParams{DATA_PARAMETER_ENQUEUED_LOCAL_WORK_SIZE, sizeOfParam, kernelInfo.workloadInfo.enqueuedLocalWorkSizeOffsets[i], i * sizeOfParam}); - tokenMask |= ((uint64_t)1 << DATA_PARAMETER_ENQUEUED_LOCAL_WORK_SIZE); + tokenMask |= shiftLeftBy(DATA_PARAMETER_ENQUEUED_LOCAL_WORK_SIZE); } if (kernelInfo.workloadInfo.globalWorkOffsetOffsets[i] != WorkloadInfo::undefinedOffset) { curbeParamsOut.emplace_back(IGIL_KernelCurbeParams{DATA_PARAMETER_GLOBAL_WORK_OFFSET, sizeOfParam, kernelInfo.workloadInfo.globalWorkOffsetOffsets[i], i * sizeOfParam}); - tokenMask |= ((uint64_t)1 << DATA_PARAMETER_GLOBAL_WORK_OFFSET); + tokenMask |= shiftLeftBy(DATA_PARAMETER_GLOBAL_WORK_OFFSET); } if (kernelInfo.workloadInfo.globalWorkSizeOffsets[i] != WorkloadInfo::undefinedOffset) { curbeParamsOut.emplace_back(IGIL_KernelCurbeParams{DATA_PARAMETER_GLOBAL_WORK_SIZE, sizeOfParam, kernelInfo.workloadInfo.globalWorkSizeOffsets[i], i * sizeOfParam}); - tokenMask |= ((uint64_t)1 << DATA_PARAMETER_GLOBAL_WORK_SIZE); + tokenMask |= shiftLeftBy(DATA_PARAMETER_GLOBAL_WORK_SIZE); } if (kernelInfo.workloadInfo.localWorkSizeOffsets[i] != WorkloadInfo::undefinedOffset) { curbeParamsOut.emplace_back(IGIL_KernelCurbeParams{DATA_PARAMETER_LOCAL_WORK_SIZE, sizeOfParam, kernelInfo.workloadInfo.localWorkSizeOffsets[i], i * sizeOfParam}); - tokenMask |= ((uint64_t)1 << DATA_PARAMETER_LOCAL_WORK_SIZE); + tokenMask |= shiftLeftBy(DATA_PARAMETER_LOCAL_WORK_SIZE); } if (kernelInfo.workloadInfo.localWorkSizeOffsets2[i] != WorkloadInfo::undefinedOffset) { curbeParamsOut.emplace_back(IGIL_KernelCurbeParams{DATA_PARAMETER_LOCAL_WORK_SIZE, sizeOfParam, kernelInfo.workloadInfo.localWorkSizeOffsets2[i], i * sizeOfParam}); - tokenMask |= ((uint64_t)1 << DATA_PARAMETER_LOCAL_WORK_SIZE); + tokenMask |= shiftLeftBy(DATA_PARAMETER_LOCAL_WORK_SIZE); } if (kernelInfo.workloadInfo.numWorkGroupsOffset[i] != WorkloadInfo::undefinedOffset) { curbeParamsOut.emplace_back(IGIL_KernelCurbeParams{DATA_PARAMETER_NUM_WORK_GROUPS, sizeOfParam, kernelInfo.workloadInfo.numWorkGroupsOffset[i], i * sizeOfParam}); - tokenMask |= ((uint64_t)1 << DATA_PARAMETER_NUM_WORK_GROUPS); + tokenMask |= shiftLeftBy(DATA_PARAMETER_NUM_WORK_GROUPS); } } if (kernelInfo.workloadInfo.parentEventOffset != WorkloadInfo::undefinedOffset) { curbeParamsOut.emplace_back(IGIL_KernelCurbeParams{DATA_PARAMETER_PARENT_EVENT, sizeof(uint32_t), kernelInfo.workloadInfo.parentEventOffset, 0}); - tokenMask |= ((uint64_t)1 << DATA_PARAMETER_PARENT_EVENT); + tokenMask |= shiftLeftBy(DATA_PARAMETER_PARENT_EVENT); } if (kernelInfo.workloadInfo.workDimOffset != WorkloadInfo::undefinedOffset) { curbeParamsOut.emplace_back(IGIL_KernelCurbeParams{DATA_PARAMETER_WORK_DIMENSIONS, sizeof(uint32_t), kernelInfo.workloadInfo.workDimOffset, 0}); - tokenMask |= ((uint64_t)1 << DATA_PARAMETER_WORK_DIMENSIONS); + tokenMask |= shiftLeftBy(DATA_PARAMETER_WORK_DIMENSIONS); } std::sort(curbeParamsOut.begin(), curbeParamsOut.end(), compareFunction); diff --git a/shared/source/helpers/bit_helpers.h b/shared/source/helpers/bit_helpers.h index b6eb7443eb..842ebcd7f9 100644 --- a/shared/source/helpers/bit_helpers.h +++ b/shared/source/helpers/bit_helpers.h @@ -37,4 +37,8 @@ constexpr uint64_t setBits(uint64_t field, bool newValue, uint64_t bitsToModify) return (field & (~bitsToModify)); } +constexpr uint64_t shiftLeftBy(uint64_t bitPosition) { + return (1ull << bitPosition); +} + } // namespace NEO