Skip to content

Commit 892b707

Browse files
[SYCL] overlooked const extract bits (#4770)
Signed-off-by: Chris Perkins <chris.perkins@intel.com>
1 parent a642340 commit 892b707

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

sycl/include/sycl/ext/oneapi/sub_group_mask.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ struct sub_group_mask {
142142

143143
template <typename Type, size_t Size,
144144
typename = sycl::detail::enable_if_t<std::is_integral<Type>::value>>
145-
void extract_bits(marray<Type, Size> &bits, id<1> pos = 0) {
145+
void extract_bits(marray<Type, Size> &bits, id<1> pos = 0) const {
146146
size_t cur_pos = pos.get(0);
147147
for (auto &elem : bits) {
148148
if (cur_pos < size()) {

sycl/test/extensions/sub_group_mask.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,10 +88,15 @@ int main() {
8888
b_const.extract_bits(r2bc, 16);
8989
assert(r2 == 128);
9090
assert(r2bc == 128);
91+
9192
b[31] = true;
92-
sycl::marray<char, 6> r3{-1};
93+
const auto b_const2{b};
94+
sycl::marray<char, 6> r3{-1}, r3bc{-1};
9395
b.extract_bits(r3, 14);
96+
b_const2.extract_bits(r3bc, 14);
9497
assert(r3[0] == 1 && r3[1] == 2 && r3[2] == 2 && !r3[3] && !r3[4] && !r3[5]);
98+
assert(r3bc[0] == 1 && r3bc[1] == 2 && r3bc[2] == 2 && !r3bc[3] && !r3bc[4] &&
99+
!r3bc[5]);
95100
int ibits = 0b1010101010101010101010101010101;
96101
b.insert_bits(ibits);
97102
for (size_t i = 0; i < 32; i++) {

0 commit comments

Comments
 (0)