diff --git a/modcc/printer/cprinter.cpp b/modcc/printer/cprinter.cpp
index ee417bea075edcde5688ced694534a6471a36d0b..2fc44fc8af985703aa647a093b31654d21524238 100644
--- a/modcc/printer/cprinter.cpp
+++ b/modcc/printer/cprinter.cpp
@@ -962,7 +962,6 @@ void emit_simd_body_for_loop(
 void emit_simd_for_loop_per_constraint(std::ostream& out, BlockExpression* body,
                                   const std::vector<LocalVariable*>& indexed_vars,
                                   const std::vector<VariableExpression*>& scalars,
-                                  bool requires_weight,
                                   const std::list<index_prop>& indices,
                                   const simd_expr_constraint& constraint,
                                   std::string underlying_constraint_name) {
@@ -972,12 +971,10 @@ void emit_simd_for_loop_per_constraint(std::ostream& out, BlockExpression* body,
                        "    arb_index_type index_ = {0}index_constraints.{1}[i_];\n",
                        pp_var_pfx,
                        underlying_constraint_name)
-        << indent;
-    if (requires_weight) {
-        out << fmt::format("simd_value w_;\n"
-                           "assign(w_, indirect(({}weight+index_), simd_width_));\n",
-                           pp_var_pfx);
-    }
+        << indent
+        << fmt::format("simd_value w_;\n"
+                       "assign(w_, indirect(({}weight+index_), simd_width_));\n",
+                       pp_var_pfx);
 
     emit_simd_body_for_loop(out, body, indexed_vars, scalars, indices, constraint);
 
@@ -988,22 +985,8 @@ void emit_simd_for_loop_per_constraint(std::ostream& out, BlockExpression* body,
 void emit_simd_api_body(std::ostream& out, APIMethod* method, const std::vector<VariableExpression*>& scalars) {
     auto body = method->body();
     auto indexed_vars = indexed_locals(method->scope());
-    bool requires_weight = false;
 
     ENTER(out);
-    for (auto& s: body->is_block()->statements()) {
-        if (s->is_assignment()) {
-            for (auto& v: indexed_vars) {
-                if (s->is_assignment()->lhs()->is_identifier()->name() == v->external_variable()->name()) {
-                    auto info = decode_indexed_variable(v->external_variable());
-                    if (info.accumulate) {
-                        requires_weight = true;
-                    }
-                    break;
-                }
-            }
-        }
-    }
     std::list<index_prop> indices = gather_indexed_vars(indexed_vars, "index_");
     std::vector<LocalVariable*> scalar_indexed_vars;
     for (auto& sym: indexed_vars) {
@@ -1021,25 +1004,25 @@ void emit_simd_api_body(std::ostream& out, APIMethod* method, const std::vector<
             simd_expr_constraint constraint = simd_expr_constraint::contiguous;
             std::string underlying_constraint = "contiguous";
 
-            emit_simd_for_loop_per_constraint(out, body, indexed_vars, scalars, requires_weight, indices, constraint, underlying_constraint);
+            emit_simd_for_loop_per_constraint(out, body, indexed_vars, scalars, indices, constraint, underlying_constraint);
 
             //Generate for loop for all independent simd_vectors
             constraint = simd_expr_constraint::other;
             underlying_constraint = "independent";
 
-            emit_simd_for_loop_per_constraint(out, body, indexed_vars, scalars, requires_weight, indices, constraint, underlying_constraint);
+            emit_simd_for_loop_per_constraint(out, body, indexed_vars, scalars, indices, constraint, underlying_constraint);
 
             //Generate for loop for all simd_vectors that have no optimizing constraints
             constraint = simd_expr_constraint::other;
             underlying_constraint = "none";
 
-            emit_simd_for_loop_per_constraint(out, body, indexed_vars, scalars, requires_weight, indices, constraint, underlying_constraint);
+            emit_simd_for_loop_per_constraint(out, body, indexed_vars, scalars, indices, constraint, underlying_constraint);
 
             //Generate for loop for all constant simd_vectors
             constraint = simd_expr_constraint::constant;
             underlying_constraint = "constant";
 
-            emit_simd_for_loop_per_constraint(out, body, indexed_vars, scalars, requires_weight, indices, constraint, underlying_constraint);
+            emit_simd_for_loop_per_constraint(out, body, indexed_vars, scalars, indices, constraint, underlying_constraint);
 
         }
         else {