tmp
This commit is contained in:
committed by
Philippe Tillet
parent
da287bb710
commit
5d84fde733
@@ -713,6 +713,7 @@ void generator::visit_atomic_add_inst(ir::atomic_add_inst* add) {
|
|||||||
|
|
||||||
// vector size
|
// vector size
|
||||||
int vector_size = 1;
|
int vector_size = 1;
|
||||||
|
/*
|
||||||
int ld = ptrs->get_order()[0];
|
int ld = ptrs->get_order()[0];
|
||||||
unsigned alignment = alignment_->get(ptr, ld);
|
unsigned alignment = alignment_->get(ptr, ld);
|
||||||
vector_size = gcd(ptrs->axis(ld).contiguous, alignment);
|
vector_size = gcd(ptrs->axis(ld).contiguous, alignment);
|
||||||
@@ -728,18 +729,19 @@ void generator::visit_atomic_add_inst(ir::atomic_add_inst* add) {
|
|||||||
packets[id] = UndefValue::get(VectorType::get(in_value->getType(), vector_size));
|
packets[id] = UndefValue::get(VectorType::get(in_value->getType(), vector_size));
|
||||||
packets[id] = builder_->CreateInsertElement(packets.at(id), in_value, linear % vector_size);
|
packets[id] = builder_->CreateInsertElement(packets.at(id), in_value, linear % vector_size);
|
||||||
});
|
});
|
||||||
|
*/
|
||||||
|
|
||||||
for_each(val, [&](indices_t idx){
|
for_each(ptr, [&](indices_t idx){
|
||||||
Value *rmw_ptr = ptrs->get_value(idx);
|
|
||||||
Value *rmw_msk = msks->get_value(idx);
|
|
||||||
unsigned linear = vals->get_linear_index(idx);
|
unsigned linear = vals->get_linear_index(idx);
|
||||||
unsigned id = linear / vector_size;
|
unsigned id = linear / vector_size;
|
||||||
if(linear % vector_size != 0)
|
//if(linear % vector_size != 0)
|
||||||
return;
|
// return;
|
||||||
// num bytes
|
// num bytes
|
||||||
Value *rmw_val = packets[id];
|
Value *rmw_ptr = ptrs->get_value(idx);
|
||||||
if(vector_size == 1)
|
Value *rmw_msk = msks->get_value(idx);
|
||||||
rmw_val = builder_->CreateExtractElement(rmw_val, builder_->getInt32(0));
|
Value *rmw_val = vals->get_value(idx);
|
||||||
|
//if(vector_size == 1)
|
||||||
|
// rmw_val = builder_->CreateExtractElement(rmw_val, builder_->getInt32(0));
|
||||||
Type* ty = rmw_val->getType();
|
Type* ty = rmw_val->getType();
|
||||||
size_t nbits = ty->getScalarSizeInBits();
|
size_t nbits = ty->getScalarSizeInBits();
|
||||||
// extract pointer offset
|
// extract pointer offset
|
||||||
|
Reference in New Issue
Block a user