summaryrefslogtreecommitdiff
path: root/src/abstract_hardware_model.h
diff options
context:
space:
mode:
authorDavit Grigoryan <[email protected]>2026-04-18 18:28:57 +0000
committerDavit Grigoryan <[email protected]>2026-04-18 18:28:57 +0000
commitab201ce8cb84c780742dac71fc2d2996f2b9c775 (patch)
treeb298f407b8cd7e038020604f381d7844ddfc6b69 /src/abstract_hardware_model.h
parent305c5ea8fed5bca224377c1bdd8c726fac0f926f (diff)
impl xor lane shuffling; add delay option for operand reads
Diffstat (limited to 'src/abstract_hardware_model.h')
-rw-r--r--src/abstract_hardware_model.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/abstract_hardware_model.h b/src/abstract_hardware_model.h
index 4a655b3..3f7eac3 100644
--- a/src/abstract_hardware_model.h
+++ b/src/abstract_hardware_model.h
@@ -1185,6 +1185,12 @@ class warp_inst_t : public inst_t {
void compute_simd_sets(unsigned num_sets, unsigned set_width);
void compute_simd_sets_compacted(unsigned num_sets, unsigned set_width,
unsigned start_set = 0);
+ // Fixed per-warp lane permutation: lane P -> thread (P XOR reverse_bits(warp_id)).
+ // Does NOT repack — only reshuffles lane assignment. start_set is accepted
+ // for API symmetry with compute_simd_sets_compacted but is ignored (XOR
+ // placement is fixed by warp_id).
+ void compute_simd_sets_xor_static(unsigned num_sets, unsigned set_width,
+ unsigned start_set = 0);
const std::vector<simd_set_info> &get_simd_sets() const {
return m_simd_sets;
}