Просмотр исходного кода

Remove return_slot_id (#4577)

Co-authored-by: Richard Smith <richard@metafoo.co.uk>
Geoff Romer 1 год назад
Родитель
Сommit
78d7a7c291
100 измененных файлов с 1018 добавлено и 1032 удалено
  1. 2 1
      toolchain/check/call.cpp
  2. 19 19
      toolchain/check/convert.cpp
  3. 0 1
      toolchain/check/global_init.cpp
  4. 10 8
      toolchain/check/handle_function.cpp
  5. 2 4
      toolchain/check/handle_impl.cpp
  6. 4 16
      toolchain/check/import_ref.cpp
  7. 1 2
      toolchain/check/name_component.cpp
  8. 1 2
      toolchain/check/name_component.h
  9. 10 16
      toolchain/check/pattern_match.cpp
  10. 3 12
      toolchain/check/pattern_match.h
  11. 20 5
      toolchain/check/return.cpp
  12. 1 1
      toolchain/check/testdata/alias/no_prelude/in_namespace.carbon
  13. 1 1
      toolchain/check/testdata/as/adapter_conversion.carbon
  14. 1 1
      toolchain/check/testdata/as/overloaded.carbon
  15. 1 1
      toolchain/check/testdata/basics/fail_bad_run.carbon
  16. 2 2
      toolchain/check/testdata/basics/no_prelude/raw_and_textual_ir.carbon
  17. 1 1
      toolchain/check/testdata/basics/no_prelude/raw_ir.carbon
  18. 1 1
      toolchain/check/testdata/basics/no_prelude/textual_ir.carbon
  19. 2 2
      toolchain/check/testdata/builtins/float/make_type.carbon
  20. 315 315
      toolchain/check/testdata/builtins/int/convert_checked.carbon
  21. 3 3
      toolchain/check/testdata/builtins/int/make_type_signed.carbon
  22. 1 1
      toolchain/check/testdata/builtins/print.carbon
  23. 1 1
      toolchain/check/testdata/class/access_modifers.carbon
  24. 2 2
      toolchain/check/testdata/class/base.carbon
  25. 2 2
      toolchain/check/testdata/class/basic.carbon
  26. 2 2
      toolchain/check/testdata/class/fail_abstract.carbon
  27. 1 1
      toolchain/check/testdata/class/fail_base_bad_type.carbon
  28. 1 1
      toolchain/check/testdata/class/fail_convert_to_invalid.carbon
  29. 2 2
      toolchain/check/testdata/class/fail_derived_to_base.carbon
  30. 1 1
      toolchain/check/testdata/class/fail_incomplete.carbon
  31. 4 4
      toolchain/check/testdata/class/fail_self.carbon
  32. 5 5
      toolchain/check/testdata/class/generic/adapt.carbon
  33. 8 8
      toolchain/check/testdata/class/generic/base_is_generic.carbon
  34. 4 4
      toolchain/check/testdata/class/generic/call.carbon
  35. 105 105
      toolchain/check/testdata/class/generic/import.carbon
  36. 2 2
      toolchain/check/testdata/class/generic/member_access.carbon
  37. 8 8
      toolchain/check/testdata/class/generic/member_out_of_line.carbon
  38. 8 8
      toolchain/check/testdata/class/generic/method_deduce.carbon
  39. 2 2
      toolchain/check/testdata/class/generic/self.carbon
  40. 13 13
      toolchain/check/testdata/class/import.carbon
  41. 8 8
      toolchain/check/testdata/class/import_base.carbon
  42. 1 1
      toolchain/check/testdata/class/inheritance_access.carbon
  43. 2 2
      toolchain/check/testdata/class/init.carbon
  44. 1 1
      toolchain/check/testdata/class/init_nested.carbon
  45. 2 2
      toolchain/check/testdata/class/method.carbon
  46. 7 7
      toolchain/check/testdata/class/raw_self.carbon
  47. 2 2
      toolchain/check/testdata/class/reenter_scope.carbon
  48. 4 4
      toolchain/check/testdata/class/self.carbon
  49. 2 2
      toolchain/check/testdata/class/self_conversion.carbon
  50. 3 3
      toolchain/check/testdata/class/self_type.carbon
  51. 3 3
      toolchain/check/testdata/const/import.carbon
  52. 9 9
      toolchain/check/testdata/deduce/array.carbon
  53. 13 13
      toolchain/check/testdata/deduce/generic_type.carbon
  54. 4 4
      toolchain/check/testdata/deduce/tuple.carbon
  55. 10 10
      toolchain/check/testdata/deduce/type_operator.carbon
  56. 3 3
      toolchain/check/testdata/expr_category/in_place_tuple_init.carbon
  57. 6 6
      toolchain/check/testdata/function/builtin/fail_redefined.carbon
  58. 2 2
      toolchain/check/testdata/function/call/prefer_unqualified_lookup.carbon
  59. 29 29
      toolchain/check/testdata/function/declaration/import.carbon
  60. 8 8
      toolchain/check/testdata/function/definition/import.carbon
  61. 5 5
      toolchain/check/testdata/function/definition/no_prelude/syntactic_merge.carbon
  62. 6 6
      toolchain/check/testdata/function/generic/no_prelude/call.carbon
  63. 2 2
      toolchain/check/testdata/function/generic/redeclare.carbon
  64. 2 2
      toolchain/check/testdata/function/generic/undefined.carbon
  65. 1 1
      toolchain/check/testdata/global/class_with_fun.carbon
  66. 3 3
      toolchain/check/testdata/if_expr/fail_not_in_function.carbon
  67. 1 1
      toolchain/check/testdata/impl/extend_impl_generic.carbon
  68. 1 1
      toolchain/check/testdata/impl/fail_redefinition.carbon
  69. 4 4
      toolchain/check/testdata/impl/no_prelude/interface_args.carbon
  70. 1 1
      toolchain/check/testdata/impl/no_prelude/self_in_class.carbon
  71. 2 2
      toolchain/check/testdata/impl/no_prelude/self_in_signature.carbon
  72. 6 6
      toolchain/check/testdata/interface/fail_todo_define_default_fn_out_of_line.carbon
  73. 1 1
      toolchain/check/testdata/interface/no_prelude/generic.carbon
  74. 1 1
      toolchain/check/testdata/namespace/merging_with_indirections.carbon
  75. 2 2
      toolchain/check/testdata/operators/builtin/fail_and_or_not_in_function.carbon
  76. 4 4
      toolchain/check/testdata/operators/overloaded/add.carbon
  77. 4 4
      toolchain/check/testdata/operators/overloaded/bit_and.carbon
  78. 4 4
      toolchain/check/testdata/operators/overloaded/bit_complement.carbon
  79. 4 4
      toolchain/check/testdata/operators/overloaded/bit_or.carbon
  80. 4 4
      toolchain/check/testdata/operators/overloaded/bit_xor.carbon
  81. 4 4
      toolchain/check/testdata/operators/overloaded/div.carbon
  82. 2 2
      toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon
  83. 3 3
      toolchain/check/testdata/operators/overloaded/fail_no_impl_for_arg.carbon
  84. 1 1
      toolchain/check/testdata/operators/overloaded/implicit_as.carbon
  85. 2 2
      toolchain/check/testdata/operators/overloaded/index.carbon
  86. 4 4
      toolchain/check/testdata/operators/overloaded/left_shift.carbon
  87. 4 4
      toolchain/check/testdata/operators/overloaded/mod.carbon
  88. 4 4
      toolchain/check/testdata/operators/overloaded/mul.carbon
  89. 4 4
      toolchain/check/testdata/operators/overloaded/negate.carbon
  90. 1 1
      toolchain/check/testdata/operators/overloaded/ordered.carbon
  91. 4 4
      toolchain/check/testdata/operators/overloaded/right_shift.carbon
  92. 4 4
      toolchain/check/testdata/operators/overloaded/sub.carbon
  93. 33 33
      toolchain/check/testdata/packages/implicit_imports_prelude.carbon
  94. 34 34
      toolchain/check/testdata/pointer/import.carbon
  95. 1 1
      toolchain/check/testdata/return/fail_return_with_returned_var.carbon
  96. 1 1
      toolchain/check/testdata/return/fail_var_in_type.carbon
  97. 45 45
      toolchain/check/testdata/return/no_prelude/import_convert_function.carbon
  98. 1 1
      toolchain/check/testdata/return/returned_var.carbon
  99. 1 1
      toolchain/check/testdata/return/tuple.carbon
  100. 116 116
      toolchain/check/testdata/struct/import.carbon

+ 2 - 1
toolchain/check/call.cpp

@@ -177,7 +177,8 @@ auto PerformCall(Context& context, SemIR::LocId loc_id, SemIR::InstId callee_id,
         &context.emitter(), [&](auto& builder) {
           CARBON_DIAGNOSTIC(IncompleteReturnTypeHere, Note,
                             "return type declared here");
-          builder.Note(function.return_slot_id, IncompleteReturnTypeHere);
+          builder.Note(function.return_slot_pattern_id,
+                       IncompleteReturnTypeHere);
         });
     return CheckFunctionReturnType(context, callee_id, function,
                                    *callee_specific_id);

+ 19 - 19
toolchain/check/convert.cpp

@@ -24,11 +24,11 @@
 
 namespace Carbon::Check {
 
-// Given an initializing expression, find its return slot. Returns `Invalid` if
-// there is no return slot, because the initialization is not performed in
-// place.
-static auto FindReturnSlotForInitializer(SemIR::File& sem_ir,
-                                         SemIR::InstId init_id)
+// Given an initializing expression, find its return slot argument. Returns
+// `Invalid` if there is no return slot, because the initialization is not
+// performed in place.
+static auto FindReturnSlotArgForInitializer(SemIR::File& sem_ir,
+                                            SemIR::InstId init_id)
     -> SemIR::InstId {
   while (true) {
     SemIR::Inst init_untyped = sem_ir.insts().Get(init_id);
@@ -77,15 +77,15 @@ static auto FindReturnSlotForInitializer(SemIR::File& sem_ir,
 static auto MarkInitializerFor(SemIR::File& sem_ir, SemIR::InstId init_id,
                                SemIR::InstId target_id,
                                PendingBlock& target_block) -> void {
-  auto return_slot_id = FindReturnSlotForInitializer(sem_ir, init_id);
-  if (return_slot_id.is_valid()) {
+  auto return_slot_arg_id = FindReturnSlotArgForInitializer(sem_ir, init_id);
+  if (return_slot_arg_id.is_valid()) {
     // Replace the temporary in the return slot with a reference to our target.
-    CARBON_CHECK(sem_ir.insts().Get(return_slot_id).kind() ==
+    CARBON_CHECK(sem_ir.insts().Get(return_slot_arg_id).kind() ==
                      SemIR::TemporaryStorage::Kind,
                  "Return slot for initializer does not contain a temporary; "
                  "initialized multiple times? Have {0}",
-                 sem_ir.insts().Get(return_slot_id));
-    target_block.MergeReplacing(return_slot_id, target_id);
+                 sem_ir.insts().Get(return_slot_arg_id));
+    target_block.MergeReplacing(return_slot_arg_id, target_id);
   }
 }
 
@@ -97,18 +97,18 @@ static auto MarkInitializerFor(SemIR::File& sem_ir, SemIR::InstId init_id,
 static auto FinalizeTemporary(Context& context, SemIR::InstId init_id,
                               bool discarded) -> SemIR::InstId {
   auto& sem_ir = context.sem_ir();
-  auto return_slot_id = FindReturnSlotForInitializer(sem_ir, init_id);
-  if (return_slot_id.is_valid()) {
+  auto return_slot_arg_id = FindReturnSlotArgForInitializer(sem_ir, init_id);
+  if (return_slot_arg_id.is_valid()) {
     // The return slot should already have a materialized temporary in it.
-    CARBON_CHECK(sem_ir.insts().Get(return_slot_id).kind() ==
+    CARBON_CHECK(sem_ir.insts().Get(return_slot_arg_id).kind() ==
                      SemIR::TemporaryStorage::Kind,
                  "Return slot for initializer does not contain a temporary; "
                  "initialized multiple times? Have {0}",
-                 sem_ir.insts().Get(return_slot_id));
+                 sem_ir.insts().Get(return_slot_arg_id));
     auto init = sem_ir.insts().Get(init_id);
     return context.AddInst<SemIR::Temporary>(sem_ir.insts().GetLocId(init_id),
                                              {.type_id = init.type_id(),
-                                              .storage_id = return_slot_id,
+                                              .storage_id = return_slot_arg_id,
                                               .init_id = init_id});
   }
 
@@ -258,9 +258,9 @@ static auto ConvertTupleToArray(Context& context, SemIR::TupleType tuple_type,
 
   // Arrays are always initialized in-place. Allocate a temporary as the
   // destination for the array initialization if we weren't given one.
-  SemIR::InstId return_slot_id = target.init_id;
+  SemIR::InstId return_slot_arg_id = target.init_id;
   if (!target.init_id.is_valid()) {
-    return_slot_id = target_block->AddInst<SemIR::TemporaryStorage>(
+    return_slot_arg_id = target_block->AddInst<SemIR::TemporaryStorage>(
         value_loc_id, {.type_id = target.type_id});
   }
 
@@ -276,7 +276,7 @@ static auto ConvertTupleToArray(Context& context, SemIR::TupleType tuple_type,
     auto init_id =
         ConvertAggregateElement<SemIR::TupleAccess, SemIR::ArrayIndex>(
             context, value_loc_id, value_id, src_type_id, literal_elems,
-            ConversionTarget::FullInitializer, return_slot_id,
+            ConversionTarget::FullInitializer, return_slot_arg_id,
             array_type.element_type_id, target_block, i, i);
     if (init_id == SemIR::InstId::BuiltinErrorInst) {
       return SemIR::InstId::BuiltinErrorInst;
@@ -290,7 +290,7 @@ static auto ConvertTupleToArray(Context& context, SemIR::TupleType tuple_type,
   return context.AddInst<SemIR::ArrayInit>(
       value_loc_id, {.type_id = target.type_id,
                      .inits_id = sem_ir.inst_blocks().Add(inits),
-                     .dest_id = return_slot_id});
+                     .dest_id = return_slot_arg_id});
 }
 
 // Performs a conversion from a tuple to a tuple type. This function only

+ 0 - 1
toolchain/check/global_init.cpp

@@ -49,7 +49,6 @@ auto GlobalInit::Finalize() -> void {
         .non_owning_decl_id = SemIR::InstId::Invalid,
         .first_owning_decl_id = SemIR::InstId::Invalid},
        {.return_slot_pattern_id = SemIR::InstId::Invalid,
-        .return_slot_id = SemIR::InstId::Invalid,
         .body_block_ids = {SemIR::InstBlockId::GlobalInit}}}));
 }
 

+ 10 - 8
toolchain/check/handle_function.cpp

@@ -45,11 +45,12 @@ auto HandleParseNode(Context& context, Parse::ReturnTypeId node_id) -> bool {
   // Propagate the type expression.
   auto [type_node_id, type_inst_id] = context.node_stack().PopExprWithNodeId();
   auto type_id = ExprAsType(context, type_node_id, type_inst_id).type_id;
-  auto return_slot_id = context.AddPatternInst<SemIR::ReturnSlotPattern>(
-      node_id, {.type_id = type_id, .type_inst_id = type_inst_id});
+  auto return_slot_pattern_id =
+      context.AddPatternInst<SemIR::ReturnSlotPattern>(
+          node_id, {.type_id = type_id, .type_inst_id = type_inst_id});
   auto param_pattern_id = context.AddPatternInst<SemIR::OutParamPattern>(
       node_id, {.type_id = type_id,
-                .subpattern_id = return_slot_id,
+                .subpattern_id = return_slot_pattern_id,
                 .runtime_index = SemIR::RuntimeParamIndex::Unknown});
   context.node_stack().Push(node_id, param_pattern_id);
   return true;
@@ -102,7 +103,7 @@ static auto MergeFunctionRedecl(Context& context, SemIRLoc new_loc,
     // Track the signature from the definition, so that IDs in the body
     // match IDs in the signature.
     prev_function.MergeDefinition(new_function);
-    prev_function.return_slot_id = new_function.return_slot_id;
+    prev_function.return_slot_pattern_id = new_function.return_slot_pattern_id;
   }
   if ((prev_import_ir_id.is_valid() && !new_is_import)) {
     ReplacePrevInstForMerge(context, new_function.parent_scope_id,
@@ -243,7 +244,6 @@ static auto BuildFunctionDecl(Context& context,
       SemIR::Function{{name_context.MakeEntityWithParamsBase(
                           name, decl_id, is_extern, introducer.extern_library)},
                       {.return_slot_pattern_id = name.return_slot_pattern_id,
-                       .return_slot_id = name.return_slot_id,
                        .virtual_modifier = virtual_modifier}};
   if (is_definition) {
     function_info.definition_id = decl_id;
@@ -345,12 +345,12 @@ static auto HandleFunctionDefinitionAfterSignature(
   context.AddCurrentCodeBlockToFunction();
 
   // Check the return type is complete.
-  CheckFunctionReturnType(context, function.return_slot_id, function,
+  CheckFunctionReturnType(context, function.return_slot_pattern_id, function,
                           SemIR::SpecificId::Invalid);
 
   auto params_to_complete =
       context.inst_blocks().GetOrEmpty(function.call_params_id);
-  if (function.return_slot_id.is_valid()) {
+  if (function.return_slot_pattern_id.is_valid()) {
     // Exclude the return slot because it's diagnosed above.
     params_to_complete = params_to_complete.drop_back();
   }
@@ -412,7 +412,9 @@ auto HandleParseNode(Context& context, Parse::FunctionDefinitionId node_id)
   // If the `}` of the function is reachable, reject if we need a return value
   // and otherwise add an implicit `return;`.
   if (context.is_current_position_reachable()) {
-    if (context.functions().Get(function_id).return_slot_id.is_valid()) {
+    if (context.functions()
+            .Get(function_id)
+            .return_slot_pattern_id.is_valid()) {
       CARBON_DIAGNOSTIC(
           MissingReturnStatement, Error,
           "missing `return` at end of function with declared return type");

+ 2 - 4
toolchain/check/handle_impl.cpp

@@ -201,11 +201,10 @@ static auto PopImplIntroducerAndParamsAsNameComponent(
   if (implicit_param_patterns_id) {
     // Emit the `forall` match. This shouldn't produce any `Call` params,
     // because `impl`s are never actually called at runtime.
-    auto parameter_blocks =
+    auto call_params_id =
         CalleePatternMatch(context, *implicit_param_patterns_id,
                            SemIR::InstBlockId::Invalid, SemIR::InstId::Invalid);
-    CARBON_CHECK(parameter_blocks.call_params_id == SemIR::InstBlockId::Empty);
-    CARBON_CHECK(parameter_blocks.return_slot_id == SemIR::InstId::Invalid);
+    CARBON_CHECK(call_params_id == SemIR::InstBlockId::Empty);
   }
 
   Parse::NodeId first_param_node_id =
@@ -224,7 +223,6 @@ static auto PopImplIntroducerAndParamsAsNameComponent(
       .param_patterns_id = SemIR::InstBlockId::Invalid,
       .call_params_id = SemIR::InstBlockId::Invalid,
       .return_slot_pattern_id = SemIR::InstId::Invalid,
-      .return_slot_id = SemIR::InstId::Invalid,
       .pattern_block_id = context.pattern_block_stack().Pop(),
   };
 }

+ 4 - 16
toolchain/check/import_ref.cpp

@@ -1668,7 +1668,6 @@ static auto MakeFunctionDecl(ImportContext& context,
   function_decl.function_id = context.local_functions().Add(
       {GetIncompleteLocalEntityBase(context, function_decl_id, import_function),
        {.return_slot_pattern_id = SemIR::InstId::Invalid,
-        .return_slot_id = SemIR::InstId::Invalid,
         .builtin_function_kind = import_function.builtin_function_kind}});
 
   function_decl.type_id = context.local_context().GetFunctionType(
@@ -1716,10 +1715,11 @@ static auto TryResolveTypedInst(ImportRefResolver& resolver,
   }
 
   auto return_type_const_id = SemIR::ConstantId::Invalid;
-  if (import_function.return_slot_id.is_valid()) {
+  if (import_function.return_slot_pattern_id.is_valid()) {
     return_type_const_id = GetLocalConstantId(
-        resolver,
-        resolver.import_insts().Get(import_function.return_slot_id).type_id());
+        resolver, resolver.import_insts()
+                      .Get(import_function.return_slot_pattern_id)
+                      .type_id());
   }
   auto parent_scope_id =
       GetLocalNameScopeId(resolver, import_function.parent_scope_id);
@@ -1744,18 +1744,6 @@ static auto TryResolveTypedInst(ImportRefResolver& resolver,
   SetGenericData(resolver, import_function.generic_id, new_function.generic_id,
                  generic_data);
 
-  if (import_function.return_slot_id.is_valid()) {
-    // Recreate the return slot from scratch.
-    // TODO: Once we import function definitions, we'll need to make sure we
-    // use the same return storage variable in the declaration and definition.
-    new_function.return_slot_id =
-        resolver.local_context().AddInstInNoBlock<SemIR::VarStorage>(
-            AddImportIRInst(resolver, import_function.return_slot_id),
-            {.type_id = resolver.local_context().GetTypeIdForTypeConstant(
-                 return_type_const_id),
-             .name_id = SemIR::NameId::ReturnSlot});
-  }
-
   if (import_function.definition_id.is_valid()) {
     new_function.definition_id = new_function.first_owning_decl_id;
   }

+ 1 - 2
toolchain/check/name_component.cpp

@@ -43,7 +43,7 @@ auto PopNameComponent(Context& context, SemIR::InstId return_slot_pattern_id)
     implicit_param_patterns_id = SemIR::InstBlockId::Invalid;
   }
 
-  auto [call_params_id, return_slot_id] =
+  auto call_params_id =
       CalleePatternMatch(context, *implicit_param_patterns_id,
                          *param_patterns_id, return_slot_pattern_id);
 
@@ -59,7 +59,6 @@ auto PopNameComponent(Context& context, SemIR::InstId return_slot_pattern_id)
       .param_patterns_id = *param_patterns_id,
       .call_params_id = call_params_id,
       .return_slot_pattern_id = return_slot_pattern_id,
-      .return_slot_id = return_slot_id,
       .pattern_block_id = context.pattern_block_stack().Pop(),
   };
 }

+ 1 - 2
toolchain/check/name_component.h

@@ -41,10 +41,9 @@ struct NameComponent {
   SemIR::InstBlockId call_params_id;
 
   // The return slot.
-  // TODO: These are only used for function declarations. Should they go
+  // TODO: This is only used for function declarations. Should it go
   // somewhere else?
   SemIR::InstId return_slot_pattern_id;
-  SemIR::InstId return_slot_id;
 
   // The pattern block.
   SemIR::InstBlockId pattern_block_id;

+ 10 - 16
toolchain/check/pattern_match.cpp

@@ -63,10 +63,7 @@ class MatchContext {
   // specific.
   explicit MatchContext(MatchKind kind, SemIR::SpecificId callee_specific_id =
                                             SemIR::SpecificId::Invalid)
-      : next_index_(0),
-        kind_(kind),
-        callee_specific_id_(callee_specific_id),
-        return_slot_id_(SemIR::InstId::Invalid) {}
+      : next_index_(0), kind_(kind), callee_specific_id_(callee_specific_id) {}
 
   // Adds a work item to the stack.
   auto AddWork(WorkItem work_item) -> void { stack_.push_back(work_item); }
@@ -77,8 +74,6 @@ class MatchContext {
   // returns an inst block with references to all the emitted BindName insts.
   auto DoWork(Context& context) -> SemIR::InstBlockId;
 
-  auto return_slot_id() const -> SemIR::InstId { return return_slot_id_; }
-
  private:
   // Allocates the next unallocated RuntimeParamIndex, starting from 0.
   auto NextRuntimeIndex() -> SemIR::RuntimeParamIndex {
@@ -113,10 +108,6 @@ class MatchContext {
 
   // The SpecificId of the function being called (if any).
   SemIR::SpecificId callee_specific_id_;
-
-  // The return slot inst emitted by `DoWork`, if any.
-  // TODO: Can this be added to the block returned by `DoWork`, instead?
-  SemIR::InstId return_slot_id_;
 };
 
 }  // namespace
@@ -280,10 +271,15 @@ auto MatchContext::EmitPatternMatch(Context& context,
     }
     case CARBON_KIND(SemIR::ReturnSlotPattern return_slot_pattern): {
       CARBON_CHECK(kind_ == MatchKind::Callee);
-      return_slot_id_ = context.AddInst<SemIR::ReturnSlot>(
+      auto return_slot_id = context.AddInst<SemIR::ReturnSlot>(
           pattern.loc_id, {.type_id = return_slot_pattern.type_id,
                            .type_inst_id = return_slot_pattern.type_inst_id,
                            .storage_id = entry.scrutinee_id});
+      bool already_in_lookup =
+          context.scope_stack()
+              .LookupOrAddName(SemIR::NameId::ReturnSlot, return_slot_id)
+              .is_valid();
+      CARBON_CHECK(!already_in_lookup);
       results_.push_back(entry.scrutinee_id);
       break;
     }
@@ -297,11 +293,10 @@ auto CalleePatternMatch(Context& context,
                         SemIR::InstBlockId implicit_param_patterns_id,
                         SemIR::InstBlockId param_patterns_id,
                         SemIR::InstId return_slot_pattern_id)
-    -> ParameterBlocks {
+    -> SemIR::InstBlockId {
   if (!return_slot_pattern_id.is_valid() && !param_patterns_id.is_valid() &&
       !implicit_param_patterns_id.is_valid()) {
-    return {.call_params_id = SemIR::InstBlockId::Invalid,
-            .return_slot_id = SemIR::InstId::Invalid};
+    return SemIR::InstBlockId::Invalid;
   }
 
   MatchContext match(MatchKind::Callee);
@@ -329,8 +324,7 @@ auto CalleePatternMatch(Context& context,
     }
   }
 
-  return {.call_params_id = match.DoWork(context),
-          .return_slot_id = match.return_slot_id()};
+  return match.DoWork(context);
 }
 
 auto CallerPatternMatch(Context& context, SemIR::SpecificId specific_id,

+ 3 - 12
toolchain/check/pattern_match.h

@@ -10,17 +10,6 @@
 
 namespace Carbon::Check {
 
-// The outputs of CalleePatternMatch.
-// TODO: Rename or remove this struct.
-struct ParameterBlocks {
-  // The `Call` parameters of the function.
-  SemIR::InstBlockId call_params_id;
-
-  // The return slot.
-  // TODO: Drop this and just use the last element of above?
-  SemIR::InstId return_slot_id;
-};
-
 // TODO: Find a better place for this overview, once it has stabilized.
 //
 // The signature pattern of a function call is matched partially by the caller
@@ -35,11 +24,13 @@ struct ParameterBlocks {
 // callee side of pattern matching, starting at the `ParamPattern` insts, and
 // matching them against the corresponding `Call` parameters (see
 // entity_with_params_base.h for the definition of that term).
+// Returns the ID of an inst block consisting of references to the `Call`
+// parameters of the function.
 auto CalleePatternMatch(Context& context,
                         SemIR::InstBlockId implicit_param_patterns_id,
                         SemIR::InstBlockId param_patterns_id,
                         SemIR::InstId return_slot_pattern_id)
-    -> ParameterBlocks;
+    -> SemIR::InstBlockId;
 
 // Emits the pattern-match IR for matching the given arguments with the given
 // parameter patterns, and returns an inst block of the arguments that should

+ 20 - 5
toolchain/check/return.cpp

@@ -20,6 +20,18 @@ static auto GetCurrentFunction(Context& context) -> SemIR::Function& {
   return context.functions().Get(function_id);
 }
 
+// Gets the return slot of the function that lexically encloses the current
+// location.
+static auto GetCurrentReturnSlot(Context& context) -> SemIR::InstId {
+  // TODO: this does some unnecessary work to compute non-lexical scopes,
+  // so a separate API on ScopeStack could be more efficient.
+  auto return_slot_id = context.scope_stack()
+                            .LookupInLexicalScopes(SemIR::NameId::ReturnSlot)
+                            .first;
+  CARBON_CHECK(return_slot_id.is_valid());
+  return return_slot_id;
+}
+
 // Gets the currently in scope `returned var`, if any, that would be returned
 // by a `return var;`.
 static auto GetCurrentReturnedVar(Context& context) -> SemIR::InstId {
@@ -40,13 +52,16 @@ static auto NoteNoReturnTypeProvided(Context::DiagnosticBuilder& diag,
 // must be a function whose definition is currently being checked.
 static auto NoteReturnType(Context& context, Context::DiagnosticBuilder& diag,
                            const SemIR::Function& function) {
+  auto out_param_pattern = context.insts().GetAs<SemIR::OutParamPattern>(
+      function.return_slot_pattern_id);
   auto return_type_inst_id =
       context.insts()
-          .GetAs<SemIR::ReturnSlot>(function.return_slot_id)
+          .GetAs<SemIR::ReturnSlotPattern>(out_param_pattern.subpattern_id)
           .type_inst_id;
   CARBON_DIAGNOSTIC(ReturnTypeHereNote, Note, "return type of function is {0}",
                     InstIdAsType);
-  diag.Note(function.return_slot_id, ReturnTypeHereNote, return_type_inst_id);
+  diag.Note(function.return_slot_pattern_id, ReturnTypeHereNote,
+            return_type_inst_id);
 }
 
 // Produces a note pointing at the currently in scope `returned var`.
@@ -97,7 +112,7 @@ auto CheckReturnedVar(Context& context, Parse::NodeId returned_node,
   // The variable aliases the return slot if there is one. If not, it has its
   // own storage.
   if (return_info.has_return_slot()) {
-    return function.return_slot_id;
+    return GetCurrentReturnSlot(context);
   }
   return context.AddInst<SemIR::VarStorage>(
       name_node, {.type_id = type_id, .name_id = name_id});
@@ -160,7 +175,7 @@ auto BuildReturnWithExpr(Context& context, Parse::ReturnStatementId node_id,
     // convert to it.
     expr_id = SemIR::InstId::BuiltinErrorInst;
   } else if (return_info.has_return_slot()) {
-    return_slot_id = function.return_slot_id;
+    return_slot_id = GetCurrentReturnSlot(context);
     // Note that this can import a function and invalidate `function`.
     expr_id = Initialize(context, node_id, return_slot_id, expr_id);
   } else {
@@ -184,7 +199,7 @@ auto BuildReturnVar(Context& context, Parse::ReturnStatementId node_id)
     returned_var_id = SemIR::InstId::BuiltinErrorInst;
   }
 
-  auto return_slot_id = function.return_slot_id;
+  auto return_slot_id = GetCurrentReturnSlot(context);
   if (!SemIR::ReturnTypeInfo::ForFunction(context.sem_ir(), function)
            .has_return_slot()) {
     // If we don't have a return slot, we're returning by value. Convert to a

+ 1 - 1
toolchain/check/testdata/alias/no_prelude/in_namespace.carbon

@@ -71,7 +71,7 @@ fn F() -> NS.a {
 // CHECK:STDOUT:   complete_type_witness = %complete_type
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @F() -> %return: %C {
+// CHECK:STDOUT: fn @F() -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %.loc19_17.1: %empty_tuple.type = tuple_literal ()
 // CHECK:STDOUT:   %.loc19_18.1: %struct_type.v = struct_literal (%.loc19_17.1)

+ 1 - 1
toolchain/check/testdata/as/adapter_conversion.carbon

@@ -210,7 +210,7 @@ var b: B = {.x = 1} as B;
 // CHECK:STDOUT:   complete_type_witness = %complete_type
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Make() -> %return: %A {
+// CHECK:STDOUT: fn @Make() -> %return.param_patt: %A {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.1]
 // CHECK:STDOUT:   %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.1]

+ 1 - 1
toolchain/check/testdata/as/overloaded.carbon

@@ -161,7 +161,7 @@ let n: i32 = ((4 as i32) as X) as i32;
 // CHECK:STDOUT:   complete_type_witness = %complete_type
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Convert.2[%self.param_patt: %i32]() -> %return: %X {
+// CHECK:STDOUT: fn @Convert.2[%self.param_patt: %i32]() -> %return.param_patt: %X {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %self.ref: %i32 = name_ref self, %self
 // CHECK:STDOUT:   %.loc16_51.1: %struct_type.n = struct_literal (%self.ref)

+ 1 - 1
toolchain/check/testdata/basics/fail_bad_run.carbon

@@ -55,7 +55,7 @@ fn Run() -> String {}
 // CHECK:STDOUT:   %.loc18_20.2: type = converted %int.make_type_signed, %.loc18_20.1 [template = constants.%i32]
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Run() -> %return: String {
+// CHECK:STDOUT: fn @Run() -> %return.param_patt: String {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 2 - 2
toolchain/check/testdata/basics/no_prelude/raw_and_textual_ir.carbon

@@ -27,7 +27,7 @@ fn Foo(n: ()) -> ((), ()) {
 // CHECK:STDOUT:   entity_names:
 // CHECK:STDOUT:     entity_name0:    {name: name1, parent_scope: name_scope<invalid>, index: comp_time_bind<invalid>}
 // CHECK:STDOUT:   functions:
-// CHECK:STDOUT:     function0:       {name: name0, parent_scope: name_scope0, return_slot_pattern: inst+15, return_slot: inst+18, body: [block9]}
+// CHECK:STDOUT:     function0:       {name: name0, parent_scope: name_scope0, return_slot_pattern: inst+15, body: [block9]}
 // CHECK:STDOUT:   classes:         {}
 // CHECK:STDOUT:   generics:        {}
 // CHECK:STDOUT:   specifics:       {}
@@ -201,7 +201,7 @@ fn Foo(n: ()) -> ((), ()) {
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Foo(%n.param_patt: %empty_tuple.type) -> %return: %tuple.type {
+// CHECK:STDOUT: fn @Foo(%n.param_patt: %empty_tuple.type) -> %return.param_patt: %tuple.type {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %n.ref: %empty_tuple.type = name_ref n, %n
 // CHECK:STDOUT:   %.loc16_15.1: %empty_tuple.type = tuple_literal ()

+ 1 - 1
toolchain/check/testdata/basics/no_prelude/raw_ir.carbon

@@ -28,7 +28,7 @@ fn Foo[T:! type](n: T) -> (T, ()) {
 // CHECK:STDOUT:     entity_name0:    {name: name1, parent_scope: name_scope<invalid>, index: comp_time_bind0}
 // CHECK:STDOUT:     entity_name1:    {name: name2, parent_scope: name_scope<invalid>, index: comp_time_bind<invalid>}
 // CHECK:STDOUT:   functions:
-// CHECK:STDOUT:     function0:       {name: name0, parent_scope: name_scope0, return_slot_pattern: inst+19, return_slot: inst+23, body: [block14]}
+// CHECK:STDOUT:     function0:       {name: name0, parent_scope: name_scope0, return_slot_pattern: inst+19, body: [block14]}
 // CHECK:STDOUT:   classes:         {}
 // CHECK:STDOUT:   generics:
 // CHECK:STDOUT:     generic0:        {decl: inst+24, bindings: block10}

+ 1 - 1
toolchain/check/testdata/basics/no_prelude/textual_ir.carbon

@@ -52,7 +52,7 @@ fn Foo(n: ()) -> ((), ()) {
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Foo(%n.param_patt: %empty_tuple.type) -> %return: %tuple.type {
+// CHECK:STDOUT: fn @Foo(%n.param_patt: %empty_tuple.type) -> %return.param_patt: %tuple.type {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %n.ref: %empty_tuple.type = name_ref n, %n
 // CHECK:STDOUT:   %.loc16_15.1: %empty_tuple.type = tuple_literal ()

+ 2 - 2
toolchain/check/testdata/builtins/float/make_type.carbon

@@ -111,7 +111,7 @@ var dyn: Float(dyn_size);
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
-// CHECK:STDOUT:   %import_ref.1: %Float.type = import_ref Main//types, inst+27, loaded [template = constants.%Float]
+// CHECK:STDOUT:   %import_ref.1: %Float.type = import_ref Main//types, inst+26, loaded [template = constants.%Float]
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .ImplicitAs = %import_ref.2
 // CHECK:STDOUT:     .Int = %import_ref.38
@@ -201,7 +201,7 @@ var dyn: Float(dyn_size);
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
-// CHECK:STDOUT:   %import_ref.1: %Float.type = import_ref Main//types, inst+27, loaded [template = constants.%Float]
+// CHECK:STDOUT:   %import_ref.1: %Float.type = import_ref Main//types, inst+26, loaded [template = constants.%Float]
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .ImplicitAs = %import_ref.2
 // CHECK:STDOUT:     .Int = %import_ref.38

+ 315 - 315
toolchain/check/testdata/builtins/int/convert_checked.carbon

@@ -832,27 +832,27 @@ let convert_not_constant_widen: i64 = Int32ToInt64(not_constant);
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
-// CHECK:STDOUT:   %import_ref.1: %NegateI32.type = import_ref Main//int_ops, inst+31, loaded [template = constants.%NegateI32]
-// CHECK:STDOUT:   %import_ref.2: %SubI32.type = import_ref Main//int_ops, inst+58, loaded [template = constants.%SubI32]
-// CHECK:STDOUT:   %import_ref.3 = import_ref Main//int_ops, inst+95, unloaded
-// CHECK:STDOUT:   %import_ref.4: %IntLiteral.type = import_ref Main//int_ops, inst+102, loaded [template = constants.%IntLiteral]
-// CHECK:STDOUT:   %import_ref.5: %Int32ToInt32.type = import_ref Main//int_ops, inst+121, loaded [template = constants.%Int32ToInt32]
-// CHECK:STDOUT:   %import_ref.6 = import_ref Main//int_ops, inst+140, unloaded
-// CHECK:STDOUT:   %import_ref.7 = import_ref Main//int_ops, inst+159, unloaded
-// CHECK:STDOUT:   %import_ref.8 = import_ref Main//int_ops, inst+178, unloaded
-// CHECK:STDOUT:   %import_ref.9: %IntLiteralToIntLiteral.type = import_ref Main//int_ops, inst+197, loaded [template = constants.%IntLiteralToIntLiteral]
-// CHECK:STDOUT:   %import_ref.10 = import_ref Main//int_ops, inst+218, unloaded
-// CHECK:STDOUT:   %import_ref.11 = import_ref Main//int_ops, inst+238, unloaded
-// CHECK:STDOUT:   %import_ref.12 = import_ref Main//int_ops, inst+257, unloaded
-// CHECK:STDOUT:   %import_ref.13 = import_ref Main//int_ops, inst+276, unloaded
-// CHECK:STDOUT:   %import_ref.14 = import_ref Main//int_ops, inst+295, unloaded
-// CHECK:STDOUT:   %import_ref.15 = import_ref Main//int_ops, inst+314, unloaded
-// CHECK:STDOUT:   %import_ref.16 = import_ref Main//int_ops, inst+335, unloaded
-// CHECK:STDOUT:   %import_ref.17 = import_ref Main//int_ops, inst+355, unloaded
-// CHECK:STDOUT:   %import_ref.18 = import_ref Main//int_ops, inst+374, unloaded
-// CHECK:STDOUT:   %import_ref.19 = import_ref Main//int_ops, inst+393, unloaded
-// CHECK:STDOUT:   %import_ref.20: %Int32ToIntLiteral.type = import_ref Main//int_ops, inst+412, loaded [template = constants.%Int32ToIntLiteral]
-// CHECK:STDOUT:   %import_ref.21 = import_ref Main//int_ops, inst+431, unloaded
+// CHECK:STDOUT:   %import_ref.1: %NegateI32.type = import_ref Main//int_ops, inst+30, loaded [template = constants.%NegateI32]
+// CHECK:STDOUT:   %import_ref.2: %SubI32.type = import_ref Main//int_ops, inst+57, loaded [template = constants.%SubI32]
+// CHECK:STDOUT:   %import_ref.3 = import_ref Main//int_ops, inst+93, unloaded
+// CHECK:STDOUT:   %import_ref.4: %IntLiteral.type = import_ref Main//int_ops, inst+100, loaded [template = constants.%IntLiteral]
+// CHECK:STDOUT:   %import_ref.5: %Int32ToInt32.type = import_ref Main//int_ops, inst+119, loaded [template = constants.%Int32ToInt32]
+// CHECK:STDOUT:   %import_ref.6 = import_ref Main//int_ops, inst+138, unloaded
+// CHECK:STDOUT:   %import_ref.7 = import_ref Main//int_ops, inst+157, unloaded
+// CHECK:STDOUT:   %import_ref.8 = import_ref Main//int_ops, inst+176, unloaded
+// CHECK:STDOUT:   %import_ref.9: %IntLiteralToIntLiteral.type = import_ref Main//int_ops, inst+195, loaded [template = constants.%IntLiteralToIntLiteral]
+// CHECK:STDOUT:   %import_ref.10 = import_ref Main//int_ops, inst+216, unloaded
+// CHECK:STDOUT:   %import_ref.11 = import_ref Main//int_ops, inst+236, unloaded
+// CHECK:STDOUT:   %import_ref.12 = import_ref Main//int_ops, inst+255, unloaded
+// CHECK:STDOUT:   %import_ref.13 = import_ref Main//int_ops, inst+274, unloaded
+// CHECK:STDOUT:   %import_ref.14 = import_ref Main//int_ops, inst+293, unloaded
+// CHECK:STDOUT:   %import_ref.15 = import_ref Main//int_ops, inst+312, unloaded
+// CHECK:STDOUT:   %import_ref.16 = import_ref Main//int_ops, inst+333, unloaded
+// CHECK:STDOUT:   %import_ref.17 = import_ref Main//int_ops, inst+353, unloaded
+// CHECK:STDOUT:   %import_ref.18 = import_ref Main//int_ops, inst+372, unloaded
+// CHECK:STDOUT:   %import_ref.19 = import_ref Main//int_ops, inst+391, unloaded
+// CHECK:STDOUT:   %import_ref.20: %Int32ToIntLiteral.type = import_ref Main//int_ops, inst+410, loaded [template = constants.%Int32ToIntLiteral]
+// CHECK:STDOUT:   %import_ref.21 = import_ref Main//int_ops, inst+429, unloaded
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .Int = %import_ref.22
 // CHECK:STDOUT:     .ImplicitAs = %import_ref.23
@@ -1024,27 +1024,27 @@ let convert_not_constant_widen: i64 = Int32ToInt64(not_constant);
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
-// CHECK:STDOUT:   %import_ref.1 = import_ref Main//int_ops, inst+31, unloaded
-// CHECK:STDOUT:   %import_ref.2 = import_ref Main//int_ops, inst+58, unloaded
-// CHECK:STDOUT:   %import_ref.3 = import_ref Main//int_ops, inst+95, unloaded
-// CHECK:STDOUT:   %import_ref.4 = import_ref Main//int_ops, inst+102, unloaded
-// CHECK:STDOUT:   %import_ref.5 = import_ref Main//int_ops, inst+121, unloaded
-// CHECK:STDOUT:   %import_ref.6: %Int32ToUint32.type = import_ref Main//int_ops, inst+140, loaded [template = constants.%Int32ToUint32]
-// CHECK:STDOUT:   %import_ref.7: %Uint32ToInt32.type = import_ref Main//int_ops, inst+159, loaded [template = constants.%Uint32ToInt32]
-// CHECK:STDOUT:   %import_ref.8 = import_ref Main//int_ops, inst+178, unloaded
-// CHECK:STDOUT:   %import_ref.9 = import_ref Main//int_ops, inst+197, unloaded
-// CHECK:STDOUT:   %import_ref.10 = import_ref Main//int_ops, inst+218, unloaded
-// CHECK:STDOUT:   %import_ref.11 = import_ref Main//int_ops, inst+238, unloaded
-// CHECK:STDOUT:   %import_ref.12 = import_ref Main//int_ops, inst+257, unloaded
-// CHECK:STDOUT:   %import_ref.13 = import_ref Main//int_ops, inst+276, unloaded
-// CHECK:STDOUT:   %import_ref.14 = import_ref Main//int_ops, inst+295, unloaded
-// CHECK:STDOUT:   %import_ref.15 = import_ref Main//int_ops, inst+314, unloaded
-// CHECK:STDOUT:   %import_ref.16 = import_ref Main//int_ops, inst+335, unloaded
-// CHECK:STDOUT:   %import_ref.17 = import_ref Main//int_ops, inst+355, unloaded
-// CHECK:STDOUT:   %import_ref.18 = import_ref Main//int_ops, inst+374, unloaded
-// CHECK:STDOUT:   %import_ref.19 = import_ref Main//int_ops, inst+393, unloaded
-// CHECK:STDOUT:   %import_ref.20 = import_ref Main//int_ops, inst+412, unloaded
-// CHECK:STDOUT:   %import_ref.21 = import_ref Main//int_ops, inst+431, unloaded
+// CHECK:STDOUT:   %import_ref.1 = import_ref Main//int_ops, inst+30, unloaded
+// CHECK:STDOUT:   %import_ref.2 = import_ref Main//int_ops, inst+57, unloaded
+// CHECK:STDOUT:   %import_ref.3 = import_ref Main//int_ops, inst+93, unloaded
+// CHECK:STDOUT:   %import_ref.4 = import_ref Main//int_ops, inst+100, unloaded
+// CHECK:STDOUT:   %import_ref.5 = import_ref Main//int_ops, inst+119, unloaded
+// CHECK:STDOUT:   %import_ref.6: %Int32ToUint32.type = import_ref Main//int_ops, inst+138, loaded [template = constants.%Int32ToUint32]
+// CHECK:STDOUT:   %import_ref.7: %Uint32ToInt32.type = import_ref Main//int_ops, inst+157, loaded [template = constants.%Uint32ToInt32]
+// CHECK:STDOUT:   %import_ref.8 = import_ref Main//int_ops, inst+176, unloaded
+// CHECK:STDOUT:   %import_ref.9 = import_ref Main//int_ops, inst+195, unloaded
+// CHECK:STDOUT:   %import_ref.10 = import_ref Main//int_ops, inst+216, unloaded
+// CHECK:STDOUT:   %import_ref.11 = import_ref Main//int_ops, inst+236, unloaded
+// CHECK:STDOUT:   %import_ref.12 = import_ref Main//int_ops, inst+255, unloaded
+// CHECK:STDOUT:   %import_ref.13 = import_ref Main//int_ops, inst+274, unloaded
+// CHECK:STDOUT:   %import_ref.14 = import_ref Main//int_ops, inst+293, unloaded
+// CHECK:STDOUT:   %import_ref.15 = import_ref Main//int_ops, inst+312, unloaded
+// CHECK:STDOUT:   %import_ref.16 = import_ref Main//int_ops, inst+333, unloaded
+// CHECK:STDOUT:   %import_ref.17 = import_ref Main//int_ops, inst+353, unloaded
+// CHECK:STDOUT:   %import_ref.18 = import_ref Main//int_ops, inst+372, unloaded
+// CHECK:STDOUT:   %import_ref.19 = import_ref Main//int_ops, inst+391, unloaded
+// CHECK:STDOUT:   %import_ref.20 = import_ref Main//int_ops, inst+410, unloaded
+// CHECK:STDOUT:   %import_ref.21 = import_ref Main//int_ops, inst+429, unloaded
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .UInt = %import_ref.22
 // CHECK:STDOUT:     .ImplicitAs = %import_ref.23
@@ -1194,27 +1194,27 @@ let convert_not_constant_widen: i64 = Int32ToInt64(not_constant);
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
-// CHECK:STDOUT:   %import_ref.1: %NegateI32.type = import_ref Main//int_ops, inst+31, loaded [template = constants.%NegateI32]
-// CHECK:STDOUT:   %import_ref.2 = import_ref Main//int_ops, inst+58, unloaded
-// CHECK:STDOUT:   %import_ref.3 = import_ref Main//int_ops, inst+95, unloaded
-// CHECK:STDOUT:   %import_ref.4 = import_ref Main//int_ops, inst+102, unloaded
-// CHECK:STDOUT:   %import_ref.5 = import_ref Main//int_ops, inst+121, unloaded
-// CHECK:STDOUT:   %import_ref.6: %Int32ToUint32.type = import_ref Main//int_ops, inst+140, loaded [template = constants.%Int32ToUint32]
-// CHECK:STDOUT:   %import_ref.7 = import_ref Main//int_ops, inst+159, unloaded
-// CHECK:STDOUT:   %import_ref.8 = import_ref Main//int_ops, inst+178, unloaded
-// CHECK:STDOUT:   %import_ref.9 = import_ref Main//int_ops, inst+197, unloaded
-// CHECK:STDOUT:   %import_ref.10: %Int32ToInt16.type = import_ref Main//int_ops, inst+218, loaded [template = constants.%Int32ToInt16]
-// CHECK:STDOUT:   %import_ref.11: %Int32ToUint16.type = import_ref Main//int_ops, inst+238, loaded [template = constants.%Int32ToUint16]
-// CHECK:STDOUT:   %import_ref.12: %Uint32ToInt16.type = import_ref Main//int_ops, inst+257, loaded [template = constants.%Uint32ToInt16]
-// CHECK:STDOUT:   %import_ref.13: %Uint32ToUint16.type = import_ref Main//int_ops, inst+276, loaded [template = constants.%Uint32ToUint16]
-// CHECK:STDOUT:   %import_ref.14: %IntLiteralToInt16.type = import_ref Main//int_ops, inst+295, loaded [template = constants.%IntLiteralToInt16]
-// CHECK:STDOUT:   %import_ref.15: %IntLiteralToUint16.type = import_ref Main//int_ops, inst+314, loaded [template = constants.%IntLiteralToUint16]
-// CHECK:STDOUT:   %import_ref.16 = import_ref Main//int_ops, inst+335, unloaded
-// CHECK:STDOUT:   %import_ref.17 = import_ref Main//int_ops, inst+355, unloaded
-// CHECK:STDOUT:   %import_ref.18 = import_ref Main//int_ops, inst+374, unloaded
-// CHECK:STDOUT:   %import_ref.19 = import_ref Main//int_ops, inst+393, unloaded
-// CHECK:STDOUT:   %import_ref.20: %Int32ToIntLiteral.type = import_ref Main//int_ops, inst+412, loaded [template = constants.%Int32ToIntLiteral]
-// CHECK:STDOUT:   %import_ref.21 = import_ref Main//int_ops, inst+431, unloaded
+// CHECK:STDOUT:   %import_ref.1: %NegateI32.type = import_ref Main//int_ops, inst+30, loaded [template = constants.%NegateI32]
+// CHECK:STDOUT:   %import_ref.2 = import_ref Main//int_ops, inst+57, unloaded
+// CHECK:STDOUT:   %import_ref.3 = import_ref Main//int_ops, inst+93, unloaded
+// CHECK:STDOUT:   %import_ref.4 = import_ref Main//int_ops, inst+100, unloaded
+// CHECK:STDOUT:   %import_ref.5 = import_ref Main//int_ops, inst+119, unloaded
+// CHECK:STDOUT:   %import_ref.6: %Int32ToUint32.type = import_ref Main//int_ops, inst+138, loaded [template = constants.%Int32ToUint32]
+// CHECK:STDOUT:   %import_ref.7 = import_ref Main//int_ops, inst+157, unloaded
+// CHECK:STDOUT:   %import_ref.8 = import_ref Main//int_ops, inst+176, unloaded
+// CHECK:STDOUT:   %import_ref.9 = import_ref Main//int_ops, inst+195, unloaded
+// CHECK:STDOUT:   %import_ref.10: %Int32ToInt16.type = import_ref Main//int_ops, inst+216, loaded [template = constants.%Int32ToInt16]
+// CHECK:STDOUT:   %import_ref.11: %Int32ToUint16.type = import_ref Main//int_ops, inst+236, loaded [template = constants.%Int32ToUint16]
+// CHECK:STDOUT:   %import_ref.12: %Uint32ToInt16.type = import_ref Main//int_ops, inst+255, loaded [template = constants.%Uint32ToInt16]
+// CHECK:STDOUT:   %import_ref.13: %Uint32ToUint16.type = import_ref Main//int_ops, inst+274, loaded [template = constants.%Uint32ToUint16]
+// CHECK:STDOUT:   %import_ref.14: %IntLiteralToInt16.type = import_ref Main//int_ops, inst+293, loaded [template = constants.%IntLiteralToInt16]
+// CHECK:STDOUT:   %import_ref.15: %IntLiteralToUint16.type = import_ref Main//int_ops, inst+312, loaded [template = constants.%IntLiteralToUint16]
+// CHECK:STDOUT:   %import_ref.16 = import_ref Main//int_ops, inst+333, unloaded
+// CHECK:STDOUT:   %import_ref.17 = import_ref Main//int_ops, inst+353, unloaded
+// CHECK:STDOUT:   %import_ref.18 = import_ref Main//int_ops, inst+372, unloaded
+// CHECK:STDOUT:   %import_ref.19 = import_ref Main//int_ops, inst+391, unloaded
+// CHECK:STDOUT:   %import_ref.20: %Int32ToIntLiteral.type = import_ref Main//int_ops, inst+410, loaded [template = constants.%Int32ToIntLiteral]
+// CHECK:STDOUT:   %import_ref.21 = import_ref Main//int_ops, inst+429, unloaded
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .UInt = %import_ref.22
 // CHECK:STDOUT:     .ImplicitAs = %import_ref.23
@@ -1569,27 +1569,27 @@ let convert_not_constant_widen: i64 = Int32ToInt64(not_constant);
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
-// CHECK:STDOUT:   %import_ref.1 = import_ref Main//int_ops, inst+31, unloaded
-// CHECK:STDOUT:   %import_ref.2 = import_ref Main//int_ops, inst+58, unloaded
-// CHECK:STDOUT:   %import_ref.3: %AddU32.type = import_ref Main//int_ops, inst+95, loaded [template = constants.%AddU32]
-// CHECK:STDOUT:   %import_ref.4 = import_ref Main//int_ops, inst+102, unloaded
-// CHECK:STDOUT:   %import_ref.5 = import_ref Main//int_ops, inst+121, unloaded
-// CHECK:STDOUT:   %import_ref.6: %Int32ToUint32.type = import_ref Main//int_ops, inst+140, loaded [template = constants.%Int32ToUint32]
-// CHECK:STDOUT:   %import_ref.7 = import_ref Main//int_ops, inst+159, unloaded
-// CHECK:STDOUT:   %import_ref.8 = import_ref Main//int_ops, inst+178, unloaded
-// CHECK:STDOUT:   %import_ref.9 = import_ref Main//int_ops, inst+197, unloaded
-// CHECK:STDOUT:   %import_ref.10 = import_ref Main//int_ops, inst+218, unloaded
-// CHECK:STDOUT:   %import_ref.11 = import_ref Main//int_ops, inst+238, unloaded
-// CHECK:STDOUT:   %import_ref.12 = import_ref Main//int_ops, inst+257, unloaded
-// CHECK:STDOUT:   %import_ref.13 = import_ref Main//int_ops, inst+276, unloaded
-// CHECK:STDOUT:   %import_ref.14 = import_ref Main//int_ops, inst+295, unloaded
-// CHECK:STDOUT:   %import_ref.15 = import_ref Main//int_ops, inst+314, unloaded
-// CHECK:STDOUT:   %import_ref.16 = import_ref Main//int_ops, inst+335, unloaded
-// CHECK:STDOUT:   %import_ref.17 = import_ref Main//int_ops, inst+355, unloaded
-// CHECK:STDOUT:   %import_ref.18: %Uint32ToInt64.type = import_ref Main//int_ops, inst+374, loaded [template = constants.%Uint32ToInt64]
-// CHECK:STDOUT:   %import_ref.19: %Uint32ToUint64.type = import_ref Main//int_ops, inst+393, loaded [template = constants.%Uint32ToUint64]
-// CHECK:STDOUT:   %import_ref.20 = import_ref Main//int_ops, inst+412, unloaded
-// CHECK:STDOUT:   %import_ref.21 = import_ref Main//int_ops, inst+431, unloaded
+// CHECK:STDOUT:   %import_ref.1 = import_ref Main//int_ops, inst+30, unloaded
+// CHECK:STDOUT:   %import_ref.2 = import_ref Main//int_ops, inst+57, unloaded
+// CHECK:STDOUT:   %import_ref.3: %AddU32.type = import_ref Main//int_ops, inst+93, loaded [template = constants.%AddU32]
+// CHECK:STDOUT:   %import_ref.4 = import_ref Main//int_ops, inst+100, unloaded
+// CHECK:STDOUT:   %import_ref.5 = import_ref Main//int_ops, inst+119, unloaded
+// CHECK:STDOUT:   %import_ref.6: %Int32ToUint32.type = import_ref Main//int_ops, inst+138, loaded [template = constants.%Int32ToUint32]
+// CHECK:STDOUT:   %import_ref.7 = import_ref Main//int_ops, inst+157, unloaded
+// CHECK:STDOUT:   %import_ref.8 = import_ref Main//int_ops, inst+176, unloaded
+// CHECK:STDOUT:   %import_ref.9 = import_ref Main//int_ops, inst+195, unloaded
+// CHECK:STDOUT:   %import_ref.10 = import_ref Main//int_ops, inst+216, unloaded
+// CHECK:STDOUT:   %import_ref.11 = import_ref Main//int_ops, inst+236, unloaded
+// CHECK:STDOUT:   %import_ref.12 = import_ref Main//int_ops, inst+255, unloaded
+// CHECK:STDOUT:   %import_ref.13 = import_ref Main//int_ops, inst+274, unloaded
+// CHECK:STDOUT:   %import_ref.14 = import_ref Main//int_ops, inst+293, unloaded
+// CHECK:STDOUT:   %import_ref.15 = import_ref Main//int_ops, inst+312, unloaded
+// CHECK:STDOUT:   %import_ref.16 = import_ref Main//int_ops, inst+333, unloaded
+// CHECK:STDOUT:   %import_ref.17 = import_ref Main//int_ops, inst+353, unloaded
+// CHECK:STDOUT:   %import_ref.18: %Uint32ToInt64.type = import_ref Main//int_ops, inst+372, loaded [template = constants.%Uint32ToInt64]
+// CHECK:STDOUT:   %import_ref.19: %Uint32ToUint64.type = import_ref Main//int_ops, inst+391, loaded [template = constants.%Uint32ToUint64]
+// CHECK:STDOUT:   %import_ref.20 = import_ref Main//int_ops, inst+410, unloaded
+// CHECK:STDOUT:   %import_ref.21 = import_ref Main//int_ops, inst+429, unloaded
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .UInt = %import_ref.22
 // CHECK:STDOUT:     .ImplicitAs = %import_ref.23
@@ -1830,27 +1830,27 @@ let convert_not_constant_widen: i64 = Int32ToInt64(not_constant);
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
-// CHECK:STDOUT:   %import_ref.1: %NegateI32.type = import_ref Main//int_ops, inst+31, loaded [template = constants.%NegateI32]
-// CHECK:STDOUT:   %import_ref.2: %SubI32.type = import_ref Main//int_ops, inst+58, loaded [template = constants.%SubI32]
-// CHECK:STDOUT:   %import_ref.3 = import_ref Main//int_ops, inst+95, unloaded
-// CHECK:STDOUT:   %import_ref.4 = import_ref Main//int_ops, inst+102, unloaded
-// CHECK:STDOUT:   %import_ref.5 = import_ref Main//int_ops, inst+121, unloaded
-// CHECK:STDOUT:   %import_ref.6 = import_ref Main//int_ops, inst+140, unloaded
-// CHECK:STDOUT:   %import_ref.7 = import_ref Main//int_ops, inst+159, unloaded
-// CHECK:STDOUT:   %import_ref.8 = import_ref Main//int_ops, inst+178, unloaded
-// CHECK:STDOUT:   %import_ref.9 = import_ref Main//int_ops, inst+197, unloaded
-// CHECK:STDOUT:   %import_ref.10 = import_ref Main//int_ops, inst+218, unloaded
-// CHECK:STDOUT:   %import_ref.11 = import_ref Main//int_ops, inst+238, unloaded
-// CHECK:STDOUT:   %import_ref.12 = import_ref Main//int_ops, inst+257, unloaded
-// CHECK:STDOUT:   %import_ref.13 = import_ref Main//int_ops, inst+276, unloaded
-// CHECK:STDOUT:   %import_ref.14 = import_ref Main//int_ops, inst+295, unloaded
-// CHECK:STDOUT:   %import_ref.15 = import_ref Main//int_ops, inst+314, unloaded
-// CHECK:STDOUT:   %import_ref.16: %Int32ToInt64.type = import_ref Main//int_ops, inst+335, loaded [template = constants.%Int32ToInt64]
-// CHECK:STDOUT:   %import_ref.17: %Int32ToUint64.type = import_ref Main//int_ops, inst+355, loaded [template = constants.%Int32ToUint64]
-// CHECK:STDOUT:   %import_ref.18 = import_ref Main//int_ops, inst+374, unloaded
-// CHECK:STDOUT:   %import_ref.19 = import_ref Main//int_ops, inst+393, unloaded
-// CHECK:STDOUT:   %import_ref.20 = import_ref Main//int_ops, inst+412, unloaded
-// CHECK:STDOUT:   %import_ref.21 = import_ref Main//int_ops, inst+431, unloaded
+// CHECK:STDOUT:   %import_ref.1: %NegateI32.type = import_ref Main//int_ops, inst+30, loaded [template = constants.%NegateI32]
+// CHECK:STDOUT:   %import_ref.2: %SubI32.type = import_ref Main//int_ops, inst+57, loaded [template = constants.%SubI32]
+// CHECK:STDOUT:   %import_ref.3 = import_ref Main//int_ops, inst+93, unloaded
+// CHECK:STDOUT:   %import_ref.4 = import_ref Main//int_ops, inst+100, unloaded
+// CHECK:STDOUT:   %import_ref.5 = import_ref Main//int_ops, inst+119, unloaded
+// CHECK:STDOUT:   %import_ref.6 = import_ref Main//int_ops, inst+138, unloaded
+// CHECK:STDOUT:   %import_ref.7 = import_ref Main//int_ops, inst+157, unloaded
+// CHECK:STDOUT:   %import_ref.8 = import_ref Main//int_ops, inst+176, unloaded
+// CHECK:STDOUT:   %import_ref.9 = import_ref Main//int_ops, inst+195, unloaded
+// CHECK:STDOUT:   %import_ref.10 = import_ref Main//int_ops, inst+216, unloaded
+// CHECK:STDOUT:   %import_ref.11 = import_ref Main//int_ops, inst+236, unloaded
+// CHECK:STDOUT:   %import_ref.12 = import_ref Main//int_ops, inst+255, unloaded
+// CHECK:STDOUT:   %import_ref.13 = import_ref Main//int_ops, inst+274, unloaded
+// CHECK:STDOUT:   %import_ref.14 = import_ref Main//int_ops, inst+293, unloaded
+// CHECK:STDOUT:   %import_ref.15 = import_ref Main//int_ops, inst+312, unloaded
+// CHECK:STDOUT:   %import_ref.16: %Int32ToInt64.type = import_ref Main//int_ops, inst+333, loaded [template = constants.%Int32ToInt64]
+// CHECK:STDOUT:   %import_ref.17: %Int32ToUint64.type = import_ref Main//int_ops, inst+353, loaded [template = constants.%Int32ToUint64]
+// CHECK:STDOUT:   %import_ref.18 = import_ref Main//int_ops, inst+372, unloaded
+// CHECK:STDOUT:   %import_ref.19 = import_ref Main//int_ops, inst+391, unloaded
+// CHECK:STDOUT:   %import_ref.20 = import_ref Main//int_ops, inst+410, unloaded
+// CHECK:STDOUT:   %import_ref.21 = import_ref Main//int_ops, inst+429, unloaded
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .UInt = %import_ref.22
 // CHECK:STDOUT:     .ImplicitAs = %import_ref.23
@@ -2018,27 +2018,27 @@ let convert_not_constant_widen: i64 = Int32ToInt64(not_constant);
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
-// CHECK:STDOUT:   %import_ref.1 = import_ref Main//int_ops, inst+31, unloaded
-// CHECK:STDOUT:   %import_ref.2 = import_ref Main//int_ops, inst+58, unloaded
-// CHECK:STDOUT:   %import_ref.3: %AddU32.type = import_ref Main//int_ops, inst+95, loaded [template = constants.%AddU32]
-// CHECK:STDOUT:   %import_ref.4 = import_ref Main//int_ops, inst+102, unloaded
-// CHECK:STDOUT:   %import_ref.5 = import_ref Main//int_ops, inst+121, unloaded
-// CHECK:STDOUT:   %import_ref.6: %Int32ToUint32.type = import_ref Main//int_ops, inst+140, loaded [template = constants.%Int32ToUint32]
-// CHECK:STDOUT:   %import_ref.7: %Uint32ToInt32.type = import_ref Main//int_ops, inst+159, loaded [template = constants.%Uint32ToInt32]
-// CHECK:STDOUT:   %import_ref.8 = import_ref Main//int_ops, inst+178, unloaded
-// CHECK:STDOUT:   %import_ref.9 = import_ref Main//int_ops, inst+197, unloaded
-// CHECK:STDOUT:   %import_ref.10 = import_ref Main//int_ops, inst+218, unloaded
-// CHECK:STDOUT:   %import_ref.11 = import_ref Main//int_ops, inst+238, unloaded
-// CHECK:STDOUT:   %import_ref.12 = import_ref Main//int_ops, inst+257, unloaded
-// CHECK:STDOUT:   %import_ref.13 = import_ref Main//int_ops, inst+276, unloaded
-// CHECK:STDOUT:   %import_ref.14 = import_ref Main//int_ops, inst+295, unloaded
-// CHECK:STDOUT:   %import_ref.15 = import_ref Main//int_ops, inst+314, unloaded
-// CHECK:STDOUT:   %import_ref.16 = import_ref Main//int_ops, inst+335, unloaded
-// CHECK:STDOUT:   %import_ref.17 = import_ref Main//int_ops, inst+355, unloaded
-// CHECK:STDOUT:   %import_ref.18 = import_ref Main//int_ops, inst+374, unloaded
-// CHECK:STDOUT:   %import_ref.19 = import_ref Main//int_ops, inst+393, unloaded
-// CHECK:STDOUT:   %import_ref.20 = import_ref Main//int_ops, inst+412, unloaded
-// CHECK:STDOUT:   %import_ref.21 = import_ref Main//int_ops, inst+431, unloaded
+// CHECK:STDOUT:   %import_ref.1 = import_ref Main//int_ops, inst+30, unloaded
+// CHECK:STDOUT:   %import_ref.2 = import_ref Main//int_ops, inst+57, unloaded
+// CHECK:STDOUT:   %import_ref.3: %AddU32.type = import_ref Main//int_ops, inst+93, loaded [template = constants.%AddU32]
+// CHECK:STDOUT:   %import_ref.4 = import_ref Main//int_ops, inst+100, unloaded
+// CHECK:STDOUT:   %import_ref.5 = import_ref Main//int_ops, inst+119, unloaded
+// CHECK:STDOUT:   %import_ref.6: %Int32ToUint32.type = import_ref Main//int_ops, inst+138, loaded [template = constants.%Int32ToUint32]
+// CHECK:STDOUT:   %import_ref.7: %Uint32ToInt32.type = import_ref Main//int_ops, inst+157, loaded [template = constants.%Uint32ToInt32]
+// CHECK:STDOUT:   %import_ref.8 = import_ref Main//int_ops, inst+176, unloaded
+// CHECK:STDOUT:   %import_ref.9 = import_ref Main//int_ops, inst+195, unloaded
+// CHECK:STDOUT:   %import_ref.10 = import_ref Main//int_ops, inst+216, unloaded
+// CHECK:STDOUT:   %import_ref.11 = import_ref Main//int_ops, inst+236, unloaded
+// CHECK:STDOUT:   %import_ref.12 = import_ref Main//int_ops, inst+255, unloaded
+// CHECK:STDOUT:   %import_ref.13 = import_ref Main//int_ops, inst+274, unloaded
+// CHECK:STDOUT:   %import_ref.14 = import_ref Main//int_ops, inst+293, unloaded
+// CHECK:STDOUT:   %import_ref.15 = import_ref Main//int_ops, inst+312, unloaded
+// CHECK:STDOUT:   %import_ref.16 = import_ref Main//int_ops, inst+333, unloaded
+// CHECK:STDOUT:   %import_ref.17 = import_ref Main//int_ops, inst+353, unloaded
+// CHECK:STDOUT:   %import_ref.18 = import_ref Main//int_ops, inst+372, unloaded
+// CHECK:STDOUT:   %import_ref.19 = import_ref Main//int_ops, inst+391, unloaded
+// CHECK:STDOUT:   %import_ref.20 = import_ref Main//int_ops, inst+410, unloaded
+// CHECK:STDOUT:   %import_ref.21 = import_ref Main//int_ops, inst+429, unloaded
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .Int = %import_ref.22
 // CHECK:STDOUT:     .ImplicitAs = %import_ref.23
@@ -2146,27 +2146,27 @@ let convert_not_constant_widen: i64 = Int32ToInt64(not_constant);
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
-// CHECK:STDOUT:   %import_ref.1 = import_ref Main//int_ops, inst+31, unloaded
-// CHECK:STDOUT:   %import_ref.2 = import_ref Main//int_ops, inst+58, unloaded
-// CHECK:STDOUT:   %import_ref.3 = import_ref Main//int_ops, inst+95, unloaded
-// CHECK:STDOUT:   %import_ref.4 = import_ref Main//int_ops, inst+102, unloaded
-// CHECK:STDOUT:   %import_ref.5 = import_ref Main//int_ops, inst+121, unloaded
-// CHECK:STDOUT:   %import_ref.6 = import_ref Main//int_ops, inst+140, unloaded
-// CHECK:STDOUT:   %import_ref.7 = import_ref Main//int_ops, inst+159, unloaded
-// CHECK:STDOUT:   %import_ref.8 = import_ref Main//int_ops, inst+178, unloaded
-// CHECK:STDOUT:   %import_ref.9 = import_ref Main//int_ops, inst+197, unloaded
-// CHECK:STDOUT:   %import_ref.10: %Int32ToInt16.type = import_ref Main//int_ops, inst+218, loaded [template = constants.%Int32ToInt16]
-// CHECK:STDOUT:   %import_ref.11 = import_ref Main//int_ops, inst+238, unloaded
-// CHECK:STDOUT:   %import_ref.12 = import_ref Main//int_ops, inst+257, unloaded
-// CHECK:STDOUT:   %import_ref.13 = import_ref Main//int_ops, inst+276, unloaded
-// CHECK:STDOUT:   %import_ref.14 = import_ref Main//int_ops, inst+295, unloaded
-// CHECK:STDOUT:   %import_ref.15 = import_ref Main//int_ops, inst+314, unloaded
-// CHECK:STDOUT:   %import_ref.16 = import_ref Main//int_ops, inst+335, unloaded
-// CHECK:STDOUT:   %import_ref.17 = import_ref Main//int_ops, inst+355, unloaded
-// CHECK:STDOUT:   %import_ref.18 = import_ref Main//int_ops, inst+374, unloaded
-// CHECK:STDOUT:   %import_ref.19 = import_ref Main//int_ops, inst+393, unloaded
-// CHECK:STDOUT:   %import_ref.20 = import_ref Main//int_ops, inst+412, unloaded
-// CHECK:STDOUT:   %import_ref.21 = import_ref Main//int_ops, inst+431, unloaded
+// CHECK:STDOUT:   %import_ref.1 = import_ref Main//int_ops, inst+30, unloaded
+// CHECK:STDOUT:   %import_ref.2 = import_ref Main//int_ops, inst+57, unloaded
+// CHECK:STDOUT:   %import_ref.3 = import_ref Main//int_ops, inst+93, unloaded
+// CHECK:STDOUT:   %import_ref.4 = import_ref Main//int_ops, inst+100, unloaded
+// CHECK:STDOUT:   %import_ref.5 = import_ref Main//int_ops, inst+119, unloaded
+// CHECK:STDOUT:   %import_ref.6 = import_ref Main//int_ops, inst+138, unloaded
+// CHECK:STDOUT:   %import_ref.7 = import_ref Main//int_ops, inst+157, unloaded
+// CHECK:STDOUT:   %import_ref.8 = import_ref Main//int_ops, inst+176, unloaded
+// CHECK:STDOUT:   %import_ref.9 = import_ref Main//int_ops, inst+195, unloaded
+// CHECK:STDOUT:   %import_ref.10: %Int32ToInt16.type = import_ref Main//int_ops, inst+216, loaded [template = constants.%Int32ToInt16]
+// CHECK:STDOUT:   %import_ref.11 = import_ref Main//int_ops, inst+236, unloaded
+// CHECK:STDOUT:   %import_ref.12 = import_ref Main//int_ops, inst+255, unloaded
+// CHECK:STDOUT:   %import_ref.13 = import_ref Main//int_ops, inst+274, unloaded
+// CHECK:STDOUT:   %import_ref.14 = import_ref Main//int_ops, inst+293, unloaded
+// CHECK:STDOUT:   %import_ref.15 = import_ref Main//int_ops, inst+312, unloaded
+// CHECK:STDOUT:   %import_ref.16 = import_ref Main//int_ops, inst+333, unloaded
+// CHECK:STDOUT:   %import_ref.17 = import_ref Main//int_ops, inst+353, unloaded
+// CHECK:STDOUT:   %import_ref.18 = import_ref Main//int_ops, inst+372, unloaded
+// CHECK:STDOUT:   %import_ref.19 = import_ref Main//int_ops, inst+391, unloaded
+// CHECK:STDOUT:   %import_ref.20 = import_ref Main//int_ops, inst+410, unloaded
+// CHECK:STDOUT:   %import_ref.21 = import_ref Main//int_ops, inst+429, unloaded
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .Int = %import_ref.22
 // CHECK:STDOUT:     .ImplicitAs = %import_ref.23
@@ -2251,27 +2251,27 @@ let convert_not_constant_widen: i64 = Int32ToInt64(not_constant);
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
-// CHECK:STDOUT:   %import_ref.1 = import_ref Main//int_ops, inst+31, unloaded
-// CHECK:STDOUT:   %import_ref.2 = import_ref Main//int_ops, inst+58, unloaded
-// CHECK:STDOUT:   %import_ref.3 = import_ref Main//int_ops, inst+95, unloaded
-// CHECK:STDOUT:   %import_ref.4 = import_ref Main//int_ops, inst+102, unloaded
-// CHECK:STDOUT:   %import_ref.5 = import_ref Main//int_ops, inst+121, unloaded
-// CHECK:STDOUT:   %import_ref.6 = import_ref Main//int_ops, inst+140, unloaded
-// CHECK:STDOUT:   %import_ref.7 = import_ref Main//int_ops, inst+159, unloaded
-// CHECK:STDOUT:   %import_ref.8 = import_ref Main//int_ops, inst+178, unloaded
-// CHECK:STDOUT:   %import_ref.9 = import_ref Main//int_ops, inst+197, unloaded
-// CHECK:STDOUT:   %import_ref.10 = import_ref Main//int_ops, inst+218, unloaded
-// CHECK:STDOUT:   %import_ref.11: %Int32ToUint16.type = import_ref Main//int_ops, inst+238, loaded [template = constants.%Int32ToUint16]
-// CHECK:STDOUT:   %import_ref.12 = import_ref Main//int_ops, inst+257, unloaded
-// CHECK:STDOUT:   %import_ref.13 = import_ref Main//int_ops, inst+276, unloaded
-// CHECK:STDOUT:   %import_ref.14 = import_ref Main//int_ops, inst+295, unloaded
-// CHECK:STDOUT:   %import_ref.15 = import_ref Main//int_ops, inst+314, unloaded
-// CHECK:STDOUT:   %import_ref.16 = import_ref Main//int_ops, inst+335, unloaded
-// CHECK:STDOUT:   %import_ref.17 = import_ref Main//int_ops, inst+355, unloaded
-// CHECK:STDOUT:   %import_ref.18 = import_ref Main//int_ops, inst+374, unloaded
-// CHECK:STDOUT:   %import_ref.19 = import_ref Main//int_ops, inst+393, unloaded
-// CHECK:STDOUT:   %import_ref.20 = import_ref Main//int_ops, inst+412, unloaded
-// CHECK:STDOUT:   %import_ref.21 = import_ref Main//int_ops, inst+431, unloaded
+// CHECK:STDOUT:   %import_ref.1 = import_ref Main//int_ops, inst+30, unloaded
+// CHECK:STDOUT:   %import_ref.2 = import_ref Main//int_ops, inst+57, unloaded
+// CHECK:STDOUT:   %import_ref.3 = import_ref Main//int_ops, inst+93, unloaded
+// CHECK:STDOUT:   %import_ref.4 = import_ref Main//int_ops, inst+100, unloaded
+// CHECK:STDOUT:   %import_ref.5 = import_ref Main//int_ops, inst+119, unloaded
+// CHECK:STDOUT:   %import_ref.6 = import_ref Main//int_ops, inst+138, unloaded
+// CHECK:STDOUT:   %import_ref.7 = import_ref Main//int_ops, inst+157, unloaded
+// CHECK:STDOUT:   %import_ref.8 = import_ref Main//int_ops, inst+176, unloaded
+// CHECK:STDOUT:   %import_ref.9 = import_ref Main//int_ops, inst+195, unloaded
+// CHECK:STDOUT:   %import_ref.10 = import_ref Main//int_ops, inst+216, unloaded
+// CHECK:STDOUT:   %import_ref.11: %Int32ToUint16.type = import_ref Main//int_ops, inst+236, loaded [template = constants.%Int32ToUint16]
+// CHECK:STDOUT:   %import_ref.12 = import_ref Main//int_ops, inst+255, unloaded
+// CHECK:STDOUT:   %import_ref.13 = import_ref Main//int_ops, inst+274, unloaded
+// CHECK:STDOUT:   %import_ref.14 = import_ref Main//int_ops, inst+293, unloaded
+// CHECK:STDOUT:   %import_ref.15 = import_ref Main//int_ops, inst+312, unloaded
+// CHECK:STDOUT:   %import_ref.16 = import_ref Main//int_ops, inst+333, unloaded
+// CHECK:STDOUT:   %import_ref.17 = import_ref Main//int_ops, inst+353, unloaded
+// CHECK:STDOUT:   %import_ref.18 = import_ref Main//int_ops, inst+372, unloaded
+// CHECK:STDOUT:   %import_ref.19 = import_ref Main//int_ops, inst+391, unloaded
+// CHECK:STDOUT:   %import_ref.20 = import_ref Main//int_ops, inst+410, unloaded
+// CHECK:STDOUT:   %import_ref.21 = import_ref Main//int_ops, inst+429, unloaded
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .UInt = %import_ref.22
 // CHECK:STDOUT:     .ImplicitAs = %import_ref.23
@@ -2360,27 +2360,27 @@ let convert_not_constant_widen: i64 = Int32ToInt64(not_constant);
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
-// CHECK:STDOUT:   %import_ref.1 = import_ref Main//int_ops, inst+31, unloaded
-// CHECK:STDOUT:   %import_ref.2 = import_ref Main//int_ops, inst+58, unloaded
-// CHECK:STDOUT:   %import_ref.3 = import_ref Main//int_ops, inst+95, unloaded
-// CHECK:STDOUT:   %import_ref.4 = import_ref Main//int_ops, inst+102, unloaded
-// CHECK:STDOUT:   %import_ref.5 = import_ref Main//int_ops, inst+121, unloaded
-// CHECK:STDOUT:   %import_ref.6: %Int32ToUint32.type = import_ref Main//int_ops, inst+140, loaded [template = constants.%Int32ToUint32]
-// CHECK:STDOUT:   %import_ref.7 = import_ref Main//int_ops, inst+159, unloaded
-// CHECK:STDOUT:   %import_ref.8 = import_ref Main//int_ops, inst+178, unloaded
-// CHECK:STDOUT:   %import_ref.9 = import_ref Main//int_ops, inst+197, unloaded
-// CHECK:STDOUT:   %import_ref.10 = import_ref Main//int_ops, inst+218, unloaded
-// CHECK:STDOUT:   %import_ref.11 = import_ref Main//int_ops, inst+238, unloaded
-// CHECK:STDOUT:   %import_ref.12: %Uint32ToInt16.type = import_ref Main//int_ops, inst+257, loaded [template = constants.%Uint32ToInt16]
-// CHECK:STDOUT:   %import_ref.13 = import_ref Main//int_ops, inst+276, unloaded
-// CHECK:STDOUT:   %import_ref.14 = import_ref Main//int_ops, inst+295, unloaded
-// CHECK:STDOUT:   %import_ref.15 = import_ref Main//int_ops, inst+314, unloaded
-// CHECK:STDOUT:   %import_ref.16 = import_ref Main//int_ops, inst+335, unloaded
-// CHECK:STDOUT:   %import_ref.17 = import_ref Main//int_ops, inst+355, unloaded
-// CHECK:STDOUT:   %import_ref.18 = import_ref Main//int_ops, inst+374, unloaded
-// CHECK:STDOUT:   %import_ref.19 = import_ref Main//int_ops, inst+393, unloaded
-// CHECK:STDOUT:   %import_ref.20 = import_ref Main//int_ops, inst+412, unloaded
-// CHECK:STDOUT:   %import_ref.21 = import_ref Main//int_ops, inst+431, unloaded
+// CHECK:STDOUT:   %import_ref.1 = import_ref Main//int_ops, inst+30, unloaded
+// CHECK:STDOUT:   %import_ref.2 = import_ref Main//int_ops, inst+57, unloaded
+// CHECK:STDOUT:   %import_ref.3 = import_ref Main//int_ops, inst+93, unloaded
+// CHECK:STDOUT:   %import_ref.4 = import_ref Main//int_ops, inst+100, unloaded
+// CHECK:STDOUT:   %import_ref.5 = import_ref Main//int_ops, inst+119, unloaded
+// CHECK:STDOUT:   %import_ref.6: %Int32ToUint32.type = import_ref Main//int_ops, inst+138, loaded [template = constants.%Int32ToUint32]
+// CHECK:STDOUT:   %import_ref.7 = import_ref Main//int_ops, inst+157, unloaded
+// CHECK:STDOUT:   %import_ref.8 = import_ref Main//int_ops, inst+176, unloaded
+// CHECK:STDOUT:   %import_ref.9 = import_ref Main//int_ops, inst+195, unloaded
+// CHECK:STDOUT:   %import_ref.10 = import_ref Main//int_ops, inst+216, unloaded
+// CHECK:STDOUT:   %import_ref.11 = import_ref Main//int_ops, inst+236, unloaded
+// CHECK:STDOUT:   %import_ref.12: %Uint32ToInt16.type = import_ref Main//int_ops, inst+255, loaded [template = constants.%Uint32ToInt16]
+// CHECK:STDOUT:   %import_ref.13 = import_ref Main//int_ops, inst+274, unloaded
+// CHECK:STDOUT:   %import_ref.14 = import_ref Main//int_ops, inst+293, unloaded
+// CHECK:STDOUT:   %import_ref.15 = import_ref Main//int_ops, inst+312, unloaded
+// CHECK:STDOUT:   %import_ref.16 = import_ref Main//int_ops, inst+333, unloaded
+// CHECK:STDOUT:   %import_ref.17 = import_ref Main//int_ops, inst+353, unloaded
+// CHECK:STDOUT:   %import_ref.18 = import_ref Main//int_ops, inst+372, unloaded
+// CHECK:STDOUT:   %import_ref.19 = import_ref Main//int_ops, inst+391, unloaded
+// CHECK:STDOUT:   %import_ref.20 = import_ref Main//int_ops, inst+410, unloaded
+// CHECK:STDOUT:   %import_ref.21 = import_ref Main//int_ops, inst+429, unloaded
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .Int = %import_ref.22
 // CHECK:STDOUT:     .ImplicitAs = %import_ref.23
@@ -2475,27 +2475,27 @@ let convert_not_constant_widen: i64 = Int32ToInt64(not_constant);
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
-// CHECK:STDOUT:   %import_ref.1 = import_ref Main//int_ops, inst+31, unloaded
-// CHECK:STDOUT:   %import_ref.2 = import_ref Main//int_ops, inst+58, unloaded
-// CHECK:STDOUT:   %import_ref.3 = import_ref Main//int_ops, inst+95, unloaded
-// CHECK:STDOUT:   %import_ref.4 = import_ref Main//int_ops, inst+102, unloaded
-// CHECK:STDOUT:   %import_ref.5 = import_ref Main//int_ops, inst+121, unloaded
-// CHECK:STDOUT:   %import_ref.6: %Int32ToUint32.type = import_ref Main//int_ops, inst+140, loaded [template = constants.%Int32ToUint32]
-// CHECK:STDOUT:   %import_ref.7 = import_ref Main//int_ops, inst+159, unloaded
-// CHECK:STDOUT:   %import_ref.8 = import_ref Main//int_ops, inst+178, unloaded
-// CHECK:STDOUT:   %import_ref.9 = import_ref Main//int_ops, inst+197, unloaded
-// CHECK:STDOUT:   %import_ref.10 = import_ref Main//int_ops, inst+218, unloaded
-// CHECK:STDOUT:   %import_ref.11 = import_ref Main//int_ops, inst+238, unloaded
-// CHECK:STDOUT:   %import_ref.12 = import_ref Main//int_ops, inst+257, unloaded
-// CHECK:STDOUT:   %import_ref.13: %Uint32ToUint16.type = import_ref Main//int_ops, inst+276, loaded [template = constants.%Uint32ToUint16]
-// CHECK:STDOUT:   %import_ref.14 = import_ref Main//int_ops, inst+295, unloaded
-// CHECK:STDOUT:   %import_ref.15 = import_ref Main//int_ops, inst+314, unloaded
-// CHECK:STDOUT:   %import_ref.16 = import_ref Main//int_ops, inst+335, unloaded
-// CHECK:STDOUT:   %import_ref.17 = import_ref Main//int_ops, inst+355, unloaded
-// CHECK:STDOUT:   %import_ref.18 = import_ref Main//int_ops, inst+374, unloaded
-// CHECK:STDOUT:   %import_ref.19 = import_ref Main//int_ops, inst+393, unloaded
-// CHECK:STDOUT:   %import_ref.20 = import_ref Main//int_ops, inst+412, unloaded
-// CHECK:STDOUT:   %import_ref.21 = import_ref Main//int_ops, inst+431, unloaded
+// CHECK:STDOUT:   %import_ref.1 = import_ref Main//int_ops, inst+30, unloaded
+// CHECK:STDOUT:   %import_ref.2 = import_ref Main//int_ops, inst+57, unloaded
+// CHECK:STDOUT:   %import_ref.3 = import_ref Main//int_ops, inst+93, unloaded
+// CHECK:STDOUT:   %import_ref.4 = import_ref Main//int_ops, inst+100, unloaded
+// CHECK:STDOUT:   %import_ref.5 = import_ref Main//int_ops, inst+119, unloaded
+// CHECK:STDOUT:   %import_ref.6: %Int32ToUint32.type = import_ref Main//int_ops, inst+138, loaded [template = constants.%Int32ToUint32]
+// CHECK:STDOUT:   %import_ref.7 = import_ref Main//int_ops, inst+157, unloaded
+// CHECK:STDOUT:   %import_ref.8 = import_ref Main//int_ops, inst+176, unloaded
+// CHECK:STDOUT:   %import_ref.9 = import_ref Main//int_ops, inst+195, unloaded
+// CHECK:STDOUT:   %import_ref.10 = import_ref Main//int_ops, inst+216, unloaded
+// CHECK:STDOUT:   %import_ref.11 = import_ref Main//int_ops, inst+236, unloaded
+// CHECK:STDOUT:   %import_ref.12 = import_ref Main//int_ops, inst+255, unloaded
+// CHECK:STDOUT:   %import_ref.13: %Uint32ToUint16.type = import_ref Main//int_ops, inst+274, loaded [template = constants.%Uint32ToUint16]
+// CHECK:STDOUT:   %import_ref.14 = import_ref Main//int_ops, inst+293, unloaded
+// CHECK:STDOUT:   %import_ref.15 = import_ref Main//int_ops, inst+312, unloaded
+// CHECK:STDOUT:   %import_ref.16 = import_ref Main//int_ops, inst+333, unloaded
+// CHECK:STDOUT:   %import_ref.17 = import_ref Main//int_ops, inst+353, unloaded
+// CHECK:STDOUT:   %import_ref.18 = import_ref Main//int_ops, inst+372, unloaded
+// CHECK:STDOUT:   %import_ref.19 = import_ref Main//int_ops, inst+391, unloaded
+// CHECK:STDOUT:   %import_ref.20 = import_ref Main//int_ops, inst+410, unloaded
+// CHECK:STDOUT:   %import_ref.21 = import_ref Main//int_ops, inst+429, unloaded
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .UInt = %import_ref.22
 // CHECK:STDOUT:     .ImplicitAs = %import_ref.23
@@ -2593,27 +2593,27 @@ let convert_not_constant_widen: i64 = Int32ToInt64(not_constant);
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
-// CHECK:STDOUT:   %import_ref.1 = import_ref Main//int_ops, inst+31, unloaded
-// CHECK:STDOUT:   %import_ref.2: %SubI32.type = import_ref Main//int_ops, inst+58, loaded [template = constants.%SubI32]
-// CHECK:STDOUT:   %import_ref.3 = import_ref Main//int_ops, inst+95, unloaded
-// CHECK:STDOUT:   %import_ref.4 = import_ref Main//int_ops, inst+102, unloaded
-// CHECK:STDOUT:   %import_ref.5 = import_ref Main//int_ops, inst+121, unloaded
-// CHECK:STDOUT:   %import_ref.6 = import_ref Main//int_ops, inst+140, unloaded
-// CHECK:STDOUT:   %import_ref.7 = import_ref Main//int_ops, inst+159, unloaded
-// CHECK:STDOUT:   %import_ref.8 = import_ref Main//int_ops, inst+178, unloaded
-// CHECK:STDOUT:   %import_ref.9 = import_ref Main//int_ops, inst+197, unloaded
-// CHECK:STDOUT:   %import_ref.10 = import_ref Main//int_ops, inst+218, unloaded
-// CHECK:STDOUT:   %import_ref.11: %Int32ToUint16.type = import_ref Main//int_ops, inst+238, loaded [template = constants.%Int32ToUint16]
-// CHECK:STDOUT:   %import_ref.12 = import_ref Main//int_ops, inst+257, unloaded
-// CHECK:STDOUT:   %import_ref.13 = import_ref Main//int_ops, inst+276, unloaded
-// CHECK:STDOUT:   %import_ref.14 = import_ref Main//int_ops, inst+295, unloaded
-// CHECK:STDOUT:   %import_ref.15 = import_ref Main//int_ops, inst+314, unloaded
-// CHECK:STDOUT:   %import_ref.16 = import_ref Main//int_ops, inst+335, unloaded
-// CHECK:STDOUT:   %import_ref.17 = import_ref Main//int_ops, inst+355, unloaded
-// CHECK:STDOUT:   %import_ref.18 = import_ref Main//int_ops, inst+374, unloaded
-// CHECK:STDOUT:   %import_ref.19 = import_ref Main//int_ops, inst+393, unloaded
-// CHECK:STDOUT:   %import_ref.20 = import_ref Main//int_ops, inst+412, unloaded
-// CHECK:STDOUT:   %import_ref.21 = import_ref Main//int_ops, inst+431, unloaded
+// CHECK:STDOUT:   %import_ref.1 = import_ref Main//int_ops, inst+30, unloaded
+// CHECK:STDOUT:   %import_ref.2: %SubI32.type = import_ref Main//int_ops, inst+57, loaded [template = constants.%SubI32]
+// CHECK:STDOUT:   %import_ref.3 = import_ref Main//int_ops, inst+93, unloaded
+// CHECK:STDOUT:   %import_ref.4 = import_ref Main//int_ops, inst+100, unloaded
+// CHECK:STDOUT:   %import_ref.5 = import_ref Main//int_ops, inst+119, unloaded
+// CHECK:STDOUT:   %import_ref.6 = import_ref Main//int_ops, inst+138, unloaded
+// CHECK:STDOUT:   %import_ref.7 = import_ref Main//int_ops, inst+157, unloaded
+// CHECK:STDOUT:   %import_ref.8 = import_ref Main//int_ops, inst+176, unloaded
+// CHECK:STDOUT:   %import_ref.9 = import_ref Main//int_ops, inst+195, unloaded
+// CHECK:STDOUT:   %import_ref.10 = import_ref Main//int_ops, inst+216, unloaded
+// CHECK:STDOUT:   %import_ref.11: %Int32ToUint16.type = import_ref Main//int_ops, inst+236, loaded [template = constants.%Int32ToUint16]
+// CHECK:STDOUT:   %import_ref.12 = import_ref Main//int_ops, inst+255, unloaded
+// CHECK:STDOUT:   %import_ref.13 = import_ref Main//int_ops, inst+274, unloaded
+// CHECK:STDOUT:   %import_ref.14 = import_ref Main//int_ops, inst+293, unloaded
+// CHECK:STDOUT:   %import_ref.15 = import_ref Main//int_ops, inst+312, unloaded
+// CHECK:STDOUT:   %import_ref.16 = import_ref Main//int_ops, inst+333, unloaded
+// CHECK:STDOUT:   %import_ref.17 = import_ref Main//int_ops, inst+353, unloaded
+// CHECK:STDOUT:   %import_ref.18 = import_ref Main//int_ops, inst+372, unloaded
+// CHECK:STDOUT:   %import_ref.19 = import_ref Main//int_ops, inst+391, unloaded
+// CHECK:STDOUT:   %import_ref.20 = import_ref Main//int_ops, inst+410, unloaded
+// CHECK:STDOUT:   %import_ref.21 = import_ref Main//int_ops, inst+429, unloaded
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .UInt = %import_ref.22
 // CHECK:STDOUT:     .ImplicitAs = %import_ref.23
@@ -2717,27 +2717,27 @@ let convert_not_constant_widen: i64 = Int32ToInt64(not_constant);
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
-// CHECK:STDOUT:   %import_ref.1 = import_ref Main//int_ops, inst+31, unloaded
-// CHECK:STDOUT:   %import_ref.2: %SubI32.type = import_ref Main//int_ops, inst+58, loaded [template = constants.%SubI32]
-// CHECK:STDOUT:   %import_ref.3 = import_ref Main//int_ops, inst+95, unloaded
-// CHECK:STDOUT:   %import_ref.4 = import_ref Main//int_ops, inst+102, unloaded
-// CHECK:STDOUT:   %import_ref.5 = import_ref Main//int_ops, inst+121, unloaded
-// CHECK:STDOUT:   %import_ref.6: %Int32ToUint32.type = import_ref Main//int_ops, inst+140, loaded [template = constants.%Int32ToUint32]
-// CHECK:STDOUT:   %import_ref.7 = import_ref Main//int_ops, inst+159, unloaded
-// CHECK:STDOUT:   %import_ref.8 = import_ref Main//int_ops, inst+178, unloaded
-// CHECK:STDOUT:   %import_ref.9 = import_ref Main//int_ops, inst+197, unloaded
-// CHECK:STDOUT:   %import_ref.10 = import_ref Main//int_ops, inst+218, unloaded
-// CHECK:STDOUT:   %import_ref.11 = import_ref Main//int_ops, inst+238, unloaded
-// CHECK:STDOUT:   %import_ref.12 = import_ref Main//int_ops, inst+257, unloaded
-// CHECK:STDOUT:   %import_ref.13 = import_ref Main//int_ops, inst+276, unloaded
-// CHECK:STDOUT:   %import_ref.14 = import_ref Main//int_ops, inst+295, unloaded
-// CHECK:STDOUT:   %import_ref.15 = import_ref Main//int_ops, inst+314, unloaded
-// CHECK:STDOUT:   %import_ref.16 = import_ref Main//int_ops, inst+335, unloaded
-// CHECK:STDOUT:   %import_ref.17 = import_ref Main//int_ops, inst+355, unloaded
-// CHECK:STDOUT:   %import_ref.18 = import_ref Main//int_ops, inst+374, unloaded
-// CHECK:STDOUT:   %import_ref.19 = import_ref Main//int_ops, inst+393, unloaded
-// CHECK:STDOUT:   %import_ref.20 = import_ref Main//int_ops, inst+412, unloaded
-// CHECK:STDOUT:   %import_ref.21 = import_ref Main//int_ops, inst+431, unloaded
+// CHECK:STDOUT:   %import_ref.1 = import_ref Main//int_ops, inst+30, unloaded
+// CHECK:STDOUT:   %import_ref.2: %SubI32.type = import_ref Main//int_ops, inst+57, loaded [template = constants.%SubI32]
+// CHECK:STDOUT:   %import_ref.3 = import_ref Main//int_ops, inst+93, unloaded
+// CHECK:STDOUT:   %import_ref.4 = import_ref Main//int_ops, inst+100, unloaded
+// CHECK:STDOUT:   %import_ref.5 = import_ref Main//int_ops, inst+119, unloaded
+// CHECK:STDOUT:   %import_ref.6: %Int32ToUint32.type = import_ref Main//int_ops, inst+138, loaded [template = constants.%Int32ToUint32]
+// CHECK:STDOUT:   %import_ref.7 = import_ref Main//int_ops, inst+157, unloaded
+// CHECK:STDOUT:   %import_ref.8 = import_ref Main//int_ops, inst+176, unloaded
+// CHECK:STDOUT:   %import_ref.9 = import_ref Main//int_ops, inst+195, unloaded
+// CHECK:STDOUT:   %import_ref.10 = import_ref Main//int_ops, inst+216, unloaded
+// CHECK:STDOUT:   %import_ref.11 = import_ref Main//int_ops, inst+236, unloaded
+// CHECK:STDOUT:   %import_ref.12 = import_ref Main//int_ops, inst+255, unloaded
+// CHECK:STDOUT:   %import_ref.13 = import_ref Main//int_ops, inst+274, unloaded
+// CHECK:STDOUT:   %import_ref.14 = import_ref Main//int_ops, inst+293, unloaded
+// CHECK:STDOUT:   %import_ref.15 = import_ref Main//int_ops, inst+312, unloaded
+// CHECK:STDOUT:   %import_ref.16 = import_ref Main//int_ops, inst+333, unloaded
+// CHECK:STDOUT:   %import_ref.17 = import_ref Main//int_ops, inst+353, unloaded
+// CHECK:STDOUT:   %import_ref.18 = import_ref Main//int_ops, inst+372, unloaded
+// CHECK:STDOUT:   %import_ref.19 = import_ref Main//int_ops, inst+391, unloaded
+// CHECK:STDOUT:   %import_ref.20 = import_ref Main//int_ops, inst+410, unloaded
+// CHECK:STDOUT:   %import_ref.21 = import_ref Main//int_ops, inst+429, unloaded
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .UInt = %import_ref.22
 // CHECK:STDOUT:     .ImplicitAs = %import_ref.23
@@ -2842,27 +2842,27 @@ let convert_not_constant_widen: i64 = Int32ToInt64(not_constant);
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
-// CHECK:STDOUT:   %import_ref.1 = import_ref Main//int_ops, inst+31, unloaded
-// CHECK:STDOUT:   %import_ref.2: %SubI32.type = import_ref Main//int_ops, inst+58, loaded [template = constants.%SubI32]
-// CHECK:STDOUT:   %import_ref.3 = import_ref Main//int_ops, inst+95, unloaded
-// CHECK:STDOUT:   %import_ref.4 = import_ref Main//int_ops, inst+102, unloaded
-// CHECK:STDOUT:   %import_ref.5 = import_ref Main//int_ops, inst+121, unloaded
-// CHECK:STDOUT:   %import_ref.6 = import_ref Main//int_ops, inst+140, unloaded
-// CHECK:STDOUT:   %import_ref.7 = import_ref Main//int_ops, inst+159, unloaded
-// CHECK:STDOUT:   %import_ref.8 = import_ref Main//int_ops, inst+178, unloaded
-// CHECK:STDOUT:   %import_ref.9 = import_ref Main//int_ops, inst+197, unloaded
-// CHECK:STDOUT:   %import_ref.10 = import_ref Main//int_ops, inst+218, unloaded
-// CHECK:STDOUT:   %import_ref.11 = import_ref Main//int_ops, inst+238, unloaded
-// CHECK:STDOUT:   %import_ref.12 = import_ref Main//int_ops, inst+257, unloaded
-// CHECK:STDOUT:   %import_ref.13 = import_ref Main//int_ops, inst+276, unloaded
-// CHECK:STDOUT:   %import_ref.14 = import_ref Main//int_ops, inst+295, unloaded
-// CHECK:STDOUT:   %import_ref.15 = import_ref Main//int_ops, inst+314, unloaded
-// CHECK:STDOUT:   %import_ref.16 = import_ref Main//int_ops, inst+335, unloaded
-// CHECK:STDOUT:   %import_ref.17: %Int32ToUint64.type = import_ref Main//int_ops, inst+355, loaded [template = constants.%Int32ToUint64]
-// CHECK:STDOUT:   %import_ref.18 = import_ref Main//int_ops, inst+374, unloaded
-// CHECK:STDOUT:   %import_ref.19 = import_ref Main//int_ops, inst+393, unloaded
-// CHECK:STDOUT:   %import_ref.20 = import_ref Main//int_ops, inst+412, unloaded
-// CHECK:STDOUT:   %import_ref.21 = import_ref Main//int_ops, inst+431, unloaded
+// CHECK:STDOUT:   %import_ref.1 = import_ref Main//int_ops, inst+30, unloaded
+// CHECK:STDOUT:   %import_ref.2: %SubI32.type = import_ref Main//int_ops, inst+57, loaded [template = constants.%SubI32]
+// CHECK:STDOUT:   %import_ref.3 = import_ref Main//int_ops, inst+93, unloaded
+// CHECK:STDOUT:   %import_ref.4 = import_ref Main//int_ops, inst+100, unloaded
+// CHECK:STDOUT:   %import_ref.5 = import_ref Main//int_ops, inst+119, unloaded
+// CHECK:STDOUT:   %import_ref.6 = import_ref Main//int_ops, inst+138, unloaded
+// CHECK:STDOUT:   %import_ref.7 = import_ref Main//int_ops, inst+157, unloaded
+// CHECK:STDOUT:   %import_ref.8 = import_ref Main//int_ops, inst+176, unloaded
+// CHECK:STDOUT:   %import_ref.9 = import_ref Main//int_ops, inst+195, unloaded
+// CHECK:STDOUT:   %import_ref.10 = import_ref Main//int_ops, inst+216, unloaded
+// CHECK:STDOUT:   %import_ref.11 = import_ref Main//int_ops, inst+236, unloaded
+// CHECK:STDOUT:   %import_ref.12 = import_ref Main//int_ops, inst+255, unloaded
+// CHECK:STDOUT:   %import_ref.13 = import_ref Main//int_ops, inst+274, unloaded
+// CHECK:STDOUT:   %import_ref.14 = import_ref Main//int_ops, inst+293, unloaded
+// CHECK:STDOUT:   %import_ref.15 = import_ref Main//int_ops, inst+312, unloaded
+// CHECK:STDOUT:   %import_ref.16 = import_ref Main//int_ops, inst+333, unloaded
+// CHECK:STDOUT:   %import_ref.17: %Int32ToUint64.type = import_ref Main//int_ops, inst+353, loaded [template = constants.%Int32ToUint64]
+// CHECK:STDOUT:   %import_ref.18 = import_ref Main//int_ops, inst+372, unloaded
+// CHECK:STDOUT:   %import_ref.19 = import_ref Main//int_ops, inst+391, unloaded
+// CHECK:STDOUT:   %import_ref.20 = import_ref Main//int_ops, inst+410, unloaded
+// CHECK:STDOUT:   %import_ref.21 = import_ref Main//int_ops, inst+429, unloaded
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .UInt = %import_ref.22
 // CHECK:STDOUT:     .ImplicitAs = %import_ref.23
@@ -2963,27 +2963,27 @@ let convert_not_constant_widen: i64 = Int32ToInt64(not_constant);
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
-// CHECK:STDOUT:   %import_ref.1: %NegateI32.type = import_ref Main//int_ops, inst+31, loaded [template = constants.%NegateI32]
-// CHECK:STDOUT:   %import_ref.2 = import_ref Main//int_ops, inst+58, unloaded
-// CHECK:STDOUT:   %import_ref.3 = import_ref Main//int_ops, inst+95, unloaded
-// CHECK:STDOUT:   %import_ref.4 = import_ref Main//int_ops, inst+102, unloaded
-// CHECK:STDOUT:   %import_ref.5 = import_ref Main//int_ops, inst+121, unloaded
-// CHECK:STDOUT:   %import_ref.6 = import_ref Main//int_ops, inst+140, unloaded
-// CHECK:STDOUT:   %import_ref.7 = import_ref Main//int_ops, inst+159, unloaded
-// CHECK:STDOUT:   %import_ref.8 = import_ref Main//int_ops, inst+178, unloaded
-// CHECK:STDOUT:   %import_ref.9 = import_ref Main//int_ops, inst+197, unloaded
-// CHECK:STDOUT:   %import_ref.10: %Int32ToInt16.type = import_ref Main//int_ops, inst+218, loaded [template = constants.%Int32ToInt16]
-// CHECK:STDOUT:   %import_ref.11 = import_ref Main//int_ops, inst+238, unloaded
-// CHECK:STDOUT:   %import_ref.12 = import_ref Main//int_ops, inst+257, unloaded
-// CHECK:STDOUT:   %import_ref.13 = import_ref Main//int_ops, inst+276, unloaded
-// CHECK:STDOUT:   %import_ref.14 = import_ref Main//int_ops, inst+295, unloaded
-// CHECK:STDOUT:   %import_ref.15 = import_ref Main//int_ops, inst+314, unloaded
-// CHECK:STDOUT:   %import_ref.16 = import_ref Main//int_ops, inst+335, unloaded
-// CHECK:STDOUT:   %import_ref.17 = import_ref Main//int_ops, inst+355, unloaded
-// CHECK:STDOUT:   %import_ref.18 = import_ref Main//int_ops, inst+374, unloaded
-// CHECK:STDOUT:   %import_ref.19 = import_ref Main//int_ops, inst+393, unloaded
-// CHECK:STDOUT:   %import_ref.20 = import_ref Main//int_ops, inst+412, unloaded
-// CHECK:STDOUT:   %import_ref.21 = import_ref Main//int_ops, inst+431, unloaded
+// CHECK:STDOUT:   %import_ref.1: %NegateI32.type = import_ref Main//int_ops, inst+30, loaded [template = constants.%NegateI32]
+// CHECK:STDOUT:   %import_ref.2 = import_ref Main//int_ops, inst+57, unloaded
+// CHECK:STDOUT:   %import_ref.3 = import_ref Main//int_ops, inst+93, unloaded
+// CHECK:STDOUT:   %import_ref.4 = import_ref Main//int_ops, inst+100, unloaded
+// CHECK:STDOUT:   %import_ref.5 = import_ref Main//int_ops, inst+119, unloaded
+// CHECK:STDOUT:   %import_ref.6 = import_ref Main//int_ops, inst+138, unloaded
+// CHECK:STDOUT:   %import_ref.7 = import_ref Main//int_ops, inst+157, unloaded
+// CHECK:STDOUT:   %import_ref.8 = import_ref Main//int_ops, inst+176, unloaded
+// CHECK:STDOUT:   %import_ref.9 = import_ref Main//int_ops, inst+195, unloaded
+// CHECK:STDOUT:   %import_ref.10: %Int32ToInt16.type = import_ref Main//int_ops, inst+216, loaded [template = constants.%Int32ToInt16]
+// CHECK:STDOUT:   %import_ref.11 = import_ref Main//int_ops, inst+236, unloaded
+// CHECK:STDOUT:   %import_ref.12 = import_ref Main//int_ops, inst+255, unloaded
+// CHECK:STDOUT:   %import_ref.13 = import_ref Main//int_ops, inst+274, unloaded
+// CHECK:STDOUT:   %import_ref.14 = import_ref Main//int_ops, inst+293, unloaded
+// CHECK:STDOUT:   %import_ref.15 = import_ref Main//int_ops, inst+312, unloaded
+// CHECK:STDOUT:   %import_ref.16 = import_ref Main//int_ops, inst+333, unloaded
+// CHECK:STDOUT:   %import_ref.17 = import_ref Main//int_ops, inst+353, unloaded
+// CHECK:STDOUT:   %import_ref.18 = import_ref Main//int_ops, inst+372, unloaded
+// CHECK:STDOUT:   %import_ref.19 = import_ref Main//int_ops, inst+391, unloaded
+// CHECK:STDOUT:   %import_ref.20 = import_ref Main//int_ops, inst+410, unloaded
+// CHECK:STDOUT:   %import_ref.21 = import_ref Main//int_ops, inst+429, unloaded
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .Int = %import_ref.22
 // CHECK:STDOUT:     .ImplicitAs = %import_ref.23
@@ -3079,27 +3079,27 @@ let convert_not_constant_widen: i64 = Int32ToInt64(not_constant);
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
-// CHECK:STDOUT:   %import_ref.1 = import_ref Main//int_ops, inst+31, unloaded
-// CHECK:STDOUT:   %import_ref.2 = import_ref Main//int_ops, inst+58, unloaded
-// CHECK:STDOUT:   %import_ref.3 = import_ref Main//int_ops, inst+95, unloaded
-// CHECK:STDOUT:   %import_ref.4 = import_ref Main//int_ops, inst+102, unloaded
-// CHECK:STDOUT:   %import_ref.5: %Int32ToInt32.type = import_ref Main//int_ops, inst+121, loaded [template = constants.%Int32ToInt32]
-// CHECK:STDOUT:   %import_ref.6 = import_ref Main//int_ops, inst+140, unloaded
-// CHECK:STDOUT:   %import_ref.7 = import_ref Main//int_ops, inst+159, unloaded
-// CHECK:STDOUT:   %import_ref.8 = import_ref Main//int_ops, inst+178, unloaded
-// CHECK:STDOUT:   %import_ref.9 = import_ref Main//int_ops, inst+197, unloaded
-// CHECK:STDOUT:   %import_ref.10: %Int32ToInt16.type = import_ref Main//int_ops, inst+218, loaded [template = constants.%Int32ToInt16]
-// CHECK:STDOUT:   %import_ref.11 = import_ref Main//int_ops, inst+238, unloaded
-// CHECK:STDOUT:   %import_ref.12 = import_ref Main//int_ops, inst+257, unloaded
-// CHECK:STDOUT:   %import_ref.13 = import_ref Main//int_ops, inst+276, unloaded
-// CHECK:STDOUT:   %import_ref.14 = import_ref Main//int_ops, inst+295, unloaded
-// CHECK:STDOUT:   %import_ref.15 = import_ref Main//int_ops, inst+314, unloaded
-// CHECK:STDOUT:   %import_ref.16: %Int32ToInt64.type = import_ref Main//int_ops, inst+335, loaded [template = constants.%Int32ToInt64]
-// CHECK:STDOUT:   %import_ref.17 = import_ref Main//int_ops, inst+355, unloaded
-// CHECK:STDOUT:   %import_ref.18 = import_ref Main//int_ops, inst+374, unloaded
-// CHECK:STDOUT:   %import_ref.19 = import_ref Main//int_ops, inst+393, unloaded
-// CHECK:STDOUT:   %import_ref.20 = import_ref Main//int_ops, inst+412, unloaded
-// CHECK:STDOUT:   %import_ref.21 = import_ref Main//int_ops, inst+431, unloaded
+// CHECK:STDOUT:   %import_ref.1 = import_ref Main//int_ops, inst+30, unloaded
+// CHECK:STDOUT:   %import_ref.2 = import_ref Main//int_ops, inst+57, unloaded
+// CHECK:STDOUT:   %import_ref.3 = import_ref Main//int_ops, inst+93, unloaded
+// CHECK:STDOUT:   %import_ref.4 = import_ref Main//int_ops, inst+100, unloaded
+// CHECK:STDOUT:   %import_ref.5: %Int32ToInt32.type = import_ref Main//int_ops, inst+119, loaded [template = constants.%Int32ToInt32]
+// CHECK:STDOUT:   %import_ref.6 = import_ref Main//int_ops, inst+138, unloaded
+// CHECK:STDOUT:   %import_ref.7 = import_ref Main//int_ops, inst+157, unloaded
+// CHECK:STDOUT:   %import_ref.8 = import_ref Main//int_ops, inst+176, unloaded
+// CHECK:STDOUT:   %import_ref.9 = import_ref Main//int_ops, inst+195, unloaded
+// CHECK:STDOUT:   %import_ref.10: %Int32ToInt16.type = import_ref Main//int_ops, inst+216, loaded [template = constants.%Int32ToInt16]
+// CHECK:STDOUT:   %import_ref.11 = import_ref Main//int_ops, inst+236, unloaded
+// CHECK:STDOUT:   %import_ref.12 = import_ref Main//int_ops, inst+255, unloaded
+// CHECK:STDOUT:   %import_ref.13 = import_ref Main//int_ops, inst+274, unloaded
+// CHECK:STDOUT:   %import_ref.14 = import_ref Main//int_ops, inst+293, unloaded
+// CHECK:STDOUT:   %import_ref.15 = import_ref Main//int_ops, inst+312, unloaded
+// CHECK:STDOUT:   %import_ref.16: %Int32ToInt64.type = import_ref Main//int_ops, inst+333, loaded [template = constants.%Int32ToInt64]
+// CHECK:STDOUT:   %import_ref.17 = import_ref Main//int_ops, inst+353, unloaded
+// CHECK:STDOUT:   %import_ref.18 = import_ref Main//int_ops, inst+372, unloaded
+// CHECK:STDOUT:   %import_ref.19 = import_ref Main//int_ops, inst+391, unloaded
+// CHECK:STDOUT:   %import_ref.20 = import_ref Main//int_ops, inst+410, unloaded
+// CHECK:STDOUT:   %import_ref.21 = import_ref Main//int_ops, inst+429, unloaded
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .Int = %import_ref.22
 // CHECK:STDOUT:     .ImplicitAs = %import_ref.23

+ 3 - 3
toolchain/check/testdata/builtins/int/make_type_signed.carbon

@@ -323,9 +323,9 @@ var m: Int(1000000000);
 // CHECK:STDOUT: imports {
 // CHECK:STDOUT:   %import_ref.1 = import_ref Main//types, inst+7, unloaded
 // CHECK:STDOUT:   %import_ref.2: %Int.type = import_ref Main//types, inst+23, loaded [template = constants.%Int]
-// CHECK:STDOUT:   %import_ref.3: %F.type = import_ref Main//use_types, inst+35, loaded [template = constants.%F]
-// CHECK:STDOUT:   %import_ref.4: %G.type = import_ref Main//use_types, inst+60, loaded [template = constants.%G]
-// CHECK:STDOUT:   %import_ref.5: %Symbolic.type = import_ref Main//use_types, inst+100, loaded [template = constants.%Symbolic]
+// CHECK:STDOUT:   %import_ref.3: %F.type = import_ref Main//use_types, inst+34, loaded [template = constants.%F]
+// CHECK:STDOUT:   %import_ref.4: %G.type = import_ref Main//use_types, inst+59, loaded [template = constants.%G]
+// CHECK:STDOUT:   %import_ref.5: %Symbolic.type = import_ref Main//use_types, inst+98, loaded [template = constants.%Symbolic]
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     import Core//prelude
 // CHECK:STDOUT:     import Core//prelude/...

+ 1 - 1
toolchain/check/testdata/builtins/print.carbon

@@ -52,7 +52,7 @@ fn Main() {
 // CHECK:STDOUT:     import Core//prelude
 // CHECK:STDOUT:     import Core//prelude/...
 // CHECK:STDOUT:   }
-// CHECK:STDOUT:   %import_ref.38: %Print.type.2 = import_ref Core//prelude, inst+55, loaded [template = constants.%Print.2]
+// CHECK:STDOUT:   %import_ref.38: %Print.type.2 = import_ref Core//prelude, inst+54, loaded [template = constants.%Print.2]
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: file {

+ 1 - 1
toolchain/check/testdata/class/access_modifers.carbon

@@ -258,7 +258,7 @@ class A {
 // CHECK:STDOUT:   return %.loc9_13.2
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Make() -> %return: %Circle {
+// CHECK:STDOUT: fn @Make() -> %return.param_patt: %Circle {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %int_5: Core.IntLiteral = int_value 5 [template = constants.%int_5.1]
 // CHECK:STDOUT:   %.loc13_24.1: %struct_type.radius.2 = struct_literal (%int_5)

+ 2 - 2
toolchain/check/testdata/class/base.carbon

@@ -168,7 +168,7 @@ class Derived {
 // CHECK:STDOUT:   complete_type_witness = %complete_type
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Make() -> %return: %Derived {
+// CHECK:STDOUT: fn @Make() -> %return.param_patt: %Derived {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %int_4: Core.IntLiteral = int_value 4 [template = constants.%int_4.1]
 // CHECK:STDOUT:   %.loc14_26.1: %struct_type.b.2 = struct_literal (%int_4)
@@ -196,7 +196,7 @@ class Derived {
 // CHECK:STDOUT:   return %.loc14_36 to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Access(%d.param_patt: %Derived) -> %return: %tuple.type.2 {
+// CHECK:STDOUT: fn @Access(%d.param_patt: %Derived) -> %return.param_patt: %tuple.type.2 {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %d.ref.loc18_11: %Derived = name_ref d, %d
 // CHECK:STDOUT:   %d.ref.loc18_12: %Derived.elem.2 = name_ref d, @Derived.%.loc10_8 [template = @Derived.%.loc10_8]

+ 2 - 2
toolchain/check/testdata/class/basic.carbon

@@ -87,7 +87,7 @@ fn Run() -> i32 {
 // CHECK:STDOUT:     %n.param.loc21: %i32 = value_param runtime_param0
 // CHECK:STDOUT:     %n.loc21: %i32 = bind_name n, %n.param.loc21
 // CHECK:STDOUT:     %return.param.loc21: ref %i32 = out_param runtime_param1
-// CHECK:STDOUT:     %return: ref %i32 = return_slot %return.param.loc21
+// CHECK:STDOUT:     %return.loc21: ref %i32 = return_slot %return.param.loc21
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Run.decl: %Run.type = fn_decl @Run [template = constants.%Run] {
 // CHECK:STDOUT:     %return.patt: %i32 = return_slot_pattern
@@ -143,7 +143,7 @@ fn Run() -> i32 {
 // CHECK:STDOUT:     %n.param.loc16: %i32 = value_param runtime_param0
 // CHECK:STDOUT:     %n.loc16: %i32 = bind_name n, %n.param.loc16
 // CHECK:STDOUT:     %return.param.loc16: ref %i32 = out_param runtime_param1
-// CHECK:STDOUT:     %.loc16_16: ref %i32 = return_slot %return.param.loc16
+// CHECK:STDOUT:     %return.loc16: ref %i32 = return_slot %return.param.loc16
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32]
 // CHECK:STDOUT:   %int.make_type_signed: init type = call constants.%Int(%int_32) [template = constants.%i32]

+ 2 - 2
toolchain/check/testdata/class/fail_abstract.carbon

@@ -516,7 +516,7 @@ fn CallReturnAbstract() {
 // CHECK:STDOUT:   complete_type_witness = %complete_type
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Make() -> %return: %Derived {
+// CHECK:STDOUT: fn @Make() -> %return.param_patt: %Derived {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1]
 // CHECK:STDOUT:   %.loc22_26: %struct_type.a = struct_literal (%int_1)
@@ -603,7 +603,7 @@ fn CallReturnAbstract() {
 // CHECK:STDOUT:   complete_type_witness = %complete_type
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Return(%a.param_patt: %Abstract) -> %return: %Abstract {
+// CHECK:STDOUT: fn @Return(%a.param_patt: %Abstract) -> %return.param_patt: %Abstract {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %a.ref: %Abstract = name_ref a, %a
 // CHECK:STDOUT:   return <error> to %return

+ 1 - 1
toolchain/check/testdata/class/fail_base_bad_type.carbon

@@ -731,7 +731,7 @@ fn AccessMemberWithInvalidBaseFinal_NoMember(p: DeriveFromFinal*) -> i32 {
 // CHECK:STDOUT: fn @ConvertToBadBaseIncomplete(%p.param_patt: %ptr.1) -> %ptr.2 {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %p.ref: %ptr.1 = name_ref p, %p
-// CHECK:STDOUT:   %.loc28_82: %ptr.2 = converted %p.ref, <error> [template = <error>]
+// CHECK:STDOUT:   %.loc28: %ptr.2 = converted %p.ref, <error> [template = <error>]
 // CHECK:STDOUT:   return <error>
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 1 - 1
toolchain/check/testdata/class/fail_convert_to_invalid.carbon

@@ -65,7 +65,7 @@ fn Make() -> C {
 // CHECK:STDOUT:   complete_type_witness = %complete_type
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Make() -> %return: %C {
+// CHECK:STDOUT: fn @Make() -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %int_123: Core.IntLiteral = int_value 123 [template = constants.%int_123]
 // CHECK:STDOUT:   %.loc19: %struct_type.a = struct_literal (%int_123)

+ 2 - 2
toolchain/check/testdata/class/fail_derived_to_base.carbon

@@ -176,14 +176,14 @@ fn ConvertIncomplete(p: Incomplete*) -> A2* { return p; }
 // CHECK:STDOUT: fn @ConvertUnrelated(%p.param_patt: %ptr.2) -> %ptr.3 {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %p.ref: %ptr.2 = name_ref p, %p
-// CHECK:STDOUT:   %.loc31_46: %ptr.3 = converted %p.ref, <error> [template = <error>]
+// CHECK:STDOUT:   %.loc31: %ptr.3 = converted %p.ref, <error> [template = <error>]
 // CHECK:STDOUT:   return <error>
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: fn @ConvertIncomplete(%p.param_patt: %ptr.6) -> %ptr.7 {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %p.ref: %ptr.6 = name_ref p, %p
-// CHECK:STDOUT:   %.loc41_55: %ptr.7 = converted %p.ref, <error> [template = <error>]
+// CHECK:STDOUT:   %.loc41: %ptr.7 = converted %p.ref, <error> [template = <error>]
 // CHECK:STDOUT:   return <error>
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 1 - 1
toolchain/check/testdata/class/fail_incomplete.carbon

@@ -385,7 +385,7 @@ class C {
 // CHECK:STDOUT:
 // CHECK:STDOUT: fn @ConvertFromStruct() -> %Class {
 // CHECK:STDOUT: !entry:
-// CHECK:STDOUT:   %.loc42_43: %empty_struct_type = struct_literal ()
+// CHECK:STDOUT:   %.loc42: %empty_struct_type = struct_literal ()
 // CHECK:STDOUT:   return <error>
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 4 - 4
toolchain/check/testdata/class/fail_self.carbon

@@ -104,7 +104,7 @@ fn CallWrongSelf(ws: WrongSelf) {
 // CHECK:STDOUT:   } {
 // CHECK:STDOUT:     %Self.ref.loc28: type = name_ref Self, constants.%Class [template = constants.%Class]
 // CHECK:STDOUT:     %return.param.loc28: ref %Class = out_param runtime_param0
-// CHECK:STDOUT:     %return: ref %Class = return_slot %return.param.loc28
+// CHECK:STDOUT:     %return.loc28: ref %Class = return_slot %return.param.loc28
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %WrongSelf.decl: type = class_decl @WrongSelf [template = constants.%WrongSelf] {} {}
 // CHECK:STDOUT:   %CallWrongSelf.decl: %CallWrongSelf.type = fn_decl @CallWrongSelf [template = constants.%CallWrongSelf] {
@@ -132,7 +132,7 @@ fn CallWrongSelf(ws: WrongSelf) {
 // CHECK:STDOUT:   } {
 // CHECK:STDOUT:     %Self.ref.loc18: type = name_ref Self, constants.%Class [template = constants.%Class]
 // CHECK:STDOUT:     %return.param.loc18: ref %Class = out_param runtime_param0
-// CHECK:STDOUT:     %.loc18: ref %Class = return_slot %return.param.loc18
+// CHECK:STDOUT:     %return.loc18: ref %Class = return_slot %return.param.loc18
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %complete_type: <witness> = complete_type_witness %empty_struct_type [template = constants.%complete_type]
 // CHECK:STDOUT:
@@ -165,14 +165,14 @@ fn CallWrongSelf(ws: WrongSelf) {
 // CHECK:STDOUT:   return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @G() -> %return: %Class {
+// CHECK:STDOUT: fn @G() -> %return.param_patt: %Class {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %Self.ref.loc33: type = name_ref Self, constants.%Class [template = constants.%Class]
 // CHECK:STDOUT:   %self.var: ref %Class = var self
 // CHECK:STDOUT:   %self: ref %Class = bind_name self, %self.var
 // CHECK:STDOUT:   %self.ref: ref %Class = name_ref self, %self
 // CHECK:STDOUT:   %.loc38: %Class = bind_value %self.ref
-// CHECK:STDOUT:   return <error> to %return
+// CHECK:STDOUT:   return <error> to %return.loc28
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: fn @F.2[%self.param_patt: %Class]();

+ 5 - 5
toolchain/check/testdata/class/generic/adapt.carbon

@@ -288,7 +288,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 {
 // CHECK:STDOUT: imports {
 // CHECK:STDOUT:   %import_ref.1: %C.type = import_ref Main//adapt_specific_type, inst+9, loaded [template = constants.%C.generic]
 // CHECK:STDOUT:   %import_ref.2: type = import_ref Main//adapt_specific_type, inst+26, loaded [template = constants.%Adapter]
-// CHECK:STDOUT:   %import_ref.3 = import_ref Main//adapt_specific_type, inst+65, unloaded
+// CHECK:STDOUT:   %import_ref.3 = import_ref Main//adapt_specific_type, inst+64, unloaded
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .Int = %import_ref.10
 // CHECK:STDOUT:     import Core//prelude
@@ -297,7 +297,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 {
 // CHECK:STDOUT:   %import_ref.4: <witness> = import_ref Main//adapt_specific_type, inst+20, loaded [symbolic = @C.%complete_type (constants.%complete_type.1)]
 // CHECK:STDOUT:   %import_ref.5 = import_ref Main//adapt_specific_type, inst+15, unloaded
 // CHECK:STDOUT:   %import_ref.6: @C.%C.elem (%C.elem.1) = import_ref Main//adapt_specific_type, inst+18, loaded [template = %.1]
-// CHECK:STDOUT:   %import_ref.8: <witness> = import_ref Main//adapt_specific_type, inst+51, loaded [template = constants.%complete_type.2]
+// CHECK:STDOUT:   %import_ref.8: <witness> = import_ref Main//adapt_specific_type, inst+50, loaded [template = constants.%complete_type.2]
 // CHECK:STDOUT:   %import_ref.9 = import_ref Main//adapt_specific_type, inst+27, unloaded
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -666,9 +666,9 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 {
 // CHECK:STDOUT:   %import_ref.3: <witness> = import_ref Main//extend_adapt_specific_type_library, inst+20, loaded [symbolic = @C.%complete_type (constants.%complete_type.1)]
 // CHECK:STDOUT:   %import_ref.4 = import_ref Main//extend_adapt_specific_type_library, inst+15, unloaded
 // CHECK:STDOUT:   %import_ref.5: @C.%C.elem (%C.elem.1) = import_ref Main//extend_adapt_specific_type_library, inst+18, loaded [template = %.1]
-// CHECK:STDOUT:   %import_ref.7: <witness> = import_ref Main//extend_adapt_specific_type_library, inst+51, loaded [template = constants.%complete_type.2]
+// CHECK:STDOUT:   %import_ref.7: <witness> = import_ref Main//extend_adapt_specific_type_library, inst+50, loaded [template = constants.%complete_type.2]
 // CHECK:STDOUT:   %import_ref.8 = import_ref Main//extend_adapt_specific_type_library, inst+27, unloaded
-// CHECK:STDOUT:   %import_ref.9: type = import_ref Main//extend_adapt_specific_type_library, inst+44, loaded [template = constants.%C.2]
+// CHECK:STDOUT:   %import_ref.9: type = import_ref Main//extend_adapt_specific_type_library, inst+43, loaded [template = constants.%C.2]
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: file {
@@ -888,7 +888,7 @@ fn ImportedConvertLocal(a: Adapter(C)) -> i32 {
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
 // CHECK:STDOUT:   %import_ref.1: %Adapter.type = import_ref Main//adapt_generic_type, inst+9, loaded [template = constants.%Adapter.generic]
-// CHECK:STDOUT:   %import_ref.2 = import_ref Main//adapt_generic_type, inst+51, unloaded
+// CHECK:STDOUT:   %import_ref.2 = import_ref Main//adapt_generic_type, inst+50, unloaded
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .Int = %import_ref.6
 // CHECK:STDOUT:     import Core//prelude

+ 8 - 8
toolchain/check/testdata/class/generic/base_is_generic.carbon

@@ -274,23 +274,23 @@ fn H() {
 // CHECK:STDOUT: imports {
 // CHECK:STDOUT:   %import_ref.1 = import_ref Main//extend_generic_base, inst+9, unloaded
 // CHECK:STDOUT:   %import_ref.2 = import_ref Main//extend_generic_base, inst+26, unloaded
-// CHECK:STDOUT:   %import_ref.3: type = import_ref Main//extend_generic_base, inst+48, loaded [template = constants.%Derived]
-// CHECK:STDOUT:   %import_ref.4 = import_ref Main//extend_generic_base, inst+78, unloaded
+// CHECK:STDOUT:   %import_ref.3: type = import_ref Main//extend_generic_base, inst+47, loaded [template = constants.%Derived]
+// CHECK:STDOUT:   %import_ref.4 = import_ref Main//extend_generic_base, inst+77, unloaded
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .Int = %import_ref.16
 // CHECK:STDOUT:     import Core//prelude
 // CHECK:STDOUT:     import Core//prelude/...
 // CHECK:STDOUT:   }
-// CHECK:STDOUT:   %import_ref.5: <witness> = import_ref Main//extend_generic_base, inst+46, loaded [template = constants.%complete_type.1]
+// CHECK:STDOUT:   %import_ref.5: <witness> = import_ref Main//extend_generic_base, inst+45, loaded [template = constants.%complete_type.1]
 // CHECK:STDOUT:   %import_ref.6 = import_ref Main//extend_generic_base, inst+27, unloaded
-// CHECK:STDOUT:   %import_ref.7: %Param.elem = import_ref Main//extend_generic_base, inst+44, loaded [template = %.1]
+// CHECK:STDOUT:   %import_ref.7: %Param.elem = import_ref Main//extend_generic_base, inst+43, loaded [template = %.1]
 // CHECK:STDOUT:   %import_ref.8: <witness> = import_ref Main//extend_generic_base, inst+20, loaded [symbolic = @Base.%complete_type (constants.%complete_type.2)]
 // CHECK:STDOUT:   %import_ref.9 = import_ref Main//extend_generic_base, inst+15, unloaded
 // CHECK:STDOUT:   %import_ref.10: @Base.%Base.elem (%Base.elem.1) = import_ref Main//extend_generic_base, inst+18, loaded [template = %.2]
-// CHECK:STDOUT:   %import_ref.12: <witness> = import_ref Main//extend_generic_base, inst+63, loaded [template = constants.%complete_type.3]
-// CHECK:STDOUT:   %import_ref.13 = import_ref Main//extend_generic_base, inst+49, unloaded
-// CHECK:STDOUT:   %import_ref.14 = import_ref Main//extend_generic_base, inst+61, unloaded
-// CHECK:STDOUT:   %import_ref.15: type = import_ref Main//extend_generic_base, inst+52, loaded [template = constants.%Base.2]
+// CHECK:STDOUT:   %import_ref.12: <witness> = import_ref Main//extend_generic_base, inst+62, loaded [template = constants.%complete_type.3]
+// CHECK:STDOUT:   %import_ref.13 = import_ref Main//extend_generic_base, inst+48, unloaded
+// CHECK:STDOUT:   %import_ref.14 = import_ref Main//extend_generic_base, inst+60, unloaded
+// CHECK:STDOUT:   %import_ref.15: type = import_ref Main//extend_generic_base, inst+51, loaded [template = constants.%Base.2]
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: file {

+ 4 - 4
toolchain/check/testdata/class/generic/call.carbon

@@ -646,7 +646,7 @@ class Outer(T:! type) {
 // CHECK:STDOUT: !definition:
 // CHECK:STDOUT:   %Outer.val: @A.%Outer.loc4_22.1 (%Outer.1) = struct_value () [symbolic = %Outer.val (constants.%Outer.val.1)]
 // CHECK:STDOUT:
-// CHECK:STDOUT:   fn() -> %return: @A.%Outer.loc4_22.1 (%Outer.1) {
+// CHECK:STDOUT:   fn() -> %return.param_patt: @A.%Outer.loc4_22.1 (%Outer.1) {
 // CHECK:STDOUT:   !entry:
 // CHECK:STDOUT:     %.loc5_15.1: %empty_struct_type = struct_literal ()
 // CHECK:STDOUT:     %.loc5_15.2: init @A.%Outer.loc4_22.1 (%Outer.1) = class_init (), %return [symbolic = %Outer.val (constants.%Outer.val.1)]
@@ -662,7 +662,7 @@ class Outer(T:! type) {
 // CHECK:STDOUT: !definition:
 // CHECK:STDOUT:   %Outer.val: @B.%Outer.loc7_22.1 (%Outer.2) = struct_value () [symbolic = %Outer.val (constants.%Outer.val.2)]
 // CHECK:STDOUT:
-// CHECK:STDOUT:   fn() -> %return: @B.%Outer.loc7_22.1 (%Outer.2) {
+// CHECK:STDOUT:   fn() -> %return.param_patt: @B.%Outer.loc7_22.1 (%Outer.2) {
 // CHECK:STDOUT:   !entry:
 // CHECK:STDOUT:     %.loc8_15.1: %empty_struct_type = struct_literal ()
 // CHECK:STDOUT:     %.loc8_15.2: init @B.%Outer.loc7_22.1 (%Outer.2) = class_init (), %return [symbolic = %Outer.val (constants.%Outer.val.2)]
@@ -680,7 +680,7 @@ class Outer(T:! type) {
 // CHECK:STDOUT: !definition:
 // CHECK:STDOUT:   %Inner.val: @C.%Inner.loc10_22.1 (%Inner.2) = struct_value () [symbolic = %Inner.val (constants.%Inner.val.1)]
 // CHECK:STDOUT:
-// CHECK:STDOUT:   fn() -> %return: @C.%Inner.loc10_22.1 (%Inner.2) {
+// CHECK:STDOUT:   fn() -> %return.param_patt: @C.%Inner.loc10_22.1 (%Inner.2) {
 // CHECK:STDOUT:   !entry:
 // CHECK:STDOUT:     %.loc11_15.1: %empty_struct_type = struct_literal ()
 // CHECK:STDOUT:     %.loc11_15.2: init @C.%Inner.loc10_22.1 (%Inner.2) = class_init (), %return [symbolic = %Inner.val (constants.%Inner.val.1)]
@@ -699,7 +699,7 @@ class Outer(T:! type) {
 // CHECK:STDOUT: !definition:
 // CHECK:STDOUT:   %Inner.val: @D.%Inner.loc13_22.1 (%Inner.1) = struct_value () [symbolic = %Inner.val (constants.%Inner.val.2)]
 // CHECK:STDOUT:
-// CHECK:STDOUT:   fn() -> %return: @D.%Inner.loc13_22.1 (%Inner.1) {
+// CHECK:STDOUT:   fn() -> %return.param_patt: @D.%Inner.loc13_22.1 (%Inner.1) {
 // CHECK:STDOUT:   !entry:
 // CHECK:STDOUT:     %.loc14_15.1: %empty_struct_type = struct_literal ()
 // CHECK:STDOUT:     %.loc14_15.2: init @D.%Inner.loc13_22.1 (%Inner.1) = class_init (), %return [symbolic = %Inner.val (constants.%Inner.val.2)]

+ 105 - 105
toolchain/check/testdata/class/generic/import.carbon

@@ -364,42 +364,42 @@ class Class(U:! type) {
 // CHECK:STDOUT:     import Core//prelude
 // CHECK:STDOUT:     import Core//prelude/...
 // CHECK:STDOUT:   }
-// CHECK:STDOUT:   %import_ref.4 = import_ref Main//foo, inst+73, unloaded
-// CHECK:STDOUT:   %import_ref.5: @ImplicitAs.%Convert.assoc_type (%Convert.assoc_type.1) = import_ref Main//foo, inst+74, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.6)]
-// CHECK:STDOUT:   %import_ref.6 = import_ref Main//foo, inst+75, unloaded
-// CHECK:STDOUT:   %import_ref.7: type = import_ref Main//foo, inst+114, loaded [template = Core.IntLiteral]
-// CHECK:STDOUT:   %import_ref.8: type = import_ref Main//foo, inst+115, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
-// CHECK:STDOUT:   %import_ref.9: <witness> = import_ref Main//foo, inst+116, loaded [symbolic = @impl.1.%interface (constants.%interface.1)]
-// CHECK:STDOUT:   %import_ref.10 = import_ref Main//foo, inst+88, unloaded
-// CHECK:STDOUT:   %import_ref.11: type = import_ref Main//foo, inst+140, loaded [template = Core.IntLiteral]
-// CHECK:STDOUT:   %import_ref.12: type = import_ref Main//foo, inst+141, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
-// CHECK:STDOUT:   %import_ref.13 = import_ref Main//foo, inst+142, unloaded
-// CHECK:STDOUT:   %import_ref.14: type = import_ref Main//foo, inst+165, loaded [symbolic = @impl.3.%iN (constants.%iN)]
-// CHECK:STDOUT:   %import_ref.15: type = import_ref Main//foo, inst+166, loaded [template = constants.%ImplicitAs.type.5]
-// CHECK:STDOUT:   %import_ref.16 = import_ref Main//foo, inst+167, unloaded
-// CHECK:STDOUT:   %import_ref.18: type = import_ref Main//foo, inst+193, loaded [symbolic = @impl.4.%uN (constants.%uN)]
-// CHECK:STDOUT:   %import_ref.19: type = import_ref Main//foo, inst+194, loaded [template = constants.%ImplicitAs.type.5]
-// CHECK:STDOUT:   %import_ref.20 = import_ref Main//foo, inst+195, unloaded
-// CHECK:STDOUT:   %import_ref.21 = import_ref Main//foo, inst+221, unloaded
-// CHECK:STDOUT:   %import_ref.22 = import_ref Main//foo, inst+222, unloaded
-// CHECK:STDOUT:   %import_ref.23 = import_ref Main//foo, inst+223, unloaded
-// CHECK:STDOUT:   %import_ref.24: type = import_ref Main//foo, inst+227, loaded [template = Core.IntLiteral]
-// CHECK:STDOUT:   %import_ref.25: type = import_ref Main//foo, inst+228, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
-// CHECK:STDOUT:   %import_ref.26 = import_ref Main//foo, inst+229, unloaded
-// CHECK:STDOUT:   %import_ref.27 = import_ref Main//foo, inst+242, unloaded
-// CHECK:STDOUT:   %import_ref.28: type = import_ref Main//foo, inst+276, loaded [template = Core.IntLiteral]
-// CHECK:STDOUT:   %import_ref.29: type = import_ref Main//foo, inst+277, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
-// CHECK:STDOUT:   %import_ref.30 = import_ref Main//foo, inst+278, unloaded
-// CHECK:STDOUT:   %import_ref.31: type = import_ref Main//foo, inst+301, loaded [symbolic = @impl.7.%iN (constants.%iN)]
-// CHECK:STDOUT:   %import_ref.32: type = import_ref Main//foo, inst+302, loaded [template = constants.%As.type.5]
-// CHECK:STDOUT:   %import_ref.33 = import_ref Main//foo, inst+303, unloaded
-// CHECK:STDOUT:   %import_ref.35: type = import_ref Main//foo, inst+329, loaded [symbolic = @impl.8.%uN (constants.%uN)]
-// CHECK:STDOUT:   %import_ref.36: type = import_ref Main//foo, inst+330, loaded [template = constants.%As.type.5]
-// CHECK:STDOUT:   %import_ref.37 = import_ref Main//foo, inst+331, unloaded
-// CHECK:STDOUT:   %import_ref.38: <witness> = import_ref Main//foo, inst+55, loaded [template = constants.%complete_type.2]
+// CHECK:STDOUT:   %import_ref.4 = import_ref Main//foo, inst+72, unloaded
+// CHECK:STDOUT:   %import_ref.5: @ImplicitAs.%Convert.assoc_type (%Convert.assoc_type.1) = import_ref Main//foo, inst+73, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.6)]
+// CHECK:STDOUT:   %import_ref.6 = import_ref Main//foo, inst+74, unloaded
+// CHECK:STDOUT:   %import_ref.7: type = import_ref Main//foo, inst+112, loaded [template = Core.IntLiteral]
+// CHECK:STDOUT:   %import_ref.8: type = import_ref Main//foo, inst+113, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
+// CHECK:STDOUT:   %import_ref.9: <witness> = import_ref Main//foo, inst+114, loaded [symbolic = @impl.1.%interface (constants.%interface.1)]
+// CHECK:STDOUT:   %import_ref.10 = import_ref Main//foo, inst+86, unloaded
+// CHECK:STDOUT:   %import_ref.11: type = import_ref Main//foo, inst+137, loaded [template = Core.IntLiteral]
+// CHECK:STDOUT:   %import_ref.12: type = import_ref Main//foo, inst+138, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
+// CHECK:STDOUT:   %import_ref.13 = import_ref Main//foo, inst+139, unloaded
+// CHECK:STDOUT:   %import_ref.14: type = import_ref Main//foo, inst+161, loaded [symbolic = @impl.3.%iN (constants.%iN)]
+// CHECK:STDOUT:   %import_ref.15: type = import_ref Main//foo, inst+162, loaded [template = constants.%ImplicitAs.type.5]
+// CHECK:STDOUT:   %import_ref.16 = import_ref Main//foo, inst+163, unloaded
+// CHECK:STDOUT:   %import_ref.18: type = import_ref Main//foo, inst+188, loaded [symbolic = @impl.4.%uN (constants.%uN)]
+// CHECK:STDOUT:   %import_ref.19: type = import_ref Main//foo, inst+189, loaded [template = constants.%ImplicitAs.type.5]
+// CHECK:STDOUT:   %import_ref.20 = import_ref Main//foo, inst+190, unloaded
+// CHECK:STDOUT:   %import_ref.21 = import_ref Main//foo, inst+215, unloaded
+// CHECK:STDOUT:   %import_ref.22 = import_ref Main//foo, inst+216, unloaded
+// CHECK:STDOUT:   %import_ref.23 = import_ref Main//foo, inst+217, unloaded
+// CHECK:STDOUT:   %import_ref.24: type = import_ref Main//foo, inst+221, loaded [template = Core.IntLiteral]
+// CHECK:STDOUT:   %import_ref.25: type = import_ref Main//foo, inst+222, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
+// CHECK:STDOUT:   %import_ref.26 = import_ref Main//foo, inst+223, unloaded
+// CHECK:STDOUT:   %import_ref.27 = import_ref Main//foo, inst+235, unloaded
+// CHECK:STDOUT:   %import_ref.28: type = import_ref Main//foo, inst+268, loaded [template = Core.IntLiteral]
+// CHECK:STDOUT:   %import_ref.29: type = import_ref Main//foo, inst+269, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
+// CHECK:STDOUT:   %import_ref.30 = import_ref Main//foo, inst+270, unloaded
+// CHECK:STDOUT:   %import_ref.31: type = import_ref Main//foo, inst+292, loaded [symbolic = @impl.7.%iN (constants.%iN)]
+// CHECK:STDOUT:   %import_ref.32: type = import_ref Main//foo, inst+293, loaded [template = constants.%As.type.5]
+// CHECK:STDOUT:   %import_ref.33 = import_ref Main//foo, inst+294, unloaded
+// CHECK:STDOUT:   %import_ref.35: type = import_ref Main//foo, inst+319, loaded [symbolic = @impl.8.%uN (constants.%uN)]
+// CHECK:STDOUT:   %import_ref.36: type = import_ref Main//foo, inst+320, loaded [template = constants.%As.type.5]
+// CHECK:STDOUT:   %import_ref.37 = import_ref Main//foo, inst+321, unloaded
+// CHECK:STDOUT:   %import_ref.38: <witness> = import_ref Main//foo, inst+54, loaded [template = constants.%complete_type.2]
 // CHECK:STDOUT:   %import_ref.39 = import_ref Main//foo, inst+25, unloaded
-// CHECK:STDOUT:   %import_ref.40 = import_ref Main//foo, inst+42, unloaded
-// CHECK:STDOUT:   %import_ref.41 = import_ref Main//foo, inst+51, unloaded
+// CHECK:STDOUT:   %import_ref.40 = import_ref Main//foo, inst+41, unloaded
+// CHECK:STDOUT:   %import_ref.41 = import_ref Main//foo, inst+50, unloaded
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: file {
@@ -743,7 +743,7 @@ class Class(U:! type) {
 // CHECK:STDOUT:   fn() -> %i32;
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @F.2() -> %return: %CompleteClass.2 {
+// CHECK:STDOUT: fn @F.2() -> %return.param_patt: %CompleteClass.2 {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.1]
 // CHECK:STDOUT:   %.loc9_17.1: %struct_type.n.2 = struct_literal (%int_1)
@@ -1117,16 +1117,16 @@ class Class(U:! type) {
 // CHECK:STDOUT: imports {
 // CHECK:STDOUT:   %import_ref.1 = import_ref Main//foo, inst+9, unloaded
 // CHECK:STDOUT:   %import_ref.2: %CompleteClass.type = import_ref Main//foo, inst+20, loaded [template = constants.%CompleteClass.generic]
-// CHECK:STDOUT:   %import_ref.3: %F.type.3 = import_ref Main//foo, inst+373, loaded [template = constants.%F.3]
+// CHECK:STDOUT:   %import_ref.3: %F.type.3 = import_ref Main//foo, inst+362, loaded [template = constants.%F.3]
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .Int = %import_ref.4
 // CHECK:STDOUT:     import Core//prelude
 // CHECK:STDOUT:     import Core//prelude/...
 // CHECK:STDOUT:   }
-// CHECK:STDOUT:   %import_ref.5: <witness> = import_ref Main//foo, inst+55, loaded [template = constants.%complete_type]
+// CHECK:STDOUT:   %import_ref.5: <witness> = import_ref Main//foo, inst+54, loaded [template = constants.%complete_type]
 // CHECK:STDOUT:   %import_ref.6 = import_ref Main//foo, inst+25, unloaded
-// CHECK:STDOUT:   %import_ref.7: @CompleteClass.%CompleteClass.elem (%CompleteClass.elem.1) = import_ref Main//foo, inst+42, loaded [template = %.1]
-// CHECK:STDOUT:   %import_ref.8: @CompleteClass.%F.type (%F.type.1) = import_ref Main//foo, inst+51, loaded [symbolic = @CompleteClass.%F (constants.%F.1)]
+// CHECK:STDOUT:   %import_ref.7: @CompleteClass.%CompleteClass.elem (%CompleteClass.elem.1) = import_ref Main//foo, inst+41, loaded [template = %.1]
+// CHECK:STDOUT:   %import_ref.8: @CompleteClass.%F.type (%F.type.1) = import_ref Main//foo, inst+50, loaded [symbolic = @CompleteClass.%F (constants.%F.1)]
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: file {
@@ -1351,45 +1351,45 @@ class Class(U:! type) {
 // CHECK:STDOUT: imports {
 // CHECK:STDOUT:   %import_ref.1 = import_ref Main//foo, inst+9, unloaded
 // CHECK:STDOUT:   %import_ref.2: %CompleteClass.type = import_ref Main//foo, inst+20, loaded [template = constants.%CompleteClass.generic]
-// CHECK:STDOUT:   %import_ref.3: %F.type.3 = import_ref Main//foo, inst+373, loaded [template = constants.%F.3]
+// CHECK:STDOUT:   %import_ref.3: %F.type.3 = import_ref Main//foo, inst+362, loaded [template = constants.%F.3]
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .Int = %import_ref.8
 // CHECK:STDOUT:     .ImplicitAs = %import_ref.9
 // CHECK:STDOUT:     import Core//prelude
 // CHECK:STDOUT:     import Core//prelude/...
 // CHECK:STDOUT:   }
-// CHECK:STDOUT:   %import_ref.4: <witness> = import_ref Main//foo, inst+55, loaded [template = constants.%complete_type]
+// CHECK:STDOUT:   %import_ref.4: <witness> = import_ref Main//foo, inst+54, loaded [template = constants.%complete_type]
 // CHECK:STDOUT:   %import_ref.5 = import_ref Main//foo, inst+25, unloaded
-// CHECK:STDOUT:   %import_ref.6 = import_ref Main//foo, inst+42, unloaded
-// CHECK:STDOUT:   %import_ref.7 = import_ref Main//foo, inst+51, unloaded
-// CHECK:STDOUT:   %import_ref.15: type = import_ref Main//foo, inst+114, loaded [template = Core.IntLiteral]
-// CHECK:STDOUT:   %import_ref.16: type = import_ref Main//foo, inst+115, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
-// CHECK:STDOUT:   %import_ref.17 = import_ref Main//foo, inst+116, unloaded
-// CHECK:STDOUT:   %import_ref.18: type = import_ref Main//foo, inst+140, loaded [template = Core.IntLiteral]
-// CHECK:STDOUT:   %import_ref.19: type = import_ref Main//foo, inst+141, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.5)]
-// CHECK:STDOUT:   %import_ref.20 = import_ref Main//foo, inst+142, unloaded
-// CHECK:STDOUT:   %import_ref.21: type = import_ref Main//foo, inst+165, loaded [symbolic = @impl.3.%iN (constants.%iN)]
-// CHECK:STDOUT:   %import_ref.22: type = import_ref Main//foo, inst+166, loaded [template = constants.%ImplicitAs.type.6]
-// CHECK:STDOUT:   %import_ref.23 = import_ref Main//foo, inst+167, unloaded
-// CHECK:STDOUT:   %import_ref.25: type = import_ref Main//foo, inst+193, loaded [symbolic = @impl.4.%uN (constants.%uN)]
-// CHECK:STDOUT:   %import_ref.26: type = import_ref Main//foo, inst+194, loaded [template = constants.%ImplicitAs.type.6]
-// CHECK:STDOUT:   %import_ref.27 = import_ref Main//foo, inst+195, unloaded
-// CHECK:STDOUT:   %import_ref.28 = import_ref Main//foo, inst+221, unloaded
-// CHECK:STDOUT:   %import_ref.29 = import_ref Main//foo, inst+222, unloaded
-// CHECK:STDOUT:   %import_ref.30 = import_ref Main//foo, inst+223, unloaded
-// CHECK:STDOUT:   %import_ref.31: type = import_ref Main//foo, inst+227, loaded [template = Core.IntLiteral]
-// CHECK:STDOUT:   %import_ref.32: type = import_ref Main//foo, inst+228, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
-// CHECK:STDOUT:   %import_ref.33 = import_ref Main//foo, inst+229, unloaded
-// CHECK:STDOUT:   %import_ref.34 = import_ref Main//foo, inst+242, unloaded
-// CHECK:STDOUT:   %import_ref.35: type = import_ref Main//foo, inst+276, loaded [template = Core.IntLiteral]
-// CHECK:STDOUT:   %import_ref.36: type = import_ref Main//foo, inst+277, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
-// CHECK:STDOUT:   %import_ref.37 = import_ref Main//foo, inst+278, unloaded
-// CHECK:STDOUT:   %import_ref.38: type = import_ref Main//foo, inst+301, loaded [symbolic = @impl.7.%iN (constants.%iN)]
-// CHECK:STDOUT:   %import_ref.39: type = import_ref Main//foo, inst+302, loaded [template = constants.%As.type.5]
-// CHECK:STDOUT:   %import_ref.40 = import_ref Main//foo, inst+303, unloaded
-// CHECK:STDOUT:   %import_ref.42: type = import_ref Main//foo, inst+329, loaded [symbolic = @impl.8.%uN (constants.%uN)]
-// CHECK:STDOUT:   %import_ref.43: type = import_ref Main//foo, inst+330, loaded [template = constants.%As.type.5]
-// CHECK:STDOUT:   %import_ref.44 = import_ref Main//foo, inst+331, unloaded
+// CHECK:STDOUT:   %import_ref.6 = import_ref Main//foo, inst+41, unloaded
+// CHECK:STDOUT:   %import_ref.7 = import_ref Main//foo, inst+50, unloaded
+// CHECK:STDOUT:   %import_ref.15: type = import_ref Main//foo, inst+112, loaded [template = Core.IntLiteral]
+// CHECK:STDOUT:   %import_ref.16: type = import_ref Main//foo, inst+113, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
+// CHECK:STDOUT:   %import_ref.17 = import_ref Main//foo, inst+114, unloaded
+// CHECK:STDOUT:   %import_ref.18: type = import_ref Main//foo, inst+137, loaded [template = Core.IntLiteral]
+// CHECK:STDOUT:   %import_ref.19: type = import_ref Main//foo, inst+138, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.5)]
+// CHECK:STDOUT:   %import_ref.20 = import_ref Main//foo, inst+139, unloaded
+// CHECK:STDOUT:   %import_ref.21: type = import_ref Main//foo, inst+161, loaded [symbolic = @impl.3.%iN (constants.%iN)]
+// CHECK:STDOUT:   %import_ref.22: type = import_ref Main//foo, inst+162, loaded [template = constants.%ImplicitAs.type.6]
+// CHECK:STDOUT:   %import_ref.23 = import_ref Main//foo, inst+163, unloaded
+// CHECK:STDOUT:   %import_ref.25: type = import_ref Main//foo, inst+188, loaded [symbolic = @impl.4.%uN (constants.%uN)]
+// CHECK:STDOUT:   %import_ref.26: type = import_ref Main//foo, inst+189, loaded [template = constants.%ImplicitAs.type.6]
+// CHECK:STDOUT:   %import_ref.27 = import_ref Main//foo, inst+190, unloaded
+// CHECK:STDOUT:   %import_ref.28 = import_ref Main//foo, inst+215, unloaded
+// CHECK:STDOUT:   %import_ref.29 = import_ref Main//foo, inst+216, unloaded
+// CHECK:STDOUT:   %import_ref.30 = import_ref Main//foo, inst+217, unloaded
+// CHECK:STDOUT:   %import_ref.31: type = import_ref Main//foo, inst+221, loaded [template = Core.IntLiteral]
+// CHECK:STDOUT:   %import_ref.32: type = import_ref Main//foo, inst+222, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
+// CHECK:STDOUT:   %import_ref.33 = import_ref Main//foo, inst+223, unloaded
+// CHECK:STDOUT:   %import_ref.34 = import_ref Main//foo, inst+235, unloaded
+// CHECK:STDOUT:   %import_ref.35: type = import_ref Main//foo, inst+268, loaded [template = Core.IntLiteral]
+// CHECK:STDOUT:   %import_ref.36: type = import_ref Main//foo, inst+269, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
+// CHECK:STDOUT:   %import_ref.37 = import_ref Main//foo, inst+270, unloaded
+// CHECK:STDOUT:   %import_ref.38: type = import_ref Main//foo, inst+292, loaded [symbolic = @impl.7.%iN (constants.%iN)]
+// CHECK:STDOUT:   %import_ref.39: type = import_ref Main//foo, inst+293, loaded [template = constants.%As.type.5]
+// CHECK:STDOUT:   %import_ref.40 = import_ref Main//foo, inst+294, unloaded
+// CHECK:STDOUT:   %import_ref.42: type = import_ref Main//foo, inst+319, loaded [symbolic = @impl.8.%uN (constants.%uN)]
+// CHECK:STDOUT:   %import_ref.43: type = import_ref Main//foo, inst+320, loaded [template = constants.%As.type.5]
+// CHECK:STDOUT:   %import_ref.44 = import_ref Main//foo, inst+321, unloaded
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: file {
@@ -1998,43 +1998,43 @@ class Class(U:! type) {
 // CHECK:STDOUT: imports {
 // CHECK:STDOUT:   %import_ref.1: %Class.type = import_ref Main//foo, inst+9, loaded [template = constants.%Class.generic]
 // CHECK:STDOUT:   %import_ref.2 = import_ref Main//foo, inst+20, unloaded
-// CHECK:STDOUT:   %import_ref.3 = import_ref Main//foo, inst+373, unloaded
+// CHECK:STDOUT:   %import_ref.3 = import_ref Main//foo, inst+362, unloaded
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     import Core//prelude
 // CHECK:STDOUT:     import Core//prelude/...
 // CHECK:STDOUT:   }
-// CHECK:STDOUT:   %import_ref.4 = import_ref Main//foo, inst+73, unloaded
-// CHECK:STDOUT:   %import_ref.5 = import_ref Main//foo, inst+74, unloaded
-// CHECK:STDOUT:   %import_ref.6 = import_ref Main//foo, inst+75, unloaded
-// CHECK:STDOUT:   %import_ref.7: type = import_ref Main//foo, inst+114, loaded [template = Core.IntLiteral]
-// CHECK:STDOUT:   %import_ref.8: type = import_ref Main//foo, inst+115, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
-// CHECK:STDOUT:   %import_ref.9 = import_ref Main//foo, inst+116, unloaded
-// CHECK:STDOUT:   %import_ref.10 = import_ref Main//foo, inst+88, unloaded
-// CHECK:STDOUT:   %import_ref.11: type = import_ref Main//foo, inst+140, loaded [template = Core.IntLiteral]
-// CHECK:STDOUT:   %import_ref.12: type = import_ref Main//foo, inst+141, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
-// CHECK:STDOUT:   %import_ref.13 = import_ref Main//foo, inst+142, unloaded
-// CHECK:STDOUT:   %import_ref.14: type = import_ref Main//foo, inst+165, loaded [symbolic = @impl.3.%iN (constants.%iN)]
-// CHECK:STDOUT:   %import_ref.15: type = import_ref Main//foo, inst+166, loaded [template = constants.%ImplicitAs.type.5]
-// CHECK:STDOUT:   %import_ref.16 = import_ref Main//foo, inst+167, unloaded
-// CHECK:STDOUT:   %import_ref.18: type = import_ref Main//foo, inst+193, loaded [symbolic = @impl.4.%uN (constants.%uN)]
-// CHECK:STDOUT:   %import_ref.19: type = import_ref Main//foo, inst+194, loaded [template = constants.%ImplicitAs.type.5]
-// CHECK:STDOUT:   %import_ref.20 = import_ref Main//foo, inst+195, unloaded
-// CHECK:STDOUT:   %import_ref.21 = import_ref Main//foo, inst+221, unloaded
-// CHECK:STDOUT:   %import_ref.22 = import_ref Main//foo, inst+222, unloaded
-// CHECK:STDOUT:   %import_ref.23 = import_ref Main//foo, inst+223, unloaded
-// CHECK:STDOUT:   %import_ref.24: type = import_ref Main//foo, inst+227, loaded [template = Core.IntLiteral]
-// CHECK:STDOUT:   %import_ref.25: type = import_ref Main//foo, inst+228, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
-// CHECK:STDOUT:   %import_ref.26 = import_ref Main//foo, inst+229, unloaded
-// CHECK:STDOUT:   %import_ref.27 = import_ref Main//foo, inst+242, unloaded
-// CHECK:STDOUT:   %import_ref.28: type = import_ref Main//foo, inst+276, loaded [template = Core.IntLiteral]
-// CHECK:STDOUT:   %import_ref.29: type = import_ref Main//foo, inst+277, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
-// CHECK:STDOUT:   %import_ref.30 = import_ref Main//foo, inst+278, unloaded
-// CHECK:STDOUT:   %import_ref.31: type = import_ref Main//foo, inst+301, loaded [symbolic = @impl.7.%iN (constants.%iN)]
-// CHECK:STDOUT:   %import_ref.32: type = import_ref Main//foo, inst+302, loaded [template = constants.%As.type.5]
-// CHECK:STDOUT:   %import_ref.33 = import_ref Main//foo, inst+303, unloaded
-// CHECK:STDOUT:   %import_ref.35: type = import_ref Main//foo, inst+329, loaded [symbolic = @impl.8.%uN (constants.%uN)]
-// CHECK:STDOUT:   %import_ref.36: type = import_ref Main//foo, inst+330, loaded [template = constants.%As.type.5]
-// CHECK:STDOUT:   %import_ref.37 = import_ref Main//foo, inst+331, unloaded
+// CHECK:STDOUT:   %import_ref.4 = import_ref Main//foo, inst+72, unloaded
+// CHECK:STDOUT:   %import_ref.5 = import_ref Main//foo, inst+73, unloaded
+// CHECK:STDOUT:   %import_ref.6 = import_ref Main//foo, inst+74, unloaded
+// CHECK:STDOUT:   %import_ref.7: type = import_ref Main//foo, inst+112, loaded [template = Core.IntLiteral]
+// CHECK:STDOUT:   %import_ref.8: type = import_ref Main//foo, inst+113, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
+// CHECK:STDOUT:   %import_ref.9 = import_ref Main//foo, inst+114, unloaded
+// CHECK:STDOUT:   %import_ref.10 = import_ref Main//foo, inst+86, unloaded
+// CHECK:STDOUT:   %import_ref.11: type = import_ref Main//foo, inst+137, loaded [template = Core.IntLiteral]
+// CHECK:STDOUT:   %import_ref.12: type = import_ref Main//foo, inst+138, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
+// CHECK:STDOUT:   %import_ref.13 = import_ref Main//foo, inst+139, unloaded
+// CHECK:STDOUT:   %import_ref.14: type = import_ref Main//foo, inst+161, loaded [symbolic = @impl.3.%iN (constants.%iN)]
+// CHECK:STDOUT:   %import_ref.15: type = import_ref Main//foo, inst+162, loaded [template = constants.%ImplicitAs.type.5]
+// CHECK:STDOUT:   %import_ref.16 = import_ref Main//foo, inst+163, unloaded
+// CHECK:STDOUT:   %import_ref.18: type = import_ref Main//foo, inst+188, loaded [symbolic = @impl.4.%uN (constants.%uN)]
+// CHECK:STDOUT:   %import_ref.19: type = import_ref Main//foo, inst+189, loaded [template = constants.%ImplicitAs.type.5]
+// CHECK:STDOUT:   %import_ref.20 = import_ref Main//foo, inst+190, unloaded
+// CHECK:STDOUT:   %import_ref.21 = import_ref Main//foo, inst+215, unloaded
+// CHECK:STDOUT:   %import_ref.22 = import_ref Main//foo, inst+216, unloaded
+// CHECK:STDOUT:   %import_ref.23 = import_ref Main//foo, inst+217, unloaded
+// CHECK:STDOUT:   %import_ref.24: type = import_ref Main//foo, inst+221, loaded [template = Core.IntLiteral]
+// CHECK:STDOUT:   %import_ref.25: type = import_ref Main//foo, inst+222, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
+// CHECK:STDOUT:   %import_ref.26 = import_ref Main//foo, inst+223, unloaded
+// CHECK:STDOUT:   %import_ref.27 = import_ref Main//foo, inst+235, unloaded
+// CHECK:STDOUT:   %import_ref.28: type = import_ref Main//foo, inst+268, loaded [template = Core.IntLiteral]
+// CHECK:STDOUT:   %import_ref.29: type = import_ref Main//foo, inst+269, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
+// CHECK:STDOUT:   %import_ref.30 = import_ref Main//foo, inst+270, unloaded
+// CHECK:STDOUT:   %import_ref.31: type = import_ref Main//foo, inst+292, loaded [symbolic = @impl.7.%iN (constants.%iN)]
+// CHECK:STDOUT:   %import_ref.32: type = import_ref Main//foo, inst+293, loaded [template = constants.%As.type.5]
+// CHECK:STDOUT:   %import_ref.33 = import_ref Main//foo, inst+294, unloaded
+// CHECK:STDOUT:   %import_ref.35: type = import_ref Main//foo, inst+319, loaded [symbolic = @impl.8.%uN (constants.%uN)]
+// CHECK:STDOUT:   %import_ref.36: type = import_ref Main//foo, inst+320, loaded [template = constants.%As.type.5]
+// CHECK:STDOUT:   %import_ref.37 = import_ref Main//foo, inst+321, unloaded
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: file {

+ 2 - 2
toolchain/check/testdata/class/generic/member_access.carbon

@@ -478,7 +478,7 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) {
 // CHECK:STDOUT: !definition:
 // CHECK:STDOUT:   %Class.val: @Make.%Class.loc5_23.1 (%Class) = struct_value () [symbolic = %Class.val (constants.%Class.val)]
 // CHECK:STDOUT:
-// CHECK:STDOUT:   fn() -> %return: @Make.%Class.loc5_23.1 (%Class) {
+// CHECK:STDOUT:   fn() -> %return.param_patt: @Make.%Class.loc5_23.1 (%Class) {
 // CHECK:STDOUT:   !entry:
 // CHECK:STDOUT:     %.loc5_35.1: %empty_struct_type = struct_literal ()
 // CHECK:STDOUT:     %.loc5_35.2: init @Make.%Class.loc5_23.1 (%Class) = class_init (), %return [symbolic = %Class.val (constants.%Class.val)]
@@ -497,7 +497,7 @@ fn StaticMemberFunctionCall(T:! type) -> Class(T) {
 // CHECK:STDOUT:   %Make: @StaticMemberFunctionCall.%Make.type (%Make.type) = struct_value () [symbolic = %Make (constants.%Make)]
 // CHECK:STDOUT:   %Make.specific_fn.loc15_18.2: <specific function> = specific_function %Make, @Make(%T.loc8_29.2) [symbolic = %Make.specific_fn.loc15_18.2 (constants.%Make.specific_fn)]
 // CHECK:STDOUT:
-// CHECK:STDOUT:   fn(%T.param_patt: type) -> %return: @StaticMemberFunctionCall.%Class.loc8_49.2 (%Class) {
+// CHECK:STDOUT:   fn(%T.param_patt: type) -> %return.param_patt: @StaticMemberFunctionCall.%Class.loc8_49.2 (%Class) {
 // CHECK:STDOUT:   !entry:
 // CHECK:STDOUT:     %Class.ref.loc15: %Class.type = name_ref Class, file.%Class.decl [template = constants.%Class.generic]
 // CHECK:STDOUT:     %T.ref.loc15: type = name_ref T, %T.loc8_29.1 [symbolic = %T.loc8_29.2 (constants.%T)]

+ 8 - 8
toolchain/check/testdata/class/generic/member_out_of_line.carbon

@@ -155,7 +155,7 @@ fn Generic(T:! ()).WrongType() {}
 // CHECK:STDOUT:     %n.param.loc10: %T = value_param runtime_param0
 // CHECK:STDOUT:     %n.loc10: %T = bind_name n, %n.param.loc10
 // CHECK:STDOUT:     %return.param.loc10: ref %T = out_param runtime_param1
-// CHECK:STDOUT:     %return: ref %T = return_slot %return.param.loc10
+// CHECK:STDOUT:     %return.loc10: ref %T = return_slot %return.param.loc10
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %G.decl: %G.type = fn_decl @G [symbolic = constants.%G] {
 // CHECK:STDOUT:     %self.patt: %Class = binding_pattern self
@@ -165,13 +165,13 @@ fn Generic(T:! ()).WrongType() {}
 // CHECK:STDOUT:   } {
 // CHECK:STDOUT:     %T.param: type = value_param runtime_param<invalid>
 // CHECK:STDOUT:     %T.loc14: type = bind_symbolic_name T, 0, %T.param [symbolic = constants.%T]
-// CHECK:STDOUT:     %.loc14_28: type = specific_constant constants.%Class, @Class(constants.%T) [symbolic = constants.%Class]
-// CHECK:STDOUT:     %Self.ref.loc14: type = name_ref Self, %.loc14_28 [symbolic = constants.%Class]
+// CHECK:STDOUT:     %.loc14: type = specific_constant constants.%Class, @Class(constants.%T) [symbolic = constants.%Class]
+// CHECK:STDOUT:     %Self.ref.loc14: type = name_ref Self, %.loc14 [symbolic = constants.%Class]
 // CHECK:STDOUT:     %T.ref.loc14: type = name_ref T, %T.loc14 [symbolic = constants.%T]
 // CHECK:STDOUT:     %self.param.loc14: %Class = value_param runtime_param0
 // CHECK:STDOUT:     %self.loc14: %Class = bind_name self, %self.param.loc14
 // CHECK:STDOUT:     %return.param.loc14: ref %T = out_param runtime_param1
-// CHECK:STDOUT:     %return: ref %T = return_slot %return.param.loc14
+// CHECK:STDOUT:     %return.loc14: ref %T = return_slot %return.param.loc14
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -201,7 +201,7 @@ fn Generic(T:! ()).WrongType() {}
 // CHECK:STDOUT:       %n.param.loc5: @F.%T.loc5 (%T) = value_param runtime_param0
 // CHECK:STDOUT:       %n.loc5: @F.%T.loc5 (%T) = bind_name n, %n.param.loc5
 // CHECK:STDOUT:       %return.param.loc5: ref @F.%T.loc5 (%T) = out_param runtime_param1
-// CHECK:STDOUT:       %.loc5: ref @F.%T.loc5 (%T) = return_slot %return.param.loc5
+// CHECK:STDOUT:       %return.loc5: ref @F.%T.loc5 (%T) = return_slot %return.param.loc5
 // CHECK:STDOUT:     }
 // CHECK:STDOUT:     %G.decl: @Class.%G.type (%G.type) = fn_decl @G [symbolic = @Class.%G (constants.%G)] {
 // CHECK:STDOUT:       %self.patt: %Class = binding_pattern self
@@ -209,13 +209,13 @@ fn Generic(T:! ()).WrongType() {}
 // CHECK:STDOUT:       %return.patt: %T = return_slot_pattern
 // CHECK:STDOUT:       %return.param_patt: %T = out_param_pattern %return.patt, runtime_param1
 // CHECK:STDOUT:     } {
-// CHECK:STDOUT:       %.loc6_14: type = specific_constant constants.%Class, @Class(constants.%T) [symbolic = %Class (constants.%Class)]
-// CHECK:STDOUT:       %Self.ref.loc6: type = name_ref Self, %.loc6_14 [symbolic = %Class (constants.%Class)]
+// CHECK:STDOUT:       %.loc6: type = specific_constant constants.%Class, @Class(constants.%T) [symbolic = %Class (constants.%Class)]
+// CHECK:STDOUT:       %Self.ref.loc6: type = name_ref Self, %.loc6 [symbolic = %Class (constants.%Class)]
 // CHECK:STDOUT:       %T.ref.loc6: type = name_ref T, @Class.%T.loc4_13.1 [symbolic = %T.loc6 (constants.%T)]
 // CHECK:STDOUT:       %self.param.loc6: @G.%Class (%Class) = value_param runtime_param0
 // CHECK:STDOUT:       %self.loc6: @G.%Class (%Class) = bind_name self, %self.param.loc6
 // CHECK:STDOUT:       %return.param.loc6: ref @G.%T.loc6 (%T) = out_param runtime_param1
-// CHECK:STDOUT:       %.loc6_22: ref @G.%T.loc6 (%T) = return_slot %return.param.loc6
+// CHECK:STDOUT:       %return.loc6: ref @G.%T.loc6 (%T) = return_slot %return.param.loc6
 // CHECK:STDOUT:     }
 // CHECK:STDOUT:     %T.ref: type = name_ref T, %T.loc4_13.1 [symbolic = %T.loc4_13.2 (constants.%T)]
 // CHECK:STDOUT:     %.loc7: @Class.%Class.elem (%Class.elem) = field_decl n, element0 [template]

+ 8 - 8
toolchain/check/testdata/class/generic/method_deduce.carbon

@@ -208,7 +208,7 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) {
 // CHECK:STDOUT:   %Get: @Get.%Get.type (%Get.type.1) = struct_value () [symbolic = %Get (constants.%Get.1)]
 // CHECK:STDOUT:   %Get.specific_fn.loc15_39.2: <specific function> = specific_function %Get, @Get(%T, %U.loc15_10.1) [symbolic = %Get.specific_fn.loc15_39.2 (constants.%Get.specific_fn.1)]
 // CHECK:STDOUT:
-// CHECK:STDOUT:   fn(%U.param_patt: type) -> %return: @Get.%tuple.type (%tuple.type.2) {
+// CHECK:STDOUT:   fn(%U.param_patt: type) -> %return.param_patt: @Get.%tuple.type (%tuple.type.2) {
 // CHECK:STDOUT:   !entry:
 // CHECK:STDOUT:     %.loc15_39: @Get.%Get.type (%Get.type.1) = specific_constant @Class.%Get.decl, @Class(constants.%T) [symbolic = %Get (constants.%Get.1)]
 // CHECK:STDOUT:     %Get.ref: @Get.%Get.type (%Get.type.1) = name_ref Get, %.loc15_39 [symbolic = %Get (constants.%Get.1)]
@@ -242,7 +242,7 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) {
 // CHECK:STDOUT:   %GetNoDeduce: @GetNoDeduce.%GetNoDeduce.type (%GetNoDeduce.type.1) = struct_value () [symbolic = %GetNoDeduce (constants.%GetNoDeduce.1)]
 // CHECK:STDOUT:   %GetNoDeduce.specific_fn.loc16_53.2: <specific function> = specific_function %GetNoDeduce, @GetNoDeduce(%T, %U.loc16_24.1) [symbolic = %GetNoDeduce.specific_fn.loc16_53.2 (constants.%GetNoDeduce.specific_fn.1)]
 // CHECK:STDOUT:
-// CHECK:STDOUT:   fn(%x.param_patt: @GetNoDeduce.%T (%T), %U.param_patt: type) -> %return: @GetNoDeduce.%tuple.type (%tuple.type.2) {
+// CHECK:STDOUT:   fn(%x.param_patt: @GetNoDeduce.%T (%T), %U.param_patt: type) -> %return.param_patt: @GetNoDeduce.%tuple.type (%tuple.type.2) {
 // CHECK:STDOUT:   !entry:
 // CHECK:STDOUT:     %.loc16_53: @GetNoDeduce.%GetNoDeduce.type (%GetNoDeduce.type.1) = specific_constant @Class.%GetNoDeduce.decl, @Class(constants.%T) [symbolic = %GetNoDeduce (constants.%GetNoDeduce.1)]
 // CHECK:STDOUT:     %GetNoDeduce.ref: @GetNoDeduce.%GetNoDeduce.type (%GetNoDeduce.type.1) = name_ref GetNoDeduce, %.loc16_53 [symbolic = %GetNoDeduce (constants.%GetNoDeduce.1)]
@@ -266,19 +266,19 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) {
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @CallGenericMethod(%c.param_patt: %Class.2) -> %return: %tuple.type.3 {
+// CHECK:STDOUT: fn @CallGenericMethod(%c.param_patt: %Class.2) -> %return.param_patt: %tuple.type.3 {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %c.ref: %Class.2 = name_ref c, %c
 // CHECK:STDOUT:   %.loc20: %Get.type.2 = specific_constant @Class.%Get.decl, @Class(constants.%A) [template = constants.%Get.2]
 // CHECK:STDOUT:   %Get.ref: %Get.type.2 = name_ref Get, %.loc20 [template = constants.%Get.2]
 // CHECK:STDOUT:   %B.ref.loc20: type = name_ref B, file.%B.decl [template = constants.%B]
 // CHECK:STDOUT:   %Get.specific_fn: <specific function> = specific_function %Get.ref, @Get(constants.%A, constants.%B) [template = constants.%Get.specific_fn.2]
-// CHECK:STDOUT:   %.loc19_35.2: ref %tuple.type.3 = splice_block %return {}
-// CHECK:STDOUT:   %Get.call: init %tuple.type.3 = call %Get.specific_fn() to %.loc19_35.2
+// CHECK:STDOUT:   %.loc19_35: ref %tuple.type.3 = splice_block %return {}
+// CHECK:STDOUT:   %Get.call: init %tuple.type.3 = call %Get.specific_fn() to %.loc19_35
 // CHECK:STDOUT:   return %Get.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @CallGenericMethodWithNonDeducedParam(%c.param_patt: %Class.2) -> %return: %tuple.type.3 {
+// CHECK:STDOUT: fn @CallGenericMethodWithNonDeducedParam(%c.param_patt: %Class.2) -> %return.param_patt: %tuple.type.3 {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %c.ref: %Class.2 = name_ref c, %c
 // CHECK:STDOUT:   %.loc24_11: %GetNoDeduce.type.2 = specific_constant @Class.%GetNoDeduce.decl, @Class(constants.%A) [template = constants.%GetNoDeduce.2]
@@ -286,13 +286,13 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) {
 // CHECK:STDOUT:   %.loc24_25.1: %empty_struct_type = struct_literal ()
 // CHECK:STDOUT:   %B.ref.loc24: type = name_ref B, file.%B.decl [template = constants.%B]
 // CHECK:STDOUT:   %GetNoDeduce.specific_fn: <specific function> = specific_function %GetNoDeduce.ref, @GetNoDeduce(constants.%A, constants.%B) [template = constants.%GetNoDeduce.specific_fn.2]
-// CHECK:STDOUT:   %.loc23_54.2: ref %tuple.type.3 = splice_block %return {}
+// CHECK:STDOUT:   %.loc23_54: ref %tuple.type.3 = splice_block %return {}
 // CHECK:STDOUT:   %.loc24_25.2: ref %A = temporary_storage
 // CHECK:STDOUT:   %.loc24_25.3: init %A = class_init (), %.loc24_25.2 [template = constants.%A.val]
 // CHECK:STDOUT:   %.loc24_25.4: ref %A = temporary %.loc24_25.2, %.loc24_25.3
 // CHECK:STDOUT:   %.loc24_25.5: ref %A = converted %.loc24_25.1, %.loc24_25.4
 // CHECK:STDOUT:   %.loc24_25.6: %A = bind_value %.loc24_25.5
-// CHECK:STDOUT:   %GetNoDeduce.call: init %tuple.type.3 = call %GetNoDeduce.specific_fn(%.loc24_25.6) to %.loc23_54.2
+// CHECK:STDOUT:   %GetNoDeduce.call: init %tuple.type.3 = call %GetNoDeduce.specific_fn(%.loc24_25.6) to %.loc23_54
 // CHECK:STDOUT:   return %GetNoDeduce.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 2 - 2
toolchain/check/testdata/class/generic/self.carbon

@@ -113,7 +113,7 @@ class Class(T:! type) {
 // CHECK:STDOUT: !definition:
 // CHECK:STDOUT:   %Class.val: @MakeSelf.%Class (%Class) = struct_value () [symbolic = %Class.val (constants.%Class.val)]
 // CHECK:STDOUT:
-// CHECK:STDOUT:   fn() -> %return: @MakeSelf.%Class (%Class) {
+// CHECK:STDOUT:   fn() -> %return.param_patt: @MakeSelf.%Class (%Class) {
 // CHECK:STDOUT:   !entry:
 // CHECK:STDOUT:     %.loc14_35.1: %empty_struct_type = struct_literal ()
 // CHECK:STDOUT:     %.loc14_35.2: init @MakeSelf.%Class (%Class) = class_init (), %return [symbolic = %Class.val (constants.%Class.val)]
@@ -129,7 +129,7 @@ class Class(T:! type) {
 // CHECK:STDOUT: !definition:
 // CHECK:STDOUT:   %Class.val: @MakeClass.%Class.loc15_28.1 (%Class) = struct_value () [symbolic = %Class.val (constants.%Class.val)]
 // CHECK:STDOUT:
-// CHECK:STDOUT:   fn() -> %return: @MakeClass.%Class.loc15_28.1 (%Class) {
+// CHECK:STDOUT:   fn() -> %return.param_patt: @MakeClass.%Class.loc15_28.1 (%Class) {
 // CHECK:STDOUT:   !entry:
 // CHECK:STDOUT:     %.loc15_40.1: %empty_struct_type = struct_literal ()
 // CHECK:STDOUT:     %.loc15_40.2: init @MakeClass.%Class.loc15_28.1 (%Class) = class_init (), %return [symbolic = %Class.val (constants.%Class.val)]

+ 13 - 13
toolchain/check/testdata/class/import.carbon

@@ -196,8 +196,8 @@ fn Run() {
 // CHECK:STDOUT: imports {
 // CHECK:STDOUT:   %import_ref.1: type = import_ref Main//a, inst+3, loaded [template = constants.%Empty]
 // CHECK:STDOUT:   %import_ref.2: type = import_ref Main//a, inst+8, loaded [template = constants.%Field]
-// CHECK:STDOUT:   %import_ref.3: type = import_ref Main//a, inst+31, loaded [template = constants.%ForwardDeclared.1]
-// CHECK:STDOUT:   %import_ref.4: type = import_ref Main//a, inst+54, loaded [template = constants.%Incomplete]
+// CHECK:STDOUT:   %import_ref.3: type = import_ref Main//a, inst+30, loaded [template = constants.%ForwardDeclared.1]
+// CHECK:STDOUT:   %import_ref.4: type = import_ref Main//a, inst+53, loaded [template = constants.%Incomplete]
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .ImplicitAs = %import_ref.10
 // CHECK:STDOUT:     import Core//prelude
@@ -205,17 +205,17 @@ fn Run() {
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %import_ref.5: <witness> = import_ref Main//a, inst+6, loaded [template = constants.%complete_type.1]
 // CHECK:STDOUT:   %import_ref.6 = import_ref Main//a, inst+4, unloaded
-// CHECK:STDOUT:   %import_ref.7: <witness> = import_ref Main//a, inst+29, loaded [template = constants.%complete_type.2]
+// CHECK:STDOUT:   %import_ref.7: <witness> = import_ref Main//a, inst+28, loaded [template = constants.%complete_type.2]
 // CHECK:STDOUT:   %import_ref.8 = import_ref Main//a, inst+9, unloaded
-// CHECK:STDOUT:   %import_ref.9: %Field.elem = import_ref Main//a, inst+27, loaded [template = %.1]
-// CHECK:STDOUT:   %import_ref.46: <witness> = import_ref Main//a, inst+53, loaded [template = constants.%complete_type.1]
-// CHECK:STDOUT:   %import_ref.47 = import_ref Main//a, inst+32, unloaded
-// CHECK:STDOUT:   %import_ref.48: %F.type = import_ref Main//a, inst+39, loaded [template = constants.%F]
-// CHECK:STDOUT:   %import_ref.49: %G.type = import_ref Main//a, inst+50, loaded [template = constants.%G]
-// CHECK:STDOUT:   %import_ref.50: <witness> = import_ref Main//a, inst+53, loaded [template = constants.%complete_type.1]
-// CHECK:STDOUT:   %import_ref.51 = import_ref Main//a, inst+32, unloaded
-// CHECK:STDOUT:   %import_ref.52 = import_ref Main//a, inst+39, unloaded
-// CHECK:STDOUT:   %import_ref.53 = import_ref Main//a, inst+50, unloaded
+// CHECK:STDOUT:   %import_ref.9: %Field.elem = import_ref Main//a, inst+26, loaded [template = %.1]
+// CHECK:STDOUT:   %import_ref.46: <witness> = import_ref Main//a, inst+52, loaded [template = constants.%complete_type.1]
+// CHECK:STDOUT:   %import_ref.47 = import_ref Main//a, inst+31, unloaded
+// CHECK:STDOUT:   %import_ref.48: %F.type = import_ref Main//a, inst+38, loaded [template = constants.%F]
+// CHECK:STDOUT:   %import_ref.49: %G.type = import_ref Main//a, inst+49, loaded [template = constants.%G]
+// CHECK:STDOUT:   %import_ref.50: <witness> = import_ref Main//a, inst+52, loaded [template = constants.%complete_type.1]
+// CHECK:STDOUT:   %import_ref.51 = import_ref Main//a, inst+31, unloaded
+// CHECK:STDOUT:   %import_ref.52 = import_ref Main//a, inst+38, unloaded
+// CHECK:STDOUT:   %import_ref.53 = import_ref Main//a, inst+49, unloaded
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: file {
@@ -330,5 +330,5 @@ fn Run() {
 // CHECK:STDOUT:
 // CHECK:STDOUT: fn @F[%self.param_patt: %ForwardDeclared.1]();
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @G[addr <unexpected>.inst+399: %ptr.3]();
+// CHECK:STDOUT: fn @G[addr <unexpected>.inst+389: %ptr.3]();
 // CHECK:STDOUT:

+ 8 - 8
toolchain/check/testdata/class/import_base.carbon

@@ -171,22 +171,22 @@ fn Run() {
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
 // CHECK:STDOUT:   %import_ref.1 = import_ref Main//a, inst+3, unloaded
-// CHECK:STDOUT:   %import_ref.2: type = import_ref Main//a, inst+47, loaded [template = constants.%Child]
+// CHECK:STDOUT:   %import_ref.2: type = import_ref Main//a, inst+46, loaded [template = constants.%Child]
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .ImplicitAs = %import_ref.14
 // CHECK:STDOUT:     import Core//prelude
 // CHECK:STDOUT:     import Core//prelude/...
 // CHECK:STDOUT:   }
-// CHECK:STDOUT:   %import_ref.3: <witness> = import_ref Main//a, inst+45, loaded [template = constants.%complete_type.1]
+// CHECK:STDOUT:   %import_ref.3: <witness> = import_ref Main//a, inst+44, loaded [template = constants.%complete_type.1]
 // CHECK:STDOUT:   %import_ref.4 = import_ref Main//a, inst+4, unloaded
 // CHECK:STDOUT:   %import_ref.5: %F.type = import_ref Main//a, inst+10, loaded [template = constants.%F]
 // CHECK:STDOUT:   %import_ref.6 = import_ref Main//a, inst+19, unloaded
-// CHECK:STDOUT:   %import_ref.7: %Base.elem = import_ref Main//a, inst+38, loaded [template = %.1]
-// CHECK:STDOUT:   %import_ref.8 = import_ref Main//a, inst+43, unloaded
-// CHECK:STDOUT:   %import_ref.10: <witness> = import_ref Main//a, inst+54, loaded [template = constants.%complete_type.2]
-// CHECK:STDOUT:   %import_ref.11 = import_ref Main//a, inst+48, unloaded
-// CHECK:STDOUT:   %import_ref.12 = import_ref Main//a, inst+52, unloaded
-// CHECK:STDOUT:   %import_ref.13: type = import_ref Main//a, inst+49, loaded [template = constants.%Base]
+// CHECK:STDOUT:   %import_ref.7: %Base.elem = import_ref Main//a, inst+37, loaded [template = %.1]
+// CHECK:STDOUT:   %import_ref.8 = import_ref Main//a, inst+42, unloaded
+// CHECK:STDOUT:   %import_ref.10: <witness> = import_ref Main//a, inst+53, loaded [template = constants.%complete_type.2]
+// CHECK:STDOUT:   %import_ref.11 = import_ref Main//a, inst+47, unloaded
+// CHECK:STDOUT:   %import_ref.12 = import_ref Main//a, inst+51, unloaded
+// CHECK:STDOUT:   %import_ref.13: type = import_ref Main//a, inst+48, loaded [template = constants.%Base]
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: file {

+ 1 - 1
toolchain/check/testdata/class/inheritance_access.carbon

@@ -321,7 +321,7 @@ class B {
 // CHECK:STDOUT:   complete_type_witness = %complete_type
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @GetPosition[%self.param_patt: %Circle]() -> %return: %tuple.type.2 {
+// CHECK:STDOUT: fn @GetPosition[%self.param_patt: %Circle]() -> %return.param_patt: %tuple.type.2 {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %self.ref.loc13_13: %Circle = name_ref self, %self
 // CHECK:STDOUT:   %x.ref: %Shape.elem = name_ref x, @Shape.%.loc5_18 [template = @Shape.%.loc5_18]

+ 2 - 2
toolchain/check/testdata/class/init.carbon

@@ -122,7 +122,7 @@ fn MakeReorder(n: i32, next: Class*) -> Class {
 // CHECK:STDOUT:   complete_type_witness = %complete_type
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Make(%n.param_patt: %i32, %next.param_patt: %ptr.1) -> %return: %Class {
+// CHECK:STDOUT: fn @Make(%n.param_patt: %i32, %next.param_patt: %ptr.1) -> %return.param_patt: %Class {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %n.ref: %i32 = name_ref n, %n
 // CHECK:STDOUT:   %next.ref: %ptr.1 = name_ref next, %next
@@ -136,7 +136,7 @@ fn MakeReorder(n: i32, next: Class*) -> Class {
 // CHECK:STDOUT:   return %.loc17_32 to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @MakeReorder(%n.param_patt: %i32, %next.param_patt: %ptr.1) -> %return: %Class {
+// CHECK:STDOUT: fn @MakeReorder(%n.param_patt: %i32, %next.param_patt: %ptr.1) -> %return.param_patt: %Class {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %next.ref: %ptr.1 = name_ref next, %next
 // CHECK:STDOUT:   %n.ref: %i32 = name_ref n, %n

+ 1 - 1
toolchain/check/testdata/class/init_nested.carbon

@@ -118,7 +118,7 @@ fn MakeOuter() -> Outer {
 // CHECK:STDOUT:
 // CHECK:STDOUT: fn @MakeInner() -> %Inner;
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @MakeOuter() -> %return: %Outer {
+// CHECK:STDOUT: fn @MakeOuter() -> %return.param_patt: %Outer {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %MakeInner.ref.loc24_16: %MakeInner.type = name_ref MakeInner, file.%MakeInner.decl [template = constants.%MakeInner]
 // CHECK:STDOUT:   %.loc24_45.1: ref %Inner = class_element_access %return, element0

+ 2 - 2
toolchain/check/testdata/class/method.carbon

@@ -143,7 +143,7 @@ fn CallGOnInitializingExpr() -> i32 {
 // CHECK:STDOUT:     %self.param.loc20: %Class = value_param runtime_param0
 // CHECK:STDOUT:     %self.loc20: %Class = bind_name self, %self.param.loc20
 // CHECK:STDOUT:     %return.param.loc20: ref %i32 = out_param runtime_param1
-// CHECK:STDOUT:     %return: ref %i32 = return_slot %return.param.loc20
+// CHECK:STDOUT:     %return.loc20: ref %i32 = return_slot %return.param.loc20
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Call.decl: %Call.type = fn_decl @Call [template = constants.%Call] {
 // CHECK:STDOUT:     %c.patt: %Class = binding_pattern c
@@ -280,7 +280,7 @@ fn CallGOnInitializingExpr() -> i32 {
 // CHECK:STDOUT:     %self.param.loc12: %Class = value_param runtime_param0
 // CHECK:STDOUT:     %self.loc12: %Class = bind_name self, %self.param.loc12
 // CHECK:STDOUT:     %return.param.loc12: ref %i32 = out_param runtime_param1
-// CHECK:STDOUT:     %.loc12_22: ref %i32 = return_slot %return.param.loc12
+// CHECK:STDOUT:     %return.loc12: ref %i32 = return_slot %return.param.loc12
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %G.decl: %G.type = fn_decl @G [template = constants.%G] {
 // CHECK:STDOUT:     %self.patt: %ptr.1 = binding_pattern self

+ 7 - 7
toolchain/check/testdata/class/raw_self.carbon

@@ -103,7 +103,7 @@ fn Class.G[self: Self](r#self: i32) -> (i32, i32) {
 // CHECK:STDOUT:     %self.param.loc21_30: %i32 = value_param runtime_param1
 // CHECK:STDOUT:     %self.loc21_24: %i32 = bind_name r#self, %self.param.loc21_30
 // CHECK:STDOUT:     %return.param.loc21: ref %tuple.type.2 = out_param runtime_param2
-// CHECK:STDOUT:     %return: ref %tuple.type.2 = return_slot %return.param.loc21
+// CHECK:STDOUT:     %return.loc21: ref %tuple.type.2 = return_slot %return.param.loc21
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -154,7 +154,7 @@ fn Class.G[self: Self](r#self: i32) -> (i32, i32) {
 // CHECK:STDOUT:     %self.param.loc13_26: %i32 = value_param runtime_param1
 // CHECK:STDOUT:     %self.loc13_20: %i32 = bind_name r#self, %self.param.loc13_26
 // CHECK:STDOUT:     %return.param.loc13: ref %tuple.type.2 = out_param runtime_param2
-// CHECK:STDOUT:     %.loc13_33: ref %tuple.type.2 = return_slot %return.param.loc13
+// CHECK:STDOUT:     %return.loc13: ref %tuple.type.2 = return_slot %return.param.loc13
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32]
 // CHECK:STDOUT:   %int.make_type_signed: init type = call constants.%Int(%int_32) [template = constants.%i32]
@@ -182,7 +182,7 @@ fn Class.G[self: Self](r#self: i32) -> (i32, i32) {
 // CHECK:STDOUT:   return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @G[%self.param_patt.loc21_16: %Class](%self.param_patt.loc21_30: %i32) -> %return: %tuple.type.2 {
+// CHECK:STDOUT: fn @G[%self.param_patt.loc21_16: %Class](%self.param_patt.loc21_30: %i32) -> %return.param_patt: %tuple.type.2 {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %self.ref.loc22_11: %Class = name_ref self, %self.loc21_12
 // CHECK:STDOUT:   %n.ref: %Class.elem = name_ref n, @Class.%.loc14_8 [template = @Class.%.loc14_8]
@@ -190,12 +190,12 @@ fn Class.G[self: Self](r#self: i32) -> (i32, i32) {
 // CHECK:STDOUT:   %.loc22_15.2: %i32 = bind_value %.loc22_15.1
 // CHECK:STDOUT:   %self.ref.loc22_19: %i32 = name_ref r#self, %self.loc21_24
 // CHECK:STDOUT:   %.loc22_25.1: %tuple.type.2 = tuple_literal (%.loc22_15.2, %self.ref.loc22_19)
-// CHECK:STDOUT:   %tuple.elem0: ref %i32 = tuple_access %return, element0
+// CHECK:STDOUT:   %tuple.elem0: ref %i32 = tuple_access %return.loc21, element0
 // CHECK:STDOUT:   %.loc22_25.2: init %i32 = initialize_from %.loc22_15.2 to %tuple.elem0
-// CHECK:STDOUT:   %tuple.elem1: ref %i32 = tuple_access %return, element1
+// CHECK:STDOUT:   %tuple.elem1: ref %i32 = tuple_access %return.loc21, element1
 // CHECK:STDOUT:   %.loc22_25.3: init %i32 = initialize_from %self.ref.loc22_19 to %tuple.elem1
-// CHECK:STDOUT:   %.loc22_25.4: init %tuple.type.2 = tuple_init (%.loc22_25.2, %.loc22_25.3) to %return
+// CHECK:STDOUT:   %.loc22_25.4: init %tuple.type.2 = tuple_init (%.loc22_25.2, %.loc22_25.3) to %return.loc21
 // CHECK:STDOUT:   %.loc22_26: init %tuple.type.2 = converted %.loc22_25.1, %.loc22_25.4
-// CHECK:STDOUT:   return %.loc22_26 to %return
+// CHECK:STDOUT:   return %.loc22_26 to %return.loc21
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 2 - 2
toolchain/check/testdata/class/reenter_scope.carbon

@@ -58,7 +58,7 @@ fn Class.F() -> i32 {
 // CHECK:STDOUT:     %.loc16_17.1: type = value_of_initializer %int.make_type_signed.loc16 [template = constants.%i32]
 // CHECK:STDOUT:     %.loc16_17.2: type = converted %int.make_type_signed.loc16, %.loc16_17.1 [template = constants.%i32]
 // CHECK:STDOUT:     %return.param.loc16: ref %i32 = out_param runtime_param0
-// CHECK:STDOUT:     %return: ref %i32 = return_slot %return.param.loc16
+// CHECK:STDOUT:     %return.loc16: ref %i32 = return_slot %return.param.loc16
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -72,7 +72,7 @@ fn Class.F() -> i32 {
 // CHECK:STDOUT:     %.loc12_13.1: type = value_of_initializer %int.make_type_signed.loc12 [template = constants.%i32]
 // CHECK:STDOUT:     %.loc12_13.2: type = converted %int.make_type_signed.loc12, %.loc12_13.1 [template = constants.%i32]
 // CHECK:STDOUT:     %return.param.loc12: ref %i32 = out_param runtime_param0
-// CHECK:STDOUT:     %.loc12_10: ref %i32 = return_slot %return.param.loc12
+// CHECK:STDOUT:     %return.loc12: ref %i32 = return_slot %return.param.loc12
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %G.decl: %G.type = fn_decl @G [template = constants.%G] {
 // CHECK:STDOUT:     %return.patt: %i32 = return_slot_pattern

+ 4 - 4
toolchain/check/testdata/class/self.carbon

@@ -88,7 +88,7 @@ class Class {
 // CHECK:STDOUT:     %self.param.loc11: %Class = value_param runtime_param0
 // CHECK:STDOUT:     %self.loc11: %Class = bind_name self, %self.param.loc11
 // CHECK:STDOUT:     %return.param.loc11: ref %i32 = out_param runtime_param1
-// CHECK:STDOUT:     %return: ref %i32 = return_slot %return.param.loc11
+// CHECK:STDOUT:     %return.loc11: ref %i32 = return_slot %return.param.loc11
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %G.decl: %G.type = fn_decl @G [template = constants.%G] {
 // CHECK:STDOUT:     %self.patt: %ptr.1 = binding_pattern self
@@ -106,7 +106,7 @@ class Class {
 // CHECK:STDOUT:     %self.param.loc15: %ptr.1 = value_param runtime_param0
 // CHECK:STDOUT:     %self.loc15: %ptr.1 = bind_name self, %self.param.loc15
 // CHECK:STDOUT:     %return.param.loc15: ref %i32 = out_param runtime_param1
-// CHECK:STDOUT:     %return: ref %i32 = return_slot %return.param.loc15
+// CHECK:STDOUT:     %return.loc15: ref %i32 = return_slot %return.param.loc15
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -125,7 +125,7 @@ class Class {
 // CHECK:STDOUT:     %self.param.loc5: %Class = value_param runtime_param0
 // CHECK:STDOUT:     %self.loc5: %Class = bind_name self, %self.param.loc5
 // CHECK:STDOUT:     %return.param.loc5: ref %i32 = out_param runtime_param1
-// CHECK:STDOUT:     %.loc5_22: ref %i32 = return_slot %return.param.loc5
+// CHECK:STDOUT:     %return.loc5: ref %i32 = return_slot %return.param.loc5
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %G.decl: %G.type = fn_decl @G [template = constants.%G] {
 // CHECK:STDOUT:     %self.patt: %ptr.1 = binding_pattern self
@@ -143,7 +143,7 @@ class Class {
 // CHECK:STDOUT:     %self.param.loc6: %ptr.1 = value_param runtime_param0
 // CHECK:STDOUT:     %self.loc6: %ptr.1 = bind_name self, %self.param.loc6
 // CHECK:STDOUT:     %return.param.loc6: ref %i32 = out_param runtime_param1
-// CHECK:STDOUT:     %.loc6_28: ref %i32 = return_slot %return.param.loc6
+// CHECK:STDOUT:     %return.loc6: ref %i32 = return_slot %return.param.loc6
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32]
 // CHECK:STDOUT:   %int.make_type_signed: init type = call constants.%Int(%int_32) [template = constants.%i32]

+ 2 - 2
toolchain/check/testdata/class/self_conversion.carbon

@@ -99,7 +99,7 @@ fn Call(p: Derived*) -> i32 {
 // CHECK:STDOUT:     %self.param.loc22: %Base = value_param runtime_param0
 // CHECK:STDOUT:     %self.loc22: %Base = bind_name self, %self.param.loc22
 // CHECK:STDOUT:     %return.param.loc22: ref %i32 = out_param runtime_param1
-// CHECK:STDOUT:     %return: ref %i32 = return_slot %return.param.loc22
+// CHECK:STDOUT:     %return.loc22: ref %i32 = return_slot %return.param.loc22
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %AddrSelfBase.decl: %AddrSelfBase.type = fn_decl @AddrSelfBase [template = constants.%AddrSelfBase] {
 // CHECK:STDOUT:     %self.patt: %ptr.2 = binding_pattern self
@@ -161,7 +161,7 @@ fn Call(p: Derived*) -> i32 {
 // CHECK:STDOUT:     %self.param.loc18: %Base = value_param runtime_param0
 // CHECK:STDOUT:     %self.loc18: %Base = bind_name self, %self.param.loc18
 // CHECK:STDOUT:     %return.param.loc18: ref %i32 = out_param runtime_param1
-// CHECK:STDOUT:     %.loc18_29: ref %i32 = return_slot %return.param.loc18
+// CHECK:STDOUT:     %return.loc18: ref %i32 = return_slot %return.param.loc18
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %AddrSelfBase.decl: %AddrSelfBase.type = fn_decl @AddrSelfBase [template = constants.%AddrSelfBase] {
 // CHECK:STDOUT:     %self.patt: %ptr.2 = binding_pattern self

+ 3 - 3
toolchain/check/testdata/class/self_type.carbon

@@ -69,7 +69,7 @@ fn Class.F[self: Self]() -> i32 {
 // CHECK:STDOUT:     %self.param.loc21: %Class = value_param runtime_param0
 // CHECK:STDOUT:     %self.loc21: %Class = bind_name self, %self.param.loc21
 // CHECK:STDOUT:     %return.param.loc21: ref %i32 = out_param runtime_param1
-// CHECK:STDOUT:     %return: ref %i32 = return_slot %return.param.loc21
+// CHECK:STDOUT:     %return.loc21: ref %i32 = return_slot %return.param.loc21
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -88,7 +88,7 @@ fn Class.F[self: Self]() -> i32 {
 // CHECK:STDOUT:     %self.param.loc12: %Class = value_param runtime_param0
 // CHECK:STDOUT:     %self.loc12: %Class = bind_name self, %self.param.loc12
 // CHECK:STDOUT:     %return.param.loc12: ref %i32 = out_param runtime_param1
-// CHECK:STDOUT:     %.loc12_22: ref %i32 = return_slot %return.param.loc12
+// CHECK:STDOUT:     %return.loc12: ref %i32 = return_slot %return.param.loc12
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Make.decl: %Make.type = fn_decl @Make [template = constants.%Make] {
 // CHECK:STDOUT:     %return.patt: %Class = return_slot_pattern
@@ -127,7 +127,7 @@ fn Class.F[self: Self]() -> i32 {
 // CHECK:STDOUT:   return %.loc22_23.2
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Make() -> %return: %Class {
+// CHECK:STDOUT: fn @Make() -> %return.param_patt: %Class {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %Self.ref.loc14: type = name_ref Self, constants.%Class [template = constants.%Class]
 // CHECK:STDOUT:   %s: ref %Class = bind_name s, %return

+ 3 - 3
toolchain/check/testdata/const/import.carbon

@@ -109,9 +109,9 @@ var a_ptr: const i32* = a_ptr_ref;
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
-// CHECK:STDOUT:   %import_ref.1 = import_ref Implicit//default, inst+25, unloaded
-// CHECK:STDOUT:   %import_ref.2: ref %const = import_ref Implicit//default, inst+34, loaded
-// CHECK:STDOUT:   %import_ref.3: ref %ptr = import_ref Implicit//default, inst+46, loaded
+// CHECK:STDOUT:   %import_ref.1 = import_ref Implicit//default, inst+24, unloaded
+// CHECK:STDOUT:   %import_ref.2: ref %const = import_ref Implicit//default, inst+33, loaded
+// CHECK:STDOUT:   %import_ref.3: ref %ptr = import_ref Implicit//default, inst+45, loaded
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .Int = %import_ref.4
 // CHECK:STDOUT:     import Core//prelude

+ 9 - 9
toolchain/check/testdata/deduce/array.carbon

@@ -215,7 +215,7 @@ fn G() -> C {
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @G() -> %return: %C {
+// CHECK:STDOUT: fn @G() -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %C.ref.loc9: type = name_ref C, file.%C.decl [template = constants.%C]
 // CHECK:STDOUT:   %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3]
@@ -244,9 +244,9 @@ fn G() -> C {
 // CHECK:STDOUT:   %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F]
 // CHECK:STDOUT:   %a.ref: ref %array_type.2 = name_ref a, %a
 // CHECK:STDOUT:   %F.specific_fn: <specific function> = specific_function %F.ref, @F(constants.%C) [template = constants.%F.specific_fn]
-// CHECK:STDOUT:   %.loc8_8.2: ref %C = splice_block %return {}
+// CHECK:STDOUT:   %.loc8: ref %C = splice_block %return {}
 // CHECK:STDOUT:   %.loc10: %array_type.2 = bind_value %a.ref
-// CHECK:STDOUT:   %F.call: init %C = call %F.specific_fn(%.loc10) to %.loc8_8.2
+// CHECK:STDOUT:   %F.call: init %C = call %F.specific_fn(%.loc10) to %.loc8
 // CHECK:STDOUT:   return %F.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -381,7 +381,7 @@ fn G() -> C {
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @G() -> %return: %C {
+// CHECK:STDOUT: fn @G() -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %C.ref.loc13: type = name_ref C, file.%C.decl [template = constants.%C]
 // CHECK:STDOUT:   %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3]
@@ -536,7 +536,7 @@ fn G() -> C {
 // CHECK:STDOUT:   fn[%T.param_patt: type, %N.param_patt: %i32](%a.param_patt: <error>) -> @F.%T.loc10_6.2 (%T);
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @G() -> %return: %C {
+// CHECK:STDOUT: fn @G() -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %C.ref.loc13: type = name_ref C, file.%C.decl [template = constants.%C]
 // CHECK:STDOUT:   %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3]
@@ -696,7 +696,7 @@ fn G() -> C {
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @G() -> %return: %C {
+// CHECK:STDOUT: fn @G() -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %C.ref.loc10: type = name_ref C, file.%C.decl [template = constants.%C]
 // CHECK:STDOUT:   %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3]
@@ -725,9 +725,9 @@ fn G() -> C {
 // CHECK:STDOUT:   %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F]
 // CHECK:STDOUT:   %a.ref: ref %array_type.2 = name_ref a, %a
 // CHECK:STDOUT:   %F.specific_fn: <specific function> = specific_function %F.ref, @F(constants.%C) [template = constants.%F.specific_fn]
-// CHECK:STDOUT:   %.loc8_8.2: ref %C = splice_block %return {}
+// CHECK:STDOUT:   %.loc8: ref %C = splice_block %return {}
 // CHECK:STDOUT:   %.loc21: %array_type.3 = converted %a.ref, <error> [template = <error>]
-// CHECK:STDOUT:   %F.call: init %C = call %F.specific_fn(<error>) to %.loc8_8.2
+// CHECK:STDOUT:   %F.call: init %C = call %F.specific_fn(<error>) to %.loc8
 // CHECK:STDOUT:   return %F.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -873,7 +873,7 @@ fn G() -> C {
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @G() -> %return: %C {
+// CHECK:STDOUT: fn @G() -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %D.ref: type = name_ref D, file.%D.decl [template = constants.%D]
 // CHECK:STDOUT:   %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3]

+ 13 - 13
toolchain/check/testdata/deduce/generic_type.carbon

@@ -188,13 +188,13 @@ fn G() -> i32 {
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @G(%p.param_patt: %C.2) -> %return: %D {
+// CHECK:STDOUT: fn @G(%p.param_patt: %C.2) -> %return.param_patt: %D {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F]
 // CHECK:STDOUT:   %p.ref: %C.2 = name_ref p, %p
 // CHECK:STDOUT:   %F.specific_fn: <specific function> = specific_function %F.ref, @F(constants.%D) [template = constants.%F.specific_fn.2]
-// CHECK:STDOUT:   %.loc9_15.2: ref %D = splice_block %return {}
-// CHECK:STDOUT:   %F.call: init %D = call %F.specific_fn(%p.ref) to %.loc9_15.2
+// CHECK:STDOUT:   %.loc9: ref %D = splice_block %return {}
+// CHECK:STDOUT:   %F.call: init %D = call %F.specific_fn(%p.ref) to %.loc9
 // CHECK:STDOUT:   return %F.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -352,24 +352,24 @@ fn G() -> i32 {
 // CHECK:STDOUT: !definition:
 // CHECK:STDOUT:   %F.specific_fn.loc7_39.2: <specific function> = specific_function constants.%F, @F(%T.loc7_6.2) [symbolic = %F.specific_fn.loc7_39.2 (constants.%F.specific_fn.1)]
 // CHECK:STDOUT:
-// CHECK:STDOUT:   fn[%T.param_patt: type](%p.param_patt: @F.%I.loc7_22.2 (%I.1)) -> %return: %C {
+// CHECK:STDOUT:   fn[%T.param_patt: type](%p.param_patt: @F.%I.loc7_22.2 (%I.1)) -> %return.param_patt: %C {
 // CHECK:STDOUT:   !entry:
 // CHECK:STDOUT:     %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F]
 // CHECK:STDOUT:     %p.ref: @F.%I.loc7_22.2 (%I.1) = name_ref p, %p
 // CHECK:STDOUT:     %F.specific_fn.loc7_39.1: <specific function> = specific_function %F.ref, @F(constants.%T) [symbolic = %F.specific_fn.loc7_39.2 (constants.%F.specific_fn.1)]
-// CHECK:STDOUT:     %.loc7_25.2: ref %C = splice_block %return {}
-// CHECK:STDOUT:     %F.call: init %C = call %F.specific_fn.loc7_39.1(%p.ref) to %.loc7_25.2
+// CHECK:STDOUT:     %.loc7: ref %C = splice_block %return {}
+// CHECK:STDOUT:     %F.call: init %C = call %F.specific_fn.loc7_39.1(%p.ref) to %.loc7
 // CHECK:STDOUT:     return %F.call to %return
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @G(%p.param_patt: %I.2) -> %return: %C {
+// CHECK:STDOUT: fn @G(%p.param_patt: %I.2) -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F]
 // CHECK:STDOUT:   %p.ref: %I.2 = name_ref p, %p
 // CHECK:STDOUT:   %F.specific_fn: <specific function> = specific_function %F.ref, @F(constants.%C) [template = constants.%F.specific_fn.2]
-// CHECK:STDOUT:   %.loc9_15.2: ref %C = splice_block %return {}
-// CHECK:STDOUT:   %F.call: init %C = call %F.specific_fn(%p.ref) to %.loc9_15.2
+// CHECK:STDOUT:   %.loc9: ref %C = splice_block %return {}
+// CHECK:STDOUT:   %F.call: init %C = call %F.specific_fn(%p.ref) to %.loc9
 // CHECK:STDOUT:   return %F.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -598,7 +598,7 @@ fn G() -> i32 {
 // CHECK:STDOUT: !definition:
 // CHECK:STDOUT:   %F.specific_fn.loc13_67.2: <specific function> = specific_function constants.%F, @F(%T.loc13_6.2, %U.loc13_16.2) [symbolic = %F.specific_fn.loc13_67.2 (constants.%F.specific_fn.1)]
 // CHECK:STDOUT:
-// CHECK:STDOUT:   fn[%T.param_patt: type, %U.param_patt: type](%p.param_patt: @F.%Inner.loc13_45.2 (%Inner.1)) -> %return: @F.%tuple.type (%tuple.type.2) {
+// CHECK:STDOUT:   fn[%T.param_patt: type, %U.param_patt: type](%p.param_patt: @F.%Inner.loc13_45.2 (%Inner.1)) -> %return.param_patt: @F.%tuple.type (%tuple.type.2) {
 // CHECK:STDOUT:   !entry:
 // CHECK:STDOUT:     %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F]
 // CHECK:STDOUT:     %p.ref: @F.%Inner.loc13_45.2 (%Inner.1) = name_ref p, %p
@@ -620,13 +620,13 @@ fn G() -> i32 {
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @G(%p.param_patt: %Inner.2) -> %return: %tuple.type.3 {
+// CHECK:STDOUT: fn @G(%p.param_patt: %Inner.2) -> %return.param_patt: %tuple.type.3 {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F]
 // CHECK:STDOUT:   %p.ref: %Inner.2 = name_ref p, %p
 // CHECK:STDOUT:   %F.specific_fn: <specific function> = specific_function %F.ref, @F(constants.%C, constants.%D) [template = constants.%F.specific_fn.2]
-// CHECK:STDOUT:   %.loc15_28.2: ref %tuple.type.3 = splice_block %return {}
-// CHECK:STDOUT:   %F.call: init %tuple.type.3 = call %F.specific_fn(%p.ref) to %.loc15_28.2
+// CHECK:STDOUT:   %.loc15_28: ref %tuple.type.3 = splice_block %return {}
+// CHECK:STDOUT:   %F.call: init %tuple.type.3 = call %F.specific_fn(%p.ref) to %.loc15_28
 // CHECK:STDOUT:   return %F.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 4 - 4
toolchain/check/testdata/deduce/tuple.carbon

@@ -172,13 +172,13 @@ fn G(pair: (C, D)) -> D {
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @G(%pair.param_patt: %tuple.type.3) -> %return: %D {
+// CHECK:STDOUT: fn @G(%pair.param_patt: %tuple.type.3) -> %return.param_patt: %D {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F]
 // CHECK:STDOUT:   %pair.ref: %tuple.type.3 = name_ref pair, %pair
 // CHECK:STDOUT:   %F.specific_fn: <specific function> = specific_function %F.ref, @F(constants.%C, constants.%D) [template = constants.%F.specific_fn.2]
-// CHECK:STDOUT:   %.loc9_20.2: ref %D = splice_block %return {}
-// CHECK:STDOUT:   %F.call: init %D = call %F.specific_fn(%pair.ref) to %.loc9_20.2
+// CHECK:STDOUT:   %.loc9_20: ref %D = splice_block %return {}
+// CHECK:STDOUT:   %F.call: init %D = call %F.specific_fn(%pair.ref) to %.loc9_20
 // CHECK:STDOUT:   return %F.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -549,7 +549,7 @@ fn G(pair: (C, D)) -> D {
 // CHECK:STDOUT:   fn[%T.param_patt: type](%pair.param_patt: @F.%tuple.type (%tuple.type.2)) -> @F.%T.loc7_6.2 (%T);
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @G(%pair.param_patt: %tuple.type.3) -> %return: %D {
+// CHECK:STDOUT: fn @G(%pair.param_patt: %tuple.type.3) -> %return.param_patt: %D {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F]
 // CHECK:STDOUT:   %pair.ref: %tuple.type.3 = name_ref pair, %pair

+ 10 - 10
toolchain/check/testdata/deduce/type_operator.carbon

@@ -158,13 +158,13 @@ fn G(p: C*) -> const C {
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @G(%p.param_patt: %ptr.2) -> %return: %C {
+// CHECK:STDOUT: fn @G(%p.param_patt: %ptr.2) -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F]
 // CHECK:STDOUT:   %p.ref: %ptr.2 = name_ref p, %p
 // CHECK:STDOUT:   %F.specific_fn: <specific function> = specific_function %F.ref, @F(constants.%C) [template = constants.%F.specific_fn.2]
-// CHECK:STDOUT:   %.loc8_13.2: ref %C = splice_block %return {}
-// CHECK:STDOUT:   %F.call: init %C = call %F.specific_fn(%p.ref) to %.loc8_13.2
+// CHECK:STDOUT:   %.loc8: ref %C = splice_block %return {}
+// CHECK:STDOUT:   %F.call: init %C = call %F.specific_fn(%p.ref) to %.loc8
 // CHECK:STDOUT:   return %F.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -293,13 +293,13 @@ fn G(p: C*) -> const C {
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @G(%p.param_patt: %ptr.2) -> %return: %C {
+// CHECK:STDOUT: fn @G(%p.param_patt: %ptr.2) -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F]
 // CHECK:STDOUT:   %p.ref: %ptr.2 = name_ref p, %p
 // CHECK:STDOUT:   %F.specific_fn: <specific function> = specific_function %F.ref, @F(constants.%C) [template = constants.%F.specific_fn.2]
-// CHECK:STDOUT:   %.loc8_19.2: ref %C = splice_block %return {}
-// CHECK:STDOUT:   %F.call: init %C = call %F.specific_fn(%p.ref) to %.loc8_19.2
+// CHECK:STDOUT:   %.loc8: ref %C = splice_block %return {}
+// CHECK:STDOUT:   %F.call: init %C = call %F.specific_fn(%p.ref) to %.loc8
 // CHECK:STDOUT:   return %F.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -429,13 +429,13 @@ fn G(p: C*) -> const C {
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @G(%p.param_patt: %ptr.2) -> %return: %const {
+// CHECK:STDOUT: fn @G(%p.param_patt: %ptr.2) -> %return.param_patt: %const {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F]
 // CHECK:STDOUT:   %p.ref: %ptr.2 = name_ref p, %p
 // CHECK:STDOUT:   %F.specific_fn: <specific function> = specific_function %F.ref, @F(constants.%const) [template = constants.%F.specific_fn.2]
-// CHECK:STDOUT:   %.loc8_19.2: ref %const = splice_block %return {}
-// CHECK:STDOUT:   %F.call: init %const = call %F.specific_fn(%p.ref) to %.loc8_19.2
+// CHECK:STDOUT:   %.loc8: ref %const = splice_block %return {}
+// CHECK:STDOUT:   %F.call: init %const = call %F.specific_fn(%p.ref) to %.loc8
 // CHECK:STDOUT:   return %F.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -563,7 +563,7 @@ fn G(p: C*) -> const C {
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @G(%p.param_patt: %ptr.2) -> %return: %const.2 {
+// CHECK:STDOUT: fn @G(%p.param_patt: %ptr.2) -> %return.param_patt: %const.2 {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F]
 // CHECK:STDOUT:   %p.ref: %ptr.2 = name_ref p, %p

+ 3 - 3
toolchain/check/testdata/expr_category/in_place_tuple_init.carbon

@@ -103,7 +103,7 @@ fn H() -> i32 {
 // CHECK:STDOUT:
 // CHECK:STDOUT: fn @F() -> %tuple.type.2;
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @G() -> %return: %tuple.type.2 {
+// CHECK:STDOUT: fn @G() -> %return.param_patt: %tuple.type.2 {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %int_32.loc14_11: Core.IntLiteral = int_value 32 [template = constants.%int_32]
 // CHECK:STDOUT:   %int.make_type_signed.loc14_11: init type = call constants.%Int(%int_32.loc14_11) [template = constants.%i32]
@@ -127,8 +127,8 @@ fn H() -> i32 {
 // CHECK:STDOUT:   %F.call.loc15: init %tuple.type.2 = call %F.ref.loc15() to %.loc15
 // CHECK:STDOUT:   assign %v.ref, %F.call.loc15
 // CHECK:STDOUT:   %F.ref.loc16: %F.type = name_ref F, file.%F.decl [template = constants.%F]
-// CHECK:STDOUT:   %.loc13_8.2: ref %tuple.type.2 = splice_block %return {}
-// CHECK:STDOUT:   %F.call.loc16: init %tuple.type.2 = call %F.ref.loc16() to %.loc13_8.2
+// CHECK:STDOUT:   %.loc13_8: ref %tuple.type.2 = splice_block %return {}
+// CHECK:STDOUT:   %F.call.loc16: init %tuple.type.2 = call %F.ref.loc16() to %.loc13_8
 // CHECK:STDOUT:   return %F.call.loc16 to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 6 - 6
toolchain/check/testdata/function/builtin/fail_redefined.carbon

@@ -93,7 +93,7 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd";
 // CHECK:STDOUT:     %m.param.loc11: %i32 = value_param runtime_param1
 // CHECK:STDOUT:     %m.loc11: %i32 = bind_name m, %m.param.loc11
 // CHECK:STDOUT:     %return.param.loc11: ref %i32 = out_param runtime_param2
-// CHECK:STDOUT:     %.loc11_22: ref %i32 = return_slot %return.param.loc11
+// CHECK:STDOUT:     %return.loc11: ref %i32 = return_slot %return.param.loc11
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %A.decl.loc19: %A.type = fn_decl @A [template = constants.%A] {
 // CHECK:STDOUT:     %n.patt: %i32 = binding_pattern n
@@ -120,7 +120,7 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd";
 // CHECK:STDOUT:     %m.param.loc19: %i32 = value_param runtime_param1
 // CHECK:STDOUT:     %m.loc19: %i32 = bind_name m, %m.param.loc19
 // CHECK:STDOUT:     %return.param.loc19: ref %i32 = out_param runtime_param2
-// CHECK:STDOUT:     %return: ref %i32 = return_slot %return.param.loc19
+// CHECK:STDOUT:     %return.loc19: ref %i32 = return_slot %return.param.loc19
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %B.decl.loc21: %B.type = fn_decl @B [template = constants.%B] {
 // CHECK:STDOUT:     %n.patt: %i32 = binding_pattern n
@@ -147,7 +147,7 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd";
 // CHECK:STDOUT:     %m.param.loc21: %i32 = value_param runtime_param1
 // CHECK:STDOUT:     %m.loc21: %i32 = bind_name m, %m.param.loc21
 // CHECK:STDOUT:     %return.param.loc21: ref %i32 = out_param runtime_param2
-// CHECK:STDOUT:     %.loc21_22: ref %i32 = return_slot %return.param.loc21
+// CHECK:STDOUT:     %return.loc21: ref %i32 = return_slot %return.param.loc21
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %B.decl.loc29: %B.type = fn_decl @B [template = constants.%B] {
 // CHECK:STDOUT:     %n.patt: %i32 = binding_pattern n
@@ -174,7 +174,7 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd";
 // CHECK:STDOUT:     %m.param.loc29: %i32 = value_param runtime_param1
 // CHECK:STDOUT:     %m.loc29: %i32 = bind_name m, %m.param.loc29
 // CHECK:STDOUT:     %return.param.loc29: ref %i32 = out_param runtime_param2
-// CHECK:STDOUT:     %return: ref %i32 = return_slot %return.param.loc29
+// CHECK:STDOUT:     %return.loc29: ref %i32 = return_slot %return.param.loc29
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %C.decl.loc31: %C.type = fn_decl @C [template = constants.%C] {
 // CHECK:STDOUT:     %n.patt: %i32 = binding_pattern n
@@ -201,7 +201,7 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd";
 // CHECK:STDOUT:     %m.param.loc31: %i32 = value_param runtime_param1
 // CHECK:STDOUT:     %m.loc31: %i32 = bind_name m, %m.param.loc31
 // CHECK:STDOUT:     %return.param.loc31: ref %i32 = out_param runtime_param2
-// CHECK:STDOUT:     %.loc31_22: ref %i32 = return_slot %return.param.loc31
+// CHECK:STDOUT:     %return.loc31: ref %i32 = return_slot %return.param.loc31
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %C.decl.loc38: %C.type = fn_decl @C [template = constants.%C] {
 // CHECK:STDOUT:     %n.patt: %i32 = binding_pattern n
@@ -228,7 +228,7 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd";
 // CHECK:STDOUT:     %m.param.loc38: %i32 = value_param runtime_param1
 // CHECK:STDOUT:     %m.loc38: %i32 = bind_name m, %m.param.loc38
 // CHECK:STDOUT:     %return.param.loc38: ref %i32 = out_param runtime_param2
-// CHECK:STDOUT:     %return: ref %i32 = return_slot %return.param.loc38
+// CHECK:STDOUT:     %return.loc38: ref %i32 = return_slot %return.param.loc38
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 2 - 2
toolchain/check/testdata/function/call/prefer_unqualified_lookup.carbon

@@ -87,7 +87,7 @@ fn Class(F:! type).Inner.G() -> i32 { return F(); }
 // CHECK:STDOUT:     %.loc13_33.1: type = value_of_initializer %int.make_type_signed.loc13 [template = constants.%i32]
 // CHECK:STDOUT:     %.loc13_33.2: type = converted %int.make_type_signed.loc13, %.loc13_33.1 [template = constants.%i32]
 // CHECK:STDOUT:     %return.param.loc13: ref %i32 = out_param runtime_param0
-// CHECK:STDOUT:     %return: ref %i32 = return_slot %return.param.loc13
+// CHECK:STDOUT:     %return.loc13: ref %i32 = return_slot %return.param.loc13
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -137,7 +137,7 @@ fn Class(F:! type).Inner.G() -> i32 { return F(); }
 // CHECK:STDOUT:       %.loc9_15.1: type = value_of_initializer %int.make_type_signed.loc9 [template = constants.%i32]
 // CHECK:STDOUT:       %.loc9_15.2: type = converted %int.make_type_signed.loc9, %.loc9_15.1 [template = constants.%i32]
 // CHECK:STDOUT:       %return.param.loc9: ref %i32 = out_param runtime_param0
-// CHECK:STDOUT:       %.loc9_12: ref %i32 = return_slot %return.param.loc9
+// CHECK:STDOUT:       %return.loc9: ref %i32 = return_slot %return.param.loc9
 // CHECK:STDOUT:     }
 // CHECK:STDOUT:     %complete_type: <witness> = complete_type_witness %empty_struct_type [template = constants.%complete_type]
 // CHECK:STDOUT:

+ 29 - 29
toolchain/check/testdata/function/declaration/import.carbon

@@ -487,14 +487,14 @@ import library "extern_api";
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
 // CHECK:STDOUT:   %import_ref.1: %A.type = import_ref Main//api, inst+3, loaded [template = constants.%A]
-// CHECK:STDOUT:   %import_ref.2: %B.type = import_ref Main//api, inst+34, loaded [template = constants.%B]
-// CHECK:STDOUT:   %import_ref.3: %C.type = import_ref Main//api, inst+59, loaded [template = constants.%C]
-// CHECK:STDOUT:   %import_ref.4: %D.type = import_ref Main//api, inst+62, loaded [template = constants.%D]
-// CHECK:STDOUT:   %import_ref.5: <namespace> = import_ref Main//api, inst+65, loaded
+// CHECK:STDOUT:   %import_ref.2: %B.type = import_ref Main//api, inst+33, loaded [template = constants.%B]
+// CHECK:STDOUT:   %import_ref.3: %C.type = import_ref Main//api, inst+58, loaded [template = constants.%C]
+// CHECK:STDOUT:   %import_ref.4: %D.type = import_ref Main//api, inst+61, loaded [template = constants.%D]
+// CHECK:STDOUT:   %import_ref.5: <namespace> = import_ref Main//api, inst+64, loaded
 // CHECK:STDOUT:   %NS: <namespace> = namespace %import_ref.5, [template] {
 // CHECK:STDOUT:     .E = %import_ref.6
 // CHECK:STDOUT:   }
-// CHECK:STDOUT:   %import_ref.6: %E.type = import_ref Main//api, inst+66, loaded [template = constants.%E]
+// CHECK:STDOUT:   %import_ref.6: %E.type = import_ref Main//api, inst+65, loaded [template = constants.%E]
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .Int = %import_ref.7
 // CHECK:STDOUT:     .ImplicitAs = %import_ref.8
@@ -628,7 +628,7 @@ import library "extern_api";
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
-// CHECK:STDOUT:   %import_ref.5: <namespace> = import_ref Main//api, inst+65, loaded
+// CHECK:STDOUT:   %import_ref.5: <namespace> = import_ref Main//api, inst+64, loaded
 // CHECK:STDOUT:   %NS: <namespace> = namespace %import_ref.5, [template] {
 // CHECK:STDOUT:     .E = file.%E.decl
 // CHECK:STDOUT:   }
@@ -669,7 +669,7 @@ import library "extern_api";
 // CHECK:STDOUT:     %b.param: %i32 = value_param runtime_param0
 // CHECK:STDOUT:     %b: %i32 = bind_name b, %b.param
 // CHECK:STDOUT:     %return.param: ref %i32 = out_param runtime_param1
-// CHECK:STDOUT:     %.loc23_21: ref %i32 = return_slot %return.param
+// CHECK:STDOUT:     %return: ref %i32 = return_slot %return.param
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %C.decl: %C.type = fn_decl @C [template = constants.%C] {} {
 // CHECK:STDOUT:     %int_32.loc32_17: Core.IntLiteral = int_value 32 [template = constants.%int_32]
@@ -686,7 +686,7 @@ import library "extern_api";
 // CHECK:STDOUT:     %c.param: %tuple.type.2 = value_param runtime_param0
 // CHECK:STDOUT:     %c: %tuple.type.2 = bind_name c, %c.param
 // CHECK:STDOUT:     %return.param: ref %struct_type.c = out_param runtime_param1
-// CHECK:STDOUT:     %.loc32_24: ref %struct_type.c = return_slot %return.param
+// CHECK:STDOUT:     %return: ref %struct_type.c = return_slot %return.param
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %D.decl: %D.type = fn_decl @D [template = constants.%D] {} {}
 // CHECK:STDOUT:   %E.decl: %E.type = fn_decl @E [template = constants.%E] {} {}
@@ -799,7 +799,7 @@ import library "extern_api";
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
-// CHECK:STDOUT:   %import_ref.5: <namespace> = import_ref Main//extern_api, inst+65, loaded
+// CHECK:STDOUT:   %import_ref.5: <namespace> = import_ref Main//extern_api, inst+64, loaded
 // CHECK:STDOUT:   %NS: <namespace> = namespace %import_ref.5, [template] {
 // CHECK:STDOUT:     .E = file.%E.decl
 // CHECK:STDOUT:   }
@@ -840,7 +840,7 @@ import library "extern_api";
 // CHECK:STDOUT:     %b.param: %i32 = value_param runtime_param0
 // CHECK:STDOUT:     %b: %i32 = bind_name b, %b.param
 // CHECK:STDOUT:     %return.param: ref %i32 = out_param runtime_param1
-// CHECK:STDOUT:     %.loc7_21: ref %i32 = return_slot %return.param
+// CHECK:STDOUT:     %return: ref %i32 = return_slot %return.param
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %C.decl: %C.type = fn_decl @C [template = constants.%C] {} {
 // CHECK:STDOUT:     %int_32.loc8_17: Core.IntLiteral = int_value 32 [template = constants.%int_32]
@@ -857,7 +857,7 @@ import library "extern_api";
 // CHECK:STDOUT:     %c.param: %tuple.type.2 = value_param runtime_param0
 // CHECK:STDOUT:     %c: %tuple.type.2 = bind_name c, %c.param
 // CHECK:STDOUT:     %return.param: ref %struct_type.c = out_param runtime_param1
-// CHECK:STDOUT:     %.loc8_24: ref %struct_type.c = return_slot %return.param
+// CHECK:STDOUT:     %return: ref %struct_type.c = return_slot %return.param
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %D.decl: %D.type = fn_decl @D [template = constants.%D] {} {}
 // CHECK:STDOUT:   %E.decl: %E.type = fn_decl @E [template = constants.%E] {} {}
@@ -970,14 +970,14 @@ import library "extern_api";
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
 // CHECK:STDOUT:   %import_ref.1: %A.type = import_ref Main//api, inst+3, loaded [template = constants.%A]
-// CHECK:STDOUT:   %import_ref.2: %B.type = import_ref Main//api, inst+34, loaded [template = constants.%B]
-// CHECK:STDOUT:   %import_ref.3: %C.type = import_ref Main//api, inst+59, loaded [template = constants.%C]
-// CHECK:STDOUT:   %import_ref.4: %D.type = import_ref Main//api, inst+62, loaded [template = constants.%D]
-// CHECK:STDOUT:   %import_ref.5: <namespace> = import_ref Main//api, inst+65, loaded
+// CHECK:STDOUT:   %import_ref.2: %B.type = import_ref Main//api, inst+33, loaded [template = constants.%B]
+// CHECK:STDOUT:   %import_ref.3: %C.type = import_ref Main//api, inst+58, loaded [template = constants.%C]
+// CHECK:STDOUT:   %import_ref.4: %D.type = import_ref Main//api, inst+61, loaded [template = constants.%D]
+// CHECK:STDOUT:   %import_ref.5: <namespace> = import_ref Main//api, inst+64, loaded
 // CHECK:STDOUT:   %NS: <namespace> = namespace %import_ref.5, [template] {
 // CHECK:STDOUT:     .E = %import_ref.6
 // CHECK:STDOUT:   }
-// CHECK:STDOUT:   %import_ref.6: %E.type = import_ref Main//api, inst+66, loaded [template = constants.%E]
+// CHECK:STDOUT:   %import_ref.6: %E.type = import_ref Main//api, inst+65, loaded [template = constants.%E]
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .Int = %import_ref.12
 // CHECK:STDOUT:     .ImplicitAs = %import_ref.13
@@ -1111,14 +1111,14 @@ import library "extern_api";
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
 // CHECK:STDOUT:   %import_ref.1: %A.type = import_ref Main//extern_api, inst+3, loaded [template = constants.%A]
-// CHECK:STDOUT:   %import_ref.2: %B.type = import_ref Main//extern_api, inst+34, loaded [template = constants.%B]
-// CHECK:STDOUT:   %import_ref.3: %C.type = import_ref Main//extern_api, inst+59, loaded [template = constants.%C]
-// CHECK:STDOUT:   %import_ref.4: %D.type = import_ref Main//extern_api, inst+62, loaded [template = constants.%D]
-// CHECK:STDOUT:   %import_ref.5: <namespace> = import_ref Main//extern_api, inst+65, loaded
+// CHECK:STDOUT:   %import_ref.2: %B.type = import_ref Main//extern_api, inst+33, loaded [template = constants.%B]
+// CHECK:STDOUT:   %import_ref.3: %C.type = import_ref Main//extern_api, inst+58, loaded [template = constants.%C]
+// CHECK:STDOUT:   %import_ref.4: %D.type = import_ref Main//extern_api, inst+61, loaded [template = constants.%D]
+// CHECK:STDOUT:   %import_ref.5: <namespace> = import_ref Main//extern_api, inst+64, loaded
 // CHECK:STDOUT:   %NS: <namespace> = namespace %import_ref.5, [template] {
 // CHECK:STDOUT:     .E = %import_ref.6
 // CHECK:STDOUT:   }
-// CHECK:STDOUT:   %import_ref.6: %E.type = import_ref Main//extern_api, inst+66, loaded [template = constants.%E]
+// CHECK:STDOUT:   %import_ref.6: %E.type = import_ref Main//extern_api, inst+65, loaded [template = constants.%E]
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .Int = %import_ref.12
 // CHECK:STDOUT:     .ImplicitAs = %import_ref.13
@@ -1222,10 +1222,10 @@ import library "extern_api";
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
 // CHECK:STDOUT:   %import_ref.1 = import_ref Main//api, inst+3, unloaded
-// CHECK:STDOUT:   %import_ref.2 = import_ref Main//api, inst+34, unloaded
-// CHECK:STDOUT:   %import_ref.3 = import_ref Main//api, inst+59, unloaded
-// CHECK:STDOUT:   %import_ref.4 = import_ref Main//api, inst+62, unloaded
-// CHECK:STDOUT:   %import_ref.5: <namespace> = import_ref Main//api, inst+65, loaded
+// CHECK:STDOUT:   %import_ref.2 = import_ref Main//api, inst+33, unloaded
+// CHECK:STDOUT:   %import_ref.3 = import_ref Main//api, inst+58, unloaded
+// CHECK:STDOUT:   %import_ref.4 = import_ref Main//api, inst+61, unloaded
+// CHECK:STDOUT:   %import_ref.5: <namespace> = import_ref Main//api, inst+64, loaded
 // CHECK:STDOUT:   %NS: <namespace> = namespace %import_ref.5, [template] {
 // CHECK:STDOUT:     .E = %import_ref.6
 // CHECK:STDOUT:   }
@@ -1252,10 +1252,10 @@ import library "extern_api";
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
 // CHECK:STDOUT:   %import_ref.1 = import_ref Main//extern_api, inst+3, unloaded
-// CHECK:STDOUT:   %import_ref.2 = import_ref Main//extern_api, inst+34, unloaded
-// CHECK:STDOUT:   %import_ref.3 = import_ref Main//extern_api, inst+59, unloaded
-// CHECK:STDOUT:   %import_ref.4 = import_ref Main//extern_api, inst+62, unloaded
-// CHECK:STDOUT:   %import_ref.5: <namespace> = import_ref Main//extern_api, inst+65, loaded
+// CHECK:STDOUT:   %import_ref.2 = import_ref Main//extern_api, inst+33, unloaded
+// CHECK:STDOUT:   %import_ref.3 = import_ref Main//extern_api, inst+58, unloaded
+// CHECK:STDOUT:   %import_ref.4 = import_ref Main//extern_api, inst+61, unloaded
+// CHECK:STDOUT:   %import_ref.5: <namespace> = import_ref Main//extern_api, inst+64, loaded
 // CHECK:STDOUT:   %NS: <namespace> = namespace %import_ref.5, [template] {
 // CHECK:STDOUT:     .E = %import_ref.6
 // CHECK:STDOUT:   }

+ 8 - 8
toolchain/check/testdata/function/definition/import.carbon

@@ -271,9 +271,9 @@ fn D() {}
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
 // CHECK:STDOUT:   %import_ref.1: %A.type = import_ref Main//fns, inst+3, loaded [template = constants.%A]
-// CHECK:STDOUT:   %import_ref.2: %B.type = import_ref Main//fns, inst+35, loaded [template = constants.%B]
-// CHECK:STDOUT:   %import_ref.3: %C.type = import_ref Main//fns, inst+62, loaded [template = constants.%C]
-// CHECK:STDOUT:   %import_ref.4 = import_ref Main//fns, inst+73, unloaded
+// CHECK:STDOUT:   %import_ref.2: %B.type = import_ref Main//fns, inst+34, loaded [template = constants.%B]
+// CHECK:STDOUT:   %import_ref.3: %C.type = import_ref Main//fns, inst+61, loaded [template = constants.%C]
+// CHECK:STDOUT:   %import_ref.4 = import_ref Main//fns, inst+72, unloaded
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .Int = %import_ref.5
 // CHECK:STDOUT:     .ImplicitAs = %import_ref.6
@@ -365,8 +365,8 @@ fn D() {}
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
-// CHECK:STDOUT:   %import_ref.3 = import_ref Main//fns, inst+62, unloaded
-// CHECK:STDOUT:   %import_ref.4 = import_ref Main//fns, inst+73, unloaded
+// CHECK:STDOUT:   %import_ref.3 = import_ref Main//fns, inst+61, unloaded
+// CHECK:STDOUT:   %import_ref.4 = import_ref Main//fns, inst+72, unloaded
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .Int = %import_ref.5
 // CHECK:STDOUT:     import Core//prelude
@@ -397,7 +397,7 @@ fn D() {}
 // CHECK:STDOUT:     %b.param: %i32 = value_param runtime_param0
 // CHECK:STDOUT:     %b: %i32 = bind_name b, %b.param
 // CHECK:STDOUT:     %return.param: ref %i32 = out_param runtime_param1
-// CHECK:STDOUT:     %.loc23_14: ref %i32 = return_slot %return.param
+// CHECK:STDOUT:     %return: ref %i32 = return_slot %return.param
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -447,8 +447,8 @@ fn D() {}
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
 // CHECK:STDOUT:   %import_ref.1 = import_ref Main//fns, inst+3, unloaded
-// CHECK:STDOUT:   %import_ref.2 = import_ref Main//fns, inst+35, unloaded
-// CHECK:STDOUT:   %import_ref.3 = import_ref Main//fns, inst+62, unloaded
+// CHECK:STDOUT:   %import_ref.2 = import_ref Main//fns, inst+34, unloaded
+// CHECK:STDOUT:   %import_ref.3 = import_ref Main//fns, inst+61, unloaded
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     import Core//prelude
 // CHECK:STDOUT:     import Core//prelude/...

+ 5 - 5
toolchain/check/testdata/function/definition/no_prelude/syntactic_merge.carbon

@@ -713,7 +713,7 @@ fn Foo(a: const (const C)) {}
 // CHECK:STDOUT:   } {
 // CHECK:STDOUT:     %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]
 // CHECK:STDOUT:     %return.param.loc7: ref %C = out_param runtime_param0
-// CHECK:STDOUT:     %.loc7: ref %C = return_slot %return.param.loc7
+// CHECK:STDOUT:     %return.loc7: ref %C = return_slot %return.param.loc7
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Foo.decl.loc8: %Foo.type = fn_decl @Foo [template = constants.%Foo] {
 // CHECK:STDOUT:     %return.patt: %C = return_slot_pattern
@@ -721,7 +721,7 @@ fn Foo(a: const (const C)) {}
 // CHECK:STDOUT:   } {
 // CHECK:STDOUT:     %D.ref: type = name_ref D, file.%D [template = constants.%C]
 // CHECK:STDOUT:     %return.param.loc8: ref %C = out_param runtime_param0
-// CHECK:STDOUT:     %return: ref %C = return_slot %return.param.loc8
+// CHECK:STDOUT:     %return.loc8: ref %C = return_slot %return.param.loc8
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -733,12 +733,12 @@ fn Foo(a: const (const C)) {}
 // CHECK:STDOUT:   complete_type_witness = %complete_type
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Foo() -> %return: %C {
+// CHECK:STDOUT: fn @Foo() -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %.loc8_25.1: %empty_struct_type = struct_literal ()
-// CHECK:STDOUT:   %.loc8_25.2: init %C = class_init (), %return [template = constants.%C.val]
+// CHECK:STDOUT:   %.loc8_25.2: init %C = class_init (), %return.loc8 [template = constants.%C.val]
 // CHECK:STDOUT:   %.loc8_26: init %C = converted %.loc8_25.1, %.loc8_25.2 [template = constants.%C.val]
-// CHECK:STDOUT:   return %.loc8_26 to %return
+// CHECK:STDOUT:   return %.loc8_26 to %return.loc8
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: --- alias_two_file.carbon

+ 6 - 6
toolchain/check/testdata/function/generic/no_prelude/call.carbon

@@ -214,14 +214,14 @@ fn CallSpecific(x: C) -> C {
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @CallSpecific(%x.param_patt: %C) -> %return: %C {
+// CHECK:STDOUT: fn @CallSpecific(%x.param_patt: %C) -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %Function.ref: %Function.type = name_ref Function, file.%Function.decl [template = constants.%Function]
 // CHECK:STDOUT:   %C.ref.loc19: type = name_ref C, file.%C.decl [template = constants.%C]
 // CHECK:STDOUT:   %x.ref: %C = name_ref x, %x
 // CHECK:STDOUT:   %Function.specific_fn: <specific function> = specific_function %Function.ref, @Function(constants.%C) [template = constants.%Function.specific_fn.3]
-// CHECK:STDOUT:   %.loc18_23.2: ref %C = splice_block %return {}
-// CHECK:STDOUT:   %Function.call: init %C = call %Function.specific_fn(%x.ref) to %.loc18_23.2
+// CHECK:STDOUT:   %.loc18: ref %C = splice_block %return {}
+// CHECK:STDOUT:   %Function.call: init %C = call %Function.specific_fn(%x.ref) to %.loc18
 // CHECK:STDOUT:   return %Function.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -426,13 +426,13 @@ fn CallSpecific(x: C) -> C {
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @CallSpecific(%x.param_patt: %C) -> %return: %C {
+// CHECK:STDOUT: fn @CallSpecific(%x.param_patt: %C) -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %Function.ref: %Function.type = name_ref Function, file.%Function.decl [template = constants.%Function]
 // CHECK:STDOUT:   %x.ref: %C = name_ref x, %x
 // CHECK:STDOUT:   %Function.specific_fn: <specific function> = specific_function %Function.ref, @Function(constants.%C) [template = constants.%Function.specific_fn.3]
-// CHECK:STDOUT:   %.loc18_23.2: ref %C = splice_block %return {}
-// CHECK:STDOUT:   %Function.call: init %C = call %Function.specific_fn(%x.ref) to %.loc18_23.2
+// CHECK:STDOUT:   %.loc18: ref %C = splice_block %return {}
+// CHECK:STDOUT:   %Function.call: init %C = call %Function.specific_fn(%x.ref) to %.loc18
 // CHECK:STDOUT:   return %Function.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 2 - 2
toolchain/check/testdata/function/generic/redeclare.carbon

@@ -124,7 +124,7 @@ fn F(U:! type, T:! type) -> U* {
 // CHECK:STDOUT:     %T.param.loc4: type = value_param runtime_param<invalid>
 // CHECK:STDOUT:     %T.loc4_6.1: type = bind_symbolic_name T, 0, %T.param.loc4 [symbolic = %T.loc4_6.2 (constants.%T)]
 // CHECK:STDOUT:     %return.param.loc4: ref @F.%ptr.loc4_20.2 (%ptr) = out_param runtime_param0
-// CHECK:STDOUT:     %.loc4: ref @F.%ptr.loc4_20.2 (%ptr) = return_slot %return.param.loc4
+// CHECK:STDOUT:     %return.loc4: ref @F.%ptr.loc4_20.2 (%ptr) = return_slot %return.param.loc4
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %F.decl.loc6: %F.type = fn_decl @F [template = constants.%F] {
 // CHECK:STDOUT:     %T.patt.loc6: type = symbolic_binding_pattern T, 0 [symbolic = constants.%T.patt]
@@ -137,7 +137,7 @@ fn F(U:! type, T:! type) -> U* {
 // CHECK:STDOUT:     %T.param.loc6: type = value_param runtime_param<invalid>
 // CHECK:STDOUT:     %T.loc6: type = bind_symbolic_name T, 0, %T.param.loc6 [symbolic = constants.%T]
 // CHECK:STDOUT:     %return.param.loc6: ref %ptr = out_param runtime_param0
-// CHECK:STDOUT:     %return: ref %ptr = return_slot %return.param.loc6
+// CHECK:STDOUT:     %return.loc6: ref %ptr = return_slot %return.param.loc6
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 2 - 2
toolchain/check/testdata/function/generic/undefined.carbon

@@ -221,7 +221,7 @@ fn CallUndefined() -> i32 {
 // CHECK:STDOUT:     %x.param.loc4: @Defined.%T.loc4_12.2 (%T) = value_param runtime_param0
 // CHECK:STDOUT:     %x.loc4: @Defined.%T.loc4_12.2 (%T) = bind_name x, %x.param.loc4
 // CHECK:STDOUT:     %return.param.loc4: ref @Defined.%T.loc4_12.2 (%T) = out_param runtime_param1
-// CHECK:STDOUT:     %.loc4: ref @Defined.%T.loc4_12.2 (%T) = return_slot %return.param.loc4
+// CHECK:STDOUT:     %return.loc4: ref @Defined.%T.loc4_12.2 (%T) = return_slot %return.param.loc4
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %CallDefined.decl: %CallDefined.type = fn_decl @CallDefined [template = constants.%CallDefined] {
 // CHECK:STDOUT:     %return.patt: %i32 = return_slot_pattern
@@ -249,7 +249,7 @@ fn CallUndefined() -> i32 {
 // CHECK:STDOUT:     %x.param.loc10: %T = value_param runtime_param0
 // CHECK:STDOUT:     %x.loc10: %T = bind_name x, %x.param.loc10
 // CHECK:STDOUT:     %return.param.loc10: ref %T = out_param runtime_param1
-// CHECK:STDOUT:     %return: ref %T = return_slot %return.param.loc10
+// CHECK:STDOUT:     %return.loc10: ref %T = return_slot %return.param.loc10
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 1 - 1
toolchain/check/testdata/global/class_with_fun.carbon

@@ -63,7 +63,7 @@ var a: A = {};
 // CHECK:STDOUT:   complete_type_witness = %complete_type
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @ret_a() -> %return: %A {
+// CHECK:STDOUT: fn @ret_a() -> %return.param_patt: %A {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %.loc13_11.1: %empty_struct_type = struct_literal ()
 // CHECK:STDOUT:   %.loc13_11.2: init %A = class_init (), %return [template = constants.%A.val]

+ 3 - 3
toolchain/check/testdata/if_expr/fail_not_in_function.carbon

@@ -61,7 +61,7 @@ class C {
 // CHECK:STDOUT: file {
 // CHECK:STDOUT:   package: <namespace> = namespace [template] {
 // CHECK:STDOUT:     .Core = imports.%Core
-// CHECK:STDOUT:     .x = <unexpected>.inst+19.loc23_5
+// CHECK:STDOUT:     .x = <unexpected>.inst+18.loc23_5
 // CHECK:STDOUT:     .C = %C.decl
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Core.import = import Core
@@ -78,8 +78,8 @@ class C {
 // CHECK:STDOUT:
 // CHECK:STDOUT: !members:
 // CHECK:STDOUT:   .Self = constants.%C
-// CHECK:STDOUT:   .n = <unexpected>.inst+369.loc37_8
-// CHECK:STDOUT:   complete_type_witness = <unexpected>.inst+371.loc38_1
+// CHECK:STDOUT:   .n = <unexpected>.inst+357.loc37_8
+// CHECK:STDOUT:   complete_type_witness = <unexpected>.inst+359.loc38_1
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: fn @__global_init() {

+ 1 - 1
toolchain/check/testdata/impl/extend_impl_generic.carbon

@@ -213,7 +213,7 @@ class X(U:! type) {
 // CHECK:STDOUT:   fn() -> @F.1.%T (%T);
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @F.2() -> %return: %Param {
+// CHECK:STDOUT: fn @F.2() -> %return.param_patt: %Param {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.1]
 // CHECK:STDOUT:   %.loc15_21.1: %struct_type.x.2 = struct_literal (%int_2)

+ 1 - 1
toolchain/check/testdata/impl/fail_redefinition.carbon

@@ -72,6 +72,6 @@ impl i32 as I {}
 // CHECK:STDOUT:
 // CHECK:STDOUT: impl @impl: %.loc13_6.2 as %I.ref.loc13 {
 // CHECK:STDOUT: !members:
-// CHECK:STDOUT:   witness = <unexpected>.inst+25.loc13_15
+// CHECK:STDOUT:   witness = <unexpected>.inst+24.loc13_15
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 4 - 4
toolchain/check/testdata/impl/no_prelude/interface_args.carbon

@@ -849,7 +849,7 @@ fn MakeC(a: A) -> C {
 // CHECK:STDOUT:   fn() -> @Make.1.%T (%T);
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @MakeB(%a.param_patt: %A) -> %return: %B {
+// CHECK:STDOUT: fn @MakeB(%a.param_patt: %A) -> %return.param_patt: %B {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %a.ref: %A = name_ref a, %a
 // CHECK:STDOUT:   %Factory.ref: %Factory.type.1 = name_ref Factory, imports.%import_ref.1 [template = constants.%Factory.generic]
@@ -858,8 +858,8 @@ fn MakeC(a: A) -> C {
 // CHECK:STDOUT:   %.loc5: %Make.assoc_type.2 = specific_constant imports.%import_ref.7, @Factory(constants.%B) [template = constants.%assoc0.2]
 // CHECK:STDOUT:   %Make.ref: %Make.assoc_type.2 = name_ref Make, %.loc5 [template = constants.%assoc0.2]
 // CHECK:STDOUT:   %impl.elem0: %Make.type.2 = interface_witness_access constants.%interface, element0 [template = constants.%Make.3]
-// CHECK:STDOUT:   %.loc4_16.2: ref %B = splice_block %return {}
-// CHECK:STDOUT:   %Make.call: init %B = call %impl.elem0() to %.loc4_16.2
+// CHECK:STDOUT:   %.loc4: ref %B = splice_block %return {}
+// CHECK:STDOUT:   %Make.call: init %B = call %impl.elem0() to %.loc4
 // CHECK:STDOUT:   return %Make.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -1021,7 +1021,7 @@ fn MakeC(a: A) -> C {
 // CHECK:STDOUT:   fn() -> @Make.%T (%T);
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @MakeC(%a.param_patt: %A) -> %return: %C {
+// CHECK:STDOUT: fn @MakeC(%a.param_patt: %A) -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %a.ref: %A = name_ref a, %a
 // CHECK:STDOUT:   %Factory.ref: %Factory.type.1 = name_ref Factory, imports.%import_ref.1 [template = constants.%Factory.generic]

+ 1 - 1
toolchain/check/testdata/impl/no_prelude/self_in_class.carbon

@@ -117,7 +117,7 @@ class A {
 // CHECK:STDOUT:   fn() -> @Make.1.%Self.as_type.loc12_16.1 (%Self.as_type);
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Make.2() -> %return: %C {
+// CHECK:STDOUT: fn @Make.2() -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %.loc21_33.1: %empty_struct_type = struct_literal ()
 // CHECK:STDOUT:   %.loc21_33.2: init %C = class_init (), %return [template = constants.%C.val]

+ 2 - 2
toolchain/check/testdata/impl/no_prelude/self_in_signature.carbon

@@ -301,7 +301,7 @@ impl D as SelfNested {
 // CHECK:STDOUT:   fn[%self.param_patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.1)](%x.param_patt: @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.1)) -> @F.1.%Self.as_type.loc12_14.1 (%Self.as_type.1);
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @F.2[%self.param_patt: %C](%x.param_patt: %C) -> %return: %C {
+// CHECK:STDOUT: fn @F.2[%self.param_patt: %C](%x.param_patt: %C) -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %.loc20_38.1: %empty_struct_type = struct_literal ()
 // CHECK:STDOUT:   %.loc20_38.2: init %C = class_init (), %return [template = constants.%C.val]
@@ -309,7 +309,7 @@ impl D as SelfNested {
 // CHECK:STDOUT:   return %.loc20_39 to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @F.3[%self.param_patt: %D](%x.param_patt: %D) -> %return: %D {
+// CHECK:STDOUT: fn @F.3[%self.param_patt: %D](%x.param_patt: %D) -> %return.param_patt: %D {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %.loc24_47.1: %empty_struct_type = struct_literal ()
 // CHECK:STDOUT:   %.loc24_47.2: init %D = class_init (), %return [template = constants.%D.val]

+ 6 - 6
toolchain/check/testdata/interface/fail_todo_define_default_fn_out_of_line.carbon

@@ -243,8 +243,8 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; }
 // CHECK:STDOUT:     %return.patt: %U = return_slot_pattern
 // CHECK:STDOUT:     %return.param_patt: %U = out_param_pattern %return.patt, runtime_param2
 // CHECK:STDOUT:   } {
-// CHECK:STDOUT:     %.loc20_24: type = specific_constant constants.%C.2, @C(constants.%Self) [symbolic = constants.%C.2]
-// CHECK:STDOUT:     %Self.ref.loc20: type = name_ref Self, %.loc20_24 [symbolic = constants.%C.2]
+// CHECK:STDOUT:     %.loc20: type = specific_constant constants.%C.2, @C(constants.%Self) [symbolic = constants.%C.2]
+// CHECK:STDOUT:     %Self.ref.loc20: type = name_ref Self, %.loc20 [symbolic = constants.%C.2]
 // CHECK:STDOUT:     %U.ref.loc20_43: type = name_ref U, %U.loc20 [symbolic = constants.%U]
 // CHECK:STDOUT:     %U.ref.loc20_49: type = name_ref U, %U.loc20 [symbolic = constants.%U]
 // CHECK:STDOUT:     %self.param.loc20: %C.2 = value_param runtime_param0
@@ -254,7 +254,7 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; }
 // CHECK:STDOUT:     %u.param.loc20: %U = value_param runtime_param1
 // CHECK:STDOUT:     %u.loc20: %U = bind_name u, %u.param.loc20
 // CHECK:STDOUT:     %return.param.loc20: ref %U = out_param runtime_param2
-// CHECK:STDOUT:     %return: ref %U = return_slot %return.param.loc20
+// CHECK:STDOUT:     %return.loc20: ref %U = return_slot %return.param.loc20
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -285,8 +285,8 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; }
 // CHECK:STDOUT:       %return.patt: %U = return_slot_pattern
 // CHECK:STDOUT:       %return.param_patt: %U = out_param_pattern %return.patt, runtime_param2
 // CHECK:STDOUT:     } {
-// CHECK:STDOUT:       %.loc14_16: type = specific_constant constants.%C.2, @C(constants.%Self) [symbolic = %C (constants.%C.2)]
-// CHECK:STDOUT:       %Self.ref.loc14: type = name_ref Self, %.loc14_16 [symbolic = %C (constants.%C.2)]
+// CHECK:STDOUT:       %.loc14: type = specific_constant constants.%C.2, @C(constants.%Self) [symbolic = %C (constants.%C.2)]
+// CHECK:STDOUT:       %Self.ref.loc14: type = name_ref Self, %.loc14 [symbolic = %C (constants.%C.2)]
 // CHECK:STDOUT:       %U.ref.loc14_35: type = name_ref U, %U.loc14_22.2 [symbolic = %U.loc14_22.1 (constants.%U)]
 // CHECK:STDOUT:       %U.ref.loc14_41: type = name_ref U, %U.loc14_22.2 [symbolic = %U.loc14_22.1 (constants.%U)]
 // CHECK:STDOUT:       %self.param.loc14: @F.%C (%C.2) = value_param runtime_param0
@@ -296,7 +296,7 @@ fn Interface.C.F[self: Self](U:! type, u: U) -> U { return u; }
 // CHECK:STDOUT:       %u.param.loc14: @F.%U.loc14_22.1 (%U) = value_param runtime_param1
 // CHECK:STDOUT:       %u.loc14: @F.%U.loc14_22.1 (%U) = bind_name u, %u.param.loc14
 // CHECK:STDOUT:       %return.param.loc14: ref @F.%U.loc14_22.1 (%U) = out_param runtime_param2
-// CHECK:STDOUT:       %.loc14_38: ref @F.%U.loc14_22.1 (%U) = return_slot %return.param.loc14
+// CHECK:STDOUT:       %return.loc14: ref @F.%U.loc14_22.1 (%U) = return_slot %return.param.loc14
 // CHECK:STDOUT:     }
 // CHECK:STDOUT:     %complete_type: <witness> = complete_type_witness %empty_struct_type [template = constants.%complete_type]
 // CHECK:STDOUT:

+ 1 - 1
toolchain/check/testdata/interface/no_prelude/generic.carbon

@@ -278,7 +278,7 @@ fn G(T:! Generic(B)) {
 // CHECK:STDOUT:   fn() -> %X;
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @F.2() -> %return: %X {
+// CHECK:STDOUT: fn @F.2() -> %return.param_patt: %X {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %.loc17_15.1: %empty_struct_type = struct_literal ()
 // CHECK:STDOUT:   %.loc17_15.2: init %X = class_init (), %return [template = constants.%X.val]

+ 1 - 1
toolchain/check/testdata/namespace/merging_with_indirections.carbon

@@ -141,7 +141,7 @@ fn Run() {
 // CHECK:STDOUT:   complete_type_witness = imports.%import_ref.3
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @F() -> %return: %A {
+// CHECK:STDOUT: fn @F() -> %return.param_patt: %A {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %.loc8_27.1: %empty_struct_type = struct_literal ()
 // CHECK:STDOUT:   %.loc8_27.2: init %A = class_init (), %return [template = constants.%A.val]

+ 2 - 2
toolchain/check/testdata/operators/builtin/fail_and_or_not_in_function.carbon

@@ -59,7 +59,7 @@ var or_: F(true or true);
 // CHECK:STDOUT:
 // CHECK:STDOUT: file {
 // CHECK:STDOUT:   %.loc42_17: bool = block_arg <unexpected instblockref block23> [template = constants.%true]
-// CHECK:STDOUT:   %F.call: init type = call <unexpected>.inst+76.loc42_10(%.loc42_17)
+// CHECK:STDOUT:   %F.call: init type = call <unexpected>.inst+73.loc42_10(%.loc42_17)
 // CHECK:STDOUT:   %.loc42_24.1: type = value_of_initializer %F.call
 // CHECK:STDOUT:   %.loc42_24.2: type = converted %F.call, %.loc42_24.1
 // CHECK:STDOUT:   %or_.var: ref <error> = var or_
@@ -68,7 +68,7 @@ var or_: F(true or true);
 // CHECK:STDOUT:
 // CHECK:STDOUT: fn @F(%b.param_patt: bool) -> type {
 // CHECK:STDOUT: !entry:
-// CHECK:STDOUT:   %b.ref: bool = name_ref b, <unexpected>.inst+14.loc12_6
+// CHECK:STDOUT:   %b.ref: bool = name_ref b, <unexpected>.inst+13.loc12_6
 // CHECK:STDOUT:   if %b.ref br !if.expr.then else br !if.expr.else
 // CHECK:STDOUT:
 // CHECK:STDOUT: !if.expr.then:

+ 4 - 4
toolchain/check/testdata/operators/overloaded/add.carbon

@@ -177,7 +177,7 @@ fn TestAssign(a: C*, b: C) {
 // CHECK:STDOUT:   complete_type_witness = %complete_type
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Op.1[%self.param_patt: %C](%other.param_patt: %C) -> %return: %C {
+// CHECK:STDOUT: fn @Op.1[%self.param_patt: %C](%other.param_patt: %C) -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %.loc19_13.1: %empty_struct_type = struct_literal ()
 // CHECK:STDOUT:   %.loc19_13.2: init %C = class_init (), %return [template = constants.%C.val]
@@ -190,14 +190,14 @@ fn TestAssign(a: C*, b: C) {
 // CHECK:STDOUT:   return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @TestOp(%a.param_patt: %C, %b.param_patt: %C) -> %return: %C {
+// CHECK:STDOUT: fn @TestOp(%a.param_patt: %C, %b.param_patt: %C) -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %a.ref: %C = name_ref a, %a
 // CHECK:STDOUT:   %b.ref: %C = name_ref b, %b
 // CHECK:STDOUT:   %impl.elem0: %Op.type.2 = interface_witness_access constants.%interface.1, element0 [template = constants.%Op.1]
 // CHECK:STDOUT:   %Op.bound: <bound method> = bound_method %a.ref, %impl.elem0
-// CHECK:STDOUT:   %.loc26_23.2: ref %C = splice_block %return {}
-// CHECK:STDOUT:   %Op.call: init %C = call %Op.bound(%a.ref, %b.ref) to %.loc26_23.2
+// CHECK:STDOUT:   %.loc26: ref %C = splice_block %return {}
+// CHECK:STDOUT:   %Op.call: init %C = call %Op.bound(%a.ref, %b.ref) to %.loc26
 // CHECK:STDOUT:   return %Op.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 4 - 4
toolchain/check/testdata/operators/overloaded/bit_and.carbon

@@ -177,7 +177,7 @@ fn TestAssign(a: C*, b: C) {
 // CHECK:STDOUT:   complete_type_witness = %complete_type
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Op.1[%self.param_patt: %C](%other.param_patt: %C) -> %return: %C {
+// CHECK:STDOUT: fn @Op.1[%self.param_patt: %C](%other.param_patt: %C) -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %.loc19_13.1: %empty_struct_type = struct_literal ()
 // CHECK:STDOUT:   %.loc19_13.2: init %C = class_init (), %return [template = constants.%C.val]
@@ -190,14 +190,14 @@ fn TestAssign(a: C*, b: C) {
 // CHECK:STDOUT:   return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @TestOp(%a.param_patt: %C, %b.param_patt: %C) -> %return: %C {
+// CHECK:STDOUT: fn @TestOp(%a.param_patt: %C, %b.param_patt: %C) -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %a.ref: %C = name_ref a, %a
 // CHECK:STDOUT:   %b.ref: %C = name_ref b, %b
 // CHECK:STDOUT:   %impl.elem0: %Op.type.2 = interface_witness_access constants.%interface.1, element0 [template = constants.%Op.1]
 // CHECK:STDOUT:   %Op.bound: <bound method> = bound_method %a.ref, %impl.elem0
-// CHECK:STDOUT:   %.loc26_23.2: ref %C = splice_block %return {}
-// CHECK:STDOUT:   %Op.call: init %C = call %Op.bound(%a.ref, %b.ref) to %.loc26_23.2
+// CHECK:STDOUT:   %.loc26: ref %C = splice_block %return {}
+// CHECK:STDOUT:   %Op.call: init %C = call %Op.bound(%a.ref, %b.ref) to %.loc26
 // CHECK:STDOUT:   return %Op.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 4 - 4
toolchain/check/testdata/operators/overloaded/bit_complement.carbon

@@ -106,7 +106,7 @@ fn TestOp(a: C) -> C {
 // CHECK:STDOUT:   complete_type_witness = %complete_type
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Op.1[%self.param_patt: %C]() -> %return: %C {
+// CHECK:STDOUT: fn @Op.1[%self.param_patt: %C]() -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %.loc19_13.1: %empty_struct_type = struct_literal ()
 // CHECK:STDOUT:   %.loc19_13.2: init %C = class_init (), %return [template = constants.%C.val]
@@ -114,13 +114,13 @@ fn TestOp(a: C) -> C {
 // CHECK:STDOUT:   return %.loc19_14 to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @TestOp(%a.param_patt: %C) -> %return: %C {
+// CHECK:STDOUT: fn @TestOp(%a.param_patt: %C) -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %a.ref: %C = name_ref a, %a
 // CHECK:STDOUT:   %impl.elem0: %Op.type.2 = interface_witness_access constants.%interface, element0 [template = constants.%Op.1]
 // CHECK:STDOUT:   %Op.bound: <bound method> = bound_method %a.ref, %impl.elem0
-// CHECK:STDOUT:   %.loc23_17.2: ref %C = splice_block %return {}
-// CHECK:STDOUT:   %Op.call: init %C = call %Op.bound(%a.ref) to %.loc23_17.2
+// CHECK:STDOUT:   %.loc23: ref %C = splice_block %return {}
+// CHECK:STDOUT:   %Op.call: init %C = call %Op.bound(%a.ref) to %.loc23
 // CHECK:STDOUT:   return %Op.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 4 - 4
toolchain/check/testdata/operators/overloaded/bit_or.carbon

@@ -177,7 +177,7 @@ fn TestAssign(a: C*, b: C) {
 // CHECK:STDOUT:   complete_type_witness = %complete_type
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Op.1[%self.param_patt: %C](%other.param_patt: %C) -> %return: %C {
+// CHECK:STDOUT: fn @Op.1[%self.param_patt: %C](%other.param_patt: %C) -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %.loc19_13.1: %empty_struct_type = struct_literal ()
 // CHECK:STDOUT:   %.loc19_13.2: init %C = class_init (), %return [template = constants.%C.val]
@@ -190,14 +190,14 @@ fn TestAssign(a: C*, b: C) {
 // CHECK:STDOUT:   return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @TestOp(%a.param_patt: %C, %b.param_patt: %C) -> %return: %C {
+// CHECK:STDOUT: fn @TestOp(%a.param_patt: %C, %b.param_patt: %C) -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %a.ref: %C = name_ref a, %a
 // CHECK:STDOUT:   %b.ref: %C = name_ref b, %b
 // CHECK:STDOUT:   %impl.elem0: %Op.type.2 = interface_witness_access constants.%interface.1, element0 [template = constants.%Op.1]
 // CHECK:STDOUT:   %Op.bound: <bound method> = bound_method %a.ref, %impl.elem0
-// CHECK:STDOUT:   %.loc26_23.2: ref %C = splice_block %return {}
-// CHECK:STDOUT:   %Op.call: init %C = call %Op.bound(%a.ref, %b.ref) to %.loc26_23.2
+// CHECK:STDOUT:   %.loc26: ref %C = splice_block %return {}
+// CHECK:STDOUT:   %Op.call: init %C = call %Op.bound(%a.ref, %b.ref) to %.loc26
 // CHECK:STDOUT:   return %Op.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 4 - 4
toolchain/check/testdata/operators/overloaded/bit_xor.carbon

@@ -177,7 +177,7 @@ fn TestAssign(a: C*, b: C) {
 // CHECK:STDOUT:   complete_type_witness = %complete_type
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Op.1[%self.param_patt: %C](%other.param_patt: %C) -> %return: %C {
+// CHECK:STDOUT: fn @Op.1[%self.param_patt: %C](%other.param_patt: %C) -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %.loc19_13.1: %empty_struct_type = struct_literal ()
 // CHECK:STDOUT:   %.loc19_13.2: init %C = class_init (), %return [template = constants.%C.val]
@@ -190,14 +190,14 @@ fn TestAssign(a: C*, b: C) {
 // CHECK:STDOUT:   return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @TestOp(%a.param_patt: %C, %b.param_patt: %C) -> %return: %C {
+// CHECK:STDOUT: fn @TestOp(%a.param_patt: %C, %b.param_patt: %C) -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %a.ref: %C = name_ref a, %a
 // CHECK:STDOUT:   %b.ref: %C = name_ref b, %b
 // CHECK:STDOUT:   %impl.elem0: %Op.type.2 = interface_witness_access constants.%interface.1, element0 [template = constants.%Op.1]
 // CHECK:STDOUT:   %Op.bound: <bound method> = bound_method %a.ref, %impl.elem0
-// CHECK:STDOUT:   %.loc26_23.2: ref %C = splice_block %return {}
-// CHECK:STDOUT:   %Op.call: init %C = call %Op.bound(%a.ref, %b.ref) to %.loc26_23.2
+// CHECK:STDOUT:   %.loc26: ref %C = splice_block %return {}
+// CHECK:STDOUT:   %Op.call: init %C = call %Op.bound(%a.ref, %b.ref) to %.loc26
 // CHECK:STDOUT:   return %Op.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 4 - 4
toolchain/check/testdata/operators/overloaded/div.carbon

@@ -177,7 +177,7 @@ fn TestAssign(a: C*, b: C) {
 // CHECK:STDOUT:   complete_type_witness = %complete_type
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Op.1[%self.param_patt: %C](%other.param_patt: %C) -> %return: %C {
+// CHECK:STDOUT: fn @Op.1[%self.param_patt: %C](%other.param_patt: %C) -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %.loc19_13.1: %empty_struct_type = struct_literal ()
 // CHECK:STDOUT:   %.loc19_13.2: init %C = class_init (), %return [template = constants.%C.val]
@@ -190,14 +190,14 @@ fn TestAssign(a: C*, b: C) {
 // CHECK:STDOUT:   return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @TestOp(%a.param_patt: %C, %b.param_patt: %C) -> %return: %C {
+// CHECK:STDOUT: fn @TestOp(%a.param_patt: %C, %b.param_patt: %C) -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %a.ref: %C = name_ref a, %a
 // CHECK:STDOUT:   %b.ref: %C = name_ref b, %b
 // CHECK:STDOUT:   %impl.elem0: %Op.type.2 = interface_witness_access constants.%interface.1, element0 [template = constants.%Op.1]
 // CHECK:STDOUT:   %Op.bound: <bound method> = bound_method %a.ref, %impl.elem0
-// CHECK:STDOUT:   %.loc26_23.2: ref %C = splice_block %return {}
-// CHECK:STDOUT:   %Op.call: init %C = call %Op.bound(%a.ref, %b.ref) to %.loc26_23.2
+// CHECK:STDOUT:   %.loc26: ref %C = splice_block %return {}
+// CHECK:STDOUT:   %Op.call: init %C = call %Op.bound(%a.ref, %b.ref) to %.loc26
 // CHECK:STDOUT:   return %Op.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 2 - 2
toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon

@@ -126,13 +126,13 @@ fn TestRef(b: C) {
 // CHECK:STDOUT:   complete_type_witness = %complete_type
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @TestUnary(%a.param_patt: %C) -> %return: %C {
+// CHECK:STDOUT: fn @TestUnary(%a.param_patt: %C) -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %a.ref: %C = name_ref a, %a
 // CHECK:STDOUT:   return <error> to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @TestBinary(%a.param_patt: %C, %b.param_patt: %C) -> %return: %C {
+// CHECK:STDOUT: fn @TestBinary(%a.param_patt: %C, %b.param_patt: %C) -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %a.ref: %C = name_ref a, %a
 // CHECK:STDOUT:   %b.ref: %C = name_ref b, %b

+ 3 - 3
toolchain/check/testdata/operators/overloaded/fail_no_impl_for_arg.carbon

@@ -204,15 +204,15 @@ fn TestAssign(b: D) {
 // CHECK:STDOUT:
 // CHECK:STDOUT: fn @Op.3[addr %self.param_patt: %ptr.1](%other.param_patt: %C);
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Test(%a.param_patt: %C, %b.param_patt: %D) -> %return: %C {
+// CHECK:STDOUT: fn @Test(%a.param_patt: %C, %b.param_patt: %D) -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %a.ref: %C = name_ref a, %a
 // CHECK:STDOUT:   %b.ref: %D = name_ref b, %b
 // CHECK:STDOUT:   %impl.elem0: %Op.type.2 = interface_witness_access constants.%interface.1, element0 [template = constants.%Op.1]
 // CHECK:STDOUT:   %Op.bound: <bound method> = bound_method %a.ref, %impl.elem0
-// CHECK:STDOUT:   %.loc23_21.2: ref %C = splice_block %return {}
+// CHECK:STDOUT:   %.loc23: ref %C = splice_block %return {}
 // CHECK:STDOUT:   %.loc34: %C = converted %b.ref, <error> [template = <error>]
-// CHECK:STDOUT:   %Op.call: init %C = call %Op.bound(%a.ref, <error>) to %.loc23_21.2
+// CHECK:STDOUT:   %Op.call: init %C = call %Op.bound(%a.ref, <error>) to %.loc23
 // CHECK:STDOUT:   return %Op.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 1 - 1
toolchain/check/testdata/operators/overloaded/implicit_as.carbon

@@ -207,7 +207,7 @@ fn Test() {
 // CHECK:STDOUT:   complete_type_witness = %complete_type
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Convert.2[%self.param_patt: %i32]() -> %return: %X {
+// CHECK:STDOUT: fn @Convert.2[%self.param_patt: %i32]() -> %return.param_patt: %X {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %self.ref: %i32 = name_ref self, %self
 // CHECK:STDOUT:   %.loc16_51.1: %struct_type.n = struct_literal (%self.ref)

+ 2 - 2
toolchain/check/testdata/operators/overloaded/index.carbon

@@ -182,7 +182,7 @@ let x: i32 = c[0];
 // CHECK:STDOUT:   complete_type_witness = %complete_type
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @At.2[%self.param_patt: %C](%subscript.param_patt: %SubscriptType.1) -> %return: %ElementType.1 {
+// CHECK:STDOUT: fn @At.2[%self.param_patt: %C](%subscript.param_patt: %SubscriptType.1) -> %return.param_patt: %ElementType.1 {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %.loc10_13.1: %empty_struct_type = struct_literal ()
 // CHECK:STDOUT:   %.loc10_13.2: init %ElementType.1 = class_init (), %return [template = constants.%ElementType.val]
@@ -493,7 +493,7 @@ let x: i32 = c[0];
 // CHECK:STDOUT:   complete_type_witness = %complete_type
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @At.2[%self.param_patt: %C](%subscript.param_patt: %SubscriptType.1) -> %return: %ElementType.1 {
+// CHECK:STDOUT: fn @At.2[%self.param_patt: %C](%subscript.param_patt: %SubscriptType.1) -> %return.param_patt: %ElementType.1 {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %.loc10_13.1: %empty_struct_type = struct_literal ()
 // CHECK:STDOUT:   %.loc10_13.2: init %ElementType.1 = class_init (), %return [template = constants.%ElementType.val]

+ 4 - 4
toolchain/check/testdata/operators/overloaded/left_shift.carbon

@@ -177,7 +177,7 @@ fn TestAssign(a: C*, b: C) {
 // CHECK:STDOUT:   complete_type_witness = %complete_type
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Op.1[%self.param_patt: %C](%other.param_patt: %C) -> %return: %C {
+// CHECK:STDOUT: fn @Op.1[%self.param_patt: %C](%other.param_patt: %C) -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %.loc19_13.1: %empty_struct_type = struct_literal ()
 // CHECK:STDOUT:   %.loc19_13.2: init %C = class_init (), %return [template = constants.%C.val]
@@ -190,14 +190,14 @@ fn TestAssign(a: C*, b: C) {
 // CHECK:STDOUT:   return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @TestOp(%a.param_patt: %C, %b.param_patt: %C) -> %return: %C {
+// CHECK:STDOUT: fn @TestOp(%a.param_patt: %C, %b.param_patt: %C) -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %a.ref: %C = name_ref a, %a
 // CHECK:STDOUT:   %b.ref: %C = name_ref b, %b
 // CHECK:STDOUT:   %impl.elem0: %Op.type.2 = interface_witness_access constants.%interface.1, element0 [template = constants.%Op.1]
 // CHECK:STDOUT:   %Op.bound: <bound method> = bound_method %a.ref, %impl.elem0
-// CHECK:STDOUT:   %.loc26_23.2: ref %C = splice_block %return {}
-// CHECK:STDOUT:   %Op.call: init %C = call %Op.bound(%a.ref, %b.ref) to %.loc26_23.2
+// CHECK:STDOUT:   %.loc26: ref %C = splice_block %return {}
+// CHECK:STDOUT:   %Op.call: init %C = call %Op.bound(%a.ref, %b.ref) to %.loc26
 // CHECK:STDOUT:   return %Op.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 4 - 4
toolchain/check/testdata/operators/overloaded/mod.carbon

@@ -177,7 +177,7 @@ fn TestAssign(a: C*, b: C) {
 // CHECK:STDOUT:   complete_type_witness = %complete_type
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Op.1[%self.param_patt: %C](%other.param_patt: %C) -> %return: %C {
+// CHECK:STDOUT: fn @Op.1[%self.param_patt: %C](%other.param_patt: %C) -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %.loc19_13.1: %empty_struct_type = struct_literal ()
 // CHECK:STDOUT:   %.loc19_13.2: init %C = class_init (), %return [template = constants.%C.val]
@@ -190,14 +190,14 @@ fn TestAssign(a: C*, b: C) {
 // CHECK:STDOUT:   return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @TestOp(%a.param_patt: %C, %b.param_patt: %C) -> %return: %C {
+// CHECK:STDOUT: fn @TestOp(%a.param_patt: %C, %b.param_patt: %C) -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %a.ref: %C = name_ref a, %a
 // CHECK:STDOUT:   %b.ref: %C = name_ref b, %b
 // CHECK:STDOUT:   %impl.elem0: %Op.type.2 = interface_witness_access constants.%interface.1, element0 [template = constants.%Op.1]
 // CHECK:STDOUT:   %Op.bound: <bound method> = bound_method %a.ref, %impl.elem0
-// CHECK:STDOUT:   %.loc26_23.2: ref %C = splice_block %return {}
-// CHECK:STDOUT:   %Op.call: init %C = call %Op.bound(%a.ref, %b.ref) to %.loc26_23.2
+// CHECK:STDOUT:   %.loc26: ref %C = splice_block %return {}
+// CHECK:STDOUT:   %Op.call: init %C = call %Op.bound(%a.ref, %b.ref) to %.loc26
 // CHECK:STDOUT:   return %Op.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 4 - 4
toolchain/check/testdata/operators/overloaded/mul.carbon

@@ -177,7 +177,7 @@ fn TestAssign(a: C*, b: C) {
 // CHECK:STDOUT:   complete_type_witness = %complete_type
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Op.1[%self.param_patt: %C](%other.param_patt: %C) -> %return: %C {
+// CHECK:STDOUT: fn @Op.1[%self.param_patt: %C](%other.param_patt: %C) -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %.loc19_13.1: %empty_struct_type = struct_literal ()
 // CHECK:STDOUT:   %.loc19_13.2: init %C = class_init (), %return [template = constants.%C.val]
@@ -190,14 +190,14 @@ fn TestAssign(a: C*, b: C) {
 // CHECK:STDOUT:   return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @TestOp(%a.param_patt: %C, %b.param_patt: %C) -> %return: %C {
+// CHECK:STDOUT: fn @TestOp(%a.param_patt: %C, %b.param_patt: %C) -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %a.ref: %C = name_ref a, %a
 // CHECK:STDOUT:   %b.ref: %C = name_ref b, %b
 // CHECK:STDOUT:   %impl.elem0: %Op.type.2 = interface_witness_access constants.%interface.1, element0 [template = constants.%Op.1]
 // CHECK:STDOUT:   %Op.bound: <bound method> = bound_method %a.ref, %impl.elem0
-// CHECK:STDOUT:   %.loc26_23.2: ref %C = splice_block %return {}
-// CHECK:STDOUT:   %Op.call: init %C = call %Op.bound(%a.ref, %b.ref) to %.loc26_23.2
+// CHECK:STDOUT:   %.loc26: ref %C = splice_block %return {}
+// CHECK:STDOUT:   %Op.call: init %C = call %Op.bound(%a.ref, %b.ref) to %.loc26
 // CHECK:STDOUT:   return %Op.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 4 - 4
toolchain/check/testdata/operators/overloaded/negate.carbon

@@ -106,7 +106,7 @@ fn TestOp(a: C) -> C {
 // CHECK:STDOUT:   complete_type_witness = %complete_type
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Op.1[%self.param_patt: %C]() -> %return: %C {
+// CHECK:STDOUT: fn @Op.1[%self.param_patt: %C]() -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %.loc19_13.1: %empty_struct_type = struct_literal ()
 // CHECK:STDOUT:   %.loc19_13.2: init %C = class_init (), %return [template = constants.%C.val]
@@ -114,13 +114,13 @@ fn TestOp(a: C) -> C {
 // CHECK:STDOUT:   return %.loc19_14 to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @TestOp(%a.param_patt: %C) -> %return: %C {
+// CHECK:STDOUT: fn @TestOp(%a.param_patt: %C) -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %a.ref: %C = name_ref a, %a
 // CHECK:STDOUT:   %impl.elem0: %Op.type.2 = interface_witness_access constants.%interface, element0 [template = constants.%Op.1]
 // CHECK:STDOUT:   %Op.bound: <bound method> = bound_method %a.ref, %impl.elem0
-// CHECK:STDOUT:   %.loc23_17.2: ref %C = splice_block %return {}
-// CHECK:STDOUT:   %Op.call: init %C = call %Op.bound(%a.ref) to %.loc23_17.2
+// CHECK:STDOUT:   %.loc23: ref %C = splice_block %return {}
+// CHECK:STDOUT:   %Op.call: init %C = call %Op.bound(%a.ref) to %.loc23
 // CHECK:STDOUT:   return %Op.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 1 - 1
toolchain/check/testdata/operators/overloaded/ordered.carbon

@@ -113,7 +113,7 @@ fn TestGreaterEqual(a: D, b: D) -> bool {
 // CHECK:STDOUT:     import Core//prelude
 // CHECK:STDOUT:     import Core//prelude/...
 // CHECK:STDOUT:   }
-// CHECK:STDOUT:   %import_ref.1: type = import_ref Core//prelude/operators/comparison, inst+73, loaded [template = constants.%Ordered.type]
+// CHECK:STDOUT:   %import_ref.1: type = import_ref Core//prelude/operators/comparison, inst+72, loaded [template = constants.%Ordered.type]
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: file {

+ 4 - 4
toolchain/check/testdata/operators/overloaded/right_shift.carbon

@@ -177,7 +177,7 @@ fn TestAssign(a: C*, b: C) {
 // CHECK:STDOUT:   complete_type_witness = %complete_type
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Op.1[%self.param_patt: %C](%other.param_patt: %C) -> %return: %C {
+// CHECK:STDOUT: fn @Op.1[%self.param_patt: %C](%other.param_patt: %C) -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %.loc19_13.1: %empty_struct_type = struct_literal ()
 // CHECK:STDOUT:   %.loc19_13.2: init %C = class_init (), %return [template = constants.%C.val]
@@ -190,14 +190,14 @@ fn TestAssign(a: C*, b: C) {
 // CHECK:STDOUT:   return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @TestOp(%a.param_patt: %C, %b.param_patt: %C) -> %return: %C {
+// CHECK:STDOUT: fn @TestOp(%a.param_patt: %C, %b.param_patt: %C) -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %a.ref: %C = name_ref a, %a
 // CHECK:STDOUT:   %b.ref: %C = name_ref b, %b
 // CHECK:STDOUT:   %impl.elem0: %Op.type.2 = interface_witness_access constants.%interface.1, element0 [template = constants.%Op.1]
 // CHECK:STDOUT:   %Op.bound: <bound method> = bound_method %a.ref, %impl.elem0
-// CHECK:STDOUT:   %.loc26_23.2: ref %C = splice_block %return {}
-// CHECK:STDOUT:   %Op.call: init %C = call %Op.bound(%a.ref, %b.ref) to %.loc26_23.2
+// CHECK:STDOUT:   %.loc26: ref %C = splice_block %return {}
+// CHECK:STDOUT:   %Op.call: init %C = call %Op.bound(%a.ref, %b.ref) to %.loc26
 // CHECK:STDOUT:   return %Op.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 4 - 4
toolchain/check/testdata/operators/overloaded/sub.carbon

@@ -177,7 +177,7 @@ fn TestAssign(a: C*, b: C) {
 // CHECK:STDOUT:   complete_type_witness = %complete_type
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Op.1[%self.param_patt: %C](%other.param_patt: %C) -> %return: %C {
+// CHECK:STDOUT: fn @Op.1[%self.param_patt: %C](%other.param_patt: %C) -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %.loc19_13.1: %empty_struct_type = struct_literal ()
 // CHECK:STDOUT:   %.loc19_13.2: init %C = class_init (), %return [template = constants.%C.val]
@@ -190,14 +190,14 @@ fn TestAssign(a: C*, b: C) {
 // CHECK:STDOUT:   return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @TestOp(%a.param_patt: %C, %b.param_patt: %C) -> %return: %C {
+// CHECK:STDOUT: fn @TestOp(%a.param_patt: %C, %b.param_patt: %C) -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %a.ref: %C = name_ref a, %a
 // CHECK:STDOUT:   %b.ref: %C = name_ref b, %b
 // CHECK:STDOUT:   %impl.elem0: %Op.type.2 = interface_witness_access constants.%interface.1, element0 [template = constants.%Op.1]
 // CHECK:STDOUT:   %Op.bound: <bound method> = bound_method %a.ref, %impl.elem0
-// CHECK:STDOUT:   %.loc26_23.2: ref %C = splice_block %return {}
-// CHECK:STDOUT:   %Op.call: init %C = call %Op.bound(%a.ref, %b.ref) to %.loc26_23.2
+// CHECK:STDOUT:   %.loc26: ref %C = splice_block %return {}
+// CHECK:STDOUT:   %Op.call: init %C = call %Op.bound(%a.ref, %b.ref) to %.loc26
 // CHECK:STDOUT:   return %Op.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 33 - 33
toolchain/check/testdata/packages/implicit_imports_prelude.carbon

@@ -142,44 +142,44 @@ var b: i32 = a;
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
-// CHECK:STDOUT:   %import_ref.1: ref %i32 = import_ref Main//lib, inst+20, loaded
+// CHECK:STDOUT:   %import_ref.1: ref %i32 = import_ref Main//lib, inst+19, loaded
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .Int = %import_ref.36
 // CHECK:STDOUT:     import Core//prelude
 // CHECK:STDOUT:     import Core//prelude/...
 // CHECK:STDOUT:   }
-// CHECK:STDOUT:   %import_ref.2 = import_ref Main//lib, inst+33, unloaded
-// CHECK:STDOUT:   %import_ref.3 = import_ref Main//lib, inst+34, unloaded
-// CHECK:STDOUT:   %import_ref.4 = import_ref Main//lib, inst+35, unloaded
-// CHECK:STDOUT:   %import_ref.5: type = import_ref Main//lib, inst+74, loaded [template = Core.IntLiteral]
-// CHECK:STDOUT:   %import_ref.6: type = import_ref Main//lib, inst+75, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
-// CHECK:STDOUT:   %import_ref.7 = import_ref Main//lib, inst+76, unloaded
-// CHECK:STDOUT:   %import_ref.8 = import_ref Main//lib, inst+48, unloaded
-// CHECK:STDOUT:   %import_ref.9: type = import_ref Main//lib, inst+100, loaded [template = Core.IntLiteral]
-// CHECK:STDOUT:   %import_ref.10: type = import_ref Main//lib, inst+101, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
-// CHECK:STDOUT:   %import_ref.11 = import_ref Main//lib, inst+102, unloaded
-// CHECK:STDOUT:   %import_ref.12: type = import_ref Main//lib, inst+125, loaded [symbolic = @impl.3.%iN (constants.%iN)]
-// CHECK:STDOUT:   %import_ref.13: type = import_ref Main//lib, inst+126, loaded [template = constants.%ImplicitAs.type.5]
-// CHECK:STDOUT:   %import_ref.14 = import_ref Main//lib, inst+127, unloaded
-// CHECK:STDOUT:   %import_ref.16: type = import_ref Main//lib, inst+153, loaded [symbolic = @impl.4.%uN (constants.%uN)]
-// CHECK:STDOUT:   %import_ref.17: type = import_ref Main//lib, inst+154, loaded [template = constants.%ImplicitAs.type.5]
-// CHECK:STDOUT:   %import_ref.18 = import_ref Main//lib, inst+155, unloaded
-// CHECK:STDOUT:   %import_ref.19 = import_ref Main//lib, inst+181, unloaded
-// CHECK:STDOUT:   %import_ref.20 = import_ref Main//lib, inst+182, unloaded
-// CHECK:STDOUT:   %import_ref.21 = import_ref Main//lib, inst+183, unloaded
-// CHECK:STDOUT:   %import_ref.22: type = import_ref Main//lib, inst+187, loaded [template = Core.IntLiteral]
-// CHECK:STDOUT:   %import_ref.23: type = import_ref Main//lib, inst+188, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
-// CHECK:STDOUT:   %import_ref.24 = import_ref Main//lib, inst+189, unloaded
-// CHECK:STDOUT:   %import_ref.25 = import_ref Main//lib, inst+202, unloaded
-// CHECK:STDOUT:   %import_ref.26: type = import_ref Main//lib, inst+236, loaded [template = Core.IntLiteral]
-// CHECK:STDOUT:   %import_ref.27: type = import_ref Main//lib, inst+237, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
-// CHECK:STDOUT:   %import_ref.28 = import_ref Main//lib, inst+238, unloaded
-// CHECK:STDOUT:   %import_ref.29: type = import_ref Main//lib, inst+261, loaded [symbolic = @impl.7.%iN (constants.%iN)]
-// CHECK:STDOUT:   %import_ref.30: type = import_ref Main//lib, inst+262, loaded [template = constants.%As.type.5]
-// CHECK:STDOUT:   %import_ref.31 = import_ref Main//lib, inst+263, unloaded
-// CHECK:STDOUT:   %import_ref.33: type = import_ref Main//lib, inst+289, loaded [symbolic = @impl.8.%uN (constants.%uN)]
-// CHECK:STDOUT:   %import_ref.34: type = import_ref Main//lib, inst+290, loaded [template = constants.%As.type.5]
-// CHECK:STDOUT:   %import_ref.35 = import_ref Main//lib, inst+291, unloaded
+// CHECK:STDOUT:   %import_ref.2 = import_ref Main//lib, inst+32, unloaded
+// CHECK:STDOUT:   %import_ref.3 = import_ref Main//lib, inst+33, unloaded
+// CHECK:STDOUT:   %import_ref.4 = import_ref Main//lib, inst+34, unloaded
+// CHECK:STDOUT:   %import_ref.5: type = import_ref Main//lib, inst+72, loaded [template = Core.IntLiteral]
+// CHECK:STDOUT:   %import_ref.6: type = import_ref Main//lib, inst+73, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
+// CHECK:STDOUT:   %import_ref.7 = import_ref Main//lib, inst+74, unloaded
+// CHECK:STDOUT:   %import_ref.8 = import_ref Main//lib, inst+46, unloaded
+// CHECK:STDOUT:   %import_ref.9: type = import_ref Main//lib, inst+97, loaded [template = Core.IntLiteral]
+// CHECK:STDOUT:   %import_ref.10: type = import_ref Main//lib, inst+98, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
+// CHECK:STDOUT:   %import_ref.11 = import_ref Main//lib, inst+99, unloaded
+// CHECK:STDOUT:   %import_ref.12: type = import_ref Main//lib, inst+121, loaded [symbolic = @impl.3.%iN (constants.%iN)]
+// CHECK:STDOUT:   %import_ref.13: type = import_ref Main//lib, inst+122, loaded [template = constants.%ImplicitAs.type.5]
+// CHECK:STDOUT:   %import_ref.14 = import_ref Main//lib, inst+123, unloaded
+// CHECK:STDOUT:   %import_ref.16: type = import_ref Main//lib, inst+148, loaded [symbolic = @impl.4.%uN (constants.%uN)]
+// CHECK:STDOUT:   %import_ref.17: type = import_ref Main//lib, inst+149, loaded [template = constants.%ImplicitAs.type.5]
+// CHECK:STDOUT:   %import_ref.18 = import_ref Main//lib, inst+150, unloaded
+// CHECK:STDOUT:   %import_ref.19 = import_ref Main//lib, inst+175, unloaded
+// CHECK:STDOUT:   %import_ref.20 = import_ref Main//lib, inst+176, unloaded
+// CHECK:STDOUT:   %import_ref.21 = import_ref Main//lib, inst+177, unloaded
+// CHECK:STDOUT:   %import_ref.22: type = import_ref Main//lib, inst+181, loaded [template = Core.IntLiteral]
+// CHECK:STDOUT:   %import_ref.23: type = import_ref Main//lib, inst+182, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
+// CHECK:STDOUT:   %import_ref.24 = import_ref Main//lib, inst+183, unloaded
+// CHECK:STDOUT:   %import_ref.25 = import_ref Main//lib, inst+195, unloaded
+// CHECK:STDOUT:   %import_ref.26: type = import_ref Main//lib, inst+228, loaded [template = Core.IntLiteral]
+// CHECK:STDOUT:   %import_ref.27: type = import_ref Main//lib, inst+229, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
+// CHECK:STDOUT:   %import_ref.28 = import_ref Main//lib, inst+230, unloaded
+// CHECK:STDOUT:   %import_ref.29: type = import_ref Main//lib, inst+252, loaded [symbolic = @impl.7.%iN (constants.%iN)]
+// CHECK:STDOUT:   %import_ref.30: type = import_ref Main//lib, inst+253, loaded [template = constants.%As.type.5]
+// CHECK:STDOUT:   %import_ref.31 = import_ref Main//lib, inst+254, unloaded
+// CHECK:STDOUT:   %import_ref.33: type = import_ref Main//lib, inst+279, loaded [symbolic = @impl.8.%uN (constants.%uN)]
+// CHECK:STDOUT:   %import_ref.34: type = import_ref Main//lib, inst+280, loaded [template = constants.%As.type.5]
+// CHECK:STDOUT:   %import_ref.35 = import_ref Main//lib, inst+281, unloaded
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: file {

+ 34 - 34
toolchain/check/testdata/pointer/import.carbon

@@ -154,45 +154,45 @@ var a: i32* = a_ref;
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
-// CHECK:STDOUT:   %import_ref.1 = import_ref Implicit//default, inst+20, unloaded
-// CHECK:STDOUT:   %import_ref.2: ref %ptr = import_ref Implicit//default, inst+328, loaded
+// CHECK:STDOUT:   %import_ref.1 = import_ref Implicit//default, inst+19, unloaded
+// CHECK:STDOUT:   %import_ref.2: ref %ptr = import_ref Implicit//default, inst+317, loaded
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .Int = %import_ref.37
 // CHECK:STDOUT:     import Core//prelude
 // CHECK:STDOUT:     import Core//prelude/...
 // CHECK:STDOUT:   }
-// CHECK:STDOUT:   %import_ref.3 = import_ref Implicit//default, inst+33, unloaded
-// CHECK:STDOUT:   %import_ref.4 = import_ref Implicit//default, inst+34, unloaded
-// CHECK:STDOUT:   %import_ref.5 = import_ref Implicit//default, inst+35, unloaded
-// CHECK:STDOUT:   %import_ref.6: type = import_ref Implicit//default, inst+74, loaded [template = Core.IntLiteral]
-// CHECK:STDOUT:   %import_ref.7: type = import_ref Implicit//default, inst+75, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
-// CHECK:STDOUT:   %import_ref.8 = import_ref Implicit//default, inst+76, unloaded
-// CHECK:STDOUT:   %import_ref.9 = import_ref Implicit//default, inst+48, unloaded
-// CHECK:STDOUT:   %import_ref.10: type = import_ref Implicit//default, inst+100, loaded [template = Core.IntLiteral]
-// CHECK:STDOUT:   %import_ref.11: type = import_ref Implicit//default, inst+101, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
-// CHECK:STDOUT:   %import_ref.12 = import_ref Implicit//default, inst+102, unloaded
-// CHECK:STDOUT:   %import_ref.13: type = import_ref Implicit//default, inst+125, loaded [symbolic = @impl.3.%iN (constants.%iN)]
-// CHECK:STDOUT:   %import_ref.14: type = import_ref Implicit//default, inst+126, loaded [template = constants.%ImplicitAs.type.5]
-// CHECK:STDOUT:   %import_ref.15 = import_ref Implicit//default, inst+127, unloaded
-// CHECK:STDOUT:   %import_ref.17: type = import_ref Implicit//default, inst+153, loaded [symbolic = @impl.4.%uN (constants.%uN)]
-// CHECK:STDOUT:   %import_ref.18: type = import_ref Implicit//default, inst+154, loaded [template = constants.%ImplicitAs.type.5]
-// CHECK:STDOUT:   %import_ref.19 = import_ref Implicit//default, inst+155, unloaded
-// CHECK:STDOUT:   %import_ref.20 = import_ref Implicit//default, inst+181, unloaded
-// CHECK:STDOUT:   %import_ref.21 = import_ref Implicit//default, inst+182, unloaded
-// CHECK:STDOUT:   %import_ref.22 = import_ref Implicit//default, inst+183, unloaded
-// CHECK:STDOUT:   %import_ref.23: type = import_ref Implicit//default, inst+187, loaded [template = Core.IntLiteral]
-// CHECK:STDOUT:   %import_ref.24: type = import_ref Implicit//default, inst+188, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
-// CHECK:STDOUT:   %import_ref.25 = import_ref Implicit//default, inst+189, unloaded
-// CHECK:STDOUT:   %import_ref.26 = import_ref Implicit//default, inst+202, unloaded
-// CHECK:STDOUT:   %import_ref.27: type = import_ref Implicit//default, inst+236, loaded [template = Core.IntLiteral]
-// CHECK:STDOUT:   %import_ref.28: type = import_ref Implicit//default, inst+237, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
-// CHECK:STDOUT:   %import_ref.29 = import_ref Implicit//default, inst+238, unloaded
-// CHECK:STDOUT:   %import_ref.30: type = import_ref Implicit//default, inst+261, loaded [symbolic = @impl.7.%iN (constants.%iN)]
-// CHECK:STDOUT:   %import_ref.31: type = import_ref Implicit//default, inst+262, loaded [template = constants.%As.type.5]
-// CHECK:STDOUT:   %import_ref.32 = import_ref Implicit//default, inst+263, unloaded
-// CHECK:STDOUT:   %import_ref.34: type = import_ref Implicit//default, inst+289, loaded [symbolic = @impl.8.%uN (constants.%uN)]
-// CHECK:STDOUT:   %import_ref.35: type = import_ref Implicit//default, inst+290, loaded [template = constants.%As.type.5]
-// CHECK:STDOUT:   %import_ref.36 = import_ref Implicit//default, inst+291, unloaded
+// CHECK:STDOUT:   %import_ref.3 = import_ref Implicit//default, inst+32, unloaded
+// CHECK:STDOUT:   %import_ref.4 = import_ref Implicit//default, inst+33, unloaded
+// CHECK:STDOUT:   %import_ref.5 = import_ref Implicit//default, inst+34, unloaded
+// CHECK:STDOUT:   %import_ref.6: type = import_ref Implicit//default, inst+72, loaded [template = Core.IntLiteral]
+// CHECK:STDOUT:   %import_ref.7: type = import_ref Implicit//default, inst+73, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
+// CHECK:STDOUT:   %import_ref.8 = import_ref Implicit//default, inst+74, unloaded
+// CHECK:STDOUT:   %import_ref.9 = import_ref Implicit//default, inst+46, unloaded
+// CHECK:STDOUT:   %import_ref.10: type = import_ref Implicit//default, inst+97, loaded [template = Core.IntLiteral]
+// CHECK:STDOUT:   %import_ref.11: type = import_ref Implicit//default, inst+98, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
+// CHECK:STDOUT:   %import_ref.12 = import_ref Implicit//default, inst+99, unloaded
+// CHECK:STDOUT:   %import_ref.13: type = import_ref Implicit//default, inst+121, loaded [symbolic = @impl.3.%iN (constants.%iN)]
+// CHECK:STDOUT:   %import_ref.14: type = import_ref Implicit//default, inst+122, loaded [template = constants.%ImplicitAs.type.5]
+// CHECK:STDOUT:   %import_ref.15 = import_ref Implicit//default, inst+123, unloaded
+// CHECK:STDOUT:   %import_ref.17: type = import_ref Implicit//default, inst+148, loaded [symbolic = @impl.4.%uN (constants.%uN)]
+// CHECK:STDOUT:   %import_ref.18: type = import_ref Implicit//default, inst+149, loaded [template = constants.%ImplicitAs.type.5]
+// CHECK:STDOUT:   %import_ref.19 = import_ref Implicit//default, inst+150, unloaded
+// CHECK:STDOUT:   %import_ref.20 = import_ref Implicit//default, inst+175, unloaded
+// CHECK:STDOUT:   %import_ref.21 = import_ref Implicit//default, inst+176, unloaded
+// CHECK:STDOUT:   %import_ref.22 = import_ref Implicit//default, inst+177, unloaded
+// CHECK:STDOUT:   %import_ref.23: type = import_ref Implicit//default, inst+181, loaded [template = Core.IntLiteral]
+// CHECK:STDOUT:   %import_ref.24: type = import_ref Implicit//default, inst+182, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
+// CHECK:STDOUT:   %import_ref.25 = import_ref Implicit//default, inst+183, unloaded
+// CHECK:STDOUT:   %import_ref.26 = import_ref Implicit//default, inst+195, unloaded
+// CHECK:STDOUT:   %import_ref.27: type = import_ref Implicit//default, inst+228, loaded [template = Core.IntLiteral]
+// CHECK:STDOUT:   %import_ref.28: type = import_ref Implicit//default, inst+229, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
+// CHECK:STDOUT:   %import_ref.29 = import_ref Implicit//default, inst+230, unloaded
+// CHECK:STDOUT:   %import_ref.30: type = import_ref Implicit//default, inst+252, loaded [symbolic = @impl.7.%iN (constants.%iN)]
+// CHECK:STDOUT:   %import_ref.31: type = import_ref Implicit//default, inst+253, loaded [template = constants.%As.type.5]
+// CHECK:STDOUT:   %import_ref.32 = import_ref Implicit//default, inst+254, unloaded
+// CHECK:STDOUT:   %import_ref.34: type = import_ref Implicit//default, inst+279, loaded [symbolic = @impl.8.%uN (constants.%uN)]
+// CHECK:STDOUT:   %import_ref.35: type = import_ref Implicit//default, inst+280, loaded [template = constants.%As.type.5]
+// CHECK:STDOUT:   %import_ref.36 = import_ref Implicit//default, inst+281, unloaded
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: file {

+ 1 - 1
toolchain/check/testdata/return/fail_return_with_returned_var.carbon

@@ -145,7 +145,7 @@ fn G() -> C {
 // CHECK:STDOUT:   return <error>
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @G() -> %return: %C {
+// CHECK:STDOUT: fn @G() -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %C.ref.loc25: type = name_ref C, file.%C.decl [template = constants.%C]
 // CHECK:STDOUT:   %c: ref %C = bind_name c, %return

+ 1 - 1
toolchain/check/testdata/return/fail_var_in_type.carbon

@@ -48,7 +48,7 @@ fn Six() -> x { return 6; }
 // CHECK:STDOUT:     %return.param_patt: <error> = out_param_pattern %return.patt, runtime_param0
 // CHECK:STDOUT:   } {
 // CHECK:STDOUT:     %x.ref: ref type = name_ref x, file.%x
-// CHECK:STDOUT:     %.loc15_13: type = bind_value %x.ref
+// CHECK:STDOUT:     %.loc15: type = bind_value %x.ref
 // CHECK:STDOUT:     %return.param: ref <error> = out_param runtime_param0
 // CHECK:STDOUT:     %return: ref <error> = return_slot %return.param
 // CHECK:STDOUT:   }

+ 45 - 45
toolchain/check/testdata/return/no_prelude/import_convert_function.carbon

@@ -763,7 +763,7 @@ fn F0(n: i32) -> P.D {
 // CHECK:STDOUT:
 // CHECK:STDOUT: fn @Int(%N.param_patt: Core.IntLiteral) -> type = "int.make_type_signed";
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Make() -> %return: %D {
+// CHECK:STDOUT: fn @Make() -> %return.param_patt: %D {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %int_0.loc8_31: Core.IntLiteral = int_value 0 [template = constants.%int_0.1]
 // CHECK:STDOUT:   %int_0.loc8_39: Core.IntLiteral = int_value 0 [template = constants.%int_0.1]
@@ -796,7 +796,7 @@ fn F0(n: i32) -> P.D {
 // CHECK:STDOUT:
 // CHECK:STDOUT: fn @Convert.2[%self.param_patt: Core.IntLiteral]() -> %i32 = "int.convert_checked";
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Convert.3[%self.param_patt: %C.2]() -> %return: %D {
+// CHECK:STDOUT: fn @Convert.3[%self.param_patt: %C.2]() -> %return.param_patt: %D {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %Make.ref: %Make.type = name_ref Make, file.%Make.decl [template = constants.%Make]
 // CHECK:STDOUT:   %.loc10: ref %D = splice_block %return {}
@@ -804,7 +804,7 @@ fn F0(n: i32) -> P.D {
 // CHECK:STDOUT:   return %Make.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Convert.4[%self.param_patt: %C.3]() -> %return: %D {
+// CHECK:STDOUT: fn @Convert.4[%self.param_patt: %C.3]() -> %return.param_patt: %D {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %Make.ref: %Make.type = name_ref Make, file.%Make.decl [template = constants.%Make]
 // CHECK:STDOUT:   %.loc11: ref %D = splice_block %return {}
@@ -812,7 +812,7 @@ fn F0(n: i32) -> P.D {
 // CHECK:STDOUT:   return %Make.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Convert.5[%self.param_patt: %C.4]() -> %return: %D {
+// CHECK:STDOUT: fn @Convert.5[%self.param_patt: %C.4]() -> %return.param_patt: %D {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %Make.ref: %Make.type = name_ref Make, file.%Make.decl [template = constants.%Make]
 // CHECK:STDOUT:   %.loc12: ref %D = splice_block %return {}
@@ -820,7 +820,7 @@ fn F0(n: i32) -> P.D {
 // CHECK:STDOUT:   return %Make.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Convert.6[%self.param_patt: %C.5]() -> %return: %D {
+// CHECK:STDOUT: fn @Convert.6[%self.param_patt: %C.5]() -> %return.param_patt: %D {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %Make.ref: %Make.type = name_ref Make, file.%Make.decl [template = constants.%Make]
 // CHECK:STDOUT:   %.loc13: ref %D = splice_block %return {}
@@ -828,7 +828,7 @@ fn F0(n: i32) -> P.D {
 // CHECK:STDOUT:   return %Make.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Convert.7[%self.param_patt: %C.6]() -> %return: %D {
+// CHECK:STDOUT: fn @Convert.7[%self.param_patt: %C.6]() -> %return.param_patt: %D {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %Make.ref: %Make.type = name_ref Make, file.%Make.decl [template = constants.%Make]
 // CHECK:STDOUT:   %.loc14: ref %D = splice_block %return {}
@@ -836,7 +836,7 @@ fn F0(n: i32) -> P.D {
 // CHECK:STDOUT:   return %Make.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Convert.8[%self.param_patt: %C.7]() -> %return: %D {
+// CHECK:STDOUT: fn @Convert.8[%self.param_patt: %C.7]() -> %return.param_patt: %D {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %Make.ref: %Make.type = name_ref Make, file.%Make.decl [template = constants.%Make]
 // CHECK:STDOUT:   %.loc15: ref %D = splice_block %return {}
@@ -844,7 +844,7 @@ fn F0(n: i32) -> P.D {
 // CHECK:STDOUT:   return %Make.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Convert.9[%self.param_patt: %C.8]() -> %return: %D {
+// CHECK:STDOUT: fn @Convert.9[%self.param_patt: %C.8]() -> %return.param_patt: %D {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %Make.ref: %Make.type = name_ref Make, file.%Make.decl [template = constants.%Make]
 // CHECK:STDOUT:   %.loc16: ref %D = splice_block %return {}
@@ -852,7 +852,7 @@ fn F0(n: i32) -> P.D {
 // CHECK:STDOUT:   return %Make.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Convert.10[%self.param_patt: %C.9]() -> %return: %D {
+// CHECK:STDOUT: fn @Convert.10[%self.param_patt: %C.9]() -> %return.param_patt: %D {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %Make.ref: %Make.type = name_ref Make, file.%Make.decl [template = constants.%Make]
 // CHECK:STDOUT:   %.loc17: ref %D = splice_block %return {}
@@ -1147,14 +1147,14 @@ fn F0(n: i32) -> P.D {
 // CHECK:STDOUT:     .ImplicitAs = %import_ref.10
 // CHECK:STDOUT:     import Core//default
 // CHECK:STDOUT:   }
-// CHECK:STDOUT:   %import_ref.2: type = import_ref P//library, inst+34, loaded [template = constants.%D]
-// CHECK:STDOUT:   %import_ref.3: <witness> = import_ref P//library, inst+48, loaded [template = constants.%complete_type.1]
-// CHECK:STDOUT:   %import_ref.4 = import_ref P//library, inst+35, unloaded
-// CHECK:STDOUT:   %import_ref.5 = import_ref P//library, inst+41, unloaded
-// CHECK:STDOUT:   %import_ref.6 = import_ref P//library, inst+46, unloaded
-// CHECK:STDOUT:   %import_ref.7: %C.type = import_ref P//library, inst+25, loaded [template = constants.%C.generic]
-// CHECK:STDOUT:   %import_ref.8: <witness> = import_ref P//library, inst+32, loaded [template = constants.%complete_type.2]
-// CHECK:STDOUT:   %import_ref.9 = import_ref P//library, inst+30, unloaded
+// CHECK:STDOUT:   %import_ref.2: type = import_ref P//library, inst+33, loaded [template = constants.%D]
+// CHECK:STDOUT:   %import_ref.3: <witness> = import_ref P//library, inst+47, loaded [template = constants.%complete_type.1]
+// CHECK:STDOUT:   %import_ref.4 = import_ref P//library, inst+34, unloaded
+// CHECK:STDOUT:   %import_ref.5 = import_ref P//library, inst+40, unloaded
+// CHECK:STDOUT:   %import_ref.6 = import_ref P//library, inst+45, unloaded
+// CHECK:STDOUT:   %import_ref.7: %C.type = import_ref P//library, inst+24, loaded [template = constants.%C.generic]
+// CHECK:STDOUT:   %import_ref.8: <witness> = import_ref P//library, inst+31, loaded [template = constants.%complete_type.2]
+// CHECK:STDOUT:   %import_ref.9 = import_ref P//library, inst+29, unloaded
 // CHECK:STDOUT:   %import_ref.11 = import_ref Core//default, inst+36, unloaded
 // CHECK:STDOUT:   %import_ref.12: @ImplicitAs.%Convert.assoc_type (%Convert.assoc_type.1) = import_ref Core//default, inst+60, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.3)]
 // CHECK:STDOUT:   %import_ref.13 = import_ref Core//default, inst+52, unloaded
@@ -1162,31 +1162,31 @@ fn F0(n: i32) -> P.D {
 // CHECK:STDOUT:   %import_ref.16: type = import_ref Core//default, inst+71, loaded [template = Core.IntLiteral]
 // CHECK:STDOUT:   %import_ref.17: type = import_ref Core//default, inst+79, loaded [template = constants.%ImplicitAs.type.3]
 // CHECK:STDOUT:   %import_ref.18: <witness> = import_ref Core//default, inst+103, loaded [template = constants.%interface.1]
-// CHECK:STDOUT:   %import_ref.19: type = import_ref P//library, inst+146, loaded [template = constants.%C.2]
-// CHECK:STDOUT:   %import_ref.20: type = import_ref P//library, inst+151, loaded [template = constants.%ImplicitAs.type.4]
-// CHECK:STDOUT:   %import_ref.21: <witness> = import_ref P//library, inst+172, loaded [template = constants.%interface.2]
-// CHECK:STDOUT:   %import_ref.22: type = import_ref P//library, inst+189, loaded [template = constants.%C.3]
-// CHECK:STDOUT:   %import_ref.23: type = import_ref P//library, inst+194, loaded [template = constants.%ImplicitAs.type.4]
-// CHECK:STDOUT:   %import_ref.24: <witness> = import_ref P//library, inst+210, loaded [template = constants.%interface.3]
-// CHECK:STDOUT:   %import_ref.25: type = import_ref P//library, inst+226, loaded [template = constants.%C.4]
-// CHECK:STDOUT:   %import_ref.26: type = import_ref P//library, inst+231, loaded [template = constants.%ImplicitAs.type.4]
-// CHECK:STDOUT:   %import_ref.27: <witness> = import_ref P//library, inst+247, loaded [template = constants.%interface.4]
-// CHECK:STDOUT:   %import_ref.28: type = import_ref P//library, inst+263, loaded [template = constants.%C.5]
-// CHECK:STDOUT:   %import_ref.29: type = import_ref P//library, inst+268, loaded [template = constants.%ImplicitAs.type.4]
-// CHECK:STDOUT:   %import_ref.30: <witness> = import_ref P//library, inst+284, loaded [template = constants.%interface.5]
-// CHECK:STDOUT:   %import_ref.31: type = import_ref P//library, inst+300, loaded [template = constants.%C.6]
-// CHECK:STDOUT:   %import_ref.32: type = import_ref P//library, inst+305, loaded [template = constants.%ImplicitAs.type.4]
-// CHECK:STDOUT:   %import_ref.33: <witness> = import_ref P//library, inst+321, loaded [template = constants.%interface.6]
-// CHECK:STDOUT:   %import_ref.34: type = import_ref P//library, inst+337, loaded [template = constants.%C.7]
-// CHECK:STDOUT:   %import_ref.35: type = import_ref P//library, inst+342, loaded [template = constants.%ImplicitAs.type.4]
-// CHECK:STDOUT:   %import_ref.36: <witness> = import_ref P//library, inst+358, loaded [template = constants.%interface.7]
-// CHECK:STDOUT:   %import_ref.37: type = import_ref P//library, inst+374, loaded [template = constants.%C.8]
-// CHECK:STDOUT:   %import_ref.38: type = import_ref P//library, inst+379, loaded [template = constants.%ImplicitAs.type.4]
-// CHECK:STDOUT:   %import_ref.39: <witness> = import_ref P//library, inst+395, loaded [template = constants.%interface.8]
-// CHECK:STDOUT:   %import_ref.40: type = import_ref P//library, inst+411, loaded [template = constants.%C.9]
-// CHECK:STDOUT:   %import_ref.41: type = import_ref P//library, inst+416, loaded [template = constants.%ImplicitAs.type.4]
-// CHECK:STDOUT:   %import_ref.42: <witness> = import_ref P//library, inst+432, loaded [template = constants.%interface.9]
-// CHECK:STDOUT:   %import_ref.43: %Make.type = import_ref P//library, inst+55, loaded [template = constants.%Make]
+// CHECK:STDOUT:   %import_ref.19: type = import_ref P//library, inst+143, loaded [template = constants.%C.2]
+// CHECK:STDOUT:   %import_ref.20: type = import_ref P//library, inst+148, loaded [template = constants.%ImplicitAs.type.4]
+// CHECK:STDOUT:   %import_ref.21: <witness> = import_ref P//library, inst+169, loaded [template = constants.%interface.2]
+// CHECK:STDOUT:   %import_ref.22: type = import_ref P//library, inst+186, loaded [template = constants.%C.3]
+// CHECK:STDOUT:   %import_ref.23: type = import_ref P//library, inst+191, loaded [template = constants.%ImplicitAs.type.4]
+// CHECK:STDOUT:   %import_ref.24: <witness> = import_ref P//library, inst+207, loaded [template = constants.%interface.3]
+// CHECK:STDOUT:   %import_ref.25: type = import_ref P//library, inst+223, loaded [template = constants.%C.4]
+// CHECK:STDOUT:   %import_ref.26: type = import_ref P//library, inst+228, loaded [template = constants.%ImplicitAs.type.4]
+// CHECK:STDOUT:   %import_ref.27: <witness> = import_ref P//library, inst+244, loaded [template = constants.%interface.4]
+// CHECK:STDOUT:   %import_ref.28: type = import_ref P//library, inst+260, loaded [template = constants.%C.5]
+// CHECK:STDOUT:   %import_ref.29: type = import_ref P//library, inst+265, loaded [template = constants.%ImplicitAs.type.4]
+// CHECK:STDOUT:   %import_ref.30: <witness> = import_ref P//library, inst+281, loaded [template = constants.%interface.5]
+// CHECK:STDOUT:   %import_ref.31: type = import_ref P//library, inst+297, loaded [template = constants.%C.6]
+// CHECK:STDOUT:   %import_ref.32: type = import_ref P//library, inst+302, loaded [template = constants.%ImplicitAs.type.4]
+// CHECK:STDOUT:   %import_ref.33: <witness> = import_ref P//library, inst+318, loaded [template = constants.%interface.6]
+// CHECK:STDOUT:   %import_ref.34: type = import_ref P//library, inst+334, loaded [template = constants.%C.7]
+// CHECK:STDOUT:   %import_ref.35: type = import_ref P//library, inst+339, loaded [template = constants.%ImplicitAs.type.4]
+// CHECK:STDOUT:   %import_ref.36: <witness> = import_ref P//library, inst+355, loaded [template = constants.%interface.7]
+// CHECK:STDOUT:   %import_ref.37: type = import_ref P//library, inst+371, loaded [template = constants.%C.8]
+// CHECK:STDOUT:   %import_ref.38: type = import_ref P//library, inst+376, loaded [template = constants.%ImplicitAs.type.4]
+// CHECK:STDOUT:   %import_ref.39: <witness> = import_ref P//library, inst+392, loaded [template = constants.%interface.8]
+// CHECK:STDOUT:   %import_ref.40: type = import_ref P//library, inst+408, loaded [template = constants.%C.9]
+// CHECK:STDOUT:   %import_ref.41: type = import_ref P//library, inst+413, loaded [template = constants.%ImplicitAs.type.4]
+// CHECK:STDOUT:   %import_ref.42: <witness> = import_ref P//library, inst+429, loaded [template = constants.%interface.9]
+// CHECK:STDOUT:   %import_ref.43: %Make.type = import_ref P//library, inst+54, loaded [template = constants.%Make]
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: file {
@@ -1304,7 +1304,7 @@ fn F0(n: i32) -> P.D {
 // CHECK:STDOUT:
 // CHECK:STDOUT: fn @Int(%N.param_patt: Core.IntLiteral) -> type = "int.make_type_signed";
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @F0(%n.param_patt: %i32) -> %return: %D {
+// CHECK:STDOUT: fn @F0(%n.param_patt: %i32) -> %return.param_patt: %D {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %false.loc8: bool = bool_literal false [template = constants.%false]
 // CHECK:STDOUT:   if %false.loc8 br !if.then.loc8 else br !if.else.loc8
@@ -1524,8 +1524,8 @@ fn F0(n: i32) -> P.D {
 // CHECK:STDOUT: !if.else.loc15:
 // CHECK:STDOUT:   %P.ref.loc16: <namespace> = name_ref P, imports.%P [template = imports.%P]
 // CHECK:STDOUT:   %Make.ref: %Make.type = name_ref Make, imports.%import_ref.43 [template = constants.%Make]
-// CHECK:STDOUT:   %.loc7_15.2: ref %D = splice_block %return {}
-// CHECK:STDOUT:   %Make.call: init %D = call %Make.ref() to %.loc7_15.2
+// CHECK:STDOUT:   %.loc7_15: ref %D = splice_block %return {}
+// CHECK:STDOUT:   %Make.call: init %D = call %Make.ref() to %.loc7_15
 // CHECK:STDOUT:   return %Make.call to %return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 1 - 1
toolchain/check/testdata/return/returned_var.carbon

@@ -117,7 +117,7 @@ fn G() -> i32 {
 // CHECK:STDOUT:   complete_type_witness = %complete_type
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @F() -> %return: %C {
+// CHECK:STDOUT: fn @F() -> %return.param_patt: %C {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %C.ref.loc17: type = name_ref C, file.%C.decl [template = constants.%C]
 // CHECK:STDOUT:   %result: ref %C = bind_name result, %return

+ 1 - 1
toolchain/check/testdata/return/tuple.carbon

@@ -74,7 +74,7 @@ fn Main() -> (i32, i32) {
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @Main() -> %return: %tuple.type.2 {
+// CHECK:STDOUT: fn @Main() -> %return.param_patt: %tuple.type.2 {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %int_15: Core.IntLiteral = int_value 15 [template = constants.%int_15.1]
 // CHECK:STDOUT:   %int_35: Core.IntLiteral = int_value 35 [template = constants.%int_35.1]

+ 116 - 116
toolchain/check/testdata/struct/import.carbon

@@ -43,10 +43,10 @@ var c_bad: C({.c = 1, .d = 2}) = F();
 // --- fail_bad_value.impl.carbon
 
 impl package Implicit;
-// CHECK:STDERR: fail_bad_value.impl.carbon:[[@LINE+6]]:1: error: cannot implicitly convert from `C(<cannot stringify inst+355 kind StructValue>)` to `C(<cannot stringify inst+343 kind StructValue>)` [ImplicitAsConversionFailure]
+// CHECK:STDERR: fail_bad_value.impl.carbon:[[@LINE+6]]:1: error: cannot implicitly convert from `C(<cannot stringify inst+345 kind StructValue>)` to `C(<cannot stringify inst+333 kind StructValue>)` [ImplicitAsConversionFailure]
 // CHECK:STDERR: var c_bad: C({.a = 3, .b = 4}) = F();
 // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-// CHECK:STDERR: fail_bad_value.impl.carbon:[[@LINE+3]]:1: note: type `C(<cannot stringify inst+355 kind StructValue>)` does not implement interface `ImplicitAs(C(<cannot stringify inst+343 kind StructValue>))` [MissingImplInMemberAccessNote]
+// CHECK:STDERR: fail_bad_value.impl.carbon:[[@LINE+3]]:1: note: type `C(<cannot stringify inst+345 kind StructValue>)` does not implement interface `ImplicitAs(C(<cannot stringify inst+333 kind StructValue>))` [MissingImplInMemberAccessNote]
 // CHECK:STDERR: var c_bad: C({.a = 3, .b = 4}) = F();
 // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 var c_bad: C({.a = 3, .b = 4}) = F();
@@ -368,50 +368,50 @@ var c_bad: C({.a = 3, .b = 4}) = F();
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
-// CHECK:STDOUT:   %import_ref.1: ref %struct_type.a = import_ref Implicit//default, inst+22, loaded
-// CHECK:STDOUT:   %import_ref.2: ref %struct_type.a.d.1 = import_ref Implicit//default, inst+353, loaded
-// CHECK:STDOUT:   %import_ref.3: %C.type = import_ref Implicit//default, inst+412, loaded [template = constants.%C.generic]
-// CHECK:STDOUT:   %import_ref.4: %F.type = import_ref Implicit//default, inst+456, loaded [template = constants.%F]
+// CHECK:STDOUT:   %import_ref.1: ref %struct_type.a = import_ref Implicit//default, inst+21, loaded
+// CHECK:STDOUT:   %import_ref.2: ref %struct_type.a.d.1 = import_ref Implicit//default, inst+342, loaded
+// CHECK:STDOUT:   %import_ref.3: %C.type = import_ref Implicit//default, inst+401, loaded [template = constants.%C.generic]
+// CHECK:STDOUT:   %import_ref.4: %F.type = import_ref Implicit//default, inst+445, loaded [template = constants.%F]
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .Int = %import_ref.39
 // CHECK:STDOUT:     .ImplicitAs = %import_ref.42
 // CHECK:STDOUT:     import Core//prelude
 // CHECK:STDOUT:     import Core//prelude/...
 // CHECK:STDOUT:   }
-// CHECK:STDOUT:   %import_ref.5 = import_ref Implicit//default, inst+38, unloaded
-// CHECK:STDOUT:   %import_ref.6: @ImplicitAs.%Convert.assoc_type (%Convert.assoc_type.1) = import_ref Implicit//default, inst+39, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.6)]
-// CHECK:STDOUT:   %import_ref.7 = import_ref Implicit//default, inst+40, unloaded
-// CHECK:STDOUT:   %import_ref.8: type = import_ref Implicit//default, inst+79, loaded [template = Core.IntLiteral]
-// CHECK:STDOUT:   %import_ref.9: type = import_ref Implicit//default, inst+80, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
-// CHECK:STDOUT:   %import_ref.10: <witness> = import_ref Implicit//default, inst+81, loaded [symbolic = @impl.1.%interface (constants.%interface.1)]
-// CHECK:STDOUT:   %import_ref.11 = import_ref Implicit//default, inst+53, unloaded
-// CHECK:STDOUT:   %import_ref.12: type = import_ref Implicit//default, inst+105, loaded [template = Core.IntLiteral]
-// CHECK:STDOUT:   %import_ref.13: type = import_ref Implicit//default, inst+106, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
-// CHECK:STDOUT:   %import_ref.14 = import_ref Implicit//default, inst+107, unloaded
-// CHECK:STDOUT:   %import_ref.15: type = import_ref Implicit//default, inst+130, loaded [symbolic = @impl.3.%iN (constants.%iN)]
-// CHECK:STDOUT:   %import_ref.16: type = import_ref Implicit//default, inst+131, loaded [template = constants.%ImplicitAs.type.5]
-// CHECK:STDOUT:   %import_ref.17 = import_ref Implicit//default, inst+132, unloaded
-// CHECK:STDOUT:   %import_ref.19: type = import_ref Implicit//default, inst+158, loaded [symbolic = @impl.4.%uN (constants.%uN)]
-// CHECK:STDOUT:   %import_ref.20: type = import_ref Implicit//default, inst+159, loaded [template = constants.%ImplicitAs.type.5]
-// CHECK:STDOUT:   %import_ref.21 = import_ref Implicit//default, inst+160, unloaded
-// CHECK:STDOUT:   %import_ref.22 = import_ref Implicit//default, inst+186, unloaded
-// CHECK:STDOUT:   %import_ref.23 = import_ref Implicit//default, inst+187, unloaded
-// CHECK:STDOUT:   %import_ref.24 = import_ref Implicit//default, inst+188, unloaded
-// CHECK:STDOUT:   %import_ref.25: type = import_ref Implicit//default, inst+192, loaded [template = Core.IntLiteral]
-// CHECK:STDOUT:   %import_ref.26: type = import_ref Implicit//default, inst+193, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
-// CHECK:STDOUT:   %import_ref.27 = import_ref Implicit//default, inst+194, unloaded
-// CHECK:STDOUT:   %import_ref.28 = import_ref Implicit//default, inst+207, unloaded
-// CHECK:STDOUT:   %import_ref.29: type = import_ref Implicit//default, inst+241, loaded [template = Core.IntLiteral]
-// CHECK:STDOUT:   %import_ref.30: type = import_ref Implicit//default, inst+242, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
-// CHECK:STDOUT:   %import_ref.31 = import_ref Implicit//default, inst+243, unloaded
-// CHECK:STDOUT:   %import_ref.32: type = import_ref Implicit//default, inst+266, loaded [symbolic = @impl.7.%iN (constants.%iN)]
-// CHECK:STDOUT:   %import_ref.33: type = import_ref Implicit//default, inst+267, loaded [template = constants.%As.type.5]
-// CHECK:STDOUT:   %import_ref.34 = import_ref Implicit//default, inst+268, unloaded
-// CHECK:STDOUT:   %import_ref.36: type = import_ref Implicit//default, inst+294, loaded [symbolic = @impl.8.%uN (constants.%uN)]
-// CHECK:STDOUT:   %import_ref.37: type = import_ref Implicit//default, inst+295, loaded [template = constants.%As.type.5]
-// CHECK:STDOUT:   %import_ref.38 = import_ref Implicit//default, inst+296, unloaded
-// CHECK:STDOUT:   %import_ref.40: <witness> = import_ref Implicit//default, inst+419, loaded [template = constants.%complete_type]
-// CHECK:STDOUT:   %import_ref.41 = import_ref Implicit//default, inst+417, unloaded
+// CHECK:STDOUT:   %import_ref.5 = import_ref Implicit//default, inst+37, unloaded
+// CHECK:STDOUT:   %import_ref.6: @ImplicitAs.%Convert.assoc_type (%Convert.assoc_type.1) = import_ref Implicit//default, inst+38, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.6)]
+// CHECK:STDOUT:   %import_ref.7 = import_ref Implicit//default, inst+39, unloaded
+// CHECK:STDOUT:   %import_ref.8: type = import_ref Implicit//default, inst+77, loaded [template = Core.IntLiteral]
+// CHECK:STDOUT:   %import_ref.9: type = import_ref Implicit//default, inst+78, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
+// CHECK:STDOUT:   %import_ref.10: <witness> = import_ref Implicit//default, inst+79, loaded [symbolic = @impl.1.%interface (constants.%interface.1)]
+// CHECK:STDOUT:   %import_ref.11 = import_ref Implicit//default, inst+51, unloaded
+// CHECK:STDOUT:   %import_ref.12: type = import_ref Implicit//default, inst+102, loaded [template = Core.IntLiteral]
+// CHECK:STDOUT:   %import_ref.13: type = import_ref Implicit//default, inst+103, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
+// CHECK:STDOUT:   %import_ref.14 = import_ref Implicit//default, inst+104, unloaded
+// CHECK:STDOUT:   %import_ref.15: type = import_ref Implicit//default, inst+126, loaded [symbolic = @impl.3.%iN (constants.%iN)]
+// CHECK:STDOUT:   %import_ref.16: type = import_ref Implicit//default, inst+127, loaded [template = constants.%ImplicitAs.type.5]
+// CHECK:STDOUT:   %import_ref.17 = import_ref Implicit//default, inst+128, unloaded
+// CHECK:STDOUT:   %import_ref.19: type = import_ref Implicit//default, inst+153, loaded [symbolic = @impl.4.%uN (constants.%uN)]
+// CHECK:STDOUT:   %import_ref.20: type = import_ref Implicit//default, inst+154, loaded [template = constants.%ImplicitAs.type.5]
+// CHECK:STDOUT:   %import_ref.21 = import_ref Implicit//default, inst+155, unloaded
+// CHECK:STDOUT:   %import_ref.22 = import_ref Implicit//default, inst+180, unloaded
+// CHECK:STDOUT:   %import_ref.23 = import_ref Implicit//default, inst+181, unloaded
+// CHECK:STDOUT:   %import_ref.24 = import_ref Implicit//default, inst+182, unloaded
+// CHECK:STDOUT:   %import_ref.25: type = import_ref Implicit//default, inst+186, loaded [template = Core.IntLiteral]
+// CHECK:STDOUT:   %import_ref.26: type = import_ref Implicit//default, inst+187, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
+// CHECK:STDOUT:   %import_ref.27 = import_ref Implicit//default, inst+188, unloaded
+// CHECK:STDOUT:   %import_ref.28 = import_ref Implicit//default, inst+200, unloaded
+// CHECK:STDOUT:   %import_ref.29: type = import_ref Implicit//default, inst+233, loaded [template = Core.IntLiteral]
+// CHECK:STDOUT:   %import_ref.30: type = import_ref Implicit//default, inst+234, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
+// CHECK:STDOUT:   %import_ref.31 = import_ref Implicit//default, inst+235, unloaded
+// CHECK:STDOUT:   %import_ref.32: type = import_ref Implicit//default, inst+257, loaded [symbolic = @impl.7.%iN (constants.%iN)]
+// CHECK:STDOUT:   %import_ref.33: type = import_ref Implicit//default, inst+258, loaded [template = constants.%As.type.5]
+// CHECK:STDOUT:   %import_ref.34 = import_ref Implicit//default, inst+259, unloaded
+// CHECK:STDOUT:   %import_ref.36: type = import_ref Implicit//default, inst+284, loaded [symbolic = @impl.8.%uN (constants.%uN)]
+// CHECK:STDOUT:   %import_ref.37: type = import_ref Implicit//default, inst+285, loaded [template = constants.%As.type.5]
+// CHECK:STDOUT:   %import_ref.38 = import_ref Implicit//default, inst+286, unloaded
+// CHECK:STDOUT:   %import_ref.40: <witness> = import_ref Implicit//default, inst+408, loaded [template = constants.%complete_type]
+// CHECK:STDOUT:   %import_ref.41 = import_ref Implicit//default, inst+406, unloaded
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: file {
@@ -1171,48 +1171,48 @@ var c_bad: C({.a = 3, .b = 4}) = F();
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
-// CHECK:STDOUT:   %import_ref.1 = import_ref Implicit//default, inst+22, unloaded
-// CHECK:STDOUT:   %import_ref.2 = import_ref Implicit//default, inst+353, unloaded
-// CHECK:STDOUT:   %import_ref.3: %C.type = import_ref Implicit//default, inst+412, loaded [template = constants.%C.generic]
-// CHECK:STDOUT:   %import_ref.4: %F.type = import_ref Implicit//default, inst+456, loaded [template = constants.%F]
+// CHECK:STDOUT:   %import_ref.1 = import_ref Implicit//default, inst+21, unloaded
+// CHECK:STDOUT:   %import_ref.2 = import_ref Implicit//default, inst+342, unloaded
+// CHECK:STDOUT:   %import_ref.3: %C.type = import_ref Implicit//default, inst+401, loaded [template = constants.%C.generic]
+// CHECK:STDOUT:   %import_ref.4: %F.type = import_ref Implicit//default, inst+445, loaded [template = constants.%F]
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     import Core//prelude
 // CHECK:STDOUT:     import Core//prelude/...
 // CHECK:STDOUT:   }
-// CHECK:STDOUT:   %import_ref.5 = import_ref Implicit//default, inst+38, unloaded
-// CHECK:STDOUT:   %import_ref.6 = import_ref Implicit//default, inst+39, unloaded
-// CHECK:STDOUT:   %import_ref.7 = import_ref Implicit//default, inst+40, unloaded
-// CHECK:STDOUT:   %import_ref.8: type = import_ref Implicit//default, inst+79, loaded [template = Core.IntLiteral]
-// CHECK:STDOUT:   %import_ref.9: type = import_ref Implicit//default, inst+80, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
-// CHECK:STDOUT:   %import_ref.10 = import_ref Implicit//default, inst+81, unloaded
-// CHECK:STDOUT:   %import_ref.11 = import_ref Implicit//default, inst+53, unloaded
-// CHECK:STDOUT:   %import_ref.12: type = import_ref Implicit//default, inst+105, loaded [template = Core.IntLiteral]
-// CHECK:STDOUT:   %import_ref.13: type = import_ref Implicit//default, inst+106, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
-// CHECK:STDOUT:   %import_ref.14 = import_ref Implicit//default, inst+107, unloaded
-// CHECK:STDOUT:   %import_ref.15: type = import_ref Implicit//default, inst+130, loaded [symbolic = @impl.3.%iN (constants.%iN)]
-// CHECK:STDOUT:   %import_ref.16: type = import_ref Implicit//default, inst+131, loaded [template = constants.%ImplicitAs.type.5]
-// CHECK:STDOUT:   %import_ref.17 = import_ref Implicit//default, inst+132, unloaded
-// CHECK:STDOUT:   %import_ref.19: type = import_ref Implicit//default, inst+158, loaded [symbolic = @impl.4.%uN (constants.%uN)]
-// CHECK:STDOUT:   %import_ref.20: type = import_ref Implicit//default, inst+159, loaded [template = constants.%ImplicitAs.type.5]
-// CHECK:STDOUT:   %import_ref.21 = import_ref Implicit//default, inst+160, unloaded
-// CHECK:STDOUT:   %import_ref.22 = import_ref Implicit//default, inst+186, unloaded
-// CHECK:STDOUT:   %import_ref.23 = import_ref Implicit//default, inst+187, unloaded
-// CHECK:STDOUT:   %import_ref.24 = import_ref Implicit//default, inst+188, unloaded
-// CHECK:STDOUT:   %import_ref.25: type = import_ref Implicit//default, inst+192, loaded [template = Core.IntLiteral]
-// CHECK:STDOUT:   %import_ref.26: type = import_ref Implicit//default, inst+193, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
-// CHECK:STDOUT:   %import_ref.27 = import_ref Implicit//default, inst+194, unloaded
-// CHECK:STDOUT:   %import_ref.28 = import_ref Implicit//default, inst+207, unloaded
-// CHECK:STDOUT:   %import_ref.29: type = import_ref Implicit//default, inst+241, loaded [template = Core.IntLiteral]
-// CHECK:STDOUT:   %import_ref.30: type = import_ref Implicit//default, inst+242, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
-// CHECK:STDOUT:   %import_ref.31 = import_ref Implicit//default, inst+243, unloaded
-// CHECK:STDOUT:   %import_ref.32: type = import_ref Implicit//default, inst+266, loaded [symbolic = @impl.7.%iN (constants.%iN)]
-// CHECK:STDOUT:   %import_ref.33: type = import_ref Implicit//default, inst+267, loaded [template = constants.%As.type.5]
-// CHECK:STDOUT:   %import_ref.34 = import_ref Implicit//default, inst+268, unloaded
-// CHECK:STDOUT:   %import_ref.36: type = import_ref Implicit//default, inst+294, loaded [symbolic = @impl.8.%uN (constants.%uN)]
-// CHECK:STDOUT:   %import_ref.37: type = import_ref Implicit//default, inst+295, loaded [template = constants.%As.type.5]
-// CHECK:STDOUT:   %import_ref.38 = import_ref Implicit//default, inst+296, unloaded
-// CHECK:STDOUT:   %import_ref.39: <witness> = import_ref Implicit//default, inst+419, loaded [template = constants.%complete_type]
-// CHECK:STDOUT:   %import_ref.40 = import_ref Implicit//default, inst+417, unloaded
+// CHECK:STDOUT:   %import_ref.5 = import_ref Implicit//default, inst+37, unloaded
+// CHECK:STDOUT:   %import_ref.6 = import_ref Implicit//default, inst+38, unloaded
+// CHECK:STDOUT:   %import_ref.7 = import_ref Implicit//default, inst+39, unloaded
+// CHECK:STDOUT:   %import_ref.8: type = import_ref Implicit//default, inst+77, loaded [template = Core.IntLiteral]
+// CHECK:STDOUT:   %import_ref.9: type = import_ref Implicit//default, inst+78, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
+// CHECK:STDOUT:   %import_ref.10 = import_ref Implicit//default, inst+79, unloaded
+// CHECK:STDOUT:   %import_ref.11 = import_ref Implicit//default, inst+51, unloaded
+// CHECK:STDOUT:   %import_ref.12: type = import_ref Implicit//default, inst+102, loaded [template = Core.IntLiteral]
+// CHECK:STDOUT:   %import_ref.13: type = import_ref Implicit//default, inst+103, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
+// CHECK:STDOUT:   %import_ref.14 = import_ref Implicit//default, inst+104, unloaded
+// CHECK:STDOUT:   %import_ref.15: type = import_ref Implicit//default, inst+126, loaded [symbolic = @impl.3.%iN (constants.%iN)]
+// CHECK:STDOUT:   %import_ref.16: type = import_ref Implicit//default, inst+127, loaded [template = constants.%ImplicitAs.type.5]
+// CHECK:STDOUT:   %import_ref.17 = import_ref Implicit//default, inst+128, unloaded
+// CHECK:STDOUT:   %import_ref.19: type = import_ref Implicit//default, inst+153, loaded [symbolic = @impl.4.%uN (constants.%uN)]
+// CHECK:STDOUT:   %import_ref.20: type = import_ref Implicit//default, inst+154, loaded [template = constants.%ImplicitAs.type.5]
+// CHECK:STDOUT:   %import_ref.21 = import_ref Implicit//default, inst+155, unloaded
+// CHECK:STDOUT:   %import_ref.22 = import_ref Implicit//default, inst+180, unloaded
+// CHECK:STDOUT:   %import_ref.23 = import_ref Implicit//default, inst+181, unloaded
+// CHECK:STDOUT:   %import_ref.24 = import_ref Implicit//default, inst+182, unloaded
+// CHECK:STDOUT:   %import_ref.25: type = import_ref Implicit//default, inst+186, loaded [template = Core.IntLiteral]
+// CHECK:STDOUT:   %import_ref.26: type = import_ref Implicit//default, inst+187, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
+// CHECK:STDOUT:   %import_ref.27 = import_ref Implicit//default, inst+188, unloaded
+// CHECK:STDOUT:   %import_ref.28 = import_ref Implicit//default, inst+200, unloaded
+// CHECK:STDOUT:   %import_ref.29: type = import_ref Implicit//default, inst+233, loaded [template = Core.IntLiteral]
+// CHECK:STDOUT:   %import_ref.30: type = import_ref Implicit//default, inst+234, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
+// CHECK:STDOUT:   %import_ref.31 = import_ref Implicit//default, inst+235, unloaded
+// CHECK:STDOUT:   %import_ref.32: type = import_ref Implicit//default, inst+257, loaded [symbolic = @impl.7.%iN (constants.%iN)]
+// CHECK:STDOUT:   %import_ref.33: type = import_ref Implicit//default, inst+258, loaded [template = constants.%As.type.5]
+// CHECK:STDOUT:   %import_ref.34 = import_ref Implicit//default, inst+259, unloaded
+// CHECK:STDOUT:   %import_ref.36: type = import_ref Implicit//default, inst+284, loaded [symbolic = @impl.8.%uN (constants.%uN)]
+// CHECK:STDOUT:   %import_ref.37: type = import_ref Implicit//default, inst+285, loaded [template = constants.%As.type.5]
+// CHECK:STDOUT:   %import_ref.38 = import_ref Implicit//default, inst+286, unloaded
+// CHECK:STDOUT:   %import_ref.39: <witness> = import_ref Implicit//default, inst+408, loaded [template = constants.%complete_type]
+// CHECK:STDOUT:   %import_ref.40 = import_ref Implicit//default, inst+406, unloaded
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: file {
@@ -1891,49 +1891,49 @@ var c_bad: C({.a = 3, .b = 4}) = F();
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
-// CHECK:STDOUT:   %import_ref.1 = import_ref Implicit//default, inst+22, unloaded
-// CHECK:STDOUT:   %import_ref.2 = import_ref Implicit//default, inst+353, unloaded
-// CHECK:STDOUT:   %import_ref.3: %C.type = import_ref Implicit//default, inst+412, loaded [template = constants.%C.generic]
-// CHECK:STDOUT:   %import_ref.4: %F.type = import_ref Implicit//default, inst+456, loaded [template = constants.%F]
+// CHECK:STDOUT:   %import_ref.1 = import_ref Implicit//default, inst+21, unloaded
+// CHECK:STDOUT:   %import_ref.2 = import_ref Implicit//default, inst+342, unloaded
+// CHECK:STDOUT:   %import_ref.3: %C.type = import_ref Implicit//default, inst+401, loaded [template = constants.%C.generic]
+// CHECK:STDOUT:   %import_ref.4: %F.type = import_ref Implicit//default, inst+445, loaded [template = constants.%F]
 // CHECK:STDOUT:   %Core: <namespace> = namespace file.%Core.import, [template] {
 // CHECK:STDOUT:     .ImplicitAs = %import_ref.41
 // CHECK:STDOUT:     import Core//prelude
 // CHECK:STDOUT:     import Core//prelude/...
 // CHECK:STDOUT:   }
-// CHECK:STDOUT:   %import_ref.5 = import_ref Implicit//default, inst+38, unloaded
-// CHECK:STDOUT:   %import_ref.6: @ImplicitAs.%Convert.assoc_type (%Convert.assoc_type.1) = import_ref Implicit//default, inst+39, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.6)]
-// CHECK:STDOUT:   %import_ref.7 = import_ref Implicit//default, inst+40, unloaded
-// CHECK:STDOUT:   %import_ref.8: type = import_ref Implicit//default, inst+79, loaded [template = Core.IntLiteral]
-// CHECK:STDOUT:   %import_ref.9: type = import_ref Implicit//default, inst+80, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
-// CHECK:STDOUT:   %import_ref.10: <witness> = import_ref Implicit//default, inst+81, loaded [symbolic = @impl.1.%interface (constants.%interface.1)]
-// CHECK:STDOUT:   %import_ref.11 = import_ref Implicit//default, inst+53, unloaded
-// CHECK:STDOUT:   %import_ref.12: type = import_ref Implicit//default, inst+105, loaded [template = Core.IntLiteral]
-// CHECK:STDOUT:   %import_ref.13: type = import_ref Implicit//default, inst+106, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
-// CHECK:STDOUT:   %import_ref.14 = import_ref Implicit//default, inst+107, unloaded
-// CHECK:STDOUT:   %import_ref.15: type = import_ref Implicit//default, inst+130, loaded [symbolic = @impl.3.%iN (constants.%iN)]
-// CHECK:STDOUT:   %import_ref.16: type = import_ref Implicit//default, inst+131, loaded [template = constants.%ImplicitAs.type.5]
-// CHECK:STDOUT:   %import_ref.17 = import_ref Implicit//default, inst+132, unloaded
-// CHECK:STDOUT:   %import_ref.19: type = import_ref Implicit//default, inst+158, loaded [symbolic = @impl.4.%uN (constants.%uN)]
-// CHECK:STDOUT:   %import_ref.20: type = import_ref Implicit//default, inst+159, loaded [template = constants.%ImplicitAs.type.5]
-// CHECK:STDOUT:   %import_ref.21 = import_ref Implicit//default, inst+160, unloaded
-// CHECK:STDOUT:   %import_ref.22 = import_ref Implicit//default, inst+186, unloaded
-// CHECK:STDOUT:   %import_ref.23 = import_ref Implicit//default, inst+187, unloaded
-// CHECK:STDOUT:   %import_ref.24 = import_ref Implicit//default, inst+188, unloaded
-// CHECK:STDOUT:   %import_ref.25: type = import_ref Implicit//default, inst+192, loaded [template = Core.IntLiteral]
-// CHECK:STDOUT:   %import_ref.26: type = import_ref Implicit//default, inst+193, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
-// CHECK:STDOUT:   %import_ref.27 = import_ref Implicit//default, inst+194, unloaded
-// CHECK:STDOUT:   %import_ref.28 = import_ref Implicit//default, inst+207, unloaded
-// CHECK:STDOUT:   %import_ref.29: type = import_ref Implicit//default, inst+241, loaded [template = Core.IntLiteral]
-// CHECK:STDOUT:   %import_ref.30: type = import_ref Implicit//default, inst+242, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
-// CHECK:STDOUT:   %import_ref.31 = import_ref Implicit//default, inst+243, unloaded
-// CHECK:STDOUT:   %import_ref.32: type = import_ref Implicit//default, inst+266, loaded [symbolic = @impl.7.%iN (constants.%iN)]
-// CHECK:STDOUT:   %import_ref.33: type = import_ref Implicit//default, inst+267, loaded [template = constants.%As.type.5]
-// CHECK:STDOUT:   %import_ref.34 = import_ref Implicit//default, inst+268, unloaded
-// CHECK:STDOUT:   %import_ref.36: type = import_ref Implicit//default, inst+294, loaded [symbolic = @impl.8.%uN (constants.%uN)]
-// CHECK:STDOUT:   %import_ref.37: type = import_ref Implicit//default, inst+295, loaded [template = constants.%As.type.5]
-// CHECK:STDOUT:   %import_ref.38 = import_ref Implicit//default, inst+296, unloaded
-// CHECK:STDOUT:   %import_ref.39: <witness> = import_ref Implicit//default, inst+419, loaded [template = constants.%complete_type]
-// CHECK:STDOUT:   %import_ref.40 = import_ref Implicit//default, inst+417, unloaded
+// CHECK:STDOUT:   %import_ref.5 = import_ref Implicit//default, inst+37, unloaded
+// CHECK:STDOUT:   %import_ref.6: @ImplicitAs.%Convert.assoc_type (%Convert.assoc_type.1) = import_ref Implicit//default, inst+38, loaded [symbolic = @ImplicitAs.%assoc0 (constants.%assoc0.6)]
+// CHECK:STDOUT:   %import_ref.7 = import_ref Implicit//default, inst+39, unloaded
+// CHECK:STDOUT:   %import_ref.8: type = import_ref Implicit//default, inst+77, loaded [template = Core.IntLiteral]
+// CHECK:STDOUT:   %import_ref.9: type = import_ref Implicit//default, inst+78, loaded [symbolic = @impl.1.%ImplicitAs.type (constants.%ImplicitAs.type.3)]
+// CHECK:STDOUT:   %import_ref.10: <witness> = import_ref Implicit//default, inst+79, loaded [symbolic = @impl.1.%interface (constants.%interface.1)]
+// CHECK:STDOUT:   %import_ref.11 = import_ref Implicit//default, inst+51, unloaded
+// CHECK:STDOUT:   %import_ref.12: type = import_ref Implicit//default, inst+102, loaded [template = Core.IntLiteral]
+// CHECK:STDOUT:   %import_ref.13: type = import_ref Implicit//default, inst+103, loaded [symbolic = @impl.2.%ImplicitAs.type (constants.%ImplicitAs.type.4)]
+// CHECK:STDOUT:   %import_ref.14 = import_ref Implicit//default, inst+104, unloaded
+// CHECK:STDOUT:   %import_ref.15: type = import_ref Implicit//default, inst+126, loaded [symbolic = @impl.3.%iN (constants.%iN)]
+// CHECK:STDOUT:   %import_ref.16: type = import_ref Implicit//default, inst+127, loaded [template = constants.%ImplicitAs.type.5]
+// CHECK:STDOUT:   %import_ref.17 = import_ref Implicit//default, inst+128, unloaded
+// CHECK:STDOUT:   %import_ref.19: type = import_ref Implicit//default, inst+153, loaded [symbolic = @impl.4.%uN (constants.%uN)]
+// CHECK:STDOUT:   %import_ref.20: type = import_ref Implicit//default, inst+154, loaded [template = constants.%ImplicitAs.type.5]
+// CHECK:STDOUT:   %import_ref.21 = import_ref Implicit//default, inst+155, unloaded
+// CHECK:STDOUT:   %import_ref.22 = import_ref Implicit//default, inst+180, unloaded
+// CHECK:STDOUT:   %import_ref.23 = import_ref Implicit//default, inst+181, unloaded
+// CHECK:STDOUT:   %import_ref.24 = import_ref Implicit//default, inst+182, unloaded
+// CHECK:STDOUT:   %import_ref.25: type = import_ref Implicit//default, inst+186, loaded [template = Core.IntLiteral]
+// CHECK:STDOUT:   %import_ref.26: type = import_ref Implicit//default, inst+187, loaded [symbolic = @impl.5.%As.type (constants.%As.type.3)]
+// CHECK:STDOUT:   %import_ref.27 = import_ref Implicit//default, inst+188, unloaded
+// CHECK:STDOUT:   %import_ref.28 = import_ref Implicit//default, inst+200, unloaded
+// CHECK:STDOUT:   %import_ref.29: type = import_ref Implicit//default, inst+233, loaded [template = Core.IntLiteral]
+// CHECK:STDOUT:   %import_ref.30: type = import_ref Implicit//default, inst+234, loaded [symbolic = @impl.6.%As.type (constants.%As.type.4)]
+// CHECK:STDOUT:   %import_ref.31 = import_ref Implicit//default, inst+235, unloaded
+// CHECK:STDOUT:   %import_ref.32: type = import_ref Implicit//default, inst+257, loaded [symbolic = @impl.7.%iN (constants.%iN)]
+// CHECK:STDOUT:   %import_ref.33: type = import_ref Implicit//default, inst+258, loaded [template = constants.%As.type.5]
+// CHECK:STDOUT:   %import_ref.34 = import_ref Implicit//default, inst+259, unloaded
+// CHECK:STDOUT:   %import_ref.36: type = import_ref Implicit//default, inst+284, loaded [symbolic = @impl.8.%uN (constants.%uN)]
+// CHECK:STDOUT:   %import_ref.37: type = import_ref Implicit//default, inst+285, loaded [template = constants.%As.type.5]
+// CHECK:STDOUT:   %import_ref.38 = import_ref Implicit//default, inst+286, unloaded
+// CHECK:STDOUT:   %import_ref.39: <witness> = import_ref Implicit//default, inst+408, loaded [template = constants.%complete_type]
+// CHECK:STDOUT:   %import_ref.40 = import_ref Implicit//default, inst+406, unloaded
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: file {

Некоторые файлы не были показаны из-за большого количества измененных файлов