From 5d84fde733c54bdf96c715b19770dffdc32f7034 Mon Sep 17 00:00:00 2001 From: Philippe Tillet Date: Thu, 12 Nov 2020 16:56:36 -0500 Subject: [PATCH] tmp --- lib/codegen/selection/generator.cc | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/lib/codegen/selection/generator.cc b/lib/codegen/selection/generator.cc index 6bd62ba81..f0534b5ce 100644 --- a/lib/codegen/selection/generator.cc +++ b/lib/codegen/selection/generator.cc @@ -713,6 +713,7 @@ void generator::visit_atomic_add_inst(ir::atomic_add_inst* add) { // vector size int vector_size = 1; + /* int ld = ptrs->get_order()[0]; unsigned alignment = alignment_->get(ptr, ld); 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] = builder_->CreateInsertElement(packets.at(id), in_value, linear % vector_size); }); + */ - for_each(val, [&](indices_t idx){ - Value *rmw_ptr = ptrs->get_value(idx); - Value *rmw_msk = msks->get_value(idx); + for_each(ptr, [&](indices_t idx){ unsigned linear = vals->get_linear_index(idx); unsigned id = linear / vector_size; - if(linear % vector_size != 0) - return; + //if(linear % vector_size != 0) + // return; // num bytes - Value *rmw_val = packets[id]; - if(vector_size == 1) - rmw_val = builder_->CreateExtractElement(rmw_val, builder_->getInt32(0)); + Value *rmw_ptr = ptrs->get_value(idx); + Value *rmw_msk = msks->get_value(idx); + 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(); size_t nbits = ty->getScalarSizeInBits(); // extract pointer offset