Changeset 5f259f3
- Timestamp:
- Jun 10, 2020, 12:03:53 PM (4 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- a5873bd
- Parents:
- 8c60d59
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/theses/thierry_delisle_PhD/code/relaxed_list.hpp
r8c60d59 r5f259f3 220 220 if(maski == 0 && maskj == 0) continue; 221 221 222 unsigned bi = rand_bit(ri >> snzm.depth, maski); 223 unsigned bj = rand_bit(rj >> snzm.depth, maskj); 224 225 assertf(bi < 64, "%zu %u", maski, bi); 226 assertf(bj < 64, "%zu %u", maskj, bj); 222 #if defined(__BMI2__) 223 uint64_t idxsi = _pext_u64(snzm.indexes, maski); 224 uint64_t idxsj = _pext_u64(snzm.indexes, maskj); 225 226 auto pi = __builtin_popcountll(maski); 227 auto pj = __builtin_popcountll(maskj); 228 229 ri = pi ? ri & ((pi >> 3) - 1) : 0; 230 rj = pj ? rj & ((pj >> 3) - 1) : 0; 231 232 unsigned bi = (idxsi >> (ri << 3)) & 0xff; 233 unsigned bj = (idxsj >> (rj << 3)) & 0xff; 234 #else 235 unsigned bi = rand_bit(ri >> snzm.depth, maski); 236 unsigned bj = rand_bit(rj >> snzm.depth, maskj); 237 #endif 227 238 228 239 i = (bi << snzm.depth) | wdxi; 229 240 j = (bj << snzm.depth) | wdxj; 230 241 231 assertf(i < numLists, "%u %u", bj, wdxi);232 assertf(j < numLists, "%u %u", bj, wdxj);242 /* paranoid */ assertf(i < numLists, "%u %u", bj, wdxi); 243 /* paranoid */ assertf(j < numLists, "%u %u", bj, wdxj); 233 244 } 234 245
Note: See TracChangeset
for help on using the changeset viewer.