message: We shouldn't take the worst case scenario for concatenate and fusion. This is the last step to make the new test pass.
diff: @@ -96,16 +96,7 @@ void FusionNodeIndexingEvaluation::UpdateIndexUsageCount(
  const HloInstruction* instruction) {
  int64 total = 0;
  for (const auto* user : indexing_users_[instruction]) {
  - int64 weight = 1;
  - // Concatenate is special: the index differs for each operand, so
  - // in the worst case we have to deal with as many index values as
  - // the number of operands of Concatenate. By considering the worst
  - // case, we are more conservative than necessary regarding
  - // counting the index usage.
  - if (user->opcode() == HloOpcode::kConcatenate) {
  - weight = user->operand_count();
  - }
  - total += index_usage_count_.at(user) * weight;
  + total += index_usage_count_.at(user);
  }
  CHECK(index_usage_count_.emplace(instruction, total).second);
  total_emitted_instructions_ += total;
  