Prechádzať zdrojové kódy

Restructure handling of runtime parameters (#4422)

- Generate runtime indices as part of pattern matching, rather than as a
separate postprocessing/rewriting step.
- In contexts where runtime parameters aren't permitted, avoid emitting
insts for them to begin with, rather than trying to detect the problem
and rewrite the IR to remove them later on.
Geoff Romer 1 rok pred
rodič
commit
223c5cb04b
100 zmenil súbory, kde vykonal 1379 pridanie a 1442 odobranie
  1. 3 0
      toolchain/check/convert.cpp
  2. 0 47
      toolchain/check/generic.cpp
  3. 0 15
      toolchain/check/generic.h
  4. 70 32
      toolchain/check/handle_binding_pattern.cpp
  5. 0 3
      toolchain/check/handle_class.cpp
  6. 0 49
      toolchain/check/handle_function.cpp
  7. 0 1
      toolchain/check/handle_impl.cpp
  8. 0 3
      toolchain/check/handle_interface.cpp
  9. 2 2
      toolchain/check/member_access.cpp
  10. 92 39
      toolchain/check/pattern_match.cpp
  11. 4 4
      toolchain/check/testdata/array/canonicalize_index.carbon
  12. 4 4
      toolchain/check/testdata/array/function_param.carbon
  13. 39 39
      toolchain/check/testdata/basics/no_prelude/raw_and_textual_ir.carbon
  14. 79 79
      toolchain/check/testdata/basics/no_prelude/raw_ir.carbon
  15. 32 32
      toolchain/check/testdata/builtins/float/add.carbon
  16. 32 32
      toolchain/check/testdata/builtins/float/div.carbon
  17. 16 16
      toolchain/check/testdata/builtins/float/eq.carbon
  18. 12 12
      toolchain/check/testdata/builtins/float/greater.carbon
  19. 12 12
      toolchain/check/testdata/builtins/float/greater_eq.carbon
  20. 12 12
      toolchain/check/testdata/builtins/float/less.carbon
  21. 12 12
      toolchain/check/testdata/builtins/float/less_eq.carbon
  22. 32 32
      toolchain/check/testdata/builtins/float/mul.carbon
  23. 18 18
      toolchain/check/testdata/builtins/float/negate.carbon
  24. 16 16
      toolchain/check/testdata/builtins/float/neq.carbon
  25. 32 32
      toolchain/check/testdata/builtins/float/sub.carbon
  26. 8 8
      toolchain/check/testdata/builtins/int/and.carbon
  27. 4 4
      toolchain/check/testdata/builtins/int/complement.carbon
  28. 16 16
      toolchain/check/testdata/builtins/int/eq.carbon
  29. 12 12
      toolchain/check/testdata/builtins/int/greater.carbon
  30. 12 12
      toolchain/check/testdata/builtins/int/greater_eq.carbon
  31. 12 12
      toolchain/check/testdata/builtins/int/left_shift.carbon
  32. 12 12
      toolchain/check/testdata/builtins/int/less.carbon
  33. 12 12
      toolchain/check/testdata/builtins/int/less_eq.carbon
  34. 4 4
      toolchain/check/testdata/builtins/int/make_type_signed.carbon
  35. 4 4
      toolchain/check/testdata/builtins/int/make_type_unsigned.carbon
  36. 12 12
      toolchain/check/testdata/builtins/int/neq.carbon
  37. 8 8
      toolchain/check/testdata/builtins/int/or.carbon
  38. 16 16
      toolchain/check/testdata/builtins/int/right_shift.carbon
  39. 36 36
      toolchain/check/testdata/builtins/int/sadd.carbon
  40. 20 20
      toolchain/check/testdata/builtins/int/sdiv.carbon
  41. 20 20
      toolchain/check/testdata/builtins/int/smod.carbon
  42. 12 12
      toolchain/check/testdata/builtins/int/smul.carbon
  43. 22 22
      toolchain/check/testdata/builtins/int/snegate.carbon
  44. 12 12
      toolchain/check/testdata/builtins/int/ssub.carbon
  45. 36 36
      toolchain/check/testdata/builtins/int/uadd.carbon
  46. 20 20
      toolchain/check/testdata/builtins/int/udiv.carbon
  47. 20 20
      toolchain/check/testdata/builtins/int/umod.carbon
  48. 12 12
      toolchain/check/testdata/builtins/int/umul.carbon
  49. 22 22
      toolchain/check/testdata/builtins/int/unegate.carbon
  50. 12 12
      toolchain/check/testdata/builtins/int/usub.carbon
  51. 8 8
      toolchain/check/testdata/builtins/int/xor.carbon
  52. 8 8
      toolchain/check/testdata/class/base_method_shadow.carbon
  53. 4 4
      toolchain/check/testdata/class/fail_addr_self.carbon
  54. 10 10
      toolchain/check/testdata/class/fail_generic_method.carbon
  55. 4 4
      toolchain/check/testdata/class/fail_memaccess_category.carbon
  56. 14 36
      toolchain/check/testdata/class/fail_self_param.carbon
  57. 16 16
      toolchain/check/testdata/class/generic/call.carbon
  58. 8 8
      toolchain/check/testdata/class/generic/field.carbon
  59. 8 8
      toolchain/check/testdata/class/generic/init.carbon
  60. 24 24
      toolchain/check/testdata/class/generic/member_out_of_line.carbon
  61. 4 4
      toolchain/check/testdata/class/generic/method_deduce.carbon
  62. 8 8
      toolchain/check/testdata/class/generic/redeclare.carbon
  63. 10 10
      toolchain/check/testdata/class/generic_method.carbon
  64. 8 8
      toolchain/check/testdata/class/init.carbon
  65. 2 14
      toolchain/check/testdata/class/no_prelude/generic_vs_params.carbon
  66. 16 16
      toolchain/check/testdata/class/raw_self.carbon
  67. 8 8
      toolchain/check/testdata/class/raw_self_type.carbon
  68. 8 8
      toolchain/check/testdata/class/redeclaration.carbon
  69. 22 22
      toolchain/check/testdata/deduce/array.carbon
  70. 18 18
      toolchain/check/testdata/deduce/generic_type.carbon
  71. 8 8
      toolchain/check/testdata/deduce/int_float.carbon
  72. 16 16
      toolchain/check/testdata/deduce/tuple.carbon
  73. 16 16
      toolchain/check/testdata/deduce/type_operator.carbon
  74. 4 4
      toolchain/check/testdata/function/builtin/call.carbon
  75. 4 4
      toolchain/check/testdata/function/builtin/definition.carbon
  76. 24 24
      toolchain/check/testdata/function/builtin/fail_redefined.carbon
  77. 8 8
      toolchain/check/testdata/function/builtin/method.carbon
  78. 8 8
      toolchain/check/testdata/function/builtin/no_prelude/call_from_operator.carbon
  79. 4 4
      toolchain/check/testdata/function/builtin/no_prelude/import.carbon
  80. 4 4
      toolchain/check/testdata/function/call/fail_param_count.carbon
  81. 4 4
      toolchain/check/testdata/function/call/more_param_ir.carbon
  82. 4 9
      toolchain/check/testdata/function/call/no_prelude/fail_runtime_implicit_param.carbon
  83. 4 4
      toolchain/check/testdata/function/call/params_two.carbon
  84. 4 4
      toolchain/check/testdata/function/call/params_two_comma.carbon
  85. 4 4
      toolchain/check/testdata/function/declaration/fail_param_in_type.carbon
  86. 4 4
      toolchain/check/testdata/function/declaration/fail_param_redecl.carbon
  87. 4 4
      toolchain/check/testdata/function/definition/params_two.carbon
  88. 4 4
      toolchain/check/testdata/function/definition/params_two_comma.carbon
  89. 28 28
      toolchain/check/testdata/function/generic/deduce.carbon
  90. 4 4
      toolchain/check/testdata/function/generic/fail_todo_param_in_type.carbon
  91. 24 24
      toolchain/check/testdata/function/generic/no_prelude/call.carbon
  92. 4 4
      toolchain/check/testdata/function/generic/no_prelude/fail_type_param_mismatch.carbon
  93. 4 4
      toolchain/check/testdata/function/generic/no_prelude/indirect_generic_type.carbon
  94. 4 4
      toolchain/check/testdata/function/generic/no_prelude/type_param_scope.carbon
  95. 24 24
      toolchain/check/testdata/function/generic/redeclare.carbon
  96. 16 16
      toolchain/check/testdata/function/generic/undefined.carbon
  97. 6 6
      toolchain/check/testdata/if_expr/basic.carbon
  98. 6 6
      toolchain/check/testdata/if_expr/nested.carbon
  99. 24 24
      toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon
  100. 4 4
      toolchain/check/testdata/impl/lookup/generic.carbon

+ 3 - 0
toolchain/check/convert.cpp

@@ -1191,6 +1191,9 @@ auto ConvertCallArgs(Context& context, SemIR::LocId call_loc_id,
 
   // Check implicit parameters.
   for (auto implicit_param_id : implicit_param_patterns) {
+    if (implicit_param_id == SemIR::InstId::BuiltinError) {
+      return SemIR::InstBlockId::Invalid;
+    }
     auto param_pattern_info = SemIR::Function::GetParamPatternInfoFromPatternId(
         context.sem_ir(), implicit_param_id);
     if (param_pattern_info.GetNameId(context.sem_ir()) ==

+ 0 - 47
toolchain/check/generic.cpp

@@ -432,51 +432,4 @@ auto ResolveSpecificDefinition(Context& context, SemIR::SpecificId specific_id)
   return true;
 }
 
-auto RequireGenericParamsOnType(Context& context,
-                                SemIR::InstBlockId pattern_block_id) -> void {
-  if (!pattern_block_id.is_valid() ||
-      pattern_block_id == SemIR::InstBlockId::Empty) {
-    return;
-  }
-  for (auto& inst_id : context.inst_blocks().Get(pattern_block_id)) {
-    auto name_id = SemIR::Function::GetParamPatternInfoFromPatternId(
-                       context.sem_ir(), inst_id)
-                       .GetNameId(context.sem_ir());
-    if (name_id == SemIR::NameId::SelfValue) {
-      CARBON_DIAGNOSTIC(SelfParameterNotAllowed, Error,
-                        "`self` parameter only allowed on functions");
-      context.emitter().Emit(inst_id, SelfParameterNotAllowed);
-
-      inst_id = SemIR::InstId::BuiltinError;
-    } else if (!context.constant_values().Get(inst_id).is_constant()) {
-      CARBON_DIAGNOSTIC(GenericParamMustBeConstant, Error,
-                        "parameters of generic types must be constant");
-      context.emitter().Emit(inst_id, GenericParamMustBeConstant);
-
-      inst_id = SemIR::InstId::BuiltinError;
-    }
-  }
-}
-
-auto RequireGenericOrSelfImplicitFunctionParams(Context& context,
-                                                SemIR::InstBlockId block_id)
-    -> void {
-  if (!block_id.is_valid() || block_id == SemIR::InstBlockId::Empty) {
-    return;
-  }
-  for (auto& inst_id : context.inst_blocks().Get(block_id)) {
-    auto param_info =
-        SemIR::Function::GetParamFromParamRefId(context.sem_ir(), inst_id);
-    if (param_info.GetNameId(context.sem_ir()) != SemIR::NameId::SelfValue &&
-        !context.constant_values().Get(inst_id).is_constant()) {
-      CARBON_DIAGNOSTIC(
-          ImplictParamMustBeConstant, Error,
-          "implicit parameters of functions must be constant or `self`");
-      context.emitter().Emit(inst_id, ImplictParamMustBeConstant);
-
-      inst_id = SemIR::InstId::BuiltinError;
-    }
-  }
-}
-
 }  // namespace Carbon::Check

+ 0 - 15
toolchain/check/generic.h

@@ -73,21 +73,6 @@ auto MakeSelfSpecific(Context& context, SemIR::GenericId generic_id)
 auto ResolveSpecificDefinition(Context& context, SemIR::SpecificId specific_id)
     -> bool;
 
-// Requires that a param block only contains generics, and no parameters
-// named `self`. Diagnoses and updates the block otherwise. This will typically
-// be called once for each of implicit and explicit parameters, and must occur
-// before constant evaluation of the parameterized instruction.
-auto RequireGenericParamsOnType(Context& context, SemIR::InstBlockId block_id)
-    -> void;
-
-// Requires that a param block only contains generics or parameters
-// named `self`. Diagnoses and updates the block otherwise. This is used for
-// the implicit parameters of a function declaration, and must occur
-// before constant evaluation of the parameterized instruction.
-auto RequireGenericOrSelfImplicitFunctionParams(Context& context,
-                                                SemIR::InstBlockId block_id)
-    -> void;
-
 }  // namespace Carbon::Check
 
 #endif  // CARBON_TOOLCHAIN_CHECK_GENERIC_H_

+ 70 - 32
toolchain/check/handle_binding_pattern.cpp

@@ -168,38 +168,77 @@ static auto HandleAnyBindingPattern(Context& context, Parse::NodeId node_id,
       // in a function definition. We don't know which kind we have here.
       // TODO: A tuple pattern can appear in other places than function
       // parameters.
-      auto param_id = context.AddInstInNoBlock<SemIR::Param>(
-          name_node, {.type_id = cast_type_id,
-                      .runtime_index = SemIR::RuntimeParamIndex::Invalid});
-      auto bind_id =
-          context.AddInstInNoBlock(make_bind_name(cast_type_id, param_id));
-      if (needs_compile_time_binding) {
-        context.scope_stack().PushCompileTimeBinding(bind_id);
+      auto param_pattern_id = SemIR::InstId::Invalid;
+      bool had_error = false;
+      switch (context.decl_introducer_state_stack().innermost().kind) {
+        case Lex::TokenKind::Fn: {
+          if (context_node_kind == Parse::NodeKind::ImplicitParamListStart &&
+              !(is_generic || name_id == SemIR::NameId::SelfValue)) {
+            CARBON_DIAGNOSTIC(
+                ImplictParamMustBeConstant, Error,
+                "implicit parameters of functions must be constant or `self`");
+            context.emitter().Emit(node_id, ImplictParamMustBeConstant);
+            had_error = true;
+          }
+          break;
+        }
+        case Lex::TokenKind::Class:
+        case Lex::TokenKind::Impl:
+        case Lex::TokenKind::Interface: {
+          if (name_id == SemIR::NameId::SelfValue) {
+            CARBON_DIAGNOSTIC(SelfParameterNotAllowed, Error,
+                              "`self` parameter only allowed on functions");
+            context.emitter().Emit(node_id, SelfParameterNotAllowed);
+            had_error = true;
+          } else if (!is_generic) {
+            CARBON_DIAGNOSTIC(GenericParamMustBeConstant, Error,
+                              "parameters of generic types must be constant");
+            context.emitter().Emit(node_id, GenericParamMustBeConstant);
+            had_error = true;
+          }
+          break;
+        }
+        default:
+          break;
       }
-      // TODO: Bindings should come into scope immediately in other contexts
-      // too.
-      context.AddNameToLookup(name_id, bind_id);
-      auto entity_name_id =
-          context.insts().GetAs<SemIR::AnyBindName>(bind_id).entity_name_id;
-      auto pattern_inst_id = SemIR::InstId::Invalid;
-      if (is_generic) {
-        pattern_inst_id = context.AddPatternInst<SemIR::SymbolicBindingPattern>(
-            name_node, {.type_id = cast_type_id,
-                        .entity_name_id = entity_name_id,
-                        .bind_name_id = bind_id});
+      if (had_error) {
+        context.AddNameToLookup(name_id, SemIR::InstId::BuiltinError);
+        // Replace the parameter with an invalid instruction so that we don't
+        // try constructing a generic based on it.
+        param_pattern_id = SemIR::InstId::BuiltinError;
       } else {
-        pattern_inst_id = context.AddPatternInst<SemIR::BindingPattern>(
-            name_node, {.type_id = cast_type_id,
-                        .entity_name_id = entity_name_id,
-                        .bind_name_id = bind_id});
+        auto bind_id = context.AddInstInNoBlock(
+            make_bind_name(cast_type_id, SemIR::InstId::Invalid));
+        if (needs_compile_time_binding) {
+          context.scope_stack().PushCompileTimeBinding(bind_id);
+        }
+        // TODO: Bindings should come into scope immediately in other contexts
+        // too.
+        context.AddNameToLookup(name_id, bind_id);
+        auto entity_name_id =
+            context.insts().GetAs<SemIR::AnyBindName>(bind_id).entity_name_id;
+        auto pattern_inst_id = SemIR::InstId::Invalid;
+        if (is_generic) {
+          pattern_inst_id =
+              context.AddPatternInst<SemIR::SymbolicBindingPattern>(
+                  name_node, {.type_id = cast_type_id,
+                              .entity_name_id = entity_name_id,
+                              .bind_name_id = bind_id});
+        } else {
+          pattern_inst_id = context.AddPatternInst<SemIR::BindingPattern>(
+              name_node, {.type_id = cast_type_id,
+                          .entity_name_id = entity_name_id,
+                          .bind_name_id = bind_id});
+        }
+        param_pattern_id = context.AddPatternInst<SemIR::ParamPattern>(
+            node_id,
+            {
+                .type_id = context.insts().Get(pattern_inst_id).type_id(),
+                .subpattern_id = pattern_inst_id,
+                .runtime_index = is_generic ? SemIR::RuntimeParamIndex::Invalid
+                                            : SemIR::RuntimeParamIndex::Unknown,
+            });
       }
-      auto param_pattern_id = context.AddPatternInst<SemIR::ParamPattern>(
-          node_id,
-          {
-              .type_id = context.insts().Get(pattern_inst_id).type_id(),
-              .subpattern_id = pattern_inst_id,
-              .runtime_index = SemIR::RuntimeParamIndex::Invalid,
-          });
       context.node_stack().Push(node_id, param_pattern_id);
 
       // TODO: use the pattern insts to generate the pattern-match insts
@@ -265,9 +304,8 @@ auto HandleParseNode(Context& context,
 
 auto HandleParseNode(Context& context, Parse::AddrId node_id) -> bool {
   auto param_pattern_id = context.node_stack().PopPattern();
-  if (SemIR::Function::GetParamPatternInfoFromPatternId(context.sem_ir(),
-                                                        param_pattern_id)
-          .GetNameId(context.sem_ir()) == SemIR::NameId::SelfValue) {
+  if (SemIR::Function::GetNameFromPatternId(
+          context.sem_ir(), param_pattern_id) == SemIR::NameId::SelfValue) {
     auto pointer_type = context.types().TryGetAs<SemIR::PointerType>(
         context.insts().Get(param_pattern_id).type_id());
     if (pointer_type) {

+ 0 - 3
toolchain/check/handle_class.cpp

@@ -219,9 +219,6 @@ static auto BuildClassDecl(Context& context, Parse::AnyClassDeclId node_id,
        .self_type_id = SemIR::TypeId::Invalid,
        .inheritance_kind = inheritance_kind}};
 
-  RequireGenericParamsOnType(context, class_info.implicit_param_patterns_id);
-  RequireGenericParamsOnType(context, class_info.param_patterns_id);
-
   MergeOrAddName(context, node_id, name_context, class_decl_id, class_decl,
                  class_info, is_definition,
                  introducer.modifier_set.GetAccessKind());

+ 0 - 49
toolchain/check/handle_function.cpp

@@ -67,52 +67,6 @@ static auto DiagnoseModifiers(Context& context, DeclIntroducerState& introducer,
   RequireDefaultFinalOnlyInInterfaces(context, introducer, parent_scope_inst);
 }
 
-// Checks that the parameter lists specified in a function declaration are
-// valid for a function declaration, and numbers the parameters.
-static auto CheckFunctionSignature(Context& context,
-                                   const NameComponent& name_and_params)
-    -> void {
-  RequireGenericOrSelfImplicitFunctionParams(
-      context, name_and_params.implicit_params_id);
-  SemIR::RuntimeParamIndex next_index(0);
-
-  for (auto [params_id, param_patterns_id] :
-       {std::pair{name_and_params.implicit_params_id,
-                  name_and_params.implicit_param_patterns_id},
-        std::pair{name_and_params.params_id,
-                  name_and_params.param_patterns_id}}) {
-    for (auto [param_id, param_pattern_id] :
-         llvm::zip_equal(context.inst_blocks().GetOrEmpty(params_id),
-                         context.inst_blocks().GetOrEmpty(param_patterns_id))) {
-      if (param_id == SemIR::InstId::BuiltinError ||
-          param_pattern_id == SemIR::InstId::BuiltinError) {
-        continue;
-      }
-      auto param_info =
-          SemIR::Function::GetParamFromParamRefId(context.sem_ir(), param_id);
-      auto param_pattern_info =
-          SemIR::Function::GetParamPatternInfoFromPatternId(context.sem_ir(),
-                                                            param_pattern_id);
-
-      // If this is a runtime parameter, number it.
-      // TODO: move this logic to pattern_match.cpp, and remove this function
-      // (which is otherwise redundant).
-      if (param_info.bind_name &&
-          param_info.bind_name->kind == SemIR::BindName::Kind) {
-        param_info.inst.runtime_index = next_index;
-        context.ReplaceInstBeforeConstantUse(param_info.inst_id,
-                                             param_info.inst);
-        param_pattern_info.inst.runtime_index = next_index;
-        context.ReplaceInstBeforeConstantUse(param_pattern_info.inst_id,
-                                             param_pattern_info.inst);
-        ++next_index.index;
-      }
-    }
-  }
-
-  // TODO: Also assign a parameter index to the return storage, if present.
-}
-
 // Tries to merge new_function into prev_function_id. Since new_function won't
 // have a definition even if one is upcoming, set is_definition to indicate the
 // planned result.
@@ -229,9 +183,6 @@ static auto BuildFunctionDecl(Context& context,
     name.params_id = SemIR::InstBlockId::Empty;
   }
 
-  // Check that the function signature is valid and number the parameters.
-  CheckFunctionSignature(context, name);
-
   auto name_context = context.decl_name_stack().FinishName(name);
   context.node_stack()
       .PopAndDiscardSoloNodeId<Parse::NodeKind::FunctionIntroducer>();

+ 0 - 1
toolchain/check/handle_impl.cpp

@@ -49,7 +49,6 @@ auto HandleParseNode(Context& context, Parse::ImplForallId node_id) -> bool {
       context.node_stack().Pop<Parse::NodeKind::ImplicitParamList>();
   context.node_stack()
       .PopAndDiscardSoloNodeId<Parse::NodeKind::ImplicitParamListStart>();
-  RequireGenericParamsOnType(context, params_id);
   context.node_stack().Push(node_id, params_id);
   return true;
 }

+ 0 - 3
toolchain/check/handle_interface.cpp

@@ -60,9 +60,6 @@ static auto BuildInterfaceDecl(Context& context,
   SemIR::Interface interface_info = {name_context.MakeEntityWithParamsBase(
       name, interface_decl_id, /*is_extern=*/false,
       SemIR::LibraryNameId::Invalid)};
-  RequireGenericParamsOnType(context,
-                             interface_info.implicit_param_patterns_id);
-  RequireGenericParamsOnType(context, interface_info.param_patterns_id);
 
   // Check whether this is a redeclaration.
   auto existing_id = context.decl_name_stack().LookupOrAddName(

+ 2 - 2
toolchain/check/member_access.cpp

@@ -90,8 +90,8 @@ static auto IsInstanceMethod(const SemIR::File& sem_ir,
   const auto& function = sem_ir.functions().Get(function_id);
   for (auto param_id :
        sem_ir.inst_blocks().GetOrEmpty(function.implicit_param_patterns_id)) {
-    if (SemIR::Function::GetParamPatternInfoFromPatternId(sem_ir, param_id)
-            .GetNameId(sem_ir) == SemIR::NameId::SelfValue) {
+    if (SemIR::Function::GetNameFromPatternId(sem_ir, param_id) ==
+        SemIR::NameId::SelfValue) {
       return true;
     }
   }

+ 92 - 39
toolchain/check/pattern_match.cpp

@@ -45,7 +45,8 @@ class MatchContext {
   // specific.
   explicit MatchContext(MatchKind kind, SemIR::SpecificId callee_specific_id =
                                             SemIR::SpecificId::Invalid)
-      : result_(SemIR::InstId::Invalid),
+      : next_index_(0),
+        result_(SemIR::InstId::Invalid),
         kind_(kind),
         callee_specific_id_(callee_specific_id) {}
 
@@ -55,22 +56,57 @@ class MatchContext {
   }
 
   // Adds a work item to the stack. Cannot be called after Finish().
-  auto AddWork(WorkItem work_item) -> void {
-    CARBON_CHECK(!result_.is_valid());
-    stack_.push_back(work_item);
-  }
+  auto AddWork(WorkItem work_item) -> void { stack_.push_back(work_item); }
 
   // Returns the next work item to process.
   auto NextWorkItem() -> WorkItem { return stack_.pop_back_val(); }
 
-  // Sets the result of this pattern matching operation. Must not be called
-  // when there is still pending work, except to report an error.
+  // Allocates the next unallocated RuntimeParamIndex, starting from 0.
+  auto NextRuntimeIndex() -> SemIR::RuntimeParamIndex {
+    auto result = next_index_;
+    ++next_index_.index;
+    return result;
+  }
+
+  // TODO: Eliminate the caller/callee API split below, by restructuring
+  // CallerPatternMatch to operate on the whole pattern.
+
+  // Sets the result of this pattern matching operation. Must not be called when
+  // there is still pending work, except to report an error, or called more than
+  // once between calls to ConsumeResult. Valid only during caller matching.
   auto Finish(SemIR::InstId result) -> void {
     CARBON_CHECK(!HasWork() || result == SemIR::InstId::BuiltinError);
+    CARBON_CHECK(kind_ == MatchKind::Caller);
+    CARBON_CHECK(result_ == SemIR::InstId::Invalid);
     result_ = result;
   }
 
-  auto result() const -> SemIR::InstId { return result_; }
+  // Consumes and returns the result stored by Finish. Valid only during caller
+  // matching.
+  auto ConsumeResult() -> SemIR::InstId {
+    CARBON_CHECK(stack_.empty() || result_ == SemIR::InstId::BuiltinError);
+    CARBON_CHECK(kind_ == MatchKind::Caller);
+    return std::exchange(result_, SemIR::InstId::Invalid);
+  }
+
+  // Records that `bind_name_id` is the ID of an inst in the AnyBindName
+  // category, emitted as part of this pattern match. Valid only during callee
+  // pattern matching.
+  auto RecordBindName(SemIR::InstId bind_name_id) {
+    CARBON_CHECK(kind_ == MatchKind::Callee);
+    bind_name_ids_.push_back(bind_name_id);
+  }
+
+  // Allocates an InstBlock containing the IDs recorded by RecordBindName since
+  // the last call to this function (if any), and returns its ID. Valid only
+  // during callee pattern matching.
+  auto ConsumeBindNames(Context& context) -> SemIR::InstBlockId {
+    CARBON_CHECK(stack_.empty());
+    CARBON_CHECK(kind_ == MatchKind::Callee);
+    auto block_id = context.inst_blocks().Add(bind_name_ids_);
+    bind_name_ids_.clear();
+    return block_id;
+  }
 
   auto kind() const -> MatchKind { return kind_; }
 
@@ -81,8 +117,12 @@ class MatchContext {
  private:
   llvm::SmallVector<WorkItem> stack_;
 
+  SemIR::RuntimeParamIndex next_index_;
+
   SemIR::InstId result_;
 
+  llvm::SmallVector<SemIR::InstId> bind_name_ids_;
+
   MatchKind kind_;
 
   SemIR::SpecificId callee_specific_id_;
@@ -100,6 +140,10 @@ class MatchContext {
 // be emitted, once we start emitting `Param` insts in the `ParamPattern` case.
 auto EmitPatternMatch(Context& context, MatchContext& match,
                       MatchContext::WorkItem entry) -> void {
+  if (entry.pattern_id == SemIR::InstId::BuiltinError) {
+    match.RecordBindName(SemIR::InstId::BuiltinError);
+    return;
+  }
   auto pattern = context.insts().GetWithLocId(entry.pattern_id);
   CARBON_KIND_SWITCH(pattern.inst) {
     case SemIR::BindingPattern::Kind:
@@ -108,11 +152,12 @@ auto EmitPatternMatch(Context& context, MatchContext& match,
       auto binding_pattern = pattern.inst.As<SemIR::AnyBindingPattern>();
       auto bind_name = context.insts().GetAs<SemIR::AnyBindName>(
           binding_pattern.bind_name_id);
-      // bind_name.value_id holds the corresponding `Param` inst.
-      // TODO: emit the `Param` inst as part of processing `ParamPattern`.
-      context.inst_block_stack().AddInstId(bind_name.value_id);
+      CARBON_CHECK(!bind_name.value_id.is_valid());
+      bind_name.value_id = entry.scrutinee_id;
+      context.ReplaceInstBeforeConstantUse(binding_pattern.bind_name_id,
+                                           bind_name);
       context.inst_block_stack().AddInstId(binding_pattern.bind_name_id);
-      match.Finish(binding_pattern.bind_name_id);
+      match.RecordBindName(binding_pattern.bind_name_id);
       break;
     }
     case CARBON_KIND(SemIR::AddrPattern addr_pattern): {
@@ -165,10 +210,18 @@ auto EmitPatternMatch(Context& context, MatchContext& match,
           break;
         }
         case MatchKind::Callee: {
+          if (param_pattern.runtime_index ==
+              SemIR::RuntimeParamIndex::Unknown) {
+            param_pattern.runtime_index = match.NextRuntimeIndex();
+            context.ReplaceInstBeforeConstantUse(entry.pattern_id,
+                                                 param_pattern);
+          }
           match.AddWork({.pattern_id = param_pattern.subpattern_id,
-                         .scrutinee_id = SemIR::InstId::Invalid});
-          break;
-        }
+                         .scrutinee_id = context.AddInst<SemIR::Param>(
+                             pattern.loc_id,
+                             {.type_id = param_pattern.type_id,
+                              .runtime_index = param_pattern.runtime_index})});
+        } break;
       }
       break;
     }
@@ -178,25 +231,6 @@ auto EmitPatternMatch(Context& context, MatchContext& match,
   }
 }
 
-auto ProcessParameters(Context& context,
-                       llvm::ArrayRef<SemIR::InstId> pattern_ids)
-    -> SemIR::InstBlockId {
-  std::vector<SemIR::InstId> inner_param_insts;
-  inner_param_insts.reserve(pattern_ids.size());
-  for (SemIR::InstId inst_id : pattern_ids) {
-    MatchContext match(MatchKind::Callee);
-    match.AddWork(
-        {.pattern_id = inst_id, .scrutinee_id = SemIR::InstId::Invalid});
-    while (match.HasWork()) {
-      EmitPatternMatch(context, match, match.NextWorkItem());
-    }
-    // TODO: Should we break instead, if match.result_ is an error?
-    inner_param_insts.push_back(match.result());
-  }
-
-  return context.inst_blocks().Add(inner_param_insts);
-}
-
 }  // namespace
 
 auto CalleePatternMatch(Context& context,
@@ -206,14 +240,33 @@ auto CalleePatternMatch(Context& context,
   auto params_id = SemIR::InstBlockId::Invalid;
   auto implicit_params_id = SemIR::InstBlockId::Invalid;
 
+  MatchContext match(MatchKind::Callee);
+  // TODO reserve space in bind_name_ids_
+
   if (implicit_param_patterns_id.is_valid()) {
-    implicit_params_id = ProcessParameters(
-        context, context.inst_blocks().Get(implicit_param_patterns_id));
+    // We add work to the stack in reverse so that the results will be produced
+    // in the original order.
+    for (SemIR::InstId inst_id :
+         llvm::reverse(context.inst_blocks().Get(implicit_param_patterns_id))) {
+      match.AddWork(
+          {.pattern_id = inst_id, .scrutinee_id = SemIR::InstId::Invalid});
+    }
+    while (match.HasWork()) {
+      EmitPatternMatch(context, match, match.NextWorkItem());
+    }
+    implicit_params_id = match.ConsumeBindNames(context);
   }
 
   if (param_patterns_id.is_valid()) {
-    params_id = ProcessParameters(context,
-                                  context.inst_blocks().Get(param_patterns_id));
+    for (SemIR::InstId inst_id :
+         llvm::reverse(context.inst_blocks().Get(param_patterns_id))) {
+      match.AddWork(
+          {.pattern_id = inst_id, .scrutinee_id = SemIR::InstId::Invalid});
+    }
+    while (match.HasWork()) {
+      EmitPatternMatch(context, match, match.NextWorkItem());
+    }
+    params_id = match.ConsumeBindNames(context);
   }
 
   return {.implicit_params_id = implicit_params_id, .params_id = params_id};
@@ -227,7 +280,7 @@ auto CallerPatternMatch(Context& context, SemIR::SpecificId specific_id,
   while (match.HasWork()) {
     EmitPatternMatch(context, match, match.NextWorkItem());
   }
-  return match.result();
+  return match.ConsumeResult();
 }
 
 }  // namespace Carbon::Check

+ 4 - 4
toolchain/check/testdata/array/canonicalize_index.carbon

@@ -70,10 +70,10 @@ let b: [i32; 3]* = &a;
 // CHECK:STDOUT:     %.loc11_27.1: type = value_of_initializer %int.make_type_32.loc11_27 [template = i32]
 // CHECK:STDOUT:     %.loc11_27.2: type = converted %int.make_type_32.loc11_27, %.loc11_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc11_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc11_8
-// CHECK:STDOUT:     %param.loc11_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc11_16
+// CHECK:STDOUT:     %param.loc11_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc11_9
+// CHECK:STDOUT:     %param.loc11_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc11_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int.make_type_32.loc13: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:   %Add.ref: %Add.type = name_ref Add, %Add.decl [template = constants.%Add]

+ 4 - 4
toolchain/check/testdata/array/function_param.carbon

@@ -76,10 +76,10 @@ fn G() -> i32 {
 // CHECK:STDOUT:     %.loc11_32.1: type = value_of_initializer %int.make_type_32.loc11_32 [template = i32]
 // CHECK:STDOUT:     %.loc11_32.2: type = converted %int.make_type_32.loc11_32, %.loc11_32.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc11_6: %.3 = param runtime_param0
-// CHECK:STDOUT:     %arr: %.3 = bind_name arr, %param.loc11_6
-// CHECK:STDOUT:     %param.loc11_21: i32 = param runtime_param1
-// CHECK:STDOUT:     %i: i32 = bind_name i, %param.loc11_21
+// CHECK:STDOUT:     %param.loc11_9: %.3 = param runtime_param0
+// CHECK:STDOUT:     %arr: %.3 = bind_name arr, %param.loc11_9
+// CHECK:STDOUT:     %param.loc11_22: i32 = param runtime_param1
+// CHECK:STDOUT:     %i: i32 = bind_name i, %param.loc11_22
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %G.decl: %G.type = fn_decl @G [template = constants.%G] {} {
 // CHECK:STDOUT:     %int.make_type_32: init type = call constants.%Int32() [template = i32]

+ 39 - 39
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_storage: inst+15, body: [block9]}
+// CHECK:STDOUT:     function0:       {name: name0, parent_scope: name_scope0, return_storage: inst+14, body: [block9]}
 // CHECK:STDOUT:   classes:         {}
 // CHECK:STDOUT:   generics:        {}
 // CHECK:STDOUT:   specifics:       {}
@@ -37,7 +37,7 @@ fn Foo(n: ()) -> ((), ()) {
 // CHECK:STDOUT:     'type(instNamespaceType)': {kind: copy, type: type(instNamespaceType)}
 // CHECK:STDOUT:     'type(inst+17)':   {kind: none, type: type(inst+1)}
 // CHECK:STDOUT:     'type(inst+1)':    {kind: none, type: type(inst+1)}
-// CHECK:STDOUT:     'type(inst+10)':   {kind: pointer, type: type(inst+19)}
+// CHECK:STDOUT:     'type(inst+9)':    {kind: pointer, type: type(inst+19)}
 // CHECK:STDOUT:     'type(inst+19)':   {kind: copy, type: type(inst+19)}
 // CHECK:STDOUT:   type_blocks:
 // CHECK:STDOUT:     type_block0:     {}
@@ -49,44 +49,44 @@ fn Foo(n: ()) -> ((), ()) {
 // CHECK:STDOUT:     'inst+1':          {kind: TupleType, arg0: type_block0, type: typeTypeType}
 // CHECK:STDOUT:     'inst+2':          {kind: TupleLiteral, arg0: empty, type: type(inst+1)}
 // CHECK:STDOUT:     'inst+3':          {kind: Converted, arg0: inst+2, arg1: inst+1, type: typeTypeType}
-// CHECK:STDOUT:     'inst+4':          {kind: Param, arg0: runtime_param0, type: type(inst+1)}
-// CHECK:STDOUT:     'inst+5':          {kind: BindName, arg0: entity_name0, arg1: inst+4, type: type(inst+1)}
-// CHECK:STDOUT:     'inst+6':          {kind: BindingPattern, arg0: entity_name0, arg1: inst+5, type: type(inst+1)}
-// CHECK:STDOUT:     'inst+7':          {kind: ParamPattern, arg0: inst+6, arg1: runtime_param0, type: type(inst+1)}
+// CHECK:STDOUT:     'inst+4':          {kind: BindName, arg0: entity_name0, arg1: inst+15, type: type(inst+1)}
+// CHECK:STDOUT:     'inst+5':          {kind: BindingPattern, arg0: entity_name0, arg1: inst+4, type: type(inst+1)}
+// CHECK:STDOUT:     'inst+6':          {kind: ParamPattern, arg0: inst+5, arg1: runtime_param0, type: type(inst+1)}
+// CHECK:STDOUT:     'inst+7':          {kind: TupleLiteral, arg0: empty, type: type(inst+1)}
 // CHECK:STDOUT:     'inst+8':          {kind: TupleLiteral, arg0: empty, type: type(inst+1)}
-// CHECK:STDOUT:     'inst+9':          {kind: TupleLiteral, arg0: empty, type: type(inst+1)}
-// CHECK:STDOUT:     'inst+10':         {kind: TupleType, arg0: type_block1, type: typeTypeType}
-// CHECK:STDOUT:     'inst+11':         {kind: TupleLiteral, arg0: block5, type: type(inst+10)}
+// CHECK:STDOUT:     'inst+9':          {kind: TupleType, arg0: type_block1, type: typeTypeType}
+// CHECK:STDOUT:     'inst+10':         {kind: TupleLiteral, arg0: block5, type: type(inst+9)}
+// CHECK:STDOUT:     'inst+11':         {kind: Converted, arg0: inst+7, arg1: inst+1, type: typeTypeType}
 // CHECK:STDOUT:     'inst+12':         {kind: Converted, arg0: inst+8, arg1: inst+1, type: typeTypeType}
-// CHECK:STDOUT:     'inst+13':         {kind: Converted, arg0: inst+9, arg1: inst+1, type: typeTypeType}
-// CHECK:STDOUT:     'inst+14':         {kind: Converted, arg0: inst+11, arg1: inst+10, type: typeTypeType}
-// CHECK:STDOUT:     'inst+15':         {kind: VarStorage, arg0: nameReturnSlot, type: type(inst+10)}
+// CHECK:STDOUT:     'inst+13':         {kind: Converted, arg0: inst+10, arg1: inst+9, type: typeTypeType}
+// CHECK:STDOUT:     'inst+14':         {kind: VarStorage, arg0: nameReturnSlot, type: type(inst+9)}
+// CHECK:STDOUT:     'inst+15':         {kind: Param, arg0: runtime_param0, type: type(inst+1)}
 // CHECK:STDOUT:     'inst+16':         {kind: FunctionDecl, arg0: function0, arg1: block8, type: type(inst+17)}
 // CHECK:STDOUT:     'inst+17':         {kind: FunctionType, arg0: function0, arg1: specific<invalid>, type: typeTypeType}
 // CHECK:STDOUT:     'inst+18':         {kind: StructValue, arg0: empty, type: type(inst+17)}
-// CHECK:STDOUT:     'inst+19':         {kind: PointerType, arg0: type(inst+10), type: typeTypeType}
-// CHECK:STDOUT:     'inst+20':         {kind: NameRef, arg0: name1, arg1: inst+5, type: type(inst+1)}
+// CHECK:STDOUT:     'inst+19':         {kind: PointerType, arg0: type(inst+9), type: typeTypeType}
+// CHECK:STDOUT:     'inst+20':         {kind: NameRef, arg0: name1, arg1: inst+4, type: type(inst+1)}
 // CHECK:STDOUT:     'inst+21':         {kind: TupleLiteral, arg0: empty, type: type(inst+1)}
-// CHECK:STDOUT:     'inst+22':         {kind: TupleLiteral, arg0: block10, type: type(inst+10)}
-// CHECK:STDOUT:     'inst+23':         {kind: TupleAccess, arg0: inst+15, arg1: element0, type: type(inst+1)}
+// CHECK:STDOUT:     'inst+22':         {kind: TupleLiteral, arg0: block10, type: type(inst+9)}
+// CHECK:STDOUT:     'inst+23':         {kind: TupleAccess, arg0: inst+14, arg1: element0, type: type(inst+1)}
 // CHECK:STDOUT:     'inst+24':         {kind: TupleInit, arg0: block11, arg1: inst+23, type: type(inst+1)}
 // CHECK:STDOUT:     'inst+25':         {kind: TupleValue, arg0: empty, type: type(inst+1)}
 // CHECK:STDOUT:     'inst+26':         {kind: Converted, arg0: inst+20, arg1: inst+24, type: type(inst+1)}
-// CHECK:STDOUT:     'inst+27':         {kind: TupleAccess, arg0: inst+15, arg1: element1, type: type(inst+1)}
+// CHECK:STDOUT:     'inst+27':         {kind: TupleAccess, arg0: inst+14, arg1: element1, type: type(inst+1)}
 // CHECK:STDOUT:     'inst+28':         {kind: TupleInit, arg0: empty, arg1: inst+27, type: type(inst+1)}
 // CHECK:STDOUT:     'inst+29':         {kind: Converted, arg0: inst+21, arg1: inst+28, type: type(inst+1)}
-// CHECK:STDOUT:     'inst+30':         {kind: TupleInit, arg0: block12, arg1: inst+15, type: type(inst+10)}
-// CHECK:STDOUT:     'inst+31':         {kind: TupleValue, arg0: block13, type: type(inst+10)}
-// CHECK:STDOUT:     'inst+32':         {kind: Converted, arg0: inst+22, arg1: inst+30, type: type(inst+10)}
-// CHECK:STDOUT:     'inst+33':         {kind: ReturnExpr, arg0: inst+32, arg1: inst+15}
+// CHECK:STDOUT:     'inst+30':         {kind: TupleInit, arg0: block12, arg1: inst+14, type: type(inst+9)}
+// CHECK:STDOUT:     'inst+31':         {kind: TupleValue, arg0: block13, type: type(inst+9)}
+// CHECK:STDOUT:     'inst+32':         {kind: Converted, arg0: inst+22, arg1: inst+30, type: type(inst+9)}
+// CHECK:STDOUT:     'inst+33':         {kind: ReturnExpr, arg0: inst+32, arg1: inst+14}
 // CHECK:STDOUT:   constant_values:
 // CHECK:STDOUT:     'inst+0':          templateConstant(inst+0)
 // CHECK:STDOUT:     'inst+1':          templateConstant(inst+1)
 // CHECK:STDOUT:     'inst+3':          templateConstant(inst+1)
-// CHECK:STDOUT:     'inst+10':         templateConstant(inst+10)
+// CHECK:STDOUT:     'inst+9':          templateConstant(inst+9)
+// CHECK:STDOUT:     'inst+11':         templateConstant(inst+1)
 // CHECK:STDOUT:     'inst+12':         templateConstant(inst+1)
-// CHECK:STDOUT:     'inst+13':         templateConstant(inst+1)
-// CHECK:STDOUT:     'inst+14':         templateConstant(inst+10)
+// CHECK:STDOUT:     'inst+13':         templateConstant(inst+9)
 // CHECK:STDOUT:     'inst+16':         templateConstant(inst+18)
 // CHECK:STDOUT:     'inst+17':         templateConstant(inst+17)
 // CHECK:STDOUT:     'inst+18':         templateConstant(inst+18)
@@ -107,27 +107,27 @@ fn Foo(n: ()) -> ((), ()) {
 // CHECK:STDOUT:     import_refs:     {}
 // CHECK:STDOUT:     global_init:     {}
 // CHECK:STDOUT:     block4:
-// CHECK:STDOUT:       0:               inst+7
+// CHECK:STDOUT:       0:               inst+6
 // CHECK:STDOUT:     block5:
-// CHECK:STDOUT:       0:               inst+8
-// CHECK:STDOUT:       1:               inst+9
+// CHECK:STDOUT:       0:               inst+7
+// CHECK:STDOUT:       1:               inst+8
 // CHECK:STDOUT:     block6:
-// CHECK:STDOUT:       0:               inst+5
+// CHECK:STDOUT:       0:               inst+4
 // CHECK:STDOUT:     block7:
-// CHECK:STDOUT:       0:               inst+6
-// CHECK:STDOUT:       1:               inst+7
+// CHECK:STDOUT:       0:               inst+5
+// CHECK:STDOUT:       1:               inst+6
 // CHECK:STDOUT:     block8:
 // CHECK:STDOUT:       0:               inst+2
 // CHECK:STDOUT:       1:               inst+3
-// CHECK:STDOUT:       2:               inst+8
-// CHECK:STDOUT:       3:               inst+9
-// CHECK:STDOUT:       4:               inst+11
-// CHECK:STDOUT:       5:               inst+12
-// CHECK:STDOUT:       6:               inst+13
-// CHECK:STDOUT:       7:               inst+14
-// CHECK:STDOUT:       8:               inst+15
-// CHECK:STDOUT:       9:               inst+4
-// CHECK:STDOUT:       10:              inst+5
+// CHECK:STDOUT:       2:               inst+7
+// CHECK:STDOUT:       3:               inst+8
+// CHECK:STDOUT:       4:               inst+10
+// CHECK:STDOUT:       5:               inst+11
+// CHECK:STDOUT:       6:               inst+12
+// CHECK:STDOUT:       7:               inst+13
+// CHECK:STDOUT:       8:               inst+14
+// CHECK:STDOUT:       9:               inst+15
+// CHECK:STDOUT:       10:              inst+4
 // CHECK:STDOUT:     block9:
 // CHECK:STDOUT:       0:               inst+20
 // CHECK:STDOUT:       1:               inst+21

+ 79 - 79
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_storage: inst+20, body: [block15]}
+// CHECK:STDOUT:     function0:       {name: name0, parent_scope: name_scope0, return_storage: inst+18, body: [block15]}
 // CHECK:STDOUT:   classes:         {}
 // CHECK:STDOUT:   generics:
 // CHECK:STDOUT:     generic0:        {decl: inst+21, bindings: block11}
@@ -38,8 +38,8 @@ fn Foo[T:! type](n: T) -> (T, ()) {
 // CHECK:STDOUT:     typeTypeType:    {kind: copy, type: typeTypeType}
 // CHECK:STDOUT:     typeError:       {kind: copy, type: typeError}
 // CHECK:STDOUT:     'type(instNamespaceType)': {kind: copy, type: type(instNamespaceType)}
-// CHECK:STDOUT:     'type(inst+25)':   {kind: none, type: type(inst+13)}
-// CHECK:STDOUT:     'type(inst+13)':   {kind: none, type: type(inst+13)}
+// CHECK:STDOUT:     'type(inst+25)':   {kind: none, type: type(inst+11)}
+// CHECK:STDOUT:     'type(inst+11)':   {kind: none, type: type(inst+11)}
 // CHECK:STDOUT:     'type(symbolicConstant0)': {kind: copy, type: type(symbolicConstant0)}
 // CHECK:STDOUT:     'type(symbolicConstant2)': {kind: pointer, type: type(symbolicConstant6)}
 // CHECK:STDOUT:     'type(symbolicConstant6)': {kind: copy, type: type(symbolicConstant6)}
@@ -49,68 +49,68 @@ fn Foo[T:! type](n: T) -> (T, ()) {
 // CHECK:STDOUT:     type_block0:     {}
 // CHECK:STDOUT:     type_block1:
 // CHECK:STDOUT:       0:               typeTypeType
-// CHECK:STDOUT:       1:               type(inst+13)
+// CHECK:STDOUT:       1:               type(inst+11)
 // CHECK:STDOUT:     type_block2:
 // CHECK:STDOUT:       0:               type(symbolicConstant0)
-// CHECK:STDOUT:       1:               type(inst+13)
+// CHECK:STDOUT:       1:               type(inst+11)
 // CHECK:STDOUT:     type_block3:
 // CHECK:STDOUT:       0:               type(symbolicConstant3)
-// CHECK:STDOUT:       1:               type(inst+13)
+// CHECK:STDOUT:       1:               type(inst+11)
 // CHECK:STDOUT:   insts:
 // CHECK:STDOUT:     'inst+0':          {kind: Namespace, arg0: name_scope0, arg1: inst<invalid>, type: type(instNamespaceType)}
-// CHECK:STDOUT:     'inst+1':          {kind: Param, arg0: runtime_param<invalid>, type: typeTypeType}
-// CHECK:STDOUT:     'inst+2':          {kind: BindSymbolicName, arg0: entity_name0, arg1: inst+1, type: typeTypeType}
-// CHECK:STDOUT:     'inst+3':          {kind: BindSymbolicName, arg0: entity_name0, arg1: inst<invalid>, type: typeTypeType}
-// CHECK:STDOUT:     'inst+4':          {kind: SymbolicBindingPattern, arg0: entity_name0, arg1: inst+2, type: typeTypeType}
-// CHECK:STDOUT:     'inst+5':          {kind: SymbolicBindingPattern, arg0: entity_name0, arg1: inst+2, type: typeTypeType}
-// CHECK:STDOUT:     'inst+6':          {kind: ParamPattern, arg0: inst+4, arg1: runtime_param<invalid>, type: typeTypeType}
-// CHECK:STDOUT:     'inst+7':          {kind: NameRef, arg0: name1, arg1: inst+2, type: typeTypeType}
-// CHECK:STDOUT:     'inst+8':          {kind: Param, arg0: runtime_param0, type: type(symbolicConstant3)}
-// CHECK:STDOUT:     'inst+9':          {kind: BindName, arg0: entity_name1, arg1: inst+8, type: type(symbolicConstant3)}
-// CHECK:STDOUT:     'inst+10':         {kind: BindingPattern, arg0: entity_name1, arg1: inst+9, type: type(symbolicConstant3)}
-// CHECK:STDOUT:     'inst+11':         {kind: ParamPattern, arg0: inst+10, arg1: runtime_param0, type: type(symbolicConstant3)}
-// CHECK:STDOUT:     'inst+12':         {kind: NameRef, arg0: name1, arg1: inst+2, type: typeTypeType}
-// CHECK:STDOUT:     'inst+13':         {kind: TupleType, arg0: type_block0, type: typeTypeType}
-// CHECK:STDOUT:     'inst+14':         {kind: TupleLiteral, arg0: empty, type: type(inst+13)}
-// CHECK:STDOUT:     'inst+15':         {kind: TupleType, arg0: type_block1, type: typeTypeType}
-// CHECK:STDOUT:     'inst+16':         {kind: TupleLiteral, arg0: block6, type: type(inst+15)}
-// CHECK:STDOUT:     'inst+17':         {kind: Converted, arg0: inst+14, arg1: inst+13, type: typeTypeType}
-// CHECK:STDOUT:     'inst+18':         {kind: TupleType, arg0: type_block2, type: typeTypeType}
-// CHECK:STDOUT:     'inst+19':         {kind: Converted, arg0: inst+16, arg1: inst+18, type: typeTypeType}
-// CHECK:STDOUT:     'inst+20':         {kind: VarStorage, arg0: nameReturnSlot, type: type(symbolicConstant5)}
+// CHECK:STDOUT:     'inst+1':          {kind: BindSymbolicName, arg0: entity_name0, arg1: inst+19, type: typeTypeType}
+// CHECK:STDOUT:     'inst+2':          {kind: BindSymbolicName, arg0: entity_name0, arg1: inst<invalid>, type: typeTypeType}
+// CHECK:STDOUT:     'inst+3':          {kind: SymbolicBindingPattern, arg0: entity_name0, arg1: inst+1, type: typeTypeType}
+// CHECK:STDOUT:     'inst+4':          {kind: SymbolicBindingPattern, arg0: entity_name0, arg1: inst+1, type: typeTypeType}
+// CHECK:STDOUT:     'inst+5':          {kind: ParamPattern, arg0: inst+3, arg1: runtime_param<invalid>, type: typeTypeType}
+// CHECK:STDOUT:     'inst+6':          {kind: NameRef, arg0: name1, arg1: inst+1, type: typeTypeType}
+// CHECK:STDOUT:     'inst+7':          {kind: BindName, arg0: entity_name1, arg1: inst+20, type: type(symbolicConstant3)}
+// CHECK:STDOUT:     'inst+8':          {kind: BindingPattern, arg0: entity_name1, arg1: inst+7, type: type(symbolicConstant3)}
+// CHECK:STDOUT:     'inst+9':          {kind: ParamPattern, arg0: inst+8, arg1: runtime_param0, type: type(symbolicConstant3)}
+// CHECK:STDOUT:     'inst+10':         {kind: NameRef, arg0: name1, arg1: inst+1, type: typeTypeType}
+// CHECK:STDOUT:     'inst+11':         {kind: TupleType, arg0: type_block0, type: typeTypeType}
+// CHECK:STDOUT:     'inst+12':         {kind: TupleLiteral, arg0: empty, type: type(inst+11)}
+// CHECK:STDOUT:     'inst+13':         {kind: TupleType, arg0: type_block1, type: typeTypeType}
+// CHECK:STDOUT:     'inst+14':         {kind: TupleLiteral, arg0: block6, type: type(inst+13)}
+// CHECK:STDOUT:     'inst+15':         {kind: Converted, arg0: inst+12, arg1: inst+11, type: typeTypeType}
+// CHECK:STDOUT:     'inst+16':         {kind: TupleType, arg0: type_block2, type: typeTypeType}
+// CHECK:STDOUT:     'inst+17':         {kind: Converted, arg0: inst+14, arg1: inst+16, type: typeTypeType}
+// CHECK:STDOUT:     'inst+18':         {kind: VarStorage, arg0: nameReturnSlot, type: type(symbolicConstant5)}
+// CHECK:STDOUT:     'inst+19':         {kind: Param, arg0: runtime_param<invalid>, type: typeTypeType}
+// CHECK:STDOUT:     'inst+20':         {kind: Param, arg0: runtime_param0, type: type(symbolicConstant3)}
 // CHECK:STDOUT:     'inst+21':         {kind: FunctionDecl, arg0: function0, arg1: block10, type: type(inst+25)}
 // CHECK:STDOUT:     'inst+22':         {kind: BindSymbolicName, arg0: entity_name0, arg1: inst<invalid>, type: typeTypeType}
-// CHECK:STDOUT:     'inst+23':         {kind: SymbolicBindingPattern, arg0: entity_name0, arg1: inst+2, type: typeTypeType}
+// CHECK:STDOUT:     'inst+23':         {kind: SymbolicBindingPattern, arg0: entity_name0, arg1: inst+1, type: typeTypeType}
 // CHECK:STDOUT:     'inst+24':         {kind: TupleType, arg0: type_block3, type: typeTypeType}
 // CHECK:STDOUT:     'inst+25':         {kind: FunctionType, arg0: function0, arg1: specific<invalid>, type: typeTypeType}
 // CHECK:STDOUT:     'inst+26':         {kind: StructValue, arg0: empty, type: type(inst+25)}
 // CHECK:STDOUT:     'inst+27':         {kind: PointerType, arg0: type(symbolicConstant2), type: typeTypeType}
-// CHECK:STDOUT:     'inst+28':         {kind: NameRef, arg0: name2, arg1: inst+9, type: type(symbolicConstant3)}
-// CHECK:STDOUT:     'inst+29':         {kind: TupleLiteral, arg0: empty, type: type(inst+13)}
+// CHECK:STDOUT:     'inst+28':         {kind: NameRef, arg0: name2, arg1: inst+7, type: type(symbolicConstant3)}
+// CHECK:STDOUT:     'inst+29':         {kind: TupleLiteral, arg0: empty, type: type(inst+11)}
 // CHECK:STDOUT:     'inst+30':         {kind: TupleLiteral, arg0: block16, type: type(symbolicConstant5)}
-// CHECK:STDOUT:     'inst+31':         {kind: TupleAccess, arg0: inst+20, arg1: element0, type: type(symbolicConstant3)}
+// CHECK:STDOUT:     'inst+31':         {kind: TupleAccess, arg0: inst+18, arg1: element0, type: type(symbolicConstant3)}
 // CHECK:STDOUT:     'inst+32':         {kind: InitializeFrom, arg0: inst+28, arg1: inst+31, type: type(symbolicConstant3)}
-// CHECK:STDOUT:     'inst+33':         {kind: TupleAccess, arg0: inst+20, arg1: element1, type: type(inst+13)}
-// CHECK:STDOUT:     'inst+34':         {kind: TupleInit, arg0: empty, arg1: inst+33, type: type(inst+13)}
-// CHECK:STDOUT:     'inst+35':         {kind: TupleValue, arg0: empty, type: type(inst+13)}
-// CHECK:STDOUT:     'inst+36':         {kind: Converted, arg0: inst+29, arg1: inst+34, type: type(inst+13)}
-// CHECK:STDOUT:     'inst+37':         {kind: TupleInit, arg0: block17, arg1: inst+20, type: type(symbolicConstant5)}
+// CHECK:STDOUT:     'inst+33':         {kind: TupleAccess, arg0: inst+18, arg1: element1, type: type(inst+11)}
+// CHECK:STDOUT:     'inst+34':         {kind: TupleInit, arg0: empty, arg1: inst+33, type: type(inst+11)}
+// CHECK:STDOUT:     'inst+35':         {kind: TupleValue, arg0: empty, type: type(inst+11)}
+// CHECK:STDOUT:     'inst+36':         {kind: Converted, arg0: inst+29, arg1: inst+34, type: type(inst+11)}
+// CHECK:STDOUT:     'inst+37':         {kind: TupleInit, arg0: block17, arg1: inst+18, type: type(symbolicConstant5)}
 // CHECK:STDOUT:     'inst+38':         {kind: Converted, arg0: inst+30, arg1: inst+37, type: type(symbolicConstant5)}
-// CHECK:STDOUT:     'inst+39':         {kind: ReturnExpr, arg0: inst+38, arg1: inst+20}
+// CHECK:STDOUT:     'inst+39':         {kind: ReturnExpr, arg0: inst+38, arg1: inst+18}
 // CHECK:STDOUT:   constant_values:
 // CHECK:STDOUT:     'inst+0':          templateConstant(inst+0)
-// CHECK:STDOUT:     'inst+2':          symbolicConstant3
-// CHECK:STDOUT:     'inst+3':          symbolicConstant0
-// CHECK:STDOUT:     'inst+4':          symbolicConstant4
-// CHECK:STDOUT:     'inst+5':          symbolicConstant1
-// CHECK:STDOUT:     'inst+6':          symbolicConstant4
-// CHECK:STDOUT:     'inst+7':          symbolicConstant3
-// CHECK:STDOUT:     'inst+12':         symbolicConstant3
+// CHECK:STDOUT:     'inst+1':          symbolicConstant3
+// CHECK:STDOUT:     'inst+2':          symbolicConstant0
+// CHECK:STDOUT:     'inst+3':          symbolicConstant4
+// CHECK:STDOUT:     'inst+4':          symbolicConstant1
+// CHECK:STDOUT:     'inst+5':          symbolicConstant4
+// CHECK:STDOUT:     'inst+6':          symbolicConstant3
+// CHECK:STDOUT:     'inst+10':         symbolicConstant3
+// CHECK:STDOUT:     'inst+11':         templateConstant(inst+11)
 // CHECK:STDOUT:     'inst+13':         templateConstant(inst+13)
-// CHECK:STDOUT:     'inst+15':         templateConstant(inst+15)
-// CHECK:STDOUT:     'inst+17':         templateConstant(inst+13)
-// CHECK:STDOUT:     'inst+18':         symbolicConstant2
-// CHECK:STDOUT:     'inst+19':         symbolicConstant5
+// CHECK:STDOUT:     'inst+15':         templateConstant(inst+11)
+// CHECK:STDOUT:     'inst+16':         symbolicConstant2
+// CHECK:STDOUT:     'inst+17':         symbolicConstant5
 // CHECK:STDOUT:     'inst+21':         templateConstant(inst+26)
 // CHECK:STDOUT:     'inst+22':         symbolicConstant3
 // CHECK:STDOUT:     'inst+23':         symbolicConstant4
@@ -122,12 +122,12 @@ fn Foo[T:! type](n: T) -> (T, ()) {
 // CHECK:STDOUT:     'inst+35':         templateConstant(inst+35)
 // CHECK:STDOUT:     'inst+36':         templateConstant(inst+35)
 // CHECK:STDOUT:   symbolic_constants:
-// CHECK:STDOUT:     symbolicConstant0: {inst: inst+3, generic: generic<invalid>, index: genericInst<invalid>}
-// CHECK:STDOUT:     symbolicConstant1: {inst: inst+5, generic: generic<invalid>, index: genericInst<invalid>}
-// CHECK:STDOUT:     symbolicConstant2: {inst: inst+18, generic: generic<invalid>, index: genericInst<invalid>}
-// CHECK:STDOUT:     symbolicConstant3: {inst: inst+3, generic: generic0, index: genericInstInDecl0}
-// CHECK:STDOUT:     symbolicConstant4: {inst: inst+5, generic: generic0, index: genericInstInDecl1}
-// CHECK:STDOUT:     symbolicConstant5: {inst: inst+18, generic: generic0, index: genericInstInDecl2}
+// CHECK:STDOUT:     symbolicConstant0: {inst: inst+2, generic: generic<invalid>, index: genericInst<invalid>}
+// CHECK:STDOUT:     symbolicConstant1: {inst: inst+4, generic: generic<invalid>, index: genericInst<invalid>}
+// CHECK:STDOUT:     symbolicConstant2: {inst: inst+16, generic: generic<invalid>, index: genericInst<invalid>}
+// CHECK:STDOUT:     symbolicConstant3: {inst: inst+2, generic: generic0, index: genericInstInDecl0}
+// CHECK:STDOUT:     symbolicConstant4: {inst: inst+4, generic: generic0, index: genericInstInDecl1}
+// CHECK:STDOUT:     symbolicConstant5: {inst: inst+16, generic: generic0, index: genericInstInDecl2}
 // CHECK:STDOUT:     symbolicConstant6: {inst: inst+27, generic: generic<invalid>, index: genericInst<invalid>}
 // CHECK:STDOUT:   inst_blocks:
 // CHECK:STDOUT:     empty:           {}
@@ -136,45 +136,45 @@ fn Foo[T:! type](n: T) -> (T, ()) {
 // CHECK:STDOUT:     import_refs:     {}
 // CHECK:STDOUT:     global_init:     {}
 // CHECK:STDOUT:     block4:
-// CHECK:STDOUT:       0:               inst+6
+// CHECK:STDOUT:       0:               inst+5
 // CHECK:STDOUT:     block5:
-// CHECK:STDOUT:       0:               inst+11
+// CHECK:STDOUT:       0:               inst+9
 // CHECK:STDOUT:     block6:
-// CHECK:STDOUT:       0:               inst+12
-// CHECK:STDOUT:       1:               inst+14
+// CHECK:STDOUT:       0:               inst+10
+// CHECK:STDOUT:       1:               inst+12
 // CHECK:STDOUT:     block7:
-// CHECK:STDOUT:       0:               inst+2
+// CHECK:STDOUT:       0:               inst+1
 // CHECK:STDOUT:     block8:
-// CHECK:STDOUT:       0:               inst+9
+// CHECK:STDOUT:       0:               inst+7
 // CHECK:STDOUT:     block9:
-// CHECK:STDOUT:       0:               inst+4
-// CHECK:STDOUT:       1:               inst+6
-// CHECK:STDOUT:       2:               inst+10
-// CHECK:STDOUT:       3:               inst+11
+// CHECK:STDOUT:       0:               inst+3
+// CHECK:STDOUT:       1:               inst+5
+// CHECK:STDOUT:       2:               inst+8
+// CHECK:STDOUT:       3:               inst+9
 // CHECK:STDOUT:     block10:
-// CHECK:STDOUT:       0:               inst+7
-// CHECK:STDOUT:       1:               inst+12
-// CHECK:STDOUT:       2:               inst+14
-// CHECK:STDOUT:       3:               inst+16
-// CHECK:STDOUT:       4:               inst+17
-// CHECK:STDOUT:       5:               inst+19
-// CHECK:STDOUT:       6:               inst+20
-// CHECK:STDOUT:       7:               inst+1
-// CHECK:STDOUT:       8:               inst+2
-// CHECK:STDOUT:       9:               inst+8
-// CHECK:STDOUT:       10:              inst+9
+// CHECK:STDOUT:       0:               inst+6
+// CHECK:STDOUT:       1:               inst+10
+// CHECK:STDOUT:       2:               inst+12
+// CHECK:STDOUT:       3:               inst+14
+// CHECK:STDOUT:       4:               inst+15
+// CHECK:STDOUT:       5:               inst+17
+// CHECK:STDOUT:       6:               inst+18
+// CHECK:STDOUT:       7:               inst+19
+// CHECK:STDOUT:       8:               inst+1
+// CHECK:STDOUT:       9:               inst+20
+// CHECK:STDOUT:       10:              inst+7
 // CHECK:STDOUT:     block11:
-// CHECK:STDOUT:       0:               inst+2
+// CHECK:STDOUT:       0:               inst+1
 // CHECK:STDOUT:     block12:
 // CHECK:STDOUT:       0:               inst+22
 // CHECK:STDOUT:       1:               inst+23
 // CHECK:STDOUT:       2:               inst+24
 // CHECK:STDOUT:     block13:
-// CHECK:STDOUT:       0:               inst+3
+// CHECK:STDOUT:       0:               inst+2
 // CHECK:STDOUT:     block14:
-// CHECK:STDOUT:       0:               inst+3
-// CHECK:STDOUT:       1:               inst+3
-// CHECK:STDOUT:       2:               inst+18
+// CHECK:STDOUT:       0:               inst+2
+// CHECK:STDOUT:       1:               inst+2
+// CHECK:STDOUT:       2:               inst+16
 // CHECK:STDOUT:     block15:
 // CHECK:STDOUT:       0:               inst+28
 // CHECK:STDOUT:       1:               inst+29

+ 32 - 32
toolchain/check/testdata/builtins/float/add.carbon

@@ -108,10 +108,10 @@ fn RuntimeCallBadReturnType(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc2_27.2: type = value_of_initializer %float.make_type.loc2_27 [template = f64]
 // CHECK:STDOUT:     %.loc2_27.3: type = converted %float.make_type.loc2_27, %.loc2_27.2 [template = f64]
 // CHECK:STDOUT:     %return: ref f64 = var <return slot>
-// CHECK:STDOUT:     %param.loc2_8: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc2_8
-// CHECK:STDOUT:     %param.loc2_16: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc2_16
+// CHECK:STDOUT:     %param.loc2_9: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc2_9
+// CHECK:STDOUT:     %param.loc2_17: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc2_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %RuntimeCall.decl: %RuntimeCall.type = fn_decl @RuntimeCall [template = constants.%RuntimeCall] {
 // CHECK:STDOUT:     %a.patt: f64 = binding_pattern a
@@ -132,10 +132,10 @@ fn RuntimeCallBadReturnType(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc4_35.2: type = value_of_initializer %float.make_type.loc4_35 [template = f64]
 // CHECK:STDOUT:     %.loc4_35.3: type = converted %float.make_type.loc4_35, %.loc4_35.2 [template = f64]
 // CHECK:STDOUT:     %return: ref f64 = var <return slot>
-// CHECK:STDOUT:     %param.loc4_16: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc4_16
-// CHECK:STDOUT:     %param.loc4_24: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc4_24
+// CHECK:STDOUT:     %param.loc4_17: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc4_17
+// CHECK:STDOUT:     %param.loc4_25: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc4_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %.loc8_8.1: i32 = int_literal 64 [template = constants.%.1]
 // CHECK:STDOUT:   %float.make_type: init type = call constants.%Float(%.loc8_8.1) [template = f64]
@@ -265,12 +265,12 @@ fn RuntimeCallBadReturnType(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc13_39.2: type = value_of_initializer %float.make_type.loc13_39 [template = f64]
 // CHECK:STDOUT:     %.loc13_39.3: type = converted %float.make_type.loc13_39, %.loc13_39.2 [template = f64]
 // CHECK:STDOUT:     %return: ref f64 = var <return slot>
-// CHECK:STDOUT:     %param.loc13_12: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc13_12
-// CHECK:STDOUT:     %param.loc13_20: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc13_20
-// CHECK:STDOUT:     %param.loc13_28: f64 = param runtime_param2
-// CHECK:STDOUT:     %c: f64 = bind_name c, %param.loc13_28
+// CHECK:STDOUT:     %param.loc13_13: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc13_13
+// CHECK:STDOUT:     %param.loc13_21: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc13_21
+// CHECK:STDOUT:     %param.loc13_29: f64 = param runtime_param2
+// CHECK:STDOUT:     %c: f64 = bind_name c, %param.loc13_29
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %BadReturnType.decl: %BadReturnType.type = fn_decl @BadReturnType [template = constants.%BadReturnType] {
 // CHECK:STDOUT:     %a.patt: f64 = binding_pattern a
@@ -290,10 +290,10 @@ fn RuntimeCallBadReturnType(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc17_37.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc17_37.2: type = converted %bool.make_type, %.loc17_37.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc17_18: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc17_18
-// CHECK:STDOUT:     %param.loc17_26: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc17_26
+// CHECK:STDOUT:     %param.loc17_19: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc17_19
+// CHECK:STDOUT:     %param.loc17_27: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc17_27
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %JustRight.decl: %JustRight.type = fn_decl @JustRight [template = constants.%JustRight] {
 // CHECK:STDOUT:     %a.patt: f64 = binding_pattern a
@@ -314,10 +314,10 @@ fn RuntimeCallBadReturnType(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc18_33.2: type = value_of_initializer %float.make_type.loc18_33 [template = f64]
 // CHECK:STDOUT:     %.loc18_33.3: type = converted %float.make_type.loc18_33, %.loc18_33.2 [template = f64]
 // CHECK:STDOUT:     %return: ref f64 = var <return slot>
-// CHECK:STDOUT:     %param.loc18_14: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc18_14
-// CHECK:STDOUT:     %param.loc18_22: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc18_22
+// CHECK:STDOUT:     %param.loc18_15: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc18_15
+// CHECK:STDOUT:     %param.loc18_23: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc18_23
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %RuntimeCallTooFew.decl: %RuntimeCallTooFew.type = fn_decl @RuntimeCallTooFew [template = constants.%RuntimeCallTooFew] {
 // CHECK:STDOUT:     %a.patt: f64 = binding_pattern a
@@ -360,12 +360,12 @@ fn RuntimeCallBadReturnType(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc24_50.2: type = value_of_initializer %float.make_type.loc24_50 [template = f64]
 // CHECK:STDOUT:     %.loc24_50.3: type = converted %float.make_type.loc24_50, %.loc24_50.2 [template = f64]
 // CHECK:STDOUT:     %return: ref f64 = var <return slot>
-// CHECK:STDOUT:     %param.loc24_23: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc24_23
-// CHECK:STDOUT:     %param.loc24_31: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc24_31
-// CHECK:STDOUT:     %param.loc24_39: f64 = param runtime_param2
-// CHECK:STDOUT:     %c: f64 = bind_name c, %param.loc24_39
+// CHECK:STDOUT:     %param.loc24_24: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc24_24
+// CHECK:STDOUT:     %param.loc24_32: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc24_32
+// CHECK:STDOUT:     %param.loc24_40: f64 = param runtime_param2
+// CHECK:STDOUT:     %c: f64 = bind_name c, %param.loc24_40
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %RuntimeCallBadReturnType.decl: %RuntimeCallBadReturnType.type = fn_decl @RuntimeCallBadReturnType [template = constants.%RuntimeCallBadReturnType] {
 // CHECK:STDOUT:     %a.patt: f64 = binding_pattern a
@@ -385,10 +385,10 @@ fn RuntimeCallBadReturnType(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc28_48.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc28_48.2: type = converted %bool.make_type, %.loc28_48.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc28_29: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc28_29
-// CHECK:STDOUT:     %param.loc28_37: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc28_37
+// CHECK:STDOUT:     %param.loc28_30: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc28_30
+// CHECK:STDOUT:     %param.loc28_38: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc28_38
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 32 - 32
toolchain/check/testdata/builtins/float/div.carbon

@@ -116,10 +116,10 @@ fn RuntimeCallBadReturnType(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc2_27.2: type = value_of_initializer %float.make_type.loc2_27 [template = f64]
 // CHECK:STDOUT:     %.loc2_27.3: type = converted %float.make_type.loc2_27, %.loc2_27.2 [template = f64]
 // CHECK:STDOUT:     %return: ref f64 = var <return slot>
-// CHECK:STDOUT:     %param.loc2_8: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc2_8
-// CHECK:STDOUT:     %param.loc2_16: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc2_16
+// CHECK:STDOUT:     %param.loc2_9: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc2_9
+// CHECK:STDOUT:     %param.loc2_17: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc2_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %RuntimeCall.decl: %RuntimeCall.type = fn_decl @RuntimeCall [template = constants.%RuntimeCall] {
 // CHECK:STDOUT:     %a.patt: f64 = binding_pattern a
@@ -140,10 +140,10 @@ fn RuntimeCallBadReturnType(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc4_35.2: type = value_of_initializer %float.make_type.loc4_35 [template = f64]
 // CHECK:STDOUT:     %.loc4_35.3: type = converted %float.make_type.loc4_35, %.loc4_35.2 [template = f64]
 // CHECK:STDOUT:     %return: ref f64 = var <return slot>
-// CHECK:STDOUT:     %param.loc4_16: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc4_16
-// CHECK:STDOUT:     %param.loc4_24: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc4_24
+// CHECK:STDOUT:     %param.loc4_17: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc4_17
+// CHECK:STDOUT:     %param.loc4_25: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc4_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %.loc8_8.1: i32 = int_literal 64 [template = constants.%.1]
 // CHECK:STDOUT:   %float.make_type.loc8: init type = call constants.%Float(%.loc8_8.1) [template = f64]
@@ -295,12 +295,12 @@ fn RuntimeCallBadReturnType(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc13_39.2: type = value_of_initializer %float.make_type.loc13_39 [template = f64]
 // CHECK:STDOUT:     %.loc13_39.3: type = converted %float.make_type.loc13_39, %.loc13_39.2 [template = f64]
 // CHECK:STDOUT:     %return: ref f64 = var <return slot>
-// CHECK:STDOUT:     %param.loc13_12: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc13_12
-// CHECK:STDOUT:     %param.loc13_20: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc13_20
-// CHECK:STDOUT:     %param.loc13_28: f64 = param runtime_param2
-// CHECK:STDOUT:     %c: f64 = bind_name c, %param.loc13_28
+// CHECK:STDOUT:     %param.loc13_13: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc13_13
+// CHECK:STDOUT:     %param.loc13_21: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc13_21
+// CHECK:STDOUT:     %param.loc13_29: f64 = param runtime_param2
+// CHECK:STDOUT:     %c: f64 = bind_name c, %param.loc13_29
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %BadReturnType.decl: %BadReturnType.type = fn_decl @BadReturnType [template = constants.%BadReturnType] {
 // CHECK:STDOUT:     %a.patt: f64 = binding_pattern a
@@ -320,10 +320,10 @@ fn RuntimeCallBadReturnType(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc17_37.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc17_37.2: type = converted %bool.make_type, %.loc17_37.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc17_18: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc17_18
-// CHECK:STDOUT:     %param.loc17_26: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc17_26
+// CHECK:STDOUT:     %param.loc17_19: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc17_19
+// CHECK:STDOUT:     %param.loc17_27: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc17_27
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %JustRight.decl: %JustRight.type = fn_decl @JustRight [template = constants.%JustRight] {
 // CHECK:STDOUT:     %a.patt: f64 = binding_pattern a
@@ -344,10 +344,10 @@ fn RuntimeCallBadReturnType(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc18_33.2: type = value_of_initializer %float.make_type.loc18_33 [template = f64]
 // CHECK:STDOUT:     %.loc18_33.3: type = converted %float.make_type.loc18_33, %.loc18_33.2 [template = f64]
 // CHECK:STDOUT:     %return: ref f64 = var <return slot>
-// CHECK:STDOUT:     %param.loc18_14: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc18_14
-// CHECK:STDOUT:     %param.loc18_22: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc18_22
+// CHECK:STDOUT:     %param.loc18_15: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc18_15
+// CHECK:STDOUT:     %param.loc18_23: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc18_23
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %RuntimeCallTooFew.decl: %RuntimeCallTooFew.type = fn_decl @RuntimeCallTooFew [template = constants.%RuntimeCallTooFew] {
 // CHECK:STDOUT:     %a.patt: f64 = binding_pattern a
@@ -390,12 +390,12 @@ fn RuntimeCallBadReturnType(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc24_50.2: type = value_of_initializer %float.make_type.loc24_50 [template = f64]
 // CHECK:STDOUT:     %.loc24_50.3: type = converted %float.make_type.loc24_50, %.loc24_50.2 [template = f64]
 // CHECK:STDOUT:     %return: ref f64 = var <return slot>
-// CHECK:STDOUT:     %param.loc24_23: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc24_23
-// CHECK:STDOUT:     %param.loc24_31: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc24_31
-// CHECK:STDOUT:     %param.loc24_39: f64 = param runtime_param2
-// CHECK:STDOUT:     %c: f64 = bind_name c, %param.loc24_39
+// CHECK:STDOUT:     %param.loc24_24: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc24_24
+// CHECK:STDOUT:     %param.loc24_32: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc24_32
+// CHECK:STDOUT:     %param.loc24_40: f64 = param runtime_param2
+// CHECK:STDOUT:     %c: f64 = bind_name c, %param.loc24_40
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %RuntimeCallBadReturnType.decl: %RuntimeCallBadReturnType.type = fn_decl @RuntimeCallBadReturnType [template = constants.%RuntimeCallBadReturnType] {
 // CHECK:STDOUT:     %a.patt: f64 = binding_pattern a
@@ -415,10 +415,10 @@ fn RuntimeCallBadReturnType(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc28_48.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc28_48.2: type = converted %bool.make_type, %.loc28_48.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc28_29: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc28_29
-// CHECK:STDOUT:     %param.loc28_37: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc28_37
+// CHECK:STDOUT:     %param.loc28_30: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc28_30
+// CHECK:STDOUT:     %param.loc28_38: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc28_38
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 16 - 16
toolchain/check/testdata/builtins/float/eq.carbon

@@ -104,10 +104,10 @@ fn WrongResult(a: f64, b: f64) -> f64 = "float.eq";
 // CHECK:STDOUT:     %.loc2_26.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc2_26.2: type = converted %bool.make_type, %.loc2_26.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc2_7: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc2_7
-// CHECK:STDOUT:     %param.loc2_15: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc2_15
+// CHECK:STDOUT:     %param.loc2_8: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc2_8
+// CHECK:STDOUT:     %param.loc2_16: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc2_16
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %True.decl: type = class_decl @True [template = constants.%True] {} {}
 // CHECK:STDOUT:   %False.decl: type = class_decl @False [template = constants.%False] {} {}
@@ -119,10 +119,10 @@ fn WrongResult(a: f64, b: f64) -> f64 = "float.eq";
 // CHECK:STDOUT:   } {
 // CHECK:STDOUT:     %True.ref.loc7: type = name_ref True, file.%True.decl [template = constants.%True]
 // CHECK:STDOUT:     %False.ref.loc7: type = name_ref False, file.%False.decl [template = constants.%False]
-// CHECK:STDOUT:     %param.loc7_6: %True = param runtime_param0
-// CHECK:STDOUT:     %true_: %True = bind_name true_, %param.loc7_6
-// CHECK:STDOUT:     %param.loc7_19: %False = param runtime_param1
-// CHECK:STDOUT:     %false_: %False = bind_name false_, %param.loc7_19
+// CHECK:STDOUT:     %param.loc7_11: %True = param runtime_param0
+// CHECK:STDOUT:     %true_: %True = bind_name true_, %param.loc7_11
+// CHECK:STDOUT:     %param.loc7_25: %False = param runtime_param1
+// CHECK:STDOUT:     %false_: %False = bind_name false_, %param.loc7_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %RuntimeCall.decl: %RuntimeCall.type = fn_decl @RuntimeCall [template = constants.%RuntimeCall] {
 // CHECK:STDOUT:     %a.patt: f64 = binding_pattern a
@@ -142,10 +142,10 @@ fn WrongResult(a: f64, b: f64) -> f64 = "float.eq";
 // CHECK:STDOUT:     %.loc12_35.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc12_35.2: type = converted %bool.make_type, %.loc12_35.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc12_16: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc12_16
-// CHECK:STDOUT:     %param.loc12_24: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc12_24
+// CHECK:STDOUT:     %param.loc12_17: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc12_17
+// CHECK:STDOUT:     %param.loc12_25: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc12_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -274,10 +274,10 @@ fn WrongResult(a: f64, b: f64) -> f64 = "float.eq";
 // CHECK:STDOUT:     %.loc7_35.2: type = value_of_initializer %float.make_type.loc7_35 [template = f64]
 // CHECK:STDOUT:     %.loc7_35.3: type = converted %float.make_type.loc7_35, %.loc7_35.2 [template = f64]
 // CHECK:STDOUT:     %return: ref f64 = var <return slot>
-// CHECK:STDOUT:     %param.loc7_16: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc7_16
-// CHECK:STDOUT:     %param.loc7_24: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc7_24
+// CHECK:STDOUT:     %param.loc7_17: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc7_17
+// CHECK:STDOUT:     %param.loc7_25: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc7_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 12 - 12
toolchain/check/testdata/builtins/float/greater.carbon

@@ -104,10 +104,10 @@ fn RuntimeCall(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc2_31.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc2_31.2: type = converted %bool.make_type, %.loc2_31.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc2_12: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc2_12
-// CHECK:STDOUT:     %param.loc2_20: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc2_20
+// CHECK:STDOUT:     %param.loc2_13: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc2_13
+// CHECK:STDOUT:     %param.loc2_21: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc2_21
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Negate.decl: %Negate.type = fn_decl @Negate [template = constants.%Negate] {
 // CHECK:STDOUT:     %a.patt: f64 = binding_pattern a
@@ -135,10 +135,10 @@ fn RuntimeCall(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:   } {
 // CHECK:STDOUT:     %True.ref.loc8: type = name_ref True, file.%True.decl [template = constants.%True]
 // CHECK:STDOUT:     %False.ref.loc8: type = name_ref False, file.%False.decl [template = constants.%False]
-// CHECK:STDOUT:     %param.loc8_6: %True = param runtime_param0
-// CHECK:STDOUT:     %true_: %True = bind_name true_, %param.loc8_6
-// CHECK:STDOUT:     %param.loc8_19: %False = param runtime_param1
-// CHECK:STDOUT:     %false_: %False = bind_name false_, %param.loc8_19
+// CHECK:STDOUT:     %param.loc8_11: %True = param runtime_param0
+// CHECK:STDOUT:     %true_: %True = bind_name true_, %param.loc8_11
+// CHECK:STDOUT:     %param.loc8_25: %False = param runtime_param1
+// CHECK:STDOUT:     %false_: %False = bind_name false_, %param.loc8_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %RuntimeCall.decl: %RuntimeCall.type = fn_decl @RuntimeCall [template = constants.%RuntimeCall] {
 // CHECK:STDOUT:     %a.patt: f64 = binding_pattern a
@@ -158,10 +158,10 @@ fn RuntimeCall(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc16_35.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc16_35.2: type = converted %bool.make_type, %.loc16_35.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc16_16: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc16_16
-// CHECK:STDOUT:     %param.loc16_24: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc16_24
+// CHECK:STDOUT:     %param.loc16_17: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc16_17
+// CHECK:STDOUT:     %param.loc16_25: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc16_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 12 - 12
toolchain/check/testdata/builtins/float/greater_eq.carbon

@@ -104,10 +104,10 @@ fn RuntimeCall(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc2_33.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc2_33.2: type = converted %bool.make_type, %.loc2_33.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc2_14: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc2_14
-// CHECK:STDOUT:     %param.loc2_22: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc2_22
+// CHECK:STDOUT:     %param.loc2_15: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc2_15
+// CHECK:STDOUT:     %param.loc2_23: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc2_23
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Negate.decl: %Negate.type = fn_decl @Negate [template = constants.%Negate] {
 // CHECK:STDOUT:     %a.patt: f64 = binding_pattern a
@@ -135,10 +135,10 @@ fn RuntimeCall(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:   } {
 // CHECK:STDOUT:     %True.ref.loc8: type = name_ref True, file.%True.decl [template = constants.%True]
 // CHECK:STDOUT:     %False.ref.loc8: type = name_ref False, file.%False.decl [template = constants.%False]
-// CHECK:STDOUT:     %param.loc8_6: %True = param runtime_param0
-// CHECK:STDOUT:     %true_: %True = bind_name true_, %param.loc8_6
-// CHECK:STDOUT:     %param.loc8_19: %False = param runtime_param1
-// CHECK:STDOUT:     %false_: %False = bind_name false_, %param.loc8_19
+// CHECK:STDOUT:     %param.loc8_11: %True = param runtime_param0
+// CHECK:STDOUT:     %true_: %True = bind_name true_, %param.loc8_11
+// CHECK:STDOUT:     %param.loc8_25: %False = param runtime_param1
+// CHECK:STDOUT:     %false_: %False = bind_name false_, %param.loc8_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %RuntimeCall.decl: %RuntimeCall.type = fn_decl @RuntimeCall [template = constants.%RuntimeCall] {
 // CHECK:STDOUT:     %a.patt: f64 = binding_pattern a
@@ -158,10 +158,10 @@ fn RuntimeCall(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc16_35.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc16_35.2: type = converted %bool.make_type, %.loc16_35.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc16_16: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc16_16
-// CHECK:STDOUT:     %param.loc16_24: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc16_24
+// CHECK:STDOUT:     %param.loc16_17: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc16_17
+// CHECK:STDOUT:     %param.loc16_25: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc16_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 12 - 12
toolchain/check/testdata/builtins/float/less.carbon

@@ -104,10 +104,10 @@ fn RuntimeCall(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc2_28.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc2_28.2: type = converted %bool.make_type, %.loc2_28.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc2_9: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc2_9
-// CHECK:STDOUT:     %param.loc2_17: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc2_17
+// CHECK:STDOUT:     %param.loc2_10: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc2_10
+// CHECK:STDOUT:     %param.loc2_18: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc2_18
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Negate.decl: %Negate.type = fn_decl @Negate [template = constants.%Negate] {
 // CHECK:STDOUT:     %a.patt: f64 = binding_pattern a
@@ -135,10 +135,10 @@ fn RuntimeCall(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:   } {
 // CHECK:STDOUT:     %True.ref.loc8: type = name_ref True, file.%True.decl [template = constants.%True]
 // CHECK:STDOUT:     %False.ref.loc8: type = name_ref False, file.%False.decl [template = constants.%False]
-// CHECK:STDOUT:     %param.loc8_6: %True = param runtime_param0
-// CHECK:STDOUT:     %true_: %True = bind_name true_, %param.loc8_6
-// CHECK:STDOUT:     %param.loc8_19: %False = param runtime_param1
-// CHECK:STDOUT:     %false_: %False = bind_name false_, %param.loc8_19
+// CHECK:STDOUT:     %param.loc8_11: %True = param runtime_param0
+// CHECK:STDOUT:     %true_: %True = bind_name true_, %param.loc8_11
+// CHECK:STDOUT:     %param.loc8_25: %False = param runtime_param1
+// CHECK:STDOUT:     %false_: %False = bind_name false_, %param.loc8_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %RuntimeCall.decl: %RuntimeCall.type = fn_decl @RuntimeCall [template = constants.%RuntimeCall] {
 // CHECK:STDOUT:     %a.patt: f64 = binding_pattern a
@@ -158,10 +158,10 @@ fn RuntimeCall(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc16_35.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc16_35.2: type = converted %bool.make_type, %.loc16_35.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc16_16: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc16_16
-// CHECK:STDOUT:     %param.loc16_24: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc16_24
+// CHECK:STDOUT:     %param.loc16_17: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc16_17
+// CHECK:STDOUT:     %param.loc16_25: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc16_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 12 - 12
toolchain/check/testdata/builtins/float/less_eq.carbon

@@ -104,10 +104,10 @@ fn RuntimeCall(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc2_30.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc2_30.2: type = converted %bool.make_type, %.loc2_30.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc2_11: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc2_11
-// CHECK:STDOUT:     %param.loc2_19: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc2_19
+// CHECK:STDOUT:     %param.loc2_12: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc2_12
+// CHECK:STDOUT:     %param.loc2_20: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc2_20
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Negate.decl: %Negate.type = fn_decl @Negate [template = constants.%Negate] {
 // CHECK:STDOUT:     %a.patt: f64 = binding_pattern a
@@ -135,10 +135,10 @@ fn RuntimeCall(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:   } {
 // CHECK:STDOUT:     %True.ref.loc8: type = name_ref True, file.%True.decl [template = constants.%True]
 // CHECK:STDOUT:     %False.ref.loc8: type = name_ref False, file.%False.decl [template = constants.%False]
-// CHECK:STDOUT:     %param.loc8_6: %True = param runtime_param0
-// CHECK:STDOUT:     %true_: %True = bind_name true_, %param.loc8_6
-// CHECK:STDOUT:     %param.loc8_19: %False = param runtime_param1
-// CHECK:STDOUT:     %false_: %False = bind_name false_, %param.loc8_19
+// CHECK:STDOUT:     %param.loc8_11: %True = param runtime_param0
+// CHECK:STDOUT:     %true_: %True = bind_name true_, %param.loc8_11
+// CHECK:STDOUT:     %param.loc8_25: %False = param runtime_param1
+// CHECK:STDOUT:     %false_: %False = bind_name false_, %param.loc8_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %RuntimeCall.decl: %RuntimeCall.type = fn_decl @RuntimeCall [template = constants.%RuntimeCall] {
 // CHECK:STDOUT:     %a.patt: f64 = binding_pattern a
@@ -158,10 +158,10 @@ fn RuntimeCall(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc16_35.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc16_35.2: type = converted %bool.make_type, %.loc16_35.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc16_16: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc16_16
-// CHECK:STDOUT:     %param.loc16_24: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc16_24
+// CHECK:STDOUT:     %param.loc16_17: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc16_17
+// CHECK:STDOUT:     %param.loc16_25: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc16_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 32 - 32
toolchain/check/testdata/builtins/float/mul.carbon

@@ -108,10 +108,10 @@ fn RuntimeCallBadReturnType(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc2_27.2: type = value_of_initializer %float.make_type.loc2_27 [template = f64]
 // CHECK:STDOUT:     %.loc2_27.3: type = converted %float.make_type.loc2_27, %.loc2_27.2 [template = f64]
 // CHECK:STDOUT:     %return: ref f64 = var <return slot>
-// CHECK:STDOUT:     %param.loc2_8: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc2_8
-// CHECK:STDOUT:     %param.loc2_16: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc2_16
+// CHECK:STDOUT:     %param.loc2_9: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc2_9
+// CHECK:STDOUT:     %param.loc2_17: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc2_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %RuntimeCall.decl: %RuntimeCall.type = fn_decl @RuntimeCall [template = constants.%RuntimeCall] {
 // CHECK:STDOUT:     %a.patt: f64 = binding_pattern a
@@ -132,10 +132,10 @@ fn RuntimeCallBadReturnType(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc4_35.2: type = value_of_initializer %float.make_type.loc4_35 [template = f64]
 // CHECK:STDOUT:     %.loc4_35.3: type = converted %float.make_type.loc4_35, %.loc4_35.2 [template = f64]
 // CHECK:STDOUT:     %return: ref f64 = var <return slot>
-// CHECK:STDOUT:     %param.loc4_16: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc4_16
-// CHECK:STDOUT:     %param.loc4_24: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc4_24
+// CHECK:STDOUT:     %param.loc4_17: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc4_17
+// CHECK:STDOUT:     %param.loc4_25: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc4_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %.loc8_8.1: i32 = int_literal 64 [template = constants.%.1]
 // CHECK:STDOUT:   %float.make_type: init type = call constants.%Float(%.loc8_8.1) [template = f64]
@@ -265,12 +265,12 @@ fn RuntimeCallBadReturnType(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc13_39.2: type = value_of_initializer %float.make_type.loc13_39 [template = f64]
 // CHECK:STDOUT:     %.loc13_39.3: type = converted %float.make_type.loc13_39, %.loc13_39.2 [template = f64]
 // CHECK:STDOUT:     %return: ref f64 = var <return slot>
-// CHECK:STDOUT:     %param.loc13_12: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc13_12
-// CHECK:STDOUT:     %param.loc13_20: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc13_20
-// CHECK:STDOUT:     %param.loc13_28: f64 = param runtime_param2
-// CHECK:STDOUT:     %c: f64 = bind_name c, %param.loc13_28
+// CHECK:STDOUT:     %param.loc13_13: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc13_13
+// CHECK:STDOUT:     %param.loc13_21: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc13_21
+// CHECK:STDOUT:     %param.loc13_29: f64 = param runtime_param2
+// CHECK:STDOUT:     %c: f64 = bind_name c, %param.loc13_29
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %BadReturnType.decl: %BadReturnType.type = fn_decl @BadReturnType [template = constants.%BadReturnType] {
 // CHECK:STDOUT:     %a.patt: f64 = binding_pattern a
@@ -290,10 +290,10 @@ fn RuntimeCallBadReturnType(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc17_37.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc17_37.2: type = converted %bool.make_type, %.loc17_37.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc17_18: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc17_18
-// CHECK:STDOUT:     %param.loc17_26: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc17_26
+// CHECK:STDOUT:     %param.loc17_19: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc17_19
+// CHECK:STDOUT:     %param.loc17_27: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc17_27
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %JustRight.decl: %JustRight.type = fn_decl @JustRight [template = constants.%JustRight] {
 // CHECK:STDOUT:     %a.patt: f64 = binding_pattern a
@@ -314,10 +314,10 @@ fn RuntimeCallBadReturnType(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc18_33.2: type = value_of_initializer %float.make_type.loc18_33 [template = f64]
 // CHECK:STDOUT:     %.loc18_33.3: type = converted %float.make_type.loc18_33, %.loc18_33.2 [template = f64]
 // CHECK:STDOUT:     %return: ref f64 = var <return slot>
-// CHECK:STDOUT:     %param.loc18_14: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc18_14
-// CHECK:STDOUT:     %param.loc18_22: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc18_22
+// CHECK:STDOUT:     %param.loc18_15: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc18_15
+// CHECK:STDOUT:     %param.loc18_23: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc18_23
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %RuntimeCallTooFew.decl: %RuntimeCallTooFew.type = fn_decl @RuntimeCallTooFew [template = constants.%RuntimeCallTooFew] {
 // CHECK:STDOUT:     %a.patt: f64 = binding_pattern a
@@ -360,12 +360,12 @@ fn RuntimeCallBadReturnType(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc24_50.2: type = value_of_initializer %float.make_type.loc24_50 [template = f64]
 // CHECK:STDOUT:     %.loc24_50.3: type = converted %float.make_type.loc24_50, %.loc24_50.2 [template = f64]
 // CHECK:STDOUT:     %return: ref f64 = var <return slot>
-// CHECK:STDOUT:     %param.loc24_23: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc24_23
-// CHECK:STDOUT:     %param.loc24_31: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc24_31
-// CHECK:STDOUT:     %param.loc24_39: f64 = param runtime_param2
-// CHECK:STDOUT:     %c: f64 = bind_name c, %param.loc24_39
+// CHECK:STDOUT:     %param.loc24_24: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc24_24
+// CHECK:STDOUT:     %param.loc24_32: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc24_32
+// CHECK:STDOUT:     %param.loc24_40: f64 = param runtime_param2
+// CHECK:STDOUT:     %c: f64 = bind_name c, %param.loc24_40
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %RuntimeCallBadReturnType.decl: %RuntimeCallBadReturnType.type = fn_decl @RuntimeCallBadReturnType [template = constants.%RuntimeCallBadReturnType] {
 // CHECK:STDOUT:     %a.patt: f64 = binding_pattern a
@@ -385,10 +385,10 @@ fn RuntimeCallBadReturnType(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc28_48.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc28_48.2: type = converted %bool.make_type, %.loc28_48.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc28_29: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc28_29
-// CHECK:STDOUT:     %param.loc28_37: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc28_37
+// CHECK:STDOUT:     %param.loc28_30: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc28_30
+// CHECK:STDOUT:     %param.loc28_38: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc28_38
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 18 - 18
toolchain/check/testdata/builtins/float/negate.carbon

@@ -144,10 +144,10 @@ fn RuntimeCallBadReturnType(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc4_35.2: type = value_of_initializer %float.make_type.loc4_35 [template = f64]
 // CHECK:STDOUT:     %.loc4_35.3: type = converted %float.make_type.loc4_35, %.loc4_35.2 [template = f64]
 // CHECK:STDOUT:     %return: ref f64 = var <return slot>
-// CHECK:STDOUT:     %param.loc4_16: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc4_16
-// CHECK:STDOUT:     %param.loc4_24: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc4_24
+// CHECK:STDOUT:     %param.loc4_17: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc4_17
+// CHECK:STDOUT:     %param.loc4_25: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc4_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %.loc8_8.1: i32 = int_literal 64 [template = constants.%.1]
 // CHECK:STDOUT:   %float.make_type: init type = call constants.%Float(%.loc8_8.1) [template = f64]
@@ -260,10 +260,10 @@ fn RuntimeCallBadReturnType(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc13_31.2: type = value_of_initializer %float.make_type.loc13_31 [template = f64]
 // CHECK:STDOUT:     %.loc13_31.3: type = converted %float.make_type.loc13_31, %.loc13_31.2 [template = f64]
 // CHECK:STDOUT:     %return: ref f64 = var <return slot>
-// CHECK:STDOUT:     %param.loc13_12: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc13_12
-// CHECK:STDOUT:     %param.loc13_20: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc13_20
+// CHECK:STDOUT:     %param.loc13_13: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc13_13
+// CHECK:STDOUT:     %param.loc13_21: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc13_21
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %BadReturnType.decl: %BadReturnType.type = fn_decl @BadReturnType [template = constants.%BadReturnType] {
 // CHECK:STDOUT:     %a.patt: f64 = binding_pattern a
@@ -337,12 +337,12 @@ fn RuntimeCallBadReturnType(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc32_50.2: type = value_of_initializer %float.make_type.loc32_50 [template = f64]
 // CHECK:STDOUT:     %.loc32_50.3: type = converted %float.make_type.loc32_50, %.loc32_50.2 [template = f64]
 // CHECK:STDOUT:     %return: ref f64 = var <return slot>
-// CHECK:STDOUT:     %param.loc32_23: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc32_23
-// CHECK:STDOUT:     %param.loc32_31: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc32_31
-// CHECK:STDOUT:     %param.loc32_39: f64 = param runtime_param2
-// CHECK:STDOUT:     %c: f64 = bind_name c, %param.loc32_39
+// CHECK:STDOUT:     %param.loc32_24: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc32_24
+// CHECK:STDOUT:     %param.loc32_32: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc32_32
+// CHECK:STDOUT:     %param.loc32_40: f64 = param runtime_param2
+// CHECK:STDOUT:     %c: f64 = bind_name c, %param.loc32_40
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %RuntimeCallBadReturnType.decl: %RuntimeCallBadReturnType.type = fn_decl @RuntimeCallBadReturnType [template = constants.%RuntimeCallBadReturnType] {
 // CHECK:STDOUT:     %a.patt: f64 = binding_pattern a
@@ -362,10 +362,10 @@ fn RuntimeCallBadReturnType(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc43_48.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc43_48.2: type = converted %bool.make_type, %.loc43_48.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc43_29: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc43_29
-// CHECK:STDOUT:     %param.loc43_37: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc43_37
+// CHECK:STDOUT:     %param.loc43_30: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc43_30
+// CHECK:STDOUT:     %param.loc43_38: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc43_38
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 16 - 16
toolchain/check/testdata/builtins/float/neq.carbon

@@ -104,10 +104,10 @@ fn WrongResult(a: f64, b: f64) -> f64 = "float.neq";
 // CHECK:STDOUT:     %.loc2_27.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc2_27.2: type = converted %bool.make_type, %.loc2_27.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc2_8: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc2_8
-// CHECK:STDOUT:     %param.loc2_16: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc2_16
+// CHECK:STDOUT:     %param.loc2_9: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc2_9
+// CHECK:STDOUT:     %param.loc2_17: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc2_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %True.decl: type = class_decl @True [template = constants.%True] {} {}
 // CHECK:STDOUT:   %False.decl: type = class_decl @False [template = constants.%False] {} {}
@@ -119,10 +119,10 @@ fn WrongResult(a: f64, b: f64) -> f64 = "float.neq";
 // CHECK:STDOUT:   } {
 // CHECK:STDOUT:     %True.ref.loc7: type = name_ref True, file.%True.decl [template = constants.%True]
 // CHECK:STDOUT:     %False.ref.loc7: type = name_ref False, file.%False.decl [template = constants.%False]
-// CHECK:STDOUT:     %param.loc7_6: %True = param runtime_param0
-// CHECK:STDOUT:     %true_: %True = bind_name true_, %param.loc7_6
-// CHECK:STDOUT:     %param.loc7_19: %False = param runtime_param1
-// CHECK:STDOUT:     %false_: %False = bind_name false_, %param.loc7_19
+// CHECK:STDOUT:     %param.loc7_11: %True = param runtime_param0
+// CHECK:STDOUT:     %true_: %True = bind_name true_, %param.loc7_11
+// CHECK:STDOUT:     %param.loc7_25: %False = param runtime_param1
+// CHECK:STDOUT:     %false_: %False = bind_name false_, %param.loc7_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %RuntimeCall.decl: %RuntimeCall.type = fn_decl @RuntimeCall [template = constants.%RuntimeCall] {
 // CHECK:STDOUT:     %a.patt: f64 = binding_pattern a
@@ -142,10 +142,10 @@ fn WrongResult(a: f64, b: f64) -> f64 = "float.neq";
 // CHECK:STDOUT:     %.loc12_35.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc12_35.2: type = converted %bool.make_type, %.loc12_35.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc12_16: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc12_16
-// CHECK:STDOUT:     %param.loc12_24: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc12_24
+// CHECK:STDOUT:     %param.loc12_17: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc12_17
+// CHECK:STDOUT:     %param.loc12_25: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc12_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -274,10 +274,10 @@ fn WrongResult(a: f64, b: f64) -> f64 = "float.neq";
 // CHECK:STDOUT:     %.loc7_35.2: type = value_of_initializer %float.make_type.loc7_35 [template = f64]
 // CHECK:STDOUT:     %.loc7_35.3: type = converted %float.make_type.loc7_35, %.loc7_35.2 [template = f64]
 // CHECK:STDOUT:     %return: ref f64 = var <return slot>
-// CHECK:STDOUT:     %param.loc7_16: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc7_16
-// CHECK:STDOUT:     %param.loc7_24: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc7_24
+// CHECK:STDOUT:     %param.loc7_17: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc7_17
+// CHECK:STDOUT:     %param.loc7_25: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc7_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 32 - 32
toolchain/check/testdata/builtins/float/sub.carbon

@@ -108,10 +108,10 @@ fn RuntimeCallBadReturnType(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc2_27.2: type = value_of_initializer %float.make_type.loc2_27 [template = f64]
 // CHECK:STDOUT:     %.loc2_27.3: type = converted %float.make_type.loc2_27, %.loc2_27.2 [template = f64]
 // CHECK:STDOUT:     %return: ref f64 = var <return slot>
-// CHECK:STDOUT:     %param.loc2_8: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc2_8
-// CHECK:STDOUT:     %param.loc2_16: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc2_16
+// CHECK:STDOUT:     %param.loc2_9: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc2_9
+// CHECK:STDOUT:     %param.loc2_17: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc2_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %RuntimeCall.decl: %RuntimeCall.type = fn_decl @RuntimeCall [template = constants.%RuntimeCall] {
 // CHECK:STDOUT:     %a.patt: f64 = binding_pattern a
@@ -132,10 +132,10 @@ fn RuntimeCallBadReturnType(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc4_35.2: type = value_of_initializer %float.make_type.loc4_35 [template = f64]
 // CHECK:STDOUT:     %.loc4_35.3: type = converted %float.make_type.loc4_35, %.loc4_35.2 [template = f64]
 // CHECK:STDOUT:     %return: ref f64 = var <return slot>
-// CHECK:STDOUT:     %param.loc4_16: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc4_16
-// CHECK:STDOUT:     %param.loc4_24: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc4_24
+// CHECK:STDOUT:     %param.loc4_17: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc4_17
+// CHECK:STDOUT:     %param.loc4_25: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc4_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %.loc8_8.1: i32 = int_literal 64 [template = constants.%.1]
 // CHECK:STDOUT:   %float.make_type: init type = call constants.%Float(%.loc8_8.1) [template = f64]
@@ -265,12 +265,12 @@ fn RuntimeCallBadReturnType(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc13_39.2: type = value_of_initializer %float.make_type.loc13_39 [template = f64]
 // CHECK:STDOUT:     %.loc13_39.3: type = converted %float.make_type.loc13_39, %.loc13_39.2 [template = f64]
 // CHECK:STDOUT:     %return: ref f64 = var <return slot>
-// CHECK:STDOUT:     %param.loc13_12: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc13_12
-// CHECK:STDOUT:     %param.loc13_20: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc13_20
-// CHECK:STDOUT:     %param.loc13_28: f64 = param runtime_param2
-// CHECK:STDOUT:     %c: f64 = bind_name c, %param.loc13_28
+// CHECK:STDOUT:     %param.loc13_13: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc13_13
+// CHECK:STDOUT:     %param.loc13_21: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc13_21
+// CHECK:STDOUT:     %param.loc13_29: f64 = param runtime_param2
+// CHECK:STDOUT:     %c: f64 = bind_name c, %param.loc13_29
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %BadReturnType.decl: %BadReturnType.type = fn_decl @BadReturnType [template = constants.%BadReturnType] {
 // CHECK:STDOUT:     %a.patt: f64 = binding_pattern a
@@ -290,10 +290,10 @@ fn RuntimeCallBadReturnType(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc17_37.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc17_37.2: type = converted %bool.make_type, %.loc17_37.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc17_18: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc17_18
-// CHECK:STDOUT:     %param.loc17_26: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc17_26
+// CHECK:STDOUT:     %param.loc17_19: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc17_19
+// CHECK:STDOUT:     %param.loc17_27: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc17_27
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %JustRight.decl: %JustRight.type = fn_decl @JustRight [template = constants.%JustRight] {
 // CHECK:STDOUT:     %a.patt: f64 = binding_pattern a
@@ -314,10 +314,10 @@ fn RuntimeCallBadReturnType(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc18_33.2: type = value_of_initializer %float.make_type.loc18_33 [template = f64]
 // CHECK:STDOUT:     %.loc18_33.3: type = converted %float.make_type.loc18_33, %.loc18_33.2 [template = f64]
 // CHECK:STDOUT:     %return: ref f64 = var <return slot>
-// CHECK:STDOUT:     %param.loc18_14: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc18_14
-// CHECK:STDOUT:     %param.loc18_22: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc18_22
+// CHECK:STDOUT:     %param.loc18_15: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc18_15
+// CHECK:STDOUT:     %param.loc18_23: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc18_23
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %RuntimeCallTooFew.decl: %RuntimeCallTooFew.type = fn_decl @RuntimeCallTooFew [template = constants.%RuntimeCallTooFew] {
 // CHECK:STDOUT:     %a.patt: f64 = binding_pattern a
@@ -360,12 +360,12 @@ fn RuntimeCallBadReturnType(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc24_50.2: type = value_of_initializer %float.make_type.loc24_50 [template = f64]
 // CHECK:STDOUT:     %.loc24_50.3: type = converted %float.make_type.loc24_50, %.loc24_50.2 [template = f64]
 // CHECK:STDOUT:     %return: ref f64 = var <return slot>
-// CHECK:STDOUT:     %param.loc24_23: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc24_23
-// CHECK:STDOUT:     %param.loc24_31: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc24_31
-// CHECK:STDOUT:     %param.loc24_39: f64 = param runtime_param2
-// CHECK:STDOUT:     %c: f64 = bind_name c, %param.loc24_39
+// CHECK:STDOUT:     %param.loc24_24: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc24_24
+// CHECK:STDOUT:     %param.loc24_32: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc24_32
+// CHECK:STDOUT:     %param.loc24_40: f64 = param runtime_param2
+// CHECK:STDOUT:     %c: f64 = bind_name c, %param.loc24_40
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %RuntimeCallBadReturnType.decl: %RuntimeCallBadReturnType.type = fn_decl @RuntimeCallBadReturnType [template = constants.%RuntimeCallBadReturnType] {
 // CHECK:STDOUT:     %a.patt: f64 = binding_pattern a
@@ -385,10 +385,10 @@ fn RuntimeCallBadReturnType(a: f64, b: f64) -> bool {
 // CHECK:STDOUT:     %.loc28_48.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc28_48.2: type = converted %bool.make_type, %.loc28_48.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc28_29: f64 = param runtime_param0
-// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc28_29
-// CHECK:STDOUT:     %param.loc28_37: f64 = param runtime_param1
-// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc28_37
+// CHECK:STDOUT:     %param.loc28_30: f64 = param runtime_param0
+// CHECK:STDOUT:     %a: f64 = bind_name a, %param.loc28_30
+// CHECK:STDOUT:     %param.loc28_38: f64 = param runtime_param1
+// CHECK:STDOUT:     %b: f64 = bind_name b, %param.loc28_38
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 8 - 8
toolchain/check/testdata/builtins/int/and.carbon

@@ -76,10 +76,10 @@ fn RuntimeCall(a: i32, b: i32) -> i32 {
 // CHECK:STDOUT:     %.loc2_27.1: type = value_of_initializer %int.make_type_32.loc2_27 [template = i32]
 // CHECK:STDOUT:     %.loc2_27.2: type = converted %int.make_type_32.loc2_27, %.loc2_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc2_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_8
-// CHECK:STDOUT:     %param.loc2_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_16
+// CHECK:STDOUT:     %param.loc2_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_9
+// CHECK:STDOUT:     %param.loc2_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int.make_type_32.loc4: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:   %And.ref: %And.type = name_ref And, %And.decl [template = constants.%And]
@@ -113,10 +113,10 @@ fn RuntimeCall(a: i32, b: i32) -> i32 {
 // CHECK:STDOUT:     %.loc7_35.1: type = value_of_initializer %int.make_type_32.loc7_35 [template = i32]
 // CHECK:STDOUT:     %.loc7_35.2: type = converted %int.make_type_32.loc7_35, %.loc7_35.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc7_16: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc7_16
-// CHECK:STDOUT:     %param.loc7_24: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc7_24
+// CHECK:STDOUT:     %param.loc7_17: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc7_17
+// CHECK:STDOUT:     %param.loc7_25: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc7_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 4 - 4
toolchain/check/testdata/builtins/int/complement.carbon

@@ -95,10 +95,10 @@ fn RuntimeCall(a: i32) -> i32 {
 // CHECK:STDOUT:     %.loc3_27.1: type = value_of_initializer %int.make_type_32.loc3_27 [template = i32]
 // CHECK:STDOUT:     %.loc3_27.2: type = converted %int.make_type_32.loc3_27, %.loc3_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc3_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc3_8
-// CHECK:STDOUT:     %param.loc3_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc3_16
+// CHECK:STDOUT:     %param.loc3_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc3_9
+// CHECK:STDOUT:     %param.loc3_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc3_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int.make_type_32.loc5: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:   %And.ref: %And.type = name_ref And, %And.decl [template = constants.%And]

+ 16 - 16
toolchain/check/testdata/builtins/int/eq.carbon

@@ -101,10 +101,10 @@ fn WrongResult(a: i32, b: i32) -> i32 = "int.eq";
 // CHECK:STDOUT:     %.loc2_26.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc2_26.2: type = converted %bool.make_type, %.loc2_26.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc2_7: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_7
-// CHECK:STDOUT:     %param.loc2_15: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_15
+// CHECK:STDOUT:     %param.loc2_8: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_8
+// CHECK:STDOUT:     %param.loc2_16: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_16
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %True.decl: type = class_decl @True [template = constants.%True] {} {}
 // CHECK:STDOUT:   %False.decl: type = class_decl @False [template = constants.%False] {} {}
@@ -116,10 +116,10 @@ fn WrongResult(a: i32, b: i32) -> i32 = "int.eq";
 // CHECK:STDOUT:   } {
 // CHECK:STDOUT:     %True.ref.loc7: type = name_ref True, file.%True.decl [template = constants.%True]
 // CHECK:STDOUT:     %False.ref.loc7: type = name_ref False, file.%False.decl [template = constants.%False]
-// CHECK:STDOUT:     %param.loc7_6: %True = param runtime_param0
-// CHECK:STDOUT:     %true_: %True = bind_name true_, %param.loc7_6
-// CHECK:STDOUT:     %param.loc7_19: %False = param runtime_param1
-// CHECK:STDOUT:     %false_: %False = bind_name false_, %param.loc7_19
+// CHECK:STDOUT:     %param.loc7_11: %True = param runtime_param0
+// CHECK:STDOUT:     %true_: %True = bind_name true_, %param.loc7_11
+// CHECK:STDOUT:     %param.loc7_25: %False = param runtime_param1
+// CHECK:STDOUT:     %false_: %False = bind_name false_, %param.loc7_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %RuntimeCall.decl: %RuntimeCall.type = fn_decl @RuntimeCall [template = constants.%RuntimeCall] {
 // CHECK:STDOUT:     %a.patt: i32 = binding_pattern a
@@ -137,10 +137,10 @@ fn WrongResult(a: i32, b: i32) -> i32 = "int.eq";
 // CHECK:STDOUT:     %.loc12_35.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc12_35.2: type = converted %bool.make_type, %.loc12_35.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc12_16: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc12_16
-// CHECK:STDOUT:     %param.loc12_24: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc12_24
+// CHECK:STDOUT:     %param.loc12_17: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc12_17
+// CHECK:STDOUT:     %param.loc12_25: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc12_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -265,10 +265,10 @@ fn WrongResult(a: i32, b: i32) -> i32 = "int.eq";
 // CHECK:STDOUT:     %.loc7_35.1: type = value_of_initializer %int.make_type_32.loc7_35 [template = i32]
 // CHECK:STDOUT:     %.loc7_35.2: type = converted %int.make_type_32.loc7_35, %.loc7_35.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc7_16: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc7_16
-// CHECK:STDOUT:     %param.loc7_24: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc7_24
+// CHECK:STDOUT:     %param.loc7_17: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc7_17
+// CHECK:STDOUT:     %param.loc7_25: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc7_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 12 - 12
toolchain/check/testdata/builtins/int/greater.carbon

@@ -101,10 +101,10 @@ fn RuntimeCall(a: i32, b: i32) -> bool {
 // CHECK:STDOUT:     %.loc2_31.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc2_31.2: type = converted %bool.make_type, %.loc2_31.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc2_12: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_12
-// CHECK:STDOUT:     %param.loc2_20: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_20
+// CHECK:STDOUT:     %param.loc2_13: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_13
+// CHECK:STDOUT:     %param.loc2_21: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_21
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Negate.decl: %Negate.type = fn_decl @Negate [template = constants.%Negate] {
 // CHECK:STDOUT:     %a.patt: i32 = binding_pattern a
@@ -130,10 +130,10 @@ fn RuntimeCall(a: i32, b: i32) -> bool {
 // CHECK:STDOUT:   } {
 // CHECK:STDOUT:     %True.ref.loc8: type = name_ref True, file.%True.decl [template = constants.%True]
 // CHECK:STDOUT:     %False.ref.loc8: type = name_ref False, file.%False.decl [template = constants.%False]
-// CHECK:STDOUT:     %param.loc8_6: %True = param runtime_param0
-// CHECK:STDOUT:     %true_: %True = bind_name true_, %param.loc8_6
-// CHECK:STDOUT:     %param.loc8_19: %False = param runtime_param1
-// CHECK:STDOUT:     %false_: %False = bind_name false_, %param.loc8_19
+// CHECK:STDOUT:     %param.loc8_11: %True = param runtime_param0
+// CHECK:STDOUT:     %true_: %True = bind_name true_, %param.loc8_11
+// CHECK:STDOUT:     %param.loc8_25: %False = param runtime_param1
+// CHECK:STDOUT:     %false_: %False = bind_name false_, %param.loc8_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %RuntimeCall.decl: %RuntimeCall.type = fn_decl @RuntimeCall [template = constants.%RuntimeCall] {
 // CHECK:STDOUT:     %a.patt: i32 = binding_pattern a
@@ -151,10 +151,10 @@ fn RuntimeCall(a: i32, b: i32) -> bool {
 // CHECK:STDOUT:     %.loc16_35.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc16_35.2: type = converted %bool.make_type, %.loc16_35.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc16_16: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc16_16
-// CHECK:STDOUT:     %param.loc16_24: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc16_24
+// CHECK:STDOUT:     %param.loc16_17: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc16_17
+// CHECK:STDOUT:     %param.loc16_25: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc16_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 12 - 12
toolchain/check/testdata/builtins/int/greater_eq.carbon

@@ -101,10 +101,10 @@ fn RuntimeCall(a: i32, b: i32) -> bool {
 // CHECK:STDOUT:     %.loc2_33.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc2_33.2: type = converted %bool.make_type, %.loc2_33.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc2_14: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_14
-// CHECK:STDOUT:     %param.loc2_22: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_22
+// CHECK:STDOUT:     %param.loc2_15: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_15
+// CHECK:STDOUT:     %param.loc2_23: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_23
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Negate.decl: %Negate.type = fn_decl @Negate [template = constants.%Negate] {
 // CHECK:STDOUT:     %a.patt: i32 = binding_pattern a
@@ -130,10 +130,10 @@ fn RuntimeCall(a: i32, b: i32) -> bool {
 // CHECK:STDOUT:   } {
 // CHECK:STDOUT:     %True.ref.loc8: type = name_ref True, file.%True.decl [template = constants.%True]
 // CHECK:STDOUT:     %False.ref.loc8: type = name_ref False, file.%False.decl [template = constants.%False]
-// CHECK:STDOUT:     %param.loc8_6: %True = param runtime_param0
-// CHECK:STDOUT:     %true_: %True = bind_name true_, %param.loc8_6
-// CHECK:STDOUT:     %param.loc8_19: %False = param runtime_param1
-// CHECK:STDOUT:     %false_: %False = bind_name false_, %param.loc8_19
+// CHECK:STDOUT:     %param.loc8_11: %True = param runtime_param0
+// CHECK:STDOUT:     %true_: %True = bind_name true_, %param.loc8_11
+// CHECK:STDOUT:     %param.loc8_25: %False = param runtime_param1
+// CHECK:STDOUT:     %false_: %False = bind_name false_, %param.loc8_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %RuntimeCall.decl: %RuntimeCall.type = fn_decl @RuntimeCall [template = constants.%RuntimeCall] {
 // CHECK:STDOUT:     %a.patt: i32 = binding_pattern a
@@ -151,10 +151,10 @@ fn RuntimeCall(a: i32, b: i32) -> bool {
 // CHECK:STDOUT:     %.loc16_35.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc16_35.2: type = converted %bool.make_type, %.loc16_35.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc16_16: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc16_16
-// CHECK:STDOUT:     %param.loc16_24: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc16_24
+// CHECK:STDOUT:     %param.loc16_17: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc16_17
+// CHECK:STDOUT:     %param.loc16_25: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc16_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 12 - 12
toolchain/check/testdata/builtins/int/left_shift.carbon

@@ -120,10 +120,10 @@ let negative: i32 = LeftShift(1, Negate(1));
 // CHECK:STDOUT:     %.loc2_33.1: type = value_of_initializer %int.make_type_32.loc2_33 [template = i32]
 // CHECK:STDOUT:     %.loc2_33.2: type = converted %int.make_type_32.loc2_33, %.loc2_33.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc2_14: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_14
-// CHECK:STDOUT:     %param.loc2_22: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_22
+// CHECK:STDOUT:     %param.loc2_15: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_15
+// CHECK:STDOUT:     %param.loc2_23: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_23
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int.make_type_32.loc4: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:   %LeftShift.ref: %LeftShift.type = name_ref LeftShift, %LeftShift.decl [template = constants.%LeftShift]
@@ -157,10 +157,10 @@ let negative: i32 = LeftShift(1, Negate(1));
 // CHECK:STDOUT:     %.loc7_35.1: type = value_of_initializer %int.make_type_32.loc7_35 [template = i32]
 // CHECK:STDOUT:     %.loc7_35.2: type = converted %int.make_type_32.loc7_35, %.loc7_35.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc7_16: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc7_16
-// CHECK:STDOUT:     %param.loc7_24: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc7_24
+// CHECK:STDOUT:     %param.loc7_17: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc7_17
+// CHECK:STDOUT:     %param.loc7_25: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc7_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -253,10 +253,10 @@ let negative: i32 = LeftShift(1, Negate(1));
 // CHECK:STDOUT:     %.loc4_33.1: type = value_of_initializer %int.make_type_32.loc4_33 [template = i32]
 // CHECK:STDOUT:     %.loc4_33.2: type = converted %int.make_type_32.loc4_33, %.loc4_33.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc4_14: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc4_14
-// CHECK:STDOUT:     %param.loc4_22: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc4_22
+// CHECK:STDOUT:     %param.loc4_15: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc4_15
+// CHECK:STDOUT:     %param.loc4_23: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc4_23
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Negate.decl: %Negate.type = fn_decl @Negate [template = constants.%Negate] {
 // CHECK:STDOUT:     %a.patt: i32 = binding_pattern a

+ 12 - 12
toolchain/check/testdata/builtins/int/less.carbon

@@ -101,10 +101,10 @@ fn RuntimeCall(a: i32, b: i32) -> bool {
 // CHECK:STDOUT:     %.loc2_28.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc2_28.2: type = converted %bool.make_type, %.loc2_28.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc2_9: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_9
-// CHECK:STDOUT:     %param.loc2_17: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_17
+// CHECK:STDOUT:     %param.loc2_10: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_10
+// CHECK:STDOUT:     %param.loc2_18: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_18
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Negate.decl: %Negate.type = fn_decl @Negate [template = constants.%Negate] {
 // CHECK:STDOUT:     %a.patt: i32 = binding_pattern a
@@ -130,10 +130,10 @@ fn RuntimeCall(a: i32, b: i32) -> bool {
 // CHECK:STDOUT:   } {
 // CHECK:STDOUT:     %True.ref.loc8: type = name_ref True, file.%True.decl [template = constants.%True]
 // CHECK:STDOUT:     %False.ref.loc8: type = name_ref False, file.%False.decl [template = constants.%False]
-// CHECK:STDOUT:     %param.loc8_6: %True = param runtime_param0
-// CHECK:STDOUT:     %true_: %True = bind_name true_, %param.loc8_6
-// CHECK:STDOUT:     %param.loc8_19: %False = param runtime_param1
-// CHECK:STDOUT:     %false_: %False = bind_name false_, %param.loc8_19
+// CHECK:STDOUT:     %param.loc8_11: %True = param runtime_param0
+// CHECK:STDOUT:     %true_: %True = bind_name true_, %param.loc8_11
+// CHECK:STDOUT:     %param.loc8_25: %False = param runtime_param1
+// CHECK:STDOUT:     %false_: %False = bind_name false_, %param.loc8_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %RuntimeCall.decl: %RuntimeCall.type = fn_decl @RuntimeCall [template = constants.%RuntimeCall] {
 // CHECK:STDOUT:     %a.patt: i32 = binding_pattern a
@@ -151,10 +151,10 @@ fn RuntimeCall(a: i32, b: i32) -> bool {
 // CHECK:STDOUT:     %.loc16_35.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc16_35.2: type = converted %bool.make_type, %.loc16_35.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc16_16: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc16_16
-// CHECK:STDOUT:     %param.loc16_24: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc16_24
+// CHECK:STDOUT:     %param.loc16_17: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc16_17
+// CHECK:STDOUT:     %param.loc16_25: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc16_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 12 - 12
toolchain/check/testdata/builtins/int/less_eq.carbon

@@ -101,10 +101,10 @@ fn RuntimeCall(a: i32, b: i32) -> bool {
 // CHECK:STDOUT:     %.loc2_30.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc2_30.2: type = converted %bool.make_type, %.loc2_30.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc2_11: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_11
-// CHECK:STDOUT:     %param.loc2_19: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_19
+// CHECK:STDOUT:     %param.loc2_12: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_12
+// CHECK:STDOUT:     %param.loc2_20: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_20
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Negate.decl: %Negate.type = fn_decl @Negate [template = constants.%Negate] {
 // CHECK:STDOUT:     %a.patt: i32 = binding_pattern a
@@ -130,10 +130,10 @@ fn RuntimeCall(a: i32, b: i32) -> bool {
 // CHECK:STDOUT:   } {
 // CHECK:STDOUT:     %True.ref.loc8: type = name_ref True, file.%True.decl [template = constants.%True]
 // CHECK:STDOUT:     %False.ref.loc8: type = name_ref False, file.%False.decl [template = constants.%False]
-// CHECK:STDOUT:     %param.loc8_6: %True = param runtime_param0
-// CHECK:STDOUT:     %true_: %True = bind_name true_, %param.loc8_6
-// CHECK:STDOUT:     %param.loc8_19: %False = param runtime_param1
-// CHECK:STDOUT:     %false_: %False = bind_name false_, %param.loc8_19
+// CHECK:STDOUT:     %param.loc8_11: %True = param runtime_param0
+// CHECK:STDOUT:     %true_: %True = bind_name true_, %param.loc8_11
+// CHECK:STDOUT:     %param.loc8_25: %False = param runtime_param1
+// CHECK:STDOUT:     %false_: %False = bind_name false_, %param.loc8_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %RuntimeCall.decl: %RuntimeCall.type = fn_decl @RuntimeCall [template = constants.%RuntimeCall] {
 // CHECK:STDOUT:     %a.patt: i32 = binding_pattern a
@@ -151,10 +151,10 @@ fn RuntimeCall(a: i32, b: i32) -> bool {
 // CHECK:STDOUT:     %.loc16_35.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc16_35.2: type = converted %bool.make_type, %.loc16_35.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc16_16: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc16_16
-// CHECK:STDOUT:     %param.loc16_24: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc16_24
+// CHECK:STDOUT:     %param.loc16_17: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc16_17
+// CHECK:STDOUT:     %param.loc16_25: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc16_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

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

@@ -222,10 +222,10 @@ var m: Int(1000000000);
 // CHECK:STDOUT:     %.loc14_41.1: type = value_of_initializer %int.make_type_signed.loc14_39 [symbolic = %.loc14_28 (constants.%.6)]
 // CHECK:STDOUT:     %.loc14_41.2: type = converted %int.make_type_signed.loc14_39, %.loc14_41.1 [symbolic = %.loc14_28 (constants.%.6)]
 // CHECK:STDOUT:     %return: ref @Symbolic.%.loc14_28 (%.6) = var <return slot>
-// CHECK:STDOUT:     %param.loc14_13: i32 = param runtime_param<invalid>
-// CHECK:STDOUT:     %N.loc14_13.1: i32 = bind_symbolic_name N, 0, %param.loc14_13 [symbolic = %N.loc14_13.2 (constants.%N)]
-// CHECK:STDOUT:     %param.loc14_22: @Symbolic.%.loc14_28 (%.6) = param runtime_param0
-// CHECK:STDOUT:     %x: @Symbolic.%.loc14_28 (%.6) = bind_name x, %param.loc14_22
+// CHECK:STDOUT:     %param.loc14_14: i32 = param runtime_param<invalid>
+// CHECK:STDOUT:     %N.loc14_13.1: i32 = bind_symbolic_name N, 0, %param.loc14_14 [symbolic = %N.loc14_13.2 (constants.%N)]
+// CHECK:STDOUT:     %param.loc14_23: @Symbolic.%.loc14_28 (%.6) = param runtime_param0
+// CHECK:STDOUT:     %x: @Symbolic.%.loc14_28 (%.6) = bind_name x, %param.loc14_23
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 4 - 4
toolchain/check/testdata/builtins/int/make_type_unsigned.carbon

@@ -222,10 +222,10 @@ var m: UInt(1000000000);
 // CHECK:STDOUT:     %.loc14_43.1: type = value_of_initializer %int.make_type_unsigned.loc14_41 [symbolic = %.loc14_29 (constants.%.6)]
 // CHECK:STDOUT:     %.loc14_43.2: type = converted %int.make_type_unsigned.loc14_41, %.loc14_43.1 [symbolic = %.loc14_29 (constants.%.6)]
 // CHECK:STDOUT:     %return: ref @Symbolic.%.loc14_29 (%.6) = var <return slot>
-// CHECK:STDOUT:     %param.loc14_13: i32 = param runtime_param<invalid>
-// CHECK:STDOUT:     %N.loc14_13.1: i32 = bind_symbolic_name N, 0, %param.loc14_13 [symbolic = %N.loc14_13.2 (constants.%N)]
-// CHECK:STDOUT:     %param.loc14_22: @Symbolic.%.loc14_29 (%.6) = param runtime_param0
-// CHECK:STDOUT:     %x: @Symbolic.%.loc14_29 (%.6) = bind_name x, %param.loc14_22
+// CHECK:STDOUT:     %param.loc14_14: i32 = param runtime_param<invalid>
+// CHECK:STDOUT:     %N.loc14_13.1: i32 = bind_symbolic_name N, 0, %param.loc14_14 [symbolic = %N.loc14_13.2 (constants.%N)]
+// CHECK:STDOUT:     %param.loc14_23: @Symbolic.%.loc14_29 (%.6) = param runtime_param0
+// CHECK:STDOUT:     %x: @Symbolic.%.loc14_29 (%.6) = bind_name x, %param.loc14_23
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 12 - 12
toolchain/check/testdata/builtins/int/neq.carbon

@@ -92,10 +92,10 @@ fn RuntimeCall(a: i32, b: i32) -> bool {
 // CHECK:STDOUT:     %.loc2_27.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc2_27.2: type = converted %bool.make_type, %.loc2_27.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc2_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_8
-// CHECK:STDOUT:     %param.loc2_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_16
+// CHECK:STDOUT:     %param.loc2_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_9
+// CHECK:STDOUT:     %param.loc2_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %True.decl: type = class_decl @True [template = constants.%True] {} {}
 // CHECK:STDOUT:   %False.decl: type = class_decl @False [template = constants.%False] {} {}
@@ -107,10 +107,10 @@ fn RuntimeCall(a: i32, b: i32) -> bool {
 // CHECK:STDOUT:   } {
 // CHECK:STDOUT:     %True.ref.loc7: type = name_ref True, file.%True.decl [template = constants.%True]
 // CHECK:STDOUT:     %False.ref.loc7: type = name_ref False, file.%False.decl [template = constants.%False]
-// CHECK:STDOUT:     %param.loc7_6: %True = param runtime_param0
-// CHECK:STDOUT:     %true_: %True = bind_name true_, %param.loc7_6
-// CHECK:STDOUT:     %param.loc7_19: %False = param runtime_param1
-// CHECK:STDOUT:     %false_: %False = bind_name false_, %param.loc7_19
+// CHECK:STDOUT:     %param.loc7_11: %True = param runtime_param0
+// CHECK:STDOUT:     %true_: %True = bind_name true_, %param.loc7_11
+// CHECK:STDOUT:     %param.loc7_25: %False = param runtime_param1
+// CHECK:STDOUT:     %false_: %False = bind_name false_, %param.loc7_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %RuntimeCall.decl: %RuntimeCall.type = fn_decl @RuntimeCall [template = constants.%RuntimeCall] {
 // CHECK:STDOUT:     %a.patt: i32 = binding_pattern a
@@ -128,10 +128,10 @@ fn RuntimeCall(a: i32, b: i32) -> bool {
 // CHECK:STDOUT:     %.loc12_35.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc12_35.2: type = converted %bool.make_type, %.loc12_35.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc12_16: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc12_16
-// CHECK:STDOUT:     %param.loc12_24: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc12_24
+// CHECK:STDOUT:     %param.loc12_17: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc12_17
+// CHECK:STDOUT:     %param.loc12_25: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc12_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 8 - 8
toolchain/check/testdata/builtins/int/or.carbon

@@ -76,10 +76,10 @@ fn RuntimeCall(a: i32, b: i32) -> i32 {
 // CHECK:STDOUT:     %.loc2_26.1: type = value_of_initializer %int.make_type_32.loc2_26 [template = i32]
 // CHECK:STDOUT:     %.loc2_26.2: type = converted %int.make_type_32.loc2_26, %.loc2_26.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc2_7: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_7
-// CHECK:STDOUT:     %param.loc2_15: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_15
+// CHECK:STDOUT:     %param.loc2_8: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_8
+// CHECK:STDOUT:     %param.loc2_16: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_16
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int.make_type_32.loc4: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:   %Or.ref: %Or.type = name_ref Or, %Or.decl [template = constants.%Or]
@@ -113,10 +113,10 @@ fn RuntimeCall(a: i32, b: i32) -> i32 {
 // CHECK:STDOUT:     %.loc7_35.1: type = value_of_initializer %int.make_type_32.loc7_35 [template = i32]
 // CHECK:STDOUT:     %.loc7_35.2: type = converted %int.make_type_32.loc7_35, %.loc7_35.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc7_16: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc7_16
-// CHECK:STDOUT:     %param.loc7_24: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc7_24
+// CHECK:STDOUT:     %param.loc7_17: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc7_17
+// CHECK:STDOUT:     %param.loc7_25: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc7_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 16 - 16
toolchain/check/testdata/builtins/int/right_shift.carbon

@@ -121,10 +121,10 @@ let negative: i32 = RightShift(1, Negate(1));
 // CHECK:STDOUT:     %.loc2_34.1: type = value_of_initializer %int.make_type_32.loc2_34 [template = i32]
 // CHECK:STDOUT:     %.loc2_34.2: type = converted %int.make_type_32.loc2_34, %.loc2_34.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc2_15: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_15
-// CHECK:STDOUT:     %param.loc2_23: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_23
+// CHECK:STDOUT:     %param.loc2_16: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_16
+// CHECK:STDOUT:     %param.loc2_24: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_24
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int.make_type_32.loc4: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:   %RightShift.ref: %RightShift.type = name_ref RightShift, %RightShift.decl [template = constants.%RightShift]
@@ -158,10 +158,10 @@ let negative: i32 = RightShift(1, Negate(1));
 // CHECK:STDOUT:     %.loc7_35.1: type = value_of_initializer %int.make_type_32.loc7_35 [template = i32]
 // CHECK:STDOUT:     %.loc7_35.2: type = converted %int.make_type_32.loc7_35, %.loc7_35.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc7_16: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc7_16
-// CHECK:STDOUT:     %param.loc7_24: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc7_24
+// CHECK:STDOUT:     %param.loc7_17: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc7_17
+// CHECK:STDOUT:     %param.loc7_25: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc7_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -253,10 +253,10 @@ let negative: i32 = RightShift(1, Negate(1));
 // CHECK:STDOUT:     %.loc6_34.1: type = value_of_initializer %int.make_type_32.loc6_34 [template = i32]
 // CHECK:STDOUT:     %.loc6_34.2: type = converted %int.make_type_32.loc6_34, %.loc6_34.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc6_15: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc6_15
-// CHECK:STDOUT:     %param.loc6_23: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc6_23
+// CHECK:STDOUT:     %param.loc6_16: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc6_16
+// CHECK:STDOUT:     %param.loc6_24: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc6_24
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Negate.decl: %Negate.type = fn_decl @Negate [template = constants.%Negate] {
 // CHECK:STDOUT:     %a.patt: i32 = binding_pattern a
@@ -399,10 +399,10 @@ let negative: i32 = RightShift(1, Negate(1));
 // CHECK:STDOUT:     %.loc4_34.1: type = value_of_initializer %int.make_type_32.loc4_34 [template = i32]
 // CHECK:STDOUT:     %.loc4_34.2: type = converted %int.make_type_32.loc4_34, %.loc4_34.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc4_15: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc4_15
-// CHECK:STDOUT:     %param.loc4_23: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc4_23
+// CHECK:STDOUT:     %param.loc4_16: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc4_16
+// CHECK:STDOUT:     %param.loc4_24: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc4_24
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Negate.decl: %Negate.type = fn_decl @Negate [template = constants.%Negate] {
 // CHECK:STDOUT:     %a.patt: i32 = binding_pattern a

+ 36 - 36
toolchain/check/testdata/builtins/int/sadd.carbon

@@ -146,10 +146,10 @@ let b: i32 = Add(0x7FFFFFFF, 1);
 // CHECK:STDOUT:     %.loc2_27.1: type = value_of_initializer %int.make_type_32.loc2_27 [template = i32]
 // CHECK:STDOUT:     %.loc2_27.2: type = converted %int.make_type_32.loc2_27, %.loc2_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc2_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_8
-// CHECK:STDOUT:     %param.loc2_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_16
+// CHECK:STDOUT:     %param.loc2_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_9
+// CHECK:STDOUT:     %param.loc2_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int.make_type_32.loc4: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:   %Add.ref: %Add.type = name_ref Add, %Add.decl [template = constants.%Add]
@@ -183,10 +183,10 @@ let b: i32 = Add(0x7FFFFFFF, 1);
 // CHECK:STDOUT:     %.loc7_35.1: type = value_of_initializer %int.make_type_32.loc7_35 [template = i32]
 // CHECK:STDOUT:     %.loc7_35.2: type = converted %int.make_type_32.loc7_35, %.loc7_35.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc7_16: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc7_16
-// CHECK:STDOUT:     %param.loc7_24: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc7_24
+// CHECK:STDOUT:     %param.loc7_17: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc7_17
+// CHECK:STDOUT:     %param.loc7_25: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc7_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -308,12 +308,12 @@ let b: i32 = Add(0x7FFFFFFF, 1);
 // CHECK:STDOUT:     %.loc13_39.1: type = value_of_initializer %int.make_type_32.loc13_39 [template = i32]
 // CHECK:STDOUT:     %.loc13_39.2: type = converted %int.make_type_32.loc13_39, %.loc13_39.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc13_12: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc13_12
-// CHECK:STDOUT:     %param.loc13_20: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc13_20
-// CHECK:STDOUT:     %param.loc13_28: i32 = param runtime_param2
-// CHECK:STDOUT:     %c: i32 = bind_name c, %param.loc13_28
+// CHECK:STDOUT:     %param.loc13_13: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc13_13
+// CHECK:STDOUT:     %param.loc13_21: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc13_21
+// CHECK:STDOUT:     %param.loc13_29: i32 = param runtime_param2
+// CHECK:STDOUT:     %c: i32 = bind_name c, %param.loc13_29
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %BadReturnType.decl: %BadReturnType.type = fn_decl @BadReturnType [template = constants.%BadReturnType] {
 // CHECK:STDOUT:     %a.patt: i32 = binding_pattern a
@@ -331,10 +331,10 @@ let b: i32 = Add(0x7FFFFFFF, 1);
 // CHECK:STDOUT:     %.loc18_37.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc18_37.2: type = converted %bool.make_type, %.loc18_37.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc18_18: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc18_18
-// CHECK:STDOUT:     %param.loc18_26: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc18_26
+// CHECK:STDOUT:     %param.loc18_19: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc18_19
+// CHECK:STDOUT:     %param.loc18_27: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc18_27
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %JustRight.decl: %JustRight.type = fn_decl @JustRight [template = constants.%JustRight] {
 // CHECK:STDOUT:     %a.patt: i32 = binding_pattern a
@@ -352,10 +352,10 @@ let b: i32 = Add(0x7FFFFFFF, 1);
 // CHECK:STDOUT:     %.loc19_33.1: type = value_of_initializer %int.make_type_32.loc19_33 [template = i32]
 // CHECK:STDOUT:     %.loc19_33.2: type = converted %int.make_type_32.loc19_33, %.loc19_33.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc19_14: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc19_14
-// CHECK:STDOUT:     %param.loc19_22: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc19_22
+// CHECK:STDOUT:     %param.loc19_15: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc19_15
+// CHECK:STDOUT:     %param.loc19_23: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc19_23
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int.make_type_32.loc25: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:   %TooFew.ref: %TooFew.type = name_ref TooFew, %TooFew.decl [template = constants.%TooFew]
@@ -423,12 +423,12 @@ let b: i32 = Add(0x7FFFFFFF, 1);
 // CHECK:STDOUT:     %.loc50_50.1: type = value_of_initializer %int.make_type_32.loc50_50 [template = i32]
 // CHECK:STDOUT:     %.loc50_50.2: type = converted %int.make_type_32.loc50_50, %.loc50_50.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc50_23: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc50_23
-// CHECK:STDOUT:     %param.loc50_31: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc50_31
-// CHECK:STDOUT:     %param.loc50_39: i32 = param runtime_param2
-// CHECK:STDOUT:     %c: i32 = bind_name c, %param.loc50_39
+// CHECK:STDOUT:     %param.loc50_24: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc50_24
+// CHECK:STDOUT:     %param.loc50_32: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc50_32
+// CHECK:STDOUT:     %param.loc50_40: i32 = param runtime_param2
+// CHECK:STDOUT:     %c: i32 = bind_name c, %param.loc50_40
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %RuntimeCallBadReturnType.decl: %RuntimeCallBadReturnType.type = fn_decl @RuntimeCallBadReturnType [template = constants.%RuntimeCallBadReturnType] {
 // CHECK:STDOUT:     %a.patt: i32 = binding_pattern a
@@ -446,10 +446,10 @@ let b: i32 = Add(0x7FFFFFFF, 1);
 // CHECK:STDOUT:     %.loc54_48.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc54_48.2: type = converted %bool.make_type, %.loc54_48.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc54_29: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc54_29
-// CHECK:STDOUT:     %param.loc54_37: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc54_37
+// CHECK:STDOUT:     %param.loc54_30: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc54_30
+// CHECK:STDOUT:     %param.loc54_38: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc54_38
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -551,10 +551,10 @@ let b: i32 = Add(0x7FFFFFFF, 1);
 // CHECK:STDOUT:     %.loc4_27.1: type = value_of_initializer %int.make_type_32.loc4_27 [template = i32]
 // CHECK:STDOUT:     %.loc4_27.2: type = converted %int.make_type_32.loc4_27, %.loc4_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc4_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc4_8
-// CHECK:STDOUT:     %param.loc4_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc4_16
+// CHECK:STDOUT:     %param.loc4_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc4_9
+// CHECK:STDOUT:     %param.loc4_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc4_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int.make_type_32.loc6: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:   %.loc6_8.1: type = value_of_initializer %int.make_type_32.loc6 [template = i32]

+ 20 - 20
toolchain/check/testdata/builtins/int/sdiv.carbon

@@ -114,10 +114,10 @@ let b: i32 = Div(0, 0);
 // CHECK:STDOUT:     %.loc2_27.1: type = value_of_initializer %int.make_type_32.loc2_27 [template = i32]
 // CHECK:STDOUT:     %.loc2_27.2: type = converted %int.make_type_32.loc2_27, %.loc2_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc2_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_8
-// CHECK:STDOUT:     %param.loc2_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_16
+// CHECK:STDOUT:     %param.loc2_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_9
+// CHECK:STDOUT:     %param.loc2_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int.make_type_32.loc4: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:   %Div.ref: %Div.type = name_ref Div, %Div.decl [template = constants.%Div]
@@ -151,10 +151,10 @@ let b: i32 = Div(0, 0);
 // CHECK:STDOUT:     %.loc7_35.1: type = value_of_initializer %int.make_type_32.loc7_35 [template = i32]
 // CHECK:STDOUT:     %.loc7_35.2: type = converted %int.make_type_32.loc7_35, %.loc7_35.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc7_16: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc7_16
-// CHECK:STDOUT:     %param.loc7_24: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc7_24
+// CHECK:STDOUT:     %param.loc7_17: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc7_17
+// CHECK:STDOUT:     %param.loc7_25: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc7_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -242,10 +242,10 @@ let b: i32 = Div(0, 0);
 // CHECK:STDOUT:     %.loc4_27.1: type = value_of_initializer %int.make_type_32.loc4_27 [template = i32]
 // CHECK:STDOUT:     %.loc4_27.2: type = converted %int.make_type_32.loc4_27, %.loc4_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc4_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc4_8
-// CHECK:STDOUT:     %param.loc4_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc4_16
+// CHECK:STDOUT:     %param.loc4_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc4_9
+// CHECK:STDOUT:     %param.loc4_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc4_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Sub.decl: %Sub.type = fn_decl @Sub [template = constants.%Sub] {
 // CHECK:STDOUT:     %a.patt: i32 = binding_pattern a
@@ -263,10 +263,10 @@ let b: i32 = Div(0, 0);
 // CHECK:STDOUT:     %.loc5_27.1: type = value_of_initializer %int.make_type_32.loc5_27 [template = i32]
 // CHECK:STDOUT:     %.loc5_27.2: type = converted %int.make_type_32.loc5_27, %.loc5_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc5_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc5_8
-// CHECK:STDOUT:     %param.loc5_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc5_16
+// CHECK:STDOUT:     %param.loc5_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc5_9
+// CHECK:STDOUT:     %param.loc5_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc5_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Negate.decl: %Negate.type = fn_decl @Negate [template = constants.%Negate] {
 // CHECK:STDOUT:     %a.patt: i32 = binding_pattern a
@@ -408,10 +408,10 @@ let b: i32 = Div(0, 0);
 // CHECK:STDOUT:     %.loc4_27.1: type = value_of_initializer %int.make_type_32.loc4_27 [template = i32]
 // CHECK:STDOUT:     %.loc4_27.2: type = converted %int.make_type_32.loc4_27, %.loc4_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc4_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc4_8
-// CHECK:STDOUT:     %param.loc4_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc4_16
+// CHECK:STDOUT:     %param.loc4_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc4_9
+// CHECK:STDOUT:     %param.loc4_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc4_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int.make_type_32.loc10: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:   %.loc10_8.1: type = value_of_initializer %int.make_type_32.loc10 [template = i32]

+ 20 - 20
toolchain/check/testdata/builtins/int/smod.carbon

@@ -117,10 +117,10 @@ let b: i32 = Mod(0, 0);
 // CHECK:STDOUT:     %.loc2_27.1: type = value_of_initializer %int.make_type_32.loc2_27 [template = i32]
 // CHECK:STDOUT:     %.loc2_27.2: type = converted %int.make_type_32.loc2_27, %.loc2_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc2_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_8
-// CHECK:STDOUT:     %param.loc2_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_16
+// CHECK:STDOUT:     %param.loc2_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_9
+// CHECK:STDOUT:     %param.loc2_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int.make_type_32.loc4: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:   %Mod.ref: %Mod.type = name_ref Mod, %Mod.decl [template = constants.%Mod]
@@ -154,10 +154,10 @@ let b: i32 = Mod(0, 0);
 // CHECK:STDOUT:     %.loc7_35.1: type = value_of_initializer %int.make_type_32.loc7_35 [template = i32]
 // CHECK:STDOUT:     %.loc7_35.2: type = converted %int.make_type_32.loc7_35, %.loc7_35.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc7_16: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc7_16
-// CHECK:STDOUT:     %param.loc7_24: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc7_24
+// CHECK:STDOUT:     %param.loc7_17: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc7_17
+// CHECK:STDOUT:     %param.loc7_25: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc7_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -246,10 +246,10 @@ let b: i32 = Mod(0, 0);
 // CHECK:STDOUT:     %.loc4_27.1: type = value_of_initializer %int.make_type_32.loc4_27 [template = i32]
 // CHECK:STDOUT:     %.loc4_27.2: type = converted %int.make_type_32.loc4_27, %.loc4_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc4_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc4_8
-// CHECK:STDOUT:     %param.loc4_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc4_16
+// CHECK:STDOUT:     %param.loc4_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc4_9
+// CHECK:STDOUT:     %param.loc4_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc4_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Sub.decl: %Sub.type = fn_decl @Sub [template = constants.%Sub] {
 // CHECK:STDOUT:     %a.patt: i32 = binding_pattern a
@@ -267,10 +267,10 @@ let b: i32 = Mod(0, 0);
 // CHECK:STDOUT:     %.loc5_27.1: type = value_of_initializer %int.make_type_32.loc5_27 [template = i32]
 // CHECK:STDOUT:     %.loc5_27.2: type = converted %int.make_type_32.loc5_27, %.loc5_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc5_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc5_8
-// CHECK:STDOUT:     %param.loc5_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc5_16
+// CHECK:STDOUT:     %param.loc5_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc5_9
+// CHECK:STDOUT:     %param.loc5_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc5_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Negate.decl: %Negate.type = fn_decl @Negate [template = constants.%Negate] {
 // CHECK:STDOUT:     %a.patt: i32 = binding_pattern a
@@ -412,10 +412,10 @@ let b: i32 = Mod(0, 0);
 // CHECK:STDOUT:     %.loc4_27.1: type = value_of_initializer %int.make_type_32.loc4_27 [template = i32]
 // CHECK:STDOUT:     %.loc4_27.2: type = converted %int.make_type_32.loc4_27, %.loc4_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc4_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc4_8
-// CHECK:STDOUT:     %param.loc4_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc4_16
+// CHECK:STDOUT:     %param.loc4_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc4_9
+// CHECK:STDOUT:     %param.loc4_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc4_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int.make_type_32.loc12: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:   %.loc12_8.1: type = value_of_initializer %int.make_type_32.loc12 [template = i32]

+ 12 - 12
toolchain/check/testdata/builtins/int/smul.carbon

@@ -88,10 +88,10 @@ let b: i32 = Mul(0x8000, 0x10000);
 // CHECK:STDOUT:     %.loc2_27.1: type = value_of_initializer %int.make_type_32.loc2_27 [template = i32]
 // CHECK:STDOUT:     %.loc2_27.2: type = converted %int.make_type_32.loc2_27, %.loc2_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc2_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_8
-// CHECK:STDOUT:     %param.loc2_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_16
+// CHECK:STDOUT:     %param.loc2_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_9
+// CHECK:STDOUT:     %param.loc2_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int.make_type_32.loc4: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:   %Mul.ref: %Mul.type = name_ref Mul, %Mul.decl [template = constants.%Mul]
@@ -125,10 +125,10 @@ let b: i32 = Mul(0x8000, 0x10000);
 // CHECK:STDOUT:     %.loc7_35.1: type = value_of_initializer %int.make_type_32.loc7_35 [template = i32]
 // CHECK:STDOUT:     %.loc7_35.2: type = converted %int.make_type_32.loc7_35, %.loc7_35.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc7_16: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc7_16
-// CHECK:STDOUT:     %param.loc7_24: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc7_24
+// CHECK:STDOUT:     %param.loc7_17: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc7_17
+// CHECK:STDOUT:     %param.loc7_25: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc7_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -209,10 +209,10 @@ let b: i32 = Mul(0x8000, 0x10000);
 // CHECK:STDOUT:     %.loc4_27.1: type = value_of_initializer %int.make_type_32.loc4_27 [template = i32]
 // CHECK:STDOUT:     %.loc4_27.2: type = converted %int.make_type_32.loc4_27, %.loc4_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc4_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc4_8
-// CHECK:STDOUT:     %param.loc4_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc4_16
+// CHECK:STDOUT:     %param.loc4_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc4_9
+// CHECK:STDOUT:     %param.loc4_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc4_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int.make_type_32.loc6: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:   %.loc6_8.1: type = value_of_initializer %int.make_type_32.loc6 [template = i32]

+ 22 - 22
toolchain/check/testdata/builtins/int/snegate.carbon

@@ -211,10 +211,10 @@ let b: i32 = Negate(Sub(Negate(0x7FFFFFFF), 1));
 // CHECK:STDOUT:     %.loc9_35.1: type = value_of_initializer %int.make_type_32.loc9_35 [template = i32]
 // CHECK:STDOUT:     %.loc9_35.2: type = converted %int.make_type_32.loc9_35, %.loc9_35.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc9_16: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc9_16
-// CHECK:STDOUT:     %param.loc9_24: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc9_24
+// CHECK:STDOUT:     %param.loc9_17: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc9_17
+// CHECK:STDOUT:     %param.loc9_25: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc9_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -327,10 +327,10 @@ let b: i32 = Negate(Sub(Negate(0x7FFFFFFF), 1));
 // CHECK:STDOUT:     %.loc13_31.1: type = value_of_initializer %int.make_type_32.loc13_31 [template = i32]
 // CHECK:STDOUT:     %.loc13_31.2: type = converted %int.make_type_32.loc13_31, %.loc13_31.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc13_12: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc13_12
-// CHECK:STDOUT:     %param.loc13_20: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc13_20
+// CHECK:STDOUT:     %param.loc13_13: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc13_13
+// CHECK:STDOUT:     %param.loc13_21: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc13_21
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %BadReturnType.decl: %BadReturnType.type = fn_decl @BadReturnType [template = constants.%BadReturnType] {
 // CHECK:STDOUT:     %a.patt: i32 = binding_pattern a
@@ -422,12 +422,12 @@ let b: i32 = Negate(Sub(Negate(0x7FFFFFFF), 1));
 // CHECK:STDOUT:     %.loc57_50.1: type = value_of_initializer %int.make_type_32.loc57_50 [template = i32]
 // CHECK:STDOUT:     %.loc57_50.2: type = converted %int.make_type_32.loc57_50, %.loc57_50.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc57_23: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc57_23
-// CHECK:STDOUT:     %param.loc57_31: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc57_31
-// CHECK:STDOUT:     %param.loc57_39: i32 = param runtime_param2
-// CHECK:STDOUT:     %c: i32 = bind_name c, %param.loc57_39
+// CHECK:STDOUT:     %param.loc57_24: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc57_24
+// CHECK:STDOUT:     %param.loc57_32: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc57_32
+// CHECK:STDOUT:     %param.loc57_40: i32 = param runtime_param2
+// CHECK:STDOUT:     %c: i32 = bind_name c, %param.loc57_40
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %RuntimeCallBadReturnType.decl: %RuntimeCallBadReturnType.type = fn_decl @RuntimeCallBadReturnType [template = constants.%RuntimeCallBadReturnType] {
 // CHECK:STDOUT:     %a.patt: i32 = binding_pattern a
@@ -445,10 +445,10 @@ let b: i32 = Negate(Sub(Negate(0x7FFFFFFF), 1));
 // CHECK:STDOUT:     %.loc68_48.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc68_48.2: type = converted %bool.make_type, %.loc68_48.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc68_29: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc68_29
-// CHECK:STDOUT:     %param.loc68_37: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc68_37
+// CHECK:STDOUT:     %param.loc68_30: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc68_30
+// CHECK:STDOUT:     %param.loc68_38: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc68_38
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -558,10 +558,10 @@ let b: i32 = Negate(Sub(Negate(0x7FFFFFFF), 1));
 // CHECK:STDOUT:     %.loc5_27.1: type = value_of_initializer %int.make_type_32.loc5_27 [template = i32]
 // CHECK:STDOUT:     %.loc5_27.2: type = converted %int.make_type_32.loc5_27, %.loc5_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc5_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc5_8
-// CHECK:STDOUT:     %param.loc5_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc5_16
+// CHECK:STDOUT:     %param.loc5_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc5_9
+// CHECK:STDOUT:     %param.loc5_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc5_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int.make_type_32.loc8: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:   %.loc8_8.1: type = value_of_initializer %int.make_type_32.loc8 [template = i32]

+ 12 - 12
toolchain/check/testdata/builtins/int/ssub.carbon

@@ -89,10 +89,10 @@ let c: i32 = Sub(Sub(0, 0x7FFFFFFF), 2);
 // CHECK:STDOUT:     %.loc2_27.1: type = value_of_initializer %int.make_type_32.loc2_27 [template = i32]
 // CHECK:STDOUT:     %.loc2_27.2: type = converted %int.make_type_32.loc2_27, %.loc2_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc2_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_8
-// CHECK:STDOUT:     %param.loc2_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_16
+// CHECK:STDOUT:     %param.loc2_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_9
+// CHECK:STDOUT:     %param.loc2_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int.make_type_32.loc4: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:   %Sub.ref: %Sub.type = name_ref Sub, %Sub.decl [template = constants.%Sub]
@@ -126,10 +126,10 @@ let c: i32 = Sub(Sub(0, 0x7FFFFFFF), 2);
 // CHECK:STDOUT:     %.loc7_35.1: type = value_of_initializer %int.make_type_32.loc7_35 [template = i32]
 // CHECK:STDOUT:     %.loc7_35.2: type = converted %int.make_type_32.loc7_35, %.loc7_35.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc7_16: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc7_16
-// CHECK:STDOUT:     %param.loc7_24: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc7_24
+// CHECK:STDOUT:     %param.loc7_17: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc7_17
+// CHECK:STDOUT:     %param.loc7_25: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc7_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -212,10 +212,10 @@ let c: i32 = Sub(Sub(0, 0x7FFFFFFF), 2);
 // CHECK:STDOUT:     %.loc4_27.1: type = value_of_initializer %int.make_type_32.loc4_27 [template = i32]
 // CHECK:STDOUT:     %.loc4_27.2: type = converted %int.make_type_32.loc4_27, %.loc4_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc4_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc4_8
-// CHECK:STDOUT:     %param.loc4_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc4_16
+// CHECK:STDOUT:     %param.loc4_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc4_9
+// CHECK:STDOUT:     %param.loc4_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc4_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int.make_type_32.loc6: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:   %.loc6_8.1: type = value_of_initializer %int.make_type_32.loc6 [template = i32]

+ 36 - 36
toolchain/check/testdata/builtins/int/uadd.carbon

@@ -143,10 +143,10 @@ let b: i32 = Add(0x7FFFFFFF, 1);
 // CHECK:STDOUT:     %.loc2_27.1: type = value_of_initializer %int.make_type_32.loc2_27 [template = i32]
 // CHECK:STDOUT:     %.loc2_27.2: type = converted %int.make_type_32.loc2_27, %.loc2_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc2_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_8
-// CHECK:STDOUT:     %param.loc2_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_16
+// CHECK:STDOUT:     %param.loc2_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_9
+// CHECK:STDOUT:     %param.loc2_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int.make_type_32.loc4: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:   %Add.ref: %Add.type = name_ref Add, %Add.decl [template = constants.%Add]
@@ -180,10 +180,10 @@ let b: i32 = Add(0x7FFFFFFF, 1);
 // CHECK:STDOUT:     %.loc7_35.1: type = value_of_initializer %int.make_type_32.loc7_35 [template = i32]
 // CHECK:STDOUT:     %.loc7_35.2: type = converted %int.make_type_32.loc7_35, %.loc7_35.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc7_16: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc7_16
-// CHECK:STDOUT:     %param.loc7_24: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc7_24
+// CHECK:STDOUT:     %param.loc7_17: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc7_17
+// CHECK:STDOUT:     %param.loc7_25: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc7_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -305,12 +305,12 @@ let b: i32 = Add(0x7FFFFFFF, 1);
 // CHECK:STDOUT:     %.loc13_39.1: type = value_of_initializer %int.make_type_32.loc13_39 [template = i32]
 // CHECK:STDOUT:     %.loc13_39.2: type = converted %int.make_type_32.loc13_39, %.loc13_39.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc13_12: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc13_12
-// CHECK:STDOUT:     %param.loc13_20: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc13_20
-// CHECK:STDOUT:     %param.loc13_28: i32 = param runtime_param2
-// CHECK:STDOUT:     %c: i32 = bind_name c, %param.loc13_28
+// CHECK:STDOUT:     %param.loc13_13: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc13_13
+// CHECK:STDOUT:     %param.loc13_21: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc13_21
+// CHECK:STDOUT:     %param.loc13_29: i32 = param runtime_param2
+// CHECK:STDOUT:     %c: i32 = bind_name c, %param.loc13_29
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %BadReturnType.decl: %BadReturnType.type = fn_decl @BadReturnType [template = constants.%BadReturnType] {
 // CHECK:STDOUT:     %a.patt: i32 = binding_pattern a
@@ -328,10 +328,10 @@ let b: i32 = Add(0x7FFFFFFF, 1);
 // CHECK:STDOUT:     %.loc18_37.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc18_37.2: type = converted %bool.make_type, %.loc18_37.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc18_18: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc18_18
-// CHECK:STDOUT:     %param.loc18_26: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc18_26
+// CHECK:STDOUT:     %param.loc18_19: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc18_19
+// CHECK:STDOUT:     %param.loc18_27: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc18_27
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %JustRight.decl: %JustRight.type = fn_decl @JustRight [template = constants.%JustRight] {
 // CHECK:STDOUT:     %a.patt: i32 = binding_pattern a
@@ -349,10 +349,10 @@ let b: i32 = Add(0x7FFFFFFF, 1);
 // CHECK:STDOUT:     %.loc19_33.1: type = value_of_initializer %int.make_type_32.loc19_33 [template = i32]
 // CHECK:STDOUT:     %.loc19_33.2: type = converted %int.make_type_32.loc19_33, %.loc19_33.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc19_14: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc19_14
-// CHECK:STDOUT:     %param.loc19_22: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc19_22
+// CHECK:STDOUT:     %param.loc19_15: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc19_15
+// CHECK:STDOUT:     %param.loc19_23: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc19_23
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int.make_type_32.loc25: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:   %TooFew.ref: %TooFew.type = name_ref TooFew, %TooFew.decl [template = constants.%TooFew]
@@ -420,12 +420,12 @@ let b: i32 = Add(0x7FFFFFFF, 1);
 // CHECK:STDOUT:     %.loc49_50.1: type = value_of_initializer %int.make_type_32.loc49_50 [template = i32]
 // CHECK:STDOUT:     %.loc49_50.2: type = converted %int.make_type_32.loc49_50, %.loc49_50.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc49_23: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc49_23
-// CHECK:STDOUT:     %param.loc49_31: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc49_31
-// CHECK:STDOUT:     %param.loc49_39: i32 = param runtime_param2
-// CHECK:STDOUT:     %c: i32 = bind_name c, %param.loc49_39
+// CHECK:STDOUT:     %param.loc49_24: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc49_24
+// CHECK:STDOUT:     %param.loc49_32: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc49_32
+// CHECK:STDOUT:     %param.loc49_40: i32 = param runtime_param2
+// CHECK:STDOUT:     %c: i32 = bind_name c, %param.loc49_40
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %RuntimeCallBadReturnType.decl: %RuntimeCallBadReturnType.type = fn_decl @RuntimeCallBadReturnType [template = constants.%RuntimeCallBadReturnType] {
 // CHECK:STDOUT:     %a.patt: i32 = binding_pattern a
@@ -443,10 +443,10 @@ let b: i32 = Add(0x7FFFFFFF, 1);
 // CHECK:STDOUT:     %.loc53_48.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc53_48.2: type = converted %bool.make_type, %.loc53_48.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc53_29: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc53_29
-// CHECK:STDOUT:     %param.loc53_37: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc53_37
+// CHECK:STDOUT:     %param.loc53_30: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc53_30
+// CHECK:STDOUT:     %param.loc53_38: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc53_38
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -548,10 +548,10 @@ let b: i32 = Add(0x7FFFFFFF, 1);
 // CHECK:STDOUT:     %.loc4_27.1: type = value_of_initializer %int.make_type_32.loc4_27 [template = i32]
 // CHECK:STDOUT:     %.loc4_27.2: type = converted %int.make_type_32.loc4_27, %.loc4_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc4_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc4_8
-// CHECK:STDOUT:     %param.loc4_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc4_16
+// CHECK:STDOUT:     %param.loc4_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc4_9
+// CHECK:STDOUT:     %param.loc4_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc4_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int.make_type_32.loc7: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:   %.loc7_8.1: type = value_of_initializer %int.make_type_32.loc7 [template = i32]

+ 20 - 20
toolchain/check/testdata/builtins/int/udiv.carbon

@@ -110,10 +110,10 @@ let b: i32 = Div(0, 0);
 // CHECK:STDOUT:     %.loc2_27.1: type = value_of_initializer %int.make_type_32.loc2_27 [template = i32]
 // CHECK:STDOUT:     %.loc2_27.2: type = converted %int.make_type_32.loc2_27, %.loc2_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc2_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_8
-// CHECK:STDOUT:     %param.loc2_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_16
+// CHECK:STDOUT:     %param.loc2_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_9
+// CHECK:STDOUT:     %param.loc2_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int.make_type_32.loc4: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:   %Div.ref: %Div.type = name_ref Div, %Div.decl [template = constants.%Div]
@@ -147,10 +147,10 @@ let b: i32 = Div(0, 0);
 // CHECK:STDOUT:     %.loc7_35.1: type = value_of_initializer %int.make_type_32.loc7_35 [template = i32]
 // CHECK:STDOUT:     %.loc7_35.2: type = converted %int.make_type_32.loc7_35, %.loc7_35.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc7_16: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc7_16
-// CHECK:STDOUT:     %param.loc7_24: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc7_24
+// CHECK:STDOUT:     %param.loc7_17: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc7_17
+// CHECK:STDOUT:     %param.loc7_25: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc7_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -239,10 +239,10 @@ let b: i32 = Div(0, 0);
 // CHECK:STDOUT:     %.loc4_27.1: type = value_of_initializer %int.make_type_32.loc4_27 [template = i32]
 // CHECK:STDOUT:     %.loc4_27.2: type = converted %int.make_type_32.loc4_27, %.loc4_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc4_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc4_8
-// CHECK:STDOUT:     %param.loc4_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc4_16
+// CHECK:STDOUT:     %param.loc4_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc4_9
+// CHECK:STDOUT:     %param.loc4_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc4_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Sub.decl: %Sub.type = fn_decl @Sub [template = constants.%Sub] {
 // CHECK:STDOUT:     %a.patt: i32 = binding_pattern a
@@ -260,10 +260,10 @@ let b: i32 = Div(0, 0);
 // CHECK:STDOUT:     %.loc5_27.1: type = value_of_initializer %int.make_type_32.loc5_27 [template = i32]
 // CHECK:STDOUT:     %.loc5_27.2: type = converted %int.make_type_32.loc5_27, %.loc5_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc5_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc5_8
-// CHECK:STDOUT:     %param.loc5_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc5_16
+// CHECK:STDOUT:     %param.loc5_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc5_9
+// CHECK:STDOUT:     %param.loc5_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc5_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Negate.decl: %Negate.type = fn_decl @Negate [template = constants.%Negate] {
 // CHECK:STDOUT:     %a.patt: i32 = binding_pattern a
@@ -405,10 +405,10 @@ let b: i32 = Div(0, 0);
 // CHECK:STDOUT:     %.loc4_27.1: type = value_of_initializer %int.make_type_32.loc4_27 [template = i32]
 // CHECK:STDOUT:     %.loc4_27.2: type = converted %int.make_type_32.loc4_27, %.loc4_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc4_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc4_8
-// CHECK:STDOUT:     %param.loc4_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc4_16
+// CHECK:STDOUT:     %param.loc4_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc4_9
+// CHECK:STDOUT:     %param.loc4_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc4_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int.make_type_32.loc10: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:   %.loc10_8.1: type = value_of_initializer %int.make_type_32.loc10 [template = i32]

+ 20 - 20
toolchain/check/testdata/builtins/int/umod.carbon

@@ -112,10 +112,10 @@ let b: i32 = Mod(0, 0);
 // CHECK:STDOUT:     %.loc2_27.1: type = value_of_initializer %int.make_type_32.loc2_27 [template = i32]
 // CHECK:STDOUT:     %.loc2_27.2: type = converted %int.make_type_32.loc2_27, %.loc2_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc2_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_8
-// CHECK:STDOUT:     %param.loc2_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_16
+// CHECK:STDOUT:     %param.loc2_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_9
+// CHECK:STDOUT:     %param.loc2_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int.make_type_32.loc4: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:   %Mod.ref: %Mod.type = name_ref Mod, %Mod.decl [template = constants.%Mod]
@@ -149,10 +149,10 @@ let b: i32 = Mod(0, 0);
 // CHECK:STDOUT:     %.loc7_35.1: type = value_of_initializer %int.make_type_32.loc7_35 [template = i32]
 // CHECK:STDOUT:     %.loc7_35.2: type = converted %int.make_type_32.loc7_35, %.loc7_35.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc7_16: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc7_16
-// CHECK:STDOUT:     %param.loc7_24: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc7_24
+// CHECK:STDOUT:     %param.loc7_17: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc7_17
+// CHECK:STDOUT:     %param.loc7_25: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc7_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -241,10 +241,10 @@ let b: i32 = Mod(0, 0);
 // CHECK:STDOUT:     %.loc4_27.1: type = value_of_initializer %int.make_type_32.loc4_27 [template = i32]
 // CHECK:STDOUT:     %.loc4_27.2: type = converted %int.make_type_32.loc4_27, %.loc4_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc4_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc4_8
-// CHECK:STDOUT:     %param.loc4_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc4_16
+// CHECK:STDOUT:     %param.loc4_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc4_9
+// CHECK:STDOUT:     %param.loc4_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc4_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Sub.decl: %Sub.type = fn_decl @Sub [template = constants.%Sub] {
 // CHECK:STDOUT:     %a.patt: i32 = binding_pattern a
@@ -262,10 +262,10 @@ let b: i32 = Mod(0, 0);
 // CHECK:STDOUT:     %.loc5_27.1: type = value_of_initializer %int.make_type_32.loc5_27 [template = i32]
 // CHECK:STDOUT:     %.loc5_27.2: type = converted %int.make_type_32.loc5_27, %.loc5_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc5_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc5_8
-// CHECK:STDOUT:     %param.loc5_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc5_16
+// CHECK:STDOUT:     %param.loc5_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc5_9
+// CHECK:STDOUT:     %param.loc5_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc5_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Negate.decl: %Negate.type = fn_decl @Negate [template = constants.%Negate] {
 // CHECK:STDOUT:     %a.patt: i32 = binding_pattern a
@@ -407,10 +407,10 @@ let b: i32 = Mod(0, 0);
 // CHECK:STDOUT:     %.loc4_27.1: type = value_of_initializer %int.make_type_32.loc4_27 [template = i32]
 // CHECK:STDOUT:     %.loc4_27.2: type = converted %int.make_type_32.loc4_27, %.loc4_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc4_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc4_8
-// CHECK:STDOUT:     %param.loc4_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc4_16
+// CHECK:STDOUT:     %param.loc4_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc4_9
+// CHECK:STDOUT:     %param.loc4_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc4_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int.make_type_32.loc12: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:   %.loc12_8.1: type = value_of_initializer %int.make_type_32.loc12 [template = i32]

+ 12 - 12
toolchain/check/testdata/builtins/int/umul.carbon

@@ -85,10 +85,10 @@ let b: i32 = Mul(0x8000, 0x10000);
 // CHECK:STDOUT:     %.loc2_27.1: type = value_of_initializer %int.make_type_32.loc2_27 [template = i32]
 // CHECK:STDOUT:     %.loc2_27.2: type = converted %int.make_type_32.loc2_27, %.loc2_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc2_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_8
-// CHECK:STDOUT:     %param.loc2_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_16
+// CHECK:STDOUT:     %param.loc2_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_9
+// CHECK:STDOUT:     %param.loc2_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int.make_type_32.loc4: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:   %Mul.ref: %Mul.type = name_ref Mul, %Mul.decl [template = constants.%Mul]
@@ -122,10 +122,10 @@ let b: i32 = Mul(0x8000, 0x10000);
 // CHECK:STDOUT:     %.loc7_35.1: type = value_of_initializer %int.make_type_32.loc7_35 [template = i32]
 // CHECK:STDOUT:     %.loc7_35.2: type = converted %int.make_type_32.loc7_35, %.loc7_35.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc7_16: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc7_16
-// CHECK:STDOUT:     %param.loc7_24: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc7_24
+// CHECK:STDOUT:     %param.loc7_17: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc7_17
+// CHECK:STDOUT:     %param.loc7_25: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc7_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -206,10 +206,10 @@ let b: i32 = Mul(0x8000, 0x10000);
 // CHECK:STDOUT:     %.loc4_27.1: type = value_of_initializer %int.make_type_32.loc4_27 [template = i32]
 // CHECK:STDOUT:     %.loc4_27.2: type = converted %int.make_type_32.loc4_27, %.loc4_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc4_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc4_8
-// CHECK:STDOUT:     %param.loc4_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc4_16
+// CHECK:STDOUT:     %param.loc4_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc4_9
+// CHECK:STDOUT:     %param.loc4_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc4_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int.make_type_32.loc6: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:   %.loc6_8.1: type = value_of_initializer %int.make_type_32.loc6 [template = i32]

+ 22 - 22
toolchain/check/testdata/builtins/int/unegate.carbon

@@ -207,10 +207,10 @@ let b: i32 = Negate(Sub(Negate(0x7FFFFFFF), 1));
 // CHECK:STDOUT:     %.loc9_35.1: type = value_of_initializer %int.make_type_32.loc9_35 [template = i32]
 // CHECK:STDOUT:     %.loc9_35.2: type = converted %int.make_type_32.loc9_35, %.loc9_35.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc9_16: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc9_16
-// CHECK:STDOUT:     %param.loc9_24: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc9_24
+// CHECK:STDOUT:     %param.loc9_17: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc9_17
+// CHECK:STDOUT:     %param.loc9_25: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc9_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -323,10 +323,10 @@ let b: i32 = Negate(Sub(Negate(0x7FFFFFFF), 1));
 // CHECK:STDOUT:     %.loc13_31.1: type = value_of_initializer %int.make_type_32.loc13_31 [template = i32]
 // CHECK:STDOUT:     %.loc13_31.2: type = converted %int.make_type_32.loc13_31, %.loc13_31.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc13_12: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc13_12
-// CHECK:STDOUT:     %param.loc13_20: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc13_20
+// CHECK:STDOUT:     %param.loc13_13: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc13_13
+// CHECK:STDOUT:     %param.loc13_21: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc13_21
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %BadReturnType.decl: %BadReturnType.type = fn_decl @BadReturnType [template = constants.%BadReturnType] {
 // CHECK:STDOUT:     %a.patt: i32 = binding_pattern a
@@ -418,12 +418,12 @@ let b: i32 = Negate(Sub(Negate(0x7FFFFFFF), 1));
 // CHECK:STDOUT:     %.loc57_50.1: type = value_of_initializer %int.make_type_32.loc57_50 [template = i32]
 // CHECK:STDOUT:     %.loc57_50.2: type = converted %int.make_type_32.loc57_50, %.loc57_50.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc57_23: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc57_23
-// CHECK:STDOUT:     %param.loc57_31: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc57_31
-// CHECK:STDOUT:     %param.loc57_39: i32 = param runtime_param2
-// CHECK:STDOUT:     %c: i32 = bind_name c, %param.loc57_39
+// CHECK:STDOUT:     %param.loc57_24: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc57_24
+// CHECK:STDOUT:     %param.loc57_32: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc57_32
+// CHECK:STDOUT:     %param.loc57_40: i32 = param runtime_param2
+// CHECK:STDOUT:     %c: i32 = bind_name c, %param.loc57_40
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %RuntimeCallBadReturnType.decl: %RuntimeCallBadReturnType.type = fn_decl @RuntimeCallBadReturnType [template = constants.%RuntimeCallBadReturnType] {
 // CHECK:STDOUT:     %a.patt: i32 = binding_pattern a
@@ -441,10 +441,10 @@ let b: i32 = Negate(Sub(Negate(0x7FFFFFFF), 1));
 // CHECK:STDOUT:     %.loc68_48.1: type = value_of_initializer %bool.make_type [template = bool]
 // CHECK:STDOUT:     %.loc68_48.2: type = converted %bool.make_type, %.loc68_48.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc68_29: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc68_29
-// CHECK:STDOUT:     %param.loc68_37: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc68_37
+// CHECK:STDOUT:     %param.loc68_30: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc68_30
+// CHECK:STDOUT:     %param.loc68_38: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc68_38
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -554,10 +554,10 @@ let b: i32 = Negate(Sub(Negate(0x7FFFFFFF), 1));
 // CHECK:STDOUT:     %.loc5_27.1: type = value_of_initializer %int.make_type_32.loc5_27 [template = i32]
 // CHECK:STDOUT:     %.loc5_27.2: type = converted %int.make_type_32.loc5_27, %.loc5_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc5_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc5_8
-// CHECK:STDOUT:     %param.loc5_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc5_16
+// CHECK:STDOUT:     %param.loc5_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc5_9
+// CHECK:STDOUT:     %param.loc5_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc5_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int.make_type_32.loc8: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:   %.loc8_8.1: type = value_of_initializer %int.make_type_32.loc8 [template = i32]

+ 12 - 12
toolchain/check/testdata/builtins/int/usub.carbon

@@ -86,10 +86,10 @@ let c: i32 = Sub(Sub(0, 0x7FFFFFFF), 2);
 // CHECK:STDOUT:     %.loc2_27.1: type = value_of_initializer %int.make_type_32.loc2_27 [template = i32]
 // CHECK:STDOUT:     %.loc2_27.2: type = converted %int.make_type_32.loc2_27, %.loc2_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc2_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_8
-// CHECK:STDOUT:     %param.loc2_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_16
+// CHECK:STDOUT:     %param.loc2_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_9
+// CHECK:STDOUT:     %param.loc2_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int.make_type_32.loc4: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:   %Sub.ref: %Sub.type = name_ref Sub, %Sub.decl [template = constants.%Sub]
@@ -123,10 +123,10 @@ let c: i32 = Sub(Sub(0, 0x7FFFFFFF), 2);
 // CHECK:STDOUT:     %.loc7_35.1: type = value_of_initializer %int.make_type_32.loc7_35 [template = i32]
 // CHECK:STDOUT:     %.loc7_35.2: type = converted %int.make_type_32.loc7_35, %.loc7_35.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc7_16: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc7_16
-// CHECK:STDOUT:     %param.loc7_24: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc7_24
+// CHECK:STDOUT:     %param.loc7_17: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc7_17
+// CHECK:STDOUT:     %param.loc7_25: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc7_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -209,10 +209,10 @@ let c: i32 = Sub(Sub(0, 0x7FFFFFFF), 2);
 // CHECK:STDOUT:     %.loc4_27.1: type = value_of_initializer %int.make_type_32.loc4_27 [template = i32]
 // CHECK:STDOUT:     %.loc4_27.2: type = converted %int.make_type_32.loc4_27, %.loc4_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc4_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc4_8
-// CHECK:STDOUT:     %param.loc4_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc4_16
+// CHECK:STDOUT:     %param.loc4_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc4_9
+// CHECK:STDOUT:     %param.loc4_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc4_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int.make_type_32.loc6: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:   %.loc6_8.1: type = value_of_initializer %int.make_type_32.loc6 [template = i32]

+ 8 - 8
toolchain/check/testdata/builtins/int/xor.carbon

@@ -76,10 +76,10 @@ fn RuntimeCall(a: i32, b: i32) -> i32 {
 // CHECK:STDOUT:     %.loc2_27.1: type = value_of_initializer %int.make_type_32.loc2_27 [template = i32]
 // CHECK:STDOUT:     %.loc2_27.2: type = converted %int.make_type_32.loc2_27, %.loc2_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc2_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_8
-// CHECK:STDOUT:     %param.loc2_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_16
+// CHECK:STDOUT:     %param.loc2_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc2_9
+// CHECK:STDOUT:     %param.loc2_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc2_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int.make_type_32.loc4: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:   %Xor.ref: %Xor.type = name_ref Xor, %Xor.decl [template = constants.%Xor]
@@ -113,10 +113,10 @@ fn RuntimeCall(a: i32, b: i32) -> i32 {
 // CHECK:STDOUT:     %.loc7_35.1: type = value_of_initializer %int.make_type_32.loc7_35 [template = i32]
 // CHECK:STDOUT:     %.loc7_35.2: type = converted %int.make_type_32.loc7_35, %.loc7_35.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc7_16: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc7_16
-// CHECK:STDOUT:     %param.loc7_24: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc7_24
+// CHECK:STDOUT:     %param.loc7_17: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc7_17
+// CHECK:STDOUT:     %param.loc7_25: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc7_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

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

@@ -114,14 +114,14 @@ fn Call(a: A*, b: B*, c: C*, d: D*) {
 // CHECK:STDOUT:     %.loc29_27: type = ptr_type %C [template = constants.%.13]
 // CHECK:STDOUT:     %D.ref: type = name_ref D, file.%D.decl [template = constants.%D]
 // CHECK:STDOUT:     %.loc29_34: type = ptr_type %D [template = constants.%.17]
-// CHECK:STDOUT:     %param.loc29_9: %.1 = param runtime_param0
-// CHECK:STDOUT:     %a: %.1 = bind_name a, %param.loc29_9
-// CHECK:STDOUT:     %param.loc29_16: %.7 = param runtime_param1
-// CHECK:STDOUT:     %b: %.7 = bind_name b, %param.loc29_16
-// CHECK:STDOUT:     %param.loc29_23: %.13 = param runtime_param2
-// CHECK:STDOUT:     %c: %.13 = bind_name c, %param.loc29_23
-// CHECK:STDOUT:     %param.loc29_30: %.17 = param runtime_param3
-// CHECK:STDOUT:     %d: %.17 = bind_name d, %param.loc29_30
+// CHECK:STDOUT:     %param.loc29_10: %.1 = param runtime_param0
+// CHECK:STDOUT:     %a: %.1 = bind_name a, %param.loc29_10
+// CHECK:STDOUT:     %param.loc29_17: %.7 = param runtime_param1
+// CHECK:STDOUT:     %b: %.7 = bind_name b, %param.loc29_17
+// CHECK:STDOUT:     %param.loc29_24: %.13 = param runtime_param2
+// CHECK:STDOUT:     %c: %.13 = bind_name c, %param.loc29_24
+// CHECK:STDOUT:     %param.loc29_31: %.17 = param runtime_param3
+// CHECK:STDOUT:     %d: %.17 = bind_name d, %param.loc29_31
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

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

@@ -81,10 +81,10 @@ fn F(c: Class, p: Class*) {
 // CHECK:STDOUT:     %Class.ref.loc20_9: type = name_ref Class, file.%Class.decl [template = constants.%Class]
 // CHECK:STDOUT:     %Class.ref.loc20_19: type = name_ref Class, file.%Class.decl [template = constants.%Class]
 // CHECK:STDOUT:     %.loc20: type = ptr_type %Class [template = constants.%.1]
-// CHECK:STDOUT:     %param.loc20_6: %Class = param runtime_param0
-// CHECK:STDOUT:     %c: %Class = bind_name c, %param.loc20_6
-// CHECK:STDOUT:     %param.loc20_16: %.1 = param runtime_param1
-// CHECK:STDOUT:     %p: %.1 = bind_name p, %param.loc20_16
+// CHECK:STDOUT:     %param.loc20_7: %Class = param runtime_param0
+// CHECK:STDOUT:     %c: %Class = bind_name c, %param.loc20_7
+// CHECK:STDOUT:     %param.loc20_17: %.1 = param runtime_param1
+// CHECK:STDOUT:     %p: %.1 = bind_name p, %param.loc20_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 10 - 10
toolchain/check/testdata/class/fail_generic_method.carbon

@@ -90,14 +90,14 @@ fn Class(N:! i32).F[self: Self](n: T) {}
 // CHECK:STDOUT:     %int.make_type_32: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:     %.loc32_14.1: type = value_of_initializer %int.make_type_32 [template = i32]
 // CHECK:STDOUT:     %.loc32_14.2: type = converted %int.make_type_32, %.loc32_14.1 [template = i32]
-// CHECK:STDOUT:     %param.loc32_10: i32 = param runtime_param<invalid>
-// CHECK:STDOUT:     %N.loc32_10.1: i32 = bind_symbolic_name N, 0, %param.loc32_10 [symbolic = %N.loc32_10.2 (constants.%N)]
+// CHECK:STDOUT:     %param.loc32_11: i32 = param runtime_param<invalid>
+// CHECK:STDOUT:     %N.loc32_10.1: i32 = bind_symbolic_name N, 0, %param.loc32_11 [symbolic = %N.loc32_10.2 (constants.%N)]
 // CHECK:STDOUT:     %Self.ref: <error> = name_ref Self, <error> [template = <error>]
 // CHECK:STDOUT:     %T.ref: <error> = name_ref T, <error> [template = <error>]
-// CHECK:STDOUT:     %param.loc32_21: <error> = param runtime_param0
-// CHECK:STDOUT:     %self: <error> = bind_name self, %param.loc32_21
-// CHECK:STDOUT:     %param.loc32_33: <error> = param runtime_param1
-// CHECK:STDOUT:     %n: <error> = bind_name n, %param.loc32_33
+// CHECK:STDOUT:     %param.loc32_25: <error> = param runtime_param0
+// CHECK:STDOUT:     %self: <error> = bind_name self, %param.loc32_25
+// CHECK:STDOUT:     %param.loc32_34: <error> = param runtime_param1
+// CHECK:STDOUT:     %n: <error> = bind_name n, %param.loc32_34
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -125,10 +125,10 @@ fn Class(N:! i32).F[self: Self](n: T) {}
 // CHECK:STDOUT:       %.loc13: type = specific_constant constants.%Class.2, @Class(constants.%T) [symbolic = %Class (constants.%Class.2)]
 // CHECK:STDOUT:       %Self.ref: type = name_ref Self, %.loc13 [symbolic = %Class (constants.%Class.2)]
 // CHECK:STDOUT:       %T.ref: type = name_ref T, @Class.%T.loc11_13.1 [symbolic = %T (constants.%T)]
-// CHECK:STDOUT:       %param.loc13_8: @F.%Class (%Class.2) = param runtime_param0
-// CHECK:STDOUT:       %self: @F.%Class (%Class.2) = bind_name self, %param.loc13_8
-// CHECK:STDOUT:       %param.loc13_20: @F.%T (%T) = param runtime_param1
-// CHECK:STDOUT:       %n: @F.%T (%T) = bind_name n, %param.loc13_20
+// CHECK:STDOUT:       %param.loc13_12: @F.%Class (%Class.2) = param runtime_param0
+// CHECK:STDOUT:       %self: @F.%Class (%Class.2) = bind_name self, %param.loc13_12
+// CHECK:STDOUT:       %param.loc13_21: @F.%T (%T) = param runtime_param1
+// CHECK:STDOUT:       %n: @F.%T (%T) = bind_name n, %param.loc13_21
 // CHECK:STDOUT:     }
 // CHECK:STDOUT:     %.loc14_1.1: <witness> = complete_type_witness %.3 [symbolic = %.loc14_1.3 (constants.%.4)]
 // CHECK:STDOUT:

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

@@ -91,10 +91,10 @@ fn F(s: {.a: A}, b: B) {
 // CHECK:STDOUT:     %A.ref: type = name_ref A, file.%A.decl [template = constants.%A]
 // CHECK:STDOUT:     %.loc19: type = struct_type {.a: %A} [template = constants.%.7]
 // CHECK:STDOUT:     %B.ref: type = name_ref B, file.%B.decl [template = constants.%B]
-// CHECK:STDOUT:     %param.loc19_6: %.7 = param runtime_param0
-// CHECK:STDOUT:     %s: %.7 = bind_name s, %param.loc19_6
-// CHECK:STDOUT:     %param.loc19_18: %B = param runtime_param1
-// CHECK:STDOUT:     %b: %B = bind_name b, %param.loc19_18
+// CHECK:STDOUT:     %param.loc19_7: %.7 = param runtime_param0
+// CHECK:STDOUT:     %s: %.7 = bind_name s, %param.loc19_7
+// CHECK:STDOUT:     %param.loc19_19: %B = param runtime_param1
+// CHECK:STDOUT:     %b: %B = bind_name b, %param.loc19_19
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 14 - 36
toolchain/check/testdata/class/fail_self_param.carbon

@@ -17,19 +17,15 @@ var v: C(0);
 // CHECK:STDOUT: --- fail_self_param.carbon
 // CHECK:STDOUT:
 // CHECK:STDOUT: constants {
-// CHECK:STDOUT:   %self: type = bind_symbolic_name self, 0 [symbolic]
-// CHECK:STDOUT:   %self.patt: type = symbolic_binding_pattern self, 0 [symbolic]
-// CHECK:STDOUT:   %x: %self = bind_symbolic_name x, 1 [symbolic]
-// CHECK:STDOUT:   %x.patt: %self = symbolic_binding_pattern x, 1 [symbolic]
+// CHECK:STDOUT:   %x: <error> = bind_symbolic_name x, 0 [symbolic]
+// CHECK:STDOUT:   %x.patt: <error> = symbolic_binding_pattern x, 0 [symbolic]
 // CHECK:STDOUT:   %C.type: type = generic_class_type @C [template]
 // CHECK:STDOUT:   %.1: type = tuple_type () [template]
 // CHECK:STDOUT:   %C.1: %C.type = struct_value () [template]
-// CHECK:STDOUT:   %C.2: type = class_type @C, @C(%self, %x) [symbolic]
+// CHECK:STDOUT:   %C.2: type = class_type @C, @C(%x) [symbolic]
 // CHECK:STDOUT:   %.2: type = struct_type {} [template]
 // CHECK:STDOUT:   %.3: <witness> = complete_type_witness %.2 [template]
 // CHECK:STDOUT:   %.4: i32 = int_literal 0 [template]
-// CHECK:STDOUT:   %C.3: type = class_type @C, @C(i32, %.4) [template]
-// CHECK:STDOUT:   %.5: type = ptr_type %.2 [template]
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: imports {
@@ -53,29 +49,22 @@ var v: C(0);
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Core.import = import Core
 // CHECK:STDOUT:   %C.decl: %C.type = class_decl @C [template = constants.%C.1] {
-// CHECK:STDOUT:     %self.patt.loc14_9.1: type = symbolic_binding_pattern self, 0 [symbolic = %self.patt.loc14_9.2 (constants.%self.patt)]
-// CHECK:STDOUT:     %self.param_patt: type = param_pattern %self.patt.loc14_9.1, runtime_param<invalid> [symbolic = %self.patt.loc14_9.2 (constants.%self.patt)]
-// CHECK:STDOUT:     %x.patt.loc14_22.1: @C.%self.loc14_9.2 (%self) = symbolic_binding_pattern x, 1 [symbolic = %x.patt.loc14_22.2 (constants.%x.patt)]
-// CHECK:STDOUT:     %x.param_patt: @C.%self.loc14_9.2 (%self) = param_pattern %x.patt.loc14_22.1, runtime_param<invalid> [symbolic = %x.patt.loc14_22.2 (constants.%x.patt)]
+// CHECK:STDOUT:     %x.patt.loc14_22.1: <error> = symbolic_binding_pattern x, 0 [symbolic = %x.patt.loc14_22.2 (constants.%x.patt)]
+// CHECK:STDOUT:     %x.param_patt: <error> = param_pattern %x.patt.loc14_22.1, runtime_param<invalid> [symbolic = %x.patt.loc14_22.2 (constants.%x.patt)]
 // CHECK:STDOUT:   } {
-// CHECK:STDOUT:     %self.ref: type = name_ref self, %self.loc14_9.1 [symbolic = %self.loc14_9.2 (constants.%self)]
-// CHECK:STDOUT:     %param.loc14_9: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %self.loc14_9.1: type = bind_symbolic_name self, 0, %param.loc14_9 [symbolic = %self.loc14_9.2 (constants.%self)]
-// CHECK:STDOUT:     %param.loc14_22: @C.%self.loc14_9.2 (%self) = param runtime_param<invalid>
-// CHECK:STDOUT:     %x.loc14_22.1: @C.%self.loc14_9.2 (%self) = bind_symbolic_name x, 1, %param.loc14_22 [symbolic = %x.loc14_22.2 (constants.%x)]
+// CHECK:STDOUT:     %self.ref: <error> = name_ref self, <error> [template = <error>]
+// CHECK:STDOUT:     %param: <error> = param runtime_param<invalid>
+// CHECK:STDOUT:     %x.loc14_22.1: <error> = bind_symbolic_name x, 0, %param [symbolic = %x.loc14_22.2 (constants.%x)]
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %C.ref: %C.type = name_ref C, %C.decl [template = constants.%C.1]
 // CHECK:STDOUT:   %.loc15: i32 = int_literal 0 [template = constants.%.4]
-// CHECK:STDOUT:   %C: type = class_type @C, @C(i32, constants.%.4) [template = constants.%C.3]
-// CHECK:STDOUT:   %v.var: ref %C.3 = var v
-// CHECK:STDOUT:   %v: ref %C.3 = bind_name v, %v.var
+// CHECK:STDOUT:   %v.var: ref <error> = var v
+// CHECK:STDOUT:   %v: ref <error> = bind_name v, %v.var
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: generic class @C(%self.loc14_9.1: type, %x.loc14_22.1: @C.%self.loc14_9.2 (%self)) {
-// CHECK:STDOUT:   %self.loc14_9.2: type = bind_symbolic_name self, 0 [symbolic = %self.loc14_9.2 (constants.%self)]
-// CHECK:STDOUT:   %self.patt.loc14_9.2: type = symbolic_binding_pattern self, 0 [symbolic = %self.patt.loc14_9.2 (constants.%self.patt)]
-// CHECK:STDOUT:   %x.loc14_22.2: %self = bind_symbolic_name x, 1 [symbolic = %x.loc14_22.2 (constants.%x)]
-// CHECK:STDOUT:   %x.patt.loc14_22.2: %self = symbolic_binding_pattern x, 1 [symbolic = %x.patt.loc14_22.2 (constants.%x.patt)]
+// CHECK:STDOUT: generic class @C(%x.loc14_22.1: <error>) {
+// CHECK:STDOUT:   %x.loc14_22.2: <error> = bind_symbolic_name x, 0 [symbolic = %x.loc14_22.2 (constants.%x)]
+// CHECK:STDOUT:   %x.patt.loc14_22.2: <error> = symbolic_binding_pattern x, 0 [symbolic = %x.patt.loc14_22.2 (constants.%x.patt)]
 // CHECK:STDOUT:
 // CHECK:STDOUT: !definition:
 // CHECK:STDOUT:
@@ -87,19 +76,8 @@ var v: C(0);
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: specific @C(constants.%self, constants.%x) {
-// CHECK:STDOUT:   %self.loc14_9.2 => constants.%self
-// CHECK:STDOUT:   %self.patt.loc14_9.2 => constants.%self
+// CHECK:STDOUT: specific @C(constants.%x) {
 // CHECK:STDOUT:   %x.loc14_22.2 => constants.%x
 // CHECK:STDOUT:   %x.patt.loc14_22.2 => constants.%x
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: specific @C(i32, constants.%.4) {
-// CHECK:STDOUT:   %self.loc14_9.2 => i32
-// CHECK:STDOUT:   %self.patt.loc14_9.2 => i32
-// CHECK:STDOUT:   %x.loc14_22.2 => constants.%.4
-// CHECK:STDOUT:   %x.patt.loc14_22.2 => constants.%.4
-// CHECK:STDOUT:
-// CHECK:STDOUT: !definition:
-// CHECK:STDOUT: }
-// CHECK:STDOUT:

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

@@ -140,10 +140,10 @@ class Outer(T:! type) {
 // CHECK:STDOUT:     %int.make_type_32: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:     %.loc4_27.1: type = value_of_initializer %int.make_type_32 [template = i32]
 // CHECK:STDOUT:     %.loc4_27.2: type = converted %int.make_type_32, %.loc4_27.1 [template = i32]
-// CHECK:STDOUT:     %param.loc4_13: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc4_13.1: type = bind_symbolic_name T, 0, %param.loc4_13 [symbolic = %T.loc4_13.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc4_23: i32 = param runtime_param<invalid>
-// CHECK:STDOUT:     %N.loc4_23.1: i32 = bind_symbolic_name N, 1, %param.loc4_23 [symbolic = %N.loc4_23.2 (constants.%N)]
+// CHECK:STDOUT:     %param.loc4_14: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc4_13.1: type = bind_symbolic_name T, 0, %param.loc4_14 [symbolic = %T.loc4_13.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc4_24: i32 = param runtime_param<invalid>
+// CHECK:STDOUT:     %N.loc4_23.1: i32 = bind_symbolic_name N, 1, %param.loc4_24 [symbolic = %N.loc4_23.2 (constants.%N)]
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Class.ref.loc6: %Class.type = name_ref Class, %Class.decl [template = constants.%Class.1]
 // CHECK:STDOUT:   %int.make_type_32: init type = call constants.%Int32() [template = i32]
@@ -255,10 +255,10 @@ class Outer(T:! type) {
 // CHECK:STDOUT:     %int.make_type_32: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:     %.loc4_27.1: type = value_of_initializer %int.make_type_32 [template = i32]
 // CHECK:STDOUT:     %.loc4_27.2: type = converted %int.make_type_32, %.loc4_27.1 [template = i32]
-// CHECK:STDOUT:     %param.loc4_13: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc4_13.1: type = bind_symbolic_name T, 0, %param.loc4_13 [symbolic = %T.loc4_13.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc4_23: i32 = param runtime_param<invalid>
-// CHECK:STDOUT:     %N.loc4_23.1: i32 = bind_symbolic_name N, 1, %param.loc4_23 [symbolic = %N.loc4_23.2 (constants.%N)]
+// CHECK:STDOUT:     %param.loc4_14: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc4_13.1: type = bind_symbolic_name T, 0, %param.loc4_14 [symbolic = %T.loc4_13.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc4_24: i32 = param runtime_param<invalid>
+// CHECK:STDOUT:     %N.loc4_23.1: i32 = bind_symbolic_name N, 1, %param.loc4_24 [symbolic = %N.loc4_23.2 (constants.%N)]
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Class.ref: %Class.type = name_ref Class, %Class.decl [template = constants.%Class.1]
 // CHECK:STDOUT:   %int.make_type_32: init type = call constants.%Int32() [template = i32]
@@ -345,10 +345,10 @@ class Outer(T:! type) {
 // CHECK:STDOUT:     %int.make_type_32: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:     %.loc4_27.1: type = value_of_initializer %int.make_type_32 [template = i32]
 // CHECK:STDOUT:     %.loc4_27.2: type = converted %int.make_type_32, %.loc4_27.1 [template = i32]
-// CHECK:STDOUT:     %param.loc4_13: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc4_13.1: type = bind_symbolic_name T, 0, %param.loc4_13 [symbolic = %T.loc4_13.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc4_23: i32 = param runtime_param<invalid>
-// CHECK:STDOUT:     %N.loc4_23.1: i32 = bind_symbolic_name N, 1, %param.loc4_23 [symbolic = %N.loc4_23.2 (constants.%N)]
+// CHECK:STDOUT:     %param.loc4_14: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc4_13.1: type = bind_symbolic_name T, 0, %param.loc4_14 [symbolic = %T.loc4_13.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc4_24: i32 = param runtime_param<invalid>
+// CHECK:STDOUT:     %N.loc4_23.1: i32 = bind_symbolic_name N, 1, %param.loc4_24 [symbolic = %N.loc4_23.2 (constants.%N)]
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Class.ref: %Class.type = name_ref Class, %Class.decl [template = constants.%Class.1]
 // CHECK:STDOUT:   %int.make_type_32: init type = call constants.%Int32() [template = i32]
@@ -460,10 +460,10 @@ class Outer(T:! type) {
 // CHECK:STDOUT:     %int.make_type_32: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:     %.loc4_27.1: type = value_of_initializer %int.make_type_32 [template = i32]
 // CHECK:STDOUT:     %.loc4_27.2: type = converted %int.make_type_32, %.loc4_27.1 [template = i32]
-// CHECK:STDOUT:     %param.loc4_13: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc4_13.1: type = bind_symbolic_name T, 0, %param.loc4_13 [symbolic = %T.loc4_13.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc4_23: i32 = param runtime_param<invalid>
-// CHECK:STDOUT:     %N.loc4_23.1: i32 = bind_symbolic_name N, 1, %param.loc4_23 [symbolic = %N.loc4_23.2 (constants.%N)]
+// CHECK:STDOUT:     %param.loc4_14: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc4_13.1: type = bind_symbolic_name T, 0, %param.loc4_14 [symbolic = %T.loc4_13.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc4_24: i32 = param runtime_param<invalid>
+// CHECK:STDOUT:     %N.loc4_23.1: i32 = bind_symbolic_name N, 1, %param.loc4_24 [symbolic = %N.loc4_23.2 (constants.%N)]
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Class.ref: %Class.type = name_ref Class, %Class.decl [template = constants.%Class.1]
 // CHECK:STDOUT:   %.loc15_14: i32 = int_literal 5 [template = constants.%.4]

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

@@ -118,10 +118,10 @@ fn H(U:! type, c: Class(U)) -> U {
 // CHECK:STDOUT:     %Class.loc19_24.1: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.loc19_24.2 (constants.%Class.2)]
 // CHECK:STDOUT:     %T.ref.loc19_32: type = name_ref T, %T.loc19_6.1 [symbolic = %T.loc19_6.2 (constants.%T)]
 // CHECK:STDOUT:     %return: ref @G.%T.loc19_6.2 (%T) = var <return slot>
-// CHECK:STDOUT:     %param.loc19_6: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc19_6.1: type = bind_symbolic_name T, 0, %param.loc19_6 [symbolic = %T.loc19_6.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc19_16: @G.%Class.loc19_24.2 (%Class.2) = param runtime_param0
-// CHECK:STDOUT:     %c: @G.%Class.loc19_24.2 (%Class.2) = bind_name c, %param.loc19_16
+// CHECK:STDOUT:     %param.loc19_7: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc19_6.1: type = bind_symbolic_name T, 0, %param.loc19_7 [symbolic = %T.loc19_6.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc19_17: @G.%Class.loc19_24.2 (%Class.2) = param runtime_param0
+// CHECK:STDOUT:     %c: @G.%Class.loc19_24.2 (%Class.2) = bind_name c, %param.loc19_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %H.decl: %H.type = fn_decl @H [template = constants.%H] {
 // CHECK:STDOUT:     %U.patt.loc23_6.1: type = symbolic_binding_pattern U, 0 [symbolic = %U.patt.loc23_6.2 (constants.%U.patt)]
@@ -134,10 +134,10 @@ fn H(U:! type, c: Class(U)) -> U {
 // CHECK:STDOUT:     %Class.loc23_24.1: type = class_type @Class, @Class(constants.%U) [symbolic = %Class.loc23_24.2 (constants.%Class.4)]
 // CHECK:STDOUT:     %U.ref.loc23_32: type = name_ref U, %U.loc23_6.1 [symbolic = %U.loc23_6.2 (constants.%U)]
 // CHECK:STDOUT:     %return: ref @H.%U.loc23_6.2 (%U) = var <return slot>
-// CHECK:STDOUT:     %param.loc23_6: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %U.loc23_6.1: type = bind_symbolic_name U, 0, %param.loc23_6 [symbolic = %U.loc23_6.2 (constants.%U)]
-// CHECK:STDOUT:     %param.loc23_16: @H.%Class.loc23_24.2 (%Class.4) = param runtime_param0
-// CHECK:STDOUT:     %c: @H.%Class.loc23_24.2 (%Class.4) = bind_name c, %param.loc23_16
+// CHECK:STDOUT:     %param.loc23_7: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %U.loc23_6.1: type = bind_symbolic_name U, 0, %param.loc23_7 [symbolic = %U.loc23_6.2 (constants.%U)]
+// CHECK:STDOUT:     %param.loc23_17: @H.%Class.loc23_24.2 (%Class.4) = param runtime_param0
+// CHECK:STDOUT:     %c: @H.%Class.loc23_24.2 (%Class.4) = bind_name c, %param.loc23_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

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

@@ -108,10 +108,10 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 {
 // CHECK:STDOUT:     %T.ref.loc8_39: type = name_ref T, %T.loc8_26.1 [symbolic = %T.loc8_26.2 (constants.%T)]
 // CHECK:STDOUT:     %T.ref.loc8_45: type = name_ref T, %T.loc8_26.1 [symbolic = %T.loc8_26.2 (constants.%T)]
 // CHECK:STDOUT:     %return: ref @InitFromStructGeneric.%T.loc8_26.2 (%T) = var <return slot>
-// CHECK:STDOUT:     %param.loc8_26: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc8_26.1: type = bind_symbolic_name T, 0, %param.loc8_26 [symbolic = %T.loc8_26.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc8_36: @InitFromStructGeneric.%T.loc8_26.2 (%T) = param runtime_param0
-// CHECK:STDOUT:     %x: @InitFromStructGeneric.%T.loc8_26.2 (%T) = bind_name x, %param.loc8_36
+// CHECK:STDOUT:     %param.loc8_27: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc8_26.1: type = bind_symbolic_name T, 0, %param.loc8_27 [symbolic = %T.loc8_26.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc8_37: @InitFromStructGeneric.%T.loc8_26.2 (%T) = param runtime_param0
+// CHECK:STDOUT:     %x: @InitFromStructGeneric.%T.loc8_26.2 (%T) = bind_name x, %param.loc8_37
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %InitFromStructSpecific.decl: %InitFromStructSpecific.type = fn_decl @InitFromStructSpecific [template = constants.%InitFromStructSpecific] {
 // CHECK:STDOUT:     %x.patt: i32 = binding_pattern x
@@ -303,10 +303,10 @@ fn InitFromAdaptedSpecific(x: i32) -> i32 {
 // CHECK:STDOUT:     %T.ref.loc8_40: type = name_ref T, %T.loc8_27.1 [symbolic = %T.loc8_27.2 (constants.%T)]
 // CHECK:STDOUT:     %T.ref.loc8_46: type = name_ref T, %T.loc8_27.1 [symbolic = %T.loc8_27.2 (constants.%T)]
 // CHECK:STDOUT:     %return: ref @InitFromAdaptedGeneric.%T.loc8_27.2 (%T) = var <return slot>
-// CHECK:STDOUT:     %param.loc8_27: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc8_27.1: type = bind_symbolic_name T, 0, %param.loc8_27 [symbolic = %T.loc8_27.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc8_37: @InitFromAdaptedGeneric.%T.loc8_27.2 (%T) = param runtime_param0
-// CHECK:STDOUT:     %x: @InitFromAdaptedGeneric.%T.loc8_27.2 (%T) = bind_name x, %param.loc8_37
+// CHECK:STDOUT:     %param.loc8_28: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc8_27.1: type = bind_symbolic_name T, 0, %param.loc8_28 [symbolic = %T.loc8_27.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc8_38: @InitFromAdaptedGeneric.%T.loc8_27.2 (%T) = param runtime_param0
+// CHECK:STDOUT:     %x: @InitFromAdaptedGeneric.%T.loc8_27.2 (%T) = bind_name x, %param.loc8_38
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %InitFromAdaptedSpecific.decl: %InitFromAdaptedSpecific.type = fn_decl @InitFromAdaptedSpecific [template = constants.%InitFromAdaptedSpecific] {
 // CHECK:STDOUT:     %x.patt: i32 = binding_pattern x

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

@@ -156,26 +156,26 @@ fn Generic(T:! ()).WrongType() {}
 // CHECK:STDOUT:     %n.patt: %T = binding_pattern n
 // CHECK:STDOUT:     %n.param_patt: %T = param_pattern %n.patt, runtime_param0
 // CHECK:STDOUT:   } {
-// CHECK:STDOUT:     %param.loc10_10: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc10: type = bind_symbolic_name T, 0, %param.loc10_10 [symbolic = constants.%T]
+// CHECK:STDOUT:     %param.loc10_11: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc10: type = bind_symbolic_name T, 0, %param.loc10_11 [symbolic = constants.%T]
 // CHECK:STDOUT:     %T.ref.loc10_25: type = name_ref T, %T.loc10 [symbolic = constants.%T]
 // CHECK:STDOUT:     %T.ref.loc10_31: type = name_ref T, %T.loc10 [symbolic = constants.%T]
 // CHECK:STDOUT:     %return: ref %T = var <return slot>
-// CHECK:STDOUT:     %param.loc10_22: %T = param runtime_param0
-// CHECK:STDOUT:     %n.loc10: %T = bind_name n, %param.loc10_22
+// CHECK:STDOUT:     %param.loc10_23: %T = param runtime_param0
+// CHECK:STDOUT:     %n.loc10: %T = bind_name n, %param.loc10_23
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %G.decl: %G.type = fn_decl @G [symbolic = constants.%G] {
 // CHECK:STDOUT:     %self.patt: %Class.2 = binding_pattern self
 // CHECK:STDOUT:     %self.param_patt: %Class.2 = param_pattern %self.patt, runtime_param0
 // CHECK:STDOUT:   } {
-// CHECK:STDOUT:     %param.loc14_10: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc14: type = bind_symbolic_name T, 0, %param.loc14_10 [symbolic = constants.%T]
+// CHECK:STDOUT:     %param.loc14_11: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc14: type = bind_symbolic_name T, 0, %param.loc14_11 [symbolic = constants.%T]
 // CHECK:STDOUT:     %.loc14: type = specific_constant constants.%Class.2, @Class(constants.%T) [symbolic = constants.%Class.2]
 // CHECK:STDOUT:     %Self.ref.loc14: type = name_ref Self, %.loc14 [symbolic = constants.%Class.2]
 // CHECK:STDOUT:     %T.ref.loc14: type = name_ref T, %T.loc14 [symbolic = constants.%T]
 // CHECK:STDOUT:     %return: ref %T = var <return slot>
-// CHECK:STDOUT:     %param.loc14_22: %Class.2 = param runtime_param0
-// CHECK:STDOUT:     %self.loc14: %Class.2 = bind_name self, %param.loc14_22
+// CHECK:STDOUT:     %param.loc14_26: %Class.2 = param runtime_param0
+// CHECK:STDOUT:     %self.loc14: %Class.2 = bind_name self, %param.loc14_26
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -345,18 +345,18 @@ fn Generic(T:! ()).WrongType() {}
 // CHECK:STDOUT:     %a.patt: %T = binding_pattern a
 // CHECK:STDOUT:     %a.param_patt: %T = param_pattern %a.patt, runtime_param1
 // CHECK:STDOUT:   } {
-// CHECK:STDOUT:     %param.loc10_6: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc10: type = bind_symbolic_name T, 0, %param.loc10_6 [symbolic = constants.%T]
+// CHECK:STDOUT:     %param.loc10_7: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc10: type = bind_symbolic_name T, 0, %param.loc10_7 [symbolic = constants.%T]
 // CHECK:STDOUT:     %T.ref.loc10_22: type = name_ref T, %T.loc10 [symbolic = constants.%T]
-// CHECK:STDOUT:     %param.loc10_18: %T = param runtime_param<invalid>
-// CHECK:STDOUT:     %N.loc10: %T = bind_symbolic_name N, 1, %param.loc10_18 [symbolic = constants.%N]
+// CHECK:STDOUT:     %param.loc10_19: %T = param runtime_param<invalid>
+// CHECK:STDOUT:     %N.loc10: %T = bind_symbolic_name N, 1, %param.loc10_19 [symbolic = constants.%N]
 // CHECK:STDOUT:     %.loc10: type = specific_constant constants.%B.2, @B(constants.%T, constants.%N) [symbolic = constants.%B.2]
 // CHECK:STDOUT:     %Self.ref.loc10: type = name_ref Self, %.loc10 [symbolic = constants.%B.2]
 // CHECK:STDOUT:     %T.ref.loc10_42: type = name_ref T, %T.loc10 [symbolic = constants.%T]
-// CHECK:STDOUT:     %param.loc10_27: %B.2 = param runtime_param0
-// CHECK:STDOUT:     %self.loc10: %B.2 = bind_name self, %param.loc10_27
-// CHECK:STDOUT:     %param.loc10_39: %T = param runtime_param1
-// CHECK:STDOUT:     %a.loc10: %T = bind_name a, %param.loc10_39
+// CHECK:STDOUT:     %param.loc10_31: %B.2 = param runtime_param0
+// CHECK:STDOUT:     %self.loc10: %B.2 = bind_name self, %param.loc10_31
+// CHECK:STDOUT:     %param.loc10_40: %T = param runtime_param1
+// CHECK:STDOUT:     %a.loc10: %T = bind_name a, %param.loc10_40
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -404,10 +404,10 @@ fn Generic(T:! ()).WrongType() {}
 // CHECK:STDOUT:       %.loc6: type = specific_constant constants.%B.2, @B(constants.%T, constants.%N) [symbolic = %B (constants.%B.2)]
 // CHECK:STDOUT:       %Self.ref.loc6: type = name_ref Self, %.loc6 [symbolic = %B (constants.%B.2)]
 // CHECK:STDOUT:       %T.ref.loc6: type = name_ref T, @A.%T.loc4_9.1 [symbolic = %T.loc6 (constants.%T)]
-// CHECK:STDOUT:       %param.loc6_10: @F.%B (%B.2) = param runtime_param0
-// CHECK:STDOUT:       %self.loc6: @F.%B (%B.2) = bind_name self, %param.loc6_10
-// CHECK:STDOUT:       %param.loc6_22: @F.%T.loc6 (%T) = param runtime_param1
-// CHECK:STDOUT:       %a.loc6: @F.%T.loc6 (%T) = bind_name a, %param.loc6_22
+// CHECK:STDOUT:       %param.loc6_14: @F.%B (%B.2) = param runtime_param0
+// CHECK:STDOUT:       %self.loc6: @F.%B (%B.2) = bind_name self, %param.loc6_14
+// CHECK:STDOUT:       %param.loc6_23: @F.%T.loc6 (%T) = param runtime_param1
+// CHECK:STDOUT:       %a.loc6: @F.%T.loc6 (%T) = bind_name a, %param.loc6_23
 // CHECK:STDOUT:     }
 // CHECK:STDOUT:     %.loc7: <witness> = complete_type_witness %.2 [template = constants.%.3]
 // CHECK:STDOUT:
@@ -674,10 +674,10 @@ fn Generic(T:! ()).WrongType() {}
 // CHECK:STDOUT:     %T.loc4_15.1: type = bind_symbolic_name T, 0, %param [symbolic = %T.loc4_15.2 (constants.%T)]
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %.decl: %.type = fn_decl @.1 [template = constants.%.4] {} {
-// CHECK:STDOUT:     %param.loc15_12: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc15_12.1: type = bind_symbolic_name T, 0, %param.loc15_12 [symbolic = %T.loc15_12.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc15_22: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %U.loc15_22.1: type = bind_symbolic_name U, 1, %param.loc15_22 [symbolic = %U.loc15_22.2 (constants.%U)]
+// CHECK:STDOUT:     %param.loc15_13: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc15_12.1: type = bind_symbolic_name T, 0, %param.loc15_13 [symbolic = %T.loc15_12.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc15_23: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %U.loc15_22.1: type = bind_symbolic_name U, 1, %param.loc15_23 [symbolic = %U.loc15_22.2 (constants.%U)]
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

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

@@ -180,10 +180,10 @@ fn CallGenericMethodWithNonDeducedParam(c: Class(A)) -> (A, B) {
 // CHECK:STDOUT:       %.loc16_42.2: %.4 = tuple_literal (%T.ref.loc16_38, %U.ref.loc16_41)
 // CHECK:STDOUT:       %.loc16_42.3: type = converted %.loc16_42.2, constants.%.5 [symbolic = %.loc16_42.1 (constants.%.5)]
 // CHECK:STDOUT:       %return: ref @GetNoDeduce.%.loc16_42.1 (%.5) = var <return slot>
-// CHECK:STDOUT:       %param.loc16_18: @GetNoDeduce.%T (%T) = param runtime_param0
-// CHECK:STDOUT:       %x: @GetNoDeduce.%T (%T) = bind_name x, %param.loc16_18
-// CHECK:STDOUT:       %param.loc16_24: type = param runtime_param<invalid>
-// CHECK:STDOUT:       %U.loc16_24.2: type = bind_symbolic_name U, 1, %param.loc16_24 [symbolic = %U.loc16_24.1 (constants.%U)]
+// CHECK:STDOUT:       %param.loc16_19: @GetNoDeduce.%T (%T) = param runtime_param0
+// CHECK:STDOUT:       %x: @GetNoDeduce.%T (%T) = bind_name x, %param.loc16_19
+// CHECK:STDOUT:       %param.loc16_25: type = param runtime_param<invalid>
+// CHECK:STDOUT:       %U.loc16_24.2: type = bind_symbolic_name U, 1, %param.loc16_25 [symbolic = %U.loc16_24.1 (constants.%U)]
 // CHECK:STDOUT:     }
 // CHECK:STDOUT:     %.loc17: <witness> = complete_type_witness %.1 [template = constants.%.2]
 // CHECK:STDOUT:

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

@@ -278,10 +278,10 @@ class E(U:! type) {}
 // CHECK:STDOUT:     %N.param_patt: @.1.%T.loc12_9.2 (%T) = param_pattern %N.patt.loc12_19.1, runtime_param<invalid> [symbolic = %N.patt.loc12_19.2 (constants.%N.patt.2)]
 // CHECK:STDOUT:   } {
 // CHECK:STDOUT:     %T.ref: type = name_ref T, %T.loc12_9.1 [symbolic = %T.loc12_9.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc12_9: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc12_9.1: type = bind_symbolic_name T, 0, %param.loc12_9 [symbolic = %T.loc12_9.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc12_19: @.1.%T.loc12_9.2 (%T) = param runtime_param<invalid>
-// CHECK:STDOUT:     %N.loc12_19.1: @.1.%T.loc12_9.2 (%T) = bind_symbolic_name N, 1, %param.loc12_19 [symbolic = %N.loc12_19.2 (constants.%N.2)]
+// CHECK:STDOUT:     %param.loc12_10: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc12_9.1: type = bind_symbolic_name T, 0, %param.loc12_10 [symbolic = %T.loc12_9.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc12_20: @.1.%T.loc12_9.2 (%T) = param runtime_param<invalid>
+// CHECK:STDOUT:     %N.loc12_19.1: @.1.%T.loc12_9.2 (%T) = bind_symbolic_name N, 1, %param.loc12_20 [symbolic = %N.loc12_19.2 (constants.%N.2)]
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -380,10 +380,10 @@ class E(U:! type) {}
 // CHECK:STDOUT:     %int.make_type_32: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:     %.loc12_23.1: type = value_of_initializer %int.make_type_32 [template = i32]
 // CHECK:STDOUT:     %.loc12_23.2: type = converted %int.make_type_32, %.loc12_23.1 [template = i32]
-// CHECK:STDOUT:     %param.loc12_9: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc12_9.1: type = bind_symbolic_name T, 0, %param.loc12_9 [symbolic = %T.loc12_9.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc12_19: i32 = param runtime_param<invalid>
-// CHECK:STDOUT:     %U.loc12_19.1: i32 = bind_symbolic_name U, 1, %param.loc12_19 [symbolic = %U.loc12_19.2 (constants.%U)]
+// CHECK:STDOUT:     %param.loc12_10: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc12_9.1: type = bind_symbolic_name T, 0, %param.loc12_10 [symbolic = %T.loc12_9.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc12_20: i32 = param runtime_param<invalid>
+// CHECK:STDOUT:     %U.loc12_19.1: i32 = bind_symbolic_name U, 1, %param.loc12_20 [symbolic = %U.loc12_19.2 (constants.%U)]
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 10 - 10
toolchain/check/testdata/class/generic_method.carbon

@@ -65,15 +65,15 @@ fn Class(T:! type).F[self: Self](n: T) {}
 // CHECK:STDOUT:     %n.patt: %T = binding_pattern n
 // CHECK:STDOUT:     %n.param_patt: %T = param_pattern %n.patt, runtime_param1
 // CHECK:STDOUT:   } {
-// CHECK:STDOUT:     %param.loc16_10: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc16: type = bind_symbolic_name T, 0, %param.loc16_10 [symbolic = constants.%T]
+// CHECK:STDOUT:     %param.loc16_11: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc16: type = bind_symbolic_name T, 0, %param.loc16_11 [symbolic = constants.%T]
 // CHECK:STDOUT:     %.loc16: type = specific_constant constants.%Class.2, @Class(constants.%T) [symbolic = constants.%Class.2]
 // CHECK:STDOUT:     %Self.ref.loc16: type = name_ref Self, %.loc16 [symbolic = constants.%Class.2]
 // CHECK:STDOUT:     %T.ref.loc16: type = name_ref T, %T.loc16 [symbolic = constants.%T]
-// CHECK:STDOUT:     %param.loc16_22: %Class.2 = param runtime_param0
-// CHECK:STDOUT:     %self.loc16: %Class.2 = bind_name self, %param.loc16_22
-// CHECK:STDOUT:     %param.loc16_34: %T = param runtime_param1
-// CHECK:STDOUT:     %n.loc16: %T = bind_name n, %param.loc16_34
+// CHECK:STDOUT:     %param.loc16_26: %Class.2 = param runtime_param0
+// CHECK:STDOUT:     %self.loc16: %Class.2 = bind_name self, %param.loc16_26
+// CHECK:STDOUT:     %param.loc16_35: %T = param runtime_param1
+// CHECK:STDOUT:     %n.loc16: %T = bind_name n, %param.loc16_35
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -101,10 +101,10 @@ fn Class(T:! type).F[self: Self](n: T) {}
 // CHECK:STDOUT:       %.loc13: type = specific_constant constants.%Class.2, @Class(constants.%T) [symbolic = %Class (constants.%Class.2)]
 // CHECK:STDOUT:       %Self.ref.loc13: type = name_ref Self, %.loc13 [symbolic = %Class (constants.%Class.2)]
 // CHECK:STDOUT:       %T.ref.loc13: type = name_ref T, @Class.%T.loc11_13.1 [symbolic = %T.loc13 (constants.%T)]
-// CHECK:STDOUT:       %param.loc13_8: @F.%Class (%Class.2) = param runtime_param0
-// CHECK:STDOUT:       %self.loc13: @F.%Class (%Class.2) = bind_name self, %param.loc13_8
-// CHECK:STDOUT:       %param.loc13_20: @F.%T.loc13 (%T) = param runtime_param1
-// CHECK:STDOUT:       %n.loc13: @F.%T.loc13 (%T) = bind_name n, %param.loc13_20
+// CHECK:STDOUT:       %param.loc13_12: @F.%Class (%Class.2) = param runtime_param0
+// CHECK:STDOUT:       %self.loc13: @F.%Class (%Class.2) = bind_name self, %param.loc13_12
+// CHECK:STDOUT:       %param.loc13_21: @F.%T.loc13 (%T) = param runtime_param1
+// CHECK:STDOUT:       %n.loc13: @F.%T.loc13 (%T) = bind_name n, %param.loc13_21
 // CHECK:STDOUT:     }
 // CHECK:STDOUT:     %.loc14_1.1: <witness> = complete_type_witness %.3 [symbolic = %.loc14_1.3 (constants.%.4)]
 // CHECK:STDOUT:

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

@@ -78,10 +78,10 @@ fn MakeReorder(n: i32, next: Class*) -> Class {
 // CHECK:STDOUT:     %.loc16_28: type = ptr_type %Class [template = constants.%.3]
 // CHECK:STDOUT:     %Class.ref.loc16_34: type = name_ref Class, file.%Class.decl [template = constants.%Class]
 // CHECK:STDOUT:     %return: ref %Class = var <return slot>
-// CHECK:STDOUT:     %param.loc16_9: i32 = param runtime_param0
-// CHECK:STDOUT:     %n: i32 = bind_name n, %param.loc16_9
-// CHECK:STDOUT:     %param.loc16_17: %.3 = param runtime_param1
-// CHECK:STDOUT:     %next: %.3 = bind_name next, %param.loc16_17
+// CHECK:STDOUT:     %param.loc16_10: i32 = param runtime_param0
+// CHECK:STDOUT:     %n: i32 = bind_name n, %param.loc16_10
+// CHECK:STDOUT:     %param.loc16_21: %.3 = param runtime_param1
+// CHECK:STDOUT:     %next: %.3 = bind_name next, %param.loc16_21
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %MakeReorder.decl: %MakeReorder.type = fn_decl @MakeReorder [template = constants.%MakeReorder] {
 // CHECK:STDOUT:     %n.patt: i32 = binding_pattern n
@@ -96,10 +96,10 @@ fn MakeReorder(n: i32, next: Class*) -> Class {
 // CHECK:STDOUT:     %.loc20_35: type = ptr_type %Class [template = constants.%.3]
 // CHECK:STDOUT:     %Class.ref.loc20_41: type = name_ref Class, file.%Class.decl [template = constants.%Class]
 // CHECK:STDOUT:     %return: ref %Class = var <return slot>
-// CHECK:STDOUT:     %param.loc20_16: i32 = param runtime_param0
-// CHECK:STDOUT:     %n: i32 = bind_name n, %param.loc20_16
-// CHECK:STDOUT:     %param.loc20_24: %.3 = param runtime_param1
-// CHECK:STDOUT:     %next: %.3 = bind_name next, %param.loc20_24
+// CHECK:STDOUT:     %param.loc20_17: i32 = param runtime_param0
+// CHECK:STDOUT:     %n: i32 = bind_name n, %param.loc20_17
+// CHECK:STDOUT:     %param.loc20_28: %.3 = param runtime_param1
+// CHECK:STDOUT:     %next: %.3 = bind_name next, %param.loc20_28
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 2 - 14
toolchain/check/testdata/class/no_prelude/generic_vs_params.carbon

@@ -323,13 +323,7 @@ fn F(T:! type) {
 // CHECK:STDOUT:   package: <namespace> = namespace [template] {
 // CHECK:STDOUT:     .A = %A.decl
 // CHECK:STDOUT:   }
-// CHECK:STDOUT:   %A.decl: %A.type = class_decl @A [template = constants.%A.1] {
-// CHECK:STDOUT:     %T.patt: type = binding_pattern T
-// CHECK:STDOUT:     %T.param_patt: type = param_pattern %T.patt, runtime_param<invalid>
-// CHECK:STDOUT:   } {
-// CHECK:STDOUT:     %param: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T: type = bind_name T, %param
-// CHECK:STDOUT:   }
+// CHECK:STDOUT:   %A.decl: %A.type = class_decl @A [template = constants.%A.1] {} {}
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
 // CHECK:STDOUT: class @A {
@@ -359,13 +353,7 @@ fn F(T:! type) {
 // CHECK:STDOUT:     .A = %A.decl
 // CHECK:STDOUT:     .F = %F.decl
 // CHECK:STDOUT:   }
-// CHECK:STDOUT:   %A.decl: %A.type = class_decl @A [template = constants.%A.1] {
-// CHECK:STDOUT:     %T.patt: type = binding_pattern T
-// CHECK:STDOUT:     %T.param_patt: type = param_pattern %T.patt, runtime_param<invalid>
-// CHECK:STDOUT:   } {
-// CHECK:STDOUT:     %param: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T: type = bind_name T, %param
-// CHECK:STDOUT:   }
+// CHECK:STDOUT:   %A.decl: %A.type = class_decl @A [template = constants.%A.1] {} {}
 // CHECK:STDOUT:   %F.decl: %F.type = fn_decl @F [template = constants.%F] {
 // CHECK:STDOUT:     %T.patt.loc10_6.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc10_6.2 (constants.%T.patt)]
 // CHECK:STDOUT:     %T.param_patt: type = param_pattern %T.patt.loc10_6.1, runtime_param<invalid> [symbolic = %T.patt.loc10_6.2 (constants.%T.patt)]

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

@@ -77,10 +77,10 @@ fn Class.G[self: Self](r#self: i32) -> (i32, i32) {
 // CHECK:STDOUT:     %int.make_type_32.loc17: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:     %.loc17_38.1: type = value_of_initializer %int.make_type_32.loc17 [template = i32]
 // CHECK:STDOUT:     %.loc17_38.2: type = converted %int.make_type_32.loc17, %.loc17_38.1 [template = i32]
-// CHECK:STDOUT:     %param.loc17_17: %.1 = param runtime_param0
-// CHECK:STDOUT:     %self.loc17_17: %.1 = bind_name self, %param.loc17_17
-// CHECK:STDOUT:     %param.loc17_30: i32 = param runtime_param1
-// CHECK:STDOUT:     %self.loc17_30: i32 = bind_name r#self, %param.loc17_30
+// CHECK:STDOUT:     %param.loc17_21: %.1 = param runtime_param0
+// CHECK:STDOUT:     %self.loc17_17: %.1 = bind_name self, %param.loc17_21
+// CHECK:STDOUT:     %param.loc17_36: i32 = param runtime_param1
+// CHECK:STDOUT:     %self.loc17_30: i32 = bind_name r#self, %param.loc17_36
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %G.decl: %G.type = fn_decl @G [template = constants.%G] {
 // CHECK:STDOUT:     %self.patt.loc21_12: %Class = binding_pattern self
@@ -101,10 +101,10 @@ fn Class.G[self: Self](r#self: i32) -> (i32, i32) {
 // CHECK:STDOUT:     %.loc21_49.5: type = converted %int.make_type_32.loc21_46, %.loc21_49.4 [template = i32]
 // CHECK:STDOUT:     %.loc21_49.6: type = converted %.loc21_49.1, constants.%.4 [template = constants.%.4]
 // CHECK:STDOUT:     %return: ref %.4 = var <return slot>
-// CHECK:STDOUT:     %param.loc21_12: %Class = param runtime_param0
-// CHECK:STDOUT:     %self.loc21_12: %Class = bind_name self, %param.loc21_12
-// CHECK:STDOUT:     %param.loc21_24: i32 = param runtime_param1
-// CHECK:STDOUT:     %self.loc21_24: i32 = bind_name r#self, %param.loc21_24
+// CHECK:STDOUT:     %param.loc21_16: %Class = param runtime_param0
+// CHECK:STDOUT:     %self.loc21_12: %Class = bind_name self, %param.loc21_16
+// CHECK:STDOUT:     %param.loc21_30: i32 = param runtime_param1
+// CHECK:STDOUT:     %self.loc21_24: i32 = bind_name r#self, %param.loc21_30
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -121,10 +121,10 @@ fn Class.G[self: Self](r#self: i32) -> (i32, i32) {
 // CHECK:STDOUT:     %int.make_type_32.loc12: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:     %.loc12_34.1: type = value_of_initializer %int.make_type_32.loc12 [template = i32]
 // CHECK:STDOUT:     %.loc12_34.2: type = converted %int.make_type_32.loc12, %.loc12_34.1 [template = i32]
-// CHECK:STDOUT:     %param.loc12_13: %.1 = param runtime_param0
-// CHECK:STDOUT:     %self.loc12_13: %.1 = bind_name self, %param.loc12_13
-// CHECK:STDOUT:     %param.loc12_26: i32 = param runtime_param1
-// CHECK:STDOUT:     %self.loc12_26: i32 = bind_name r#self, %param.loc12_26
+// CHECK:STDOUT:     %param.loc12_17: %.1 = param runtime_param0
+// CHECK:STDOUT:     %self.loc12_13: %.1 = bind_name self, %param.loc12_17
+// CHECK:STDOUT:     %param.loc12_32: i32 = param runtime_param1
+// CHECK:STDOUT:     %self.loc12_26: i32 = bind_name r#self, %param.loc12_32
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %G.decl: %G.type = fn_decl @G [template = constants.%G] {
 // CHECK:STDOUT:     %self.patt.loc21_12: %Class = binding_pattern self
@@ -145,10 +145,10 @@ fn Class.G[self: Self](r#self: i32) -> (i32, i32) {
 // CHECK:STDOUT:     %.loc13_45.5: type = converted %int.make_type_32.loc13_42, %.loc13_45.4 [template = i32]
 // CHECK:STDOUT:     %.loc13_45.6: type = converted %.loc13_45.1, constants.%.4 [template = constants.%.4]
 // CHECK:STDOUT:     %return.var.loc13: ref %.4 = var <return slot>
-// CHECK:STDOUT:     %param.loc13_8: %Class = param runtime_param0
-// CHECK:STDOUT:     %self.loc13_8: %Class = bind_name self, %param.loc13_8
-// CHECK:STDOUT:     %param.loc13_20: i32 = param runtime_param1
-// CHECK:STDOUT:     %self.loc13_20: i32 = bind_name r#self, %param.loc13_20
+// CHECK:STDOUT:     %param.loc13_12: %Class = param runtime_param0
+// CHECK:STDOUT:     %self.loc13_8: %Class = bind_name self, %param.loc13_12
+// CHECK:STDOUT:     %param.loc13_26: i32 = param runtime_param1
+// CHECK:STDOUT:     %self.loc13_20: i32 = bind_name r#self, %param.loc13_26
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int.make_type_32: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:   %.loc14_10.1: type = value_of_initializer %int.make_type_32 [template = i32]

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

@@ -70,10 +70,10 @@ fn MemberNamedSelf.F(x: Self, y: r#Self) {}
 // CHECK:STDOUT:   } {
 // CHECK:STDOUT:     %Self.ref.loc24_25: type = name_ref Self, constants.%MemberNamedSelf [template = constants.%MemberNamedSelf]
 // CHECK:STDOUT:     %Self.ref.loc24_34: type = name_ref r#Self, @MemberNamedSelf.%Self.decl [template = constants.%Self]
-// CHECK:STDOUT:     %param.loc24_22: %MemberNamedSelf = param runtime_param0
-// CHECK:STDOUT:     %x.loc24: %MemberNamedSelf = bind_name x, %param.loc24_22
-// CHECK:STDOUT:     %param.loc24_31: %Self = param runtime_param1
-// CHECK:STDOUT:     %y.loc24: %Self = bind_name y, %param.loc24_31
+// CHECK:STDOUT:     %param.loc24_23: %MemberNamedSelf = param runtime_param0
+// CHECK:STDOUT:     %x.loc24: %MemberNamedSelf = bind_name x, %param.loc24_23
+// CHECK:STDOUT:     %param.loc24_32: %Self = param runtime_param1
+// CHECK:STDOUT:     %y.loc24: %Self = bind_name y, %param.loc24_32
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -96,10 +96,10 @@ fn MemberNamedSelf.F(x: Self, y: r#Self) {}
 // CHECK:STDOUT:   } {
 // CHECK:STDOUT:     %Self.ref.loc21_11: type = name_ref Self, constants.%MemberNamedSelf [template = constants.%MemberNamedSelf]
 // CHECK:STDOUT:     %Self.ref.loc21_20: type = name_ref r#Self, @MemberNamedSelf.%Self.decl [template = constants.%Self]
-// CHECK:STDOUT:     %param.loc21_8: %MemberNamedSelf = param runtime_param0
-// CHECK:STDOUT:     %x.loc21: %MemberNamedSelf = bind_name x, %param.loc21_8
-// CHECK:STDOUT:     %param.loc21_17: %Self = param runtime_param1
-// CHECK:STDOUT:     %y.loc21: %Self = bind_name y, %param.loc21_17
+// CHECK:STDOUT:     %param.loc21_9: %MemberNamedSelf = param runtime_param0
+// CHECK:STDOUT:     %x.loc21: %MemberNamedSelf = bind_name x, %param.loc21_9
+// CHECK:STDOUT:     %param.loc21_18: %Self = param runtime_param1
+// CHECK:STDOUT:     %y.loc21: %Self = bind_name y, %param.loc21_18
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %.loc22: <witness> = complete_type_witness %.2 [template = constants.%.3]
 // CHECK:STDOUT:

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

@@ -63,10 +63,10 @@ fn Class.F[self: Self](b: bool) {}
 // CHECK:STDOUT:     %bool.make_type.loc17: init type = call constants.%Bool() [template = bool]
 // CHECK:STDOUT:     %.loc17_27.1: type = value_of_initializer %bool.make_type.loc17 [template = bool]
 // CHECK:STDOUT:     %.loc17_27.2: type = converted %bool.make_type.loc17, %.loc17_27.1 [template = bool]
-// CHECK:STDOUT:     %param.loc17_12: %Class = param runtime_param0
-// CHECK:STDOUT:     %self.loc17: %Class = bind_name self, %param.loc17_12
-// CHECK:STDOUT:     %param.loc17_24: bool = param runtime_param1
-// CHECK:STDOUT:     %b.loc17: bool = bind_name b, %param.loc17_24
+// CHECK:STDOUT:     %param.loc17_16: %Class = param runtime_param0
+// CHECK:STDOUT:     %self.loc17: %Class = bind_name self, %param.loc17_16
+// CHECK:STDOUT:     %param.loc17_25: bool = param runtime_param1
+// CHECK:STDOUT:     %b.loc17: bool = bind_name b, %param.loc17_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -81,10 +81,10 @@ fn Class.F[self: Self](b: bool) {}
 // CHECK:STDOUT:     %bool.make_type.loc14: init type = call constants.%Bool() [template = bool]
 // CHECK:STDOUT:     %.loc14_23.1: type = value_of_initializer %bool.make_type.loc14 [template = bool]
 // CHECK:STDOUT:     %.loc14_23.2: type = converted %bool.make_type.loc14, %.loc14_23.1 [template = bool]
-// CHECK:STDOUT:     %param.loc14_8: %Class = param runtime_param0
-// CHECK:STDOUT:     %self.loc14: %Class = bind_name self, %param.loc14_8
-// CHECK:STDOUT:     %param.loc14_20: bool = param runtime_param1
-// CHECK:STDOUT:     %b.loc14: bool = bind_name b, %param.loc14_20
+// CHECK:STDOUT:     %param.loc14_12: %Class = param runtime_param0
+// CHECK:STDOUT:     %self.loc14: %Class = bind_name self, %param.loc14_12
+// CHECK:STDOUT:     %param.loc14_21: bool = param runtime_param1
+// CHECK:STDOUT:     %b.loc14: bool = bind_name b, %param.loc14_21
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %.loc15: <witness> = complete_type_witness %.2 [template = constants.%.3]
 // CHECK:STDOUT:

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

@@ -158,10 +158,10 @@ fn G() -> C {
 // CHECK:STDOUT:     %.loc6_24.1: type = array_type %.loc6_23, %T [symbolic = %.loc6_24.2 (constants.%.4)]
 // CHECK:STDOUT:     %T.ref.loc6_30: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)]
 // CHECK:STDOUT:     %return: ref @F.%T.loc6_6.2 (%T) = var <return slot>
-// CHECK:STDOUT:     %param.loc6_6: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc6_6.1: type = bind_symbolic_name T, 0, %param.loc6_6 [symbolic = %T.loc6_6.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc6_16: @F.%.loc6_24.2 (%.4) = param runtime_param0
-// CHECK:STDOUT:     %a: @F.%.loc6_24.2 (%.4) = bind_name a, %param.loc6_16
+// CHECK:STDOUT:     %param.loc6_7: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc6_6.1: type = bind_symbolic_name T, 0, %param.loc6_7 [symbolic = %T.loc6_6.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc6_17: @F.%.loc6_24.2 (%.4) = param runtime_param0
+// CHECK:STDOUT:     %a: @F.%.loc6_24.2 (%.4) = bind_name a, %param.loc6_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %G.decl: %G.type = fn_decl @G [template = constants.%G] {} {
 // CHECK:STDOUT:     %C.ref.loc8: type = name_ref C, file.%C.decl [template = constants.%C]
@@ -310,10 +310,10 @@ fn G() -> C {
 // CHECK:STDOUT:     %.loc10_29.1: type = value_of_initializer %int.make_type_32.loc10_29 [template = i32]
 // CHECK:STDOUT:     %.loc10_29.2: type = converted %int.make_type_32.loc10_29, %.loc10_29.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc10_6: i32 = param runtime_param<invalid>
-// CHECK:STDOUT:     %N.loc10_6.1: i32 = bind_symbolic_name N, 0, %param.loc10_6 [symbolic = %N.loc10_6.2 (constants.%N)]
-// CHECK:STDOUT:     %param.loc10_15: <error> = param runtime_param0
-// CHECK:STDOUT:     %a: <error> = bind_name a, %param.loc10_15
+// CHECK:STDOUT:     %param.loc10_7: i32 = param runtime_param<invalid>
+// CHECK:STDOUT:     %N.loc10_6.1: i32 = bind_symbolic_name N, 0, %param.loc10_7 [symbolic = %N.loc10_6.2 (constants.%N)]
+// CHECK:STDOUT:     %param.loc10_16: <error> = param runtime_param0
+// CHECK:STDOUT:     %a: <error> = bind_name a, %param.loc10_16
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %G.decl: %G.type = fn_decl @G [template = constants.%G] {} {
 // CHECK:STDOUT:     %C.ref.loc12: type = name_ref C, file.%C.decl [template = constants.%C]
@@ -448,12 +448,12 @@ fn G() -> C {
 // CHECK:STDOUT:     %.loc10_33: type = array_type %N.ref, %T [template = <error>]
 // CHECK:STDOUT:     %T.ref.loc10_39: type = name_ref T, %T.loc10_6.1 [symbolic = %T.loc10_6.2 (constants.%T)]
 // CHECK:STDOUT:     %return: ref @F.%T.loc10_6.2 (%T) = var <return slot>
-// CHECK:STDOUT:     %param.loc10_6: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc10_6.1: type = bind_symbolic_name T, 0, %param.loc10_6 [symbolic = %T.loc10_6.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc10_16: i32 = param runtime_param<invalid>
-// CHECK:STDOUT:     %N.loc10_16.1: i32 = bind_symbolic_name N, 1, %param.loc10_16 [symbolic = %N.loc10_16.2 (constants.%N)]
-// CHECK:STDOUT:     %param.loc10_25: <error> = param runtime_param0
-// CHECK:STDOUT:     %a: <error> = bind_name a, %param.loc10_25
+// CHECK:STDOUT:     %param.loc10_7: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc10_6.1: type = bind_symbolic_name T, 0, %param.loc10_7 [symbolic = %T.loc10_6.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc10_17: i32 = param runtime_param<invalid>
+// CHECK:STDOUT:     %N.loc10_16.1: i32 = bind_symbolic_name N, 1, %param.loc10_17 [symbolic = %N.loc10_16.2 (constants.%N)]
+// CHECK:STDOUT:     %param.loc10_26: <error> = param runtime_param0
+// CHECK:STDOUT:     %a: <error> = bind_name a, %param.loc10_26
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %G.decl: %G.type = fn_decl @G [template = constants.%G] {} {
 // CHECK:STDOUT:     %C.ref.loc12: type = name_ref C, file.%C.decl [template = constants.%C]
@@ -604,10 +604,10 @@ fn G() -> C {
 // CHECK:STDOUT:     %.loc6_24.1: type = array_type %.loc6_23, %T [symbolic = %.loc6_24.2 (constants.%.4)]
 // CHECK:STDOUT:     %T.ref.loc6_30: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)]
 // CHECK:STDOUT:     %return: ref @F.%T.loc6_6.2 (%T) = var <return slot>
-// CHECK:STDOUT:     %param.loc6_6: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc6_6.1: type = bind_symbolic_name T, 0, %param.loc6_6 [symbolic = %T.loc6_6.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc6_16: @F.%.loc6_24.2 (%.4) = param runtime_param0
-// CHECK:STDOUT:     %a: @F.%.loc6_24.2 (%.4) = bind_name a, %param.loc6_16
+// CHECK:STDOUT:     %param.loc6_7: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc6_6.1: type = bind_symbolic_name T, 0, %param.loc6_7 [symbolic = %T.loc6_6.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc6_17: @F.%.loc6_24.2 (%.4) = param runtime_param0
+// CHECK:STDOUT:     %a: @F.%.loc6_24.2 (%.4) = bind_name a, %param.loc6_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %G.decl: %G.type = fn_decl @G [template = constants.%G] {} {
 // CHECK:STDOUT:     %C.ref.loc8: type = name_ref C, file.%C.decl [template = constants.%C]
@@ -824,10 +824,10 @@ fn G() -> C {
 // CHECK:STDOUT:     %.loc10_29.1: type = value_of_initializer %int.make_type_32.loc10_29 [template = i32]
 // CHECK:STDOUT:     %.loc10_29.2: type = converted %int.make_type_32.loc10_29, %.loc10_29.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc10_6: i32 = param runtime_param<invalid>
-// CHECK:STDOUT:     %N.loc10_6.1: i32 = bind_symbolic_name N, 0, %param.loc10_6 [symbolic = %N.loc10_6.2 (constants.%N)]
-// CHECK:STDOUT:     %param.loc10_15: <error> = param runtime_param0
-// CHECK:STDOUT:     %a: <error> = bind_name a, %param.loc10_15
+// CHECK:STDOUT:     %param.loc10_7: i32 = param runtime_param<invalid>
+// CHECK:STDOUT:     %N.loc10_6.1: i32 = bind_symbolic_name N, 0, %param.loc10_7 [symbolic = %N.loc10_6.2 (constants.%N)]
+// CHECK:STDOUT:     %param.loc10_16: <error> = param runtime_param0
+// CHECK:STDOUT:     %a: <error> = bind_name a, %param.loc10_16
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %G.decl: %G.type = fn_decl @G [template = constants.%G] {} {
 // CHECK:STDOUT:     %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]

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

@@ -129,10 +129,10 @@ fn G() -> i32 {
 // CHECK:STDOUT:     %C.loc7_20.1: type = class_type @C, @C(constants.%T) [symbolic = %C.loc7_20.2 (constants.%C.2)]
 // CHECK:STDOUT:     %T.ref.loc7_28: type = name_ref T, %T.loc7_6.1 [symbolic = %T.loc7_6.2 (constants.%T)]
 // CHECK:STDOUT:     %return: ref @F.%T.loc7_6.2 (%T) = var <return slot>
-// CHECK:STDOUT:     %param.loc7_6: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc7_6.1: type = bind_symbolic_name T, 0, %param.loc7_6 [symbolic = %T.loc7_6.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc7_16: @F.%C.loc7_20.2 (%C.2) = param runtime_param0
-// CHECK:STDOUT:     %p: @F.%C.loc7_20.2 (%C.2) = bind_name p, %param.loc7_16
+// CHECK:STDOUT:     %param.loc7_7: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc7_6.1: type = bind_symbolic_name T, 0, %param.loc7_7 [symbolic = %T.loc7_6.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc7_17: @F.%C.loc7_20.2 (%C.2) = param runtime_param0
+// CHECK:STDOUT:     %p: @F.%C.loc7_20.2 (%C.2) = bind_name p, %param.loc7_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %G.decl: %G.type = fn_decl @G [template = constants.%G] {
 // CHECK:STDOUT:     %p.patt: %C.3 = binding_pattern p
@@ -306,10 +306,10 @@ fn G() -> i32 {
 // CHECK:STDOUT:     %I.loc7_20.1: type = class_type @I, @I(constants.%T) [symbolic = %I.loc7_20.2 (constants.%I.2)]
 // CHECK:STDOUT:     %C.ref: type = name_ref C, file.%C.decl [template = constants.%C]
 // CHECK:STDOUT:     %return: ref %C = var <return slot>
-// CHECK:STDOUT:     %param.loc7_6: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc7_6.1: type = bind_symbolic_name T, 0, %param.loc7_6 [symbolic = %T.loc7_6.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc7_16: @F.%I.loc7_20.2 (%I.2) = param runtime_param0
-// CHECK:STDOUT:     %p: @F.%I.loc7_20.2 (%I.2) = bind_name p, %param.loc7_16
+// CHECK:STDOUT:     %param.loc7_7: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc7_6.1: type = bind_symbolic_name T, 0, %param.loc7_7 [symbolic = %T.loc7_6.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc7_17: @F.%I.loc7_20.2 (%I.2) = param runtime_param0
+// CHECK:STDOUT:     %p: @F.%I.loc7_20.2 (%I.2) = bind_name p, %param.loc7_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %G.decl: %G.type = fn_decl @G [template = constants.%G] {
 // CHECK:STDOUT:     %p.patt: %I.3 = binding_pattern p
@@ -509,12 +509,12 @@ fn G() -> i32 {
 // CHECK:STDOUT:     %.loc13_56.1: %.5 = tuple_literal (%T.ref.loc13_52, %U.ref.loc13_55)
 // CHECK:STDOUT:     %.loc13_56.2: type = converted %.loc13_56.1, constants.%.6 [symbolic = %.loc13_56.3 (constants.%.6)]
 // CHECK:STDOUT:     %return: ref @F.%.loc13_56.3 (%.6) = var <return slot>
-// CHECK:STDOUT:     %param.loc13_6: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc13_6.1: type = bind_symbolic_name T, 0, %param.loc13_6 [symbolic = %T.loc13_6.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc13_16: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %U.loc13_16.1: type = bind_symbolic_name U, 1, %param.loc13_16 [symbolic = %U.loc13_16.2 (constants.%U)]
-// CHECK:STDOUT:     %param.loc13_26: @F.%Inner.loc13_43.2 (%Inner.2) = param runtime_param0
-// CHECK:STDOUT:     %p: @F.%Inner.loc13_43.2 (%Inner.2) = bind_name p, %param.loc13_26
+// CHECK:STDOUT:     %param.loc13_7: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc13_6.1: type = bind_symbolic_name T, 0, %param.loc13_7 [symbolic = %T.loc13_6.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc13_17: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %U.loc13_16.1: type = bind_symbolic_name U, 1, %param.loc13_17 [symbolic = %U.loc13_16.2 (constants.%U)]
+// CHECK:STDOUT:     %param.loc13_27: @F.%Inner.loc13_43.2 (%Inner.2) = param runtime_param0
+// CHECK:STDOUT:     %p: @F.%Inner.loc13_43.2 (%Inner.2) = bind_name p, %param.loc13_27
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %G.decl: %G.type = fn_decl @G [template = constants.%G] {
 // CHECK:STDOUT:     %p.patt: %Inner.4 = binding_pattern p
@@ -798,10 +798,10 @@ fn G() -> i32 {
 // CHECK:STDOUT:     %.loc6_37.1: type = value_of_initializer %int.make_type_32.loc6_37 [template = i32]
 // CHECK:STDOUT:     %.loc6_37.2: type = converted %int.make_type_32.loc6_37, %.loc6_37.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc6_6: i32 = param runtime_param<invalid>
-// CHECK:STDOUT:     %N.loc6_6.1: i32 = bind_symbolic_name N, 0, %param.loc6_6 [symbolic = %N.loc6_6.2 (constants.%N)]
-// CHECK:STDOUT:     %param.loc6_15: @F.%WithNontype.loc6_29.2 (%WithNontype.2) = param runtime_param0
-// CHECK:STDOUT:     %x: @F.%WithNontype.loc6_29.2 (%WithNontype.2) = bind_name x, %param.loc6_15
+// CHECK:STDOUT:     %param.loc6_7: i32 = param runtime_param<invalid>
+// CHECK:STDOUT:     %N.loc6_6.1: i32 = bind_symbolic_name N, 0, %param.loc6_7 [symbolic = %N.loc6_6.2 (constants.%N)]
+// CHECK:STDOUT:     %param.loc6_16: @F.%WithNontype.loc6_29.2 (%WithNontype.2) = param runtime_param0
+// CHECK:STDOUT:     %x: @F.%WithNontype.loc6_29.2 (%WithNontype.2) = bind_name x, %param.loc6_16
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %G.decl: %G.type = fn_decl @G [template = constants.%G] {} {
 // CHECK:STDOUT:     %int.make_type_32: init type = call constants.%Int32() [template = i32]

+ 8 - 8
toolchain/check/testdata/deduce/int_float.carbon

@@ -99,10 +99,10 @@ fn G(a: f64) -> i32 {
 // CHECK:STDOUT:     %.loc4_34.1: type = value_of_initializer %int.make_type_32.loc4_34 [template = i32]
 // CHECK:STDOUT:     %.loc4_34.2: type = converted %int.make_type_32.loc4_34, %.loc4_34.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc4_6: i32 = param runtime_param<invalid>
-// CHECK:STDOUT:     %N.loc4_6.1: i32 = bind_symbolic_name N, 0, %param.loc4_6 [symbolic = %N.loc4_6.2 (constants.%N)]
-// CHECK:STDOUT:     %param.loc4_15: @F.%.loc4_26 (%.2) = param runtime_param0
-// CHECK:STDOUT:     %n: @F.%.loc4_26 (%.2) = bind_name n, %param.loc4_15
+// CHECK:STDOUT:     %param.loc4_7: i32 = param runtime_param<invalid>
+// CHECK:STDOUT:     %N.loc4_6.1: i32 = bind_symbolic_name N, 0, %param.loc4_7 [symbolic = %N.loc4_6.2 (constants.%N)]
+// CHECK:STDOUT:     %param.loc4_16: @F.%.loc4_26 (%.2) = param runtime_param0
+// CHECK:STDOUT:     %n: @F.%.loc4_26 (%.2) = bind_name n, %param.loc4_16
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %G.decl: %G.type = fn_decl @G [template = constants.%G] {
 // CHECK:STDOUT:     %a.patt: %.4 = binding_pattern a
@@ -224,10 +224,10 @@ fn G(a: f64) -> i32 {
 // CHECK:STDOUT:     %.loc8_36.1: type = value_of_initializer %int.make_type_32.loc8_36 [template = i32]
 // CHECK:STDOUT:     %.loc8_36.2: type = converted %int.make_type_32.loc8_36, %.loc8_36.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc8_6: i32 = param runtime_param<invalid>
-// CHECK:STDOUT:     %N.loc8_6.1: i32 = bind_symbolic_name N, 0, %param.loc8_6 [symbolic = %N.loc8_6.2 (constants.%N)]
-// CHECK:STDOUT:     %param.loc8_15: <error> = param runtime_param0
-// CHECK:STDOUT:     %n: <error> = bind_name n, %param.loc8_15
+// CHECK:STDOUT:     %param.loc8_7: i32 = param runtime_param<invalid>
+// CHECK:STDOUT:     %N.loc8_6.1: i32 = bind_symbolic_name N, 0, %param.loc8_7 [symbolic = %N.loc8_6.2 (constants.%N)]
+// CHECK:STDOUT:     %param.loc8_16: <error> = param runtime_param0
+// CHECK:STDOUT:     %n: <error> = bind_name n, %param.loc8_16
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %G.decl: %G.type = fn_decl @G [template = constants.%G] {
 // CHECK:STDOUT:     %a.patt: f64 = binding_pattern a

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

@@ -117,12 +117,12 @@ fn G(pair: (C, D)) -> D {
 // CHECK:STDOUT:     %.loc7_37.2: type = converted %.loc7_37.1, constants.%.4 [symbolic = %.loc7_37.3 (constants.%.4)]
 // CHECK:STDOUT:     %U.ref.loc7_43: type = name_ref U, %U.loc7_16.1 [symbolic = %U.loc7_16.2 (constants.%U)]
 // CHECK:STDOUT:     %return: ref @F.%U.loc7_16.2 (%U) = var <return slot>
-// CHECK:STDOUT:     %param.loc7_6: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc7_6.1: type = bind_symbolic_name T, 0, %param.loc7_6 [symbolic = %T.loc7_6.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc7_16: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %U.loc7_16.1: type = bind_symbolic_name U, 1, %param.loc7_16 [symbolic = %U.loc7_16.2 (constants.%U)]
-// CHECK:STDOUT:     %param.loc7_26: @F.%.loc7_37.3 (%.4) = param runtime_param0
-// CHECK:STDOUT:     %pair: @F.%.loc7_37.3 (%.4) = bind_name pair, %param.loc7_26
+// CHECK:STDOUT:     %param.loc7_7: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc7_6.1: type = bind_symbolic_name T, 0, %param.loc7_7 [symbolic = %T.loc7_6.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc7_17: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %U.loc7_16.1: type = bind_symbolic_name U, 1, %param.loc7_17 [symbolic = %U.loc7_16.2 (constants.%U)]
+// CHECK:STDOUT:     %param.loc7_30: @F.%.loc7_37.3 (%.4) = param runtime_param0
+// CHECK:STDOUT:     %pair: @F.%.loc7_37.3 (%.4) = bind_name pair, %param.loc7_30
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %G.decl: %G.type = fn_decl @G [template = constants.%G] {
 // CHECK:STDOUT:     %pair.patt: %.8 = binding_pattern pair
@@ -312,12 +312,12 @@ fn G(pair: (C, D)) -> D {
 // CHECK:STDOUT:     %.loc6_47.1: type = value_of_initializer %int.make_type_32.loc6_47 [template = i32]
 // CHECK:STDOUT:     %.loc6_47.2: type = converted %int.make_type_32.loc6_47, %.loc6_47.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc6_6: i32 = param runtime_param<invalid>
-// CHECK:STDOUT:     %A.loc6_6.1: i32 = bind_symbolic_name A, 0, %param.loc6_6 [symbolic = %A.loc6_6.2 (constants.%A)]
-// CHECK:STDOUT:     %param.loc6_15: i32 = param runtime_param<invalid>
-// CHECK:STDOUT:     %B.loc6_15.1: i32 = bind_symbolic_name B, 1, %param.loc6_15 [symbolic = %B.loc6_15.2 (constants.%B)]
-// CHECK:STDOUT:     %param.loc6_24: @F.%HasPair.loc6_34.2 (%HasPair.3) = param runtime_param0
-// CHECK:STDOUT:     %h: @F.%HasPair.loc6_34.2 (%HasPair.3) = bind_name h, %param.loc6_24
+// CHECK:STDOUT:     %param.loc6_7: i32 = param runtime_param<invalid>
+// CHECK:STDOUT:     %A.loc6_6.1: i32 = bind_symbolic_name A, 0, %param.loc6_7 [symbolic = %A.loc6_6.2 (constants.%A)]
+// CHECK:STDOUT:     %param.loc6_16: i32 = param runtime_param<invalid>
+// CHECK:STDOUT:     %B.loc6_15.1: i32 = bind_symbolic_name B, 1, %param.loc6_16 [symbolic = %B.loc6_15.2 (constants.%B)]
+// CHECK:STDOUT:     %param.loc6_25: @F.%HasPair.loc6_34.2 (%HasPair.3) = param runtime_param0
+// CHECK:STDOUT:     %h: @F.%HasPair.loc6_34.2 (%HasPair.3) = bind_name h, %param.loc6_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %G.decl: %G.type = fn_decl @G [template = constants.%G] {
 // CHECK:STDOUT:     %h.patt: %HasPair.4 = binding_pattern h
@@ -485,10 +485,10 @@ fn G(pair: (C, D)) -> D {
 // CHECK:STDOUT:     %.loc7_27.2: type = converted %.loc7_27.1, constants.%.4 [symbolic = %.loc7_27.3 (constants.%.4)]
 // CHECK:STDOUT:     %T.ref.loc7_33: type = name_ref T, %T.loc7_6.1 [symbolic = %T.loc7_6.2 (constants.%T)]
 // CHECK:STDOUT:     %return: ref @F.%T.loc7_6.2 (%T) = var <return slot>
-// CHECK:STDOUT:     %param.loc7_6: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc7_6.1: type = bind_symbolic_name T, 0, %param.loc7_6 [symbolic = %T.loc7_6.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc7_16: @F.%.loc7_27.3 (%.4) = param runtime_param0
-// CHECK:STDOUT:     %pair: @F.%.loc7_27.3 (%.4) = bind_name pair, %param.loc7_16
+// CHECK:STDOUT:     %param.loc7_7: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc7_6.1: type = bind_symbolic_name T, 0, %param.loc7_7 [symbolic = %T.loc7_6.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc7_20: @F.%.loc7_27.3 (%.4) = param runtime_param0
+// CHECK:STDOUT:     %pair: @F.%.loc7_27.3 (%.4) = bind_name pair, %param.loc7_20
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %G.decl: %G.type = fn_decl @G [template = constants.%G] {
 // CHECK:STDOUT:     %pair.patt: %.6 = binding_pattern pair

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

@@ -114,10 +114,10 @@ fn G(p: C*) -> const C {
 // CHECK:STDOUT:     %.loc6_20.1: type = ptr_type %T [symbolic = %.loc6_20.2 (constants.%.3)]
 // CHECK:STDOUT:     %T.ref.loc6_26: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)]
 // CHECK:STDOUT:     %return: ref @F.%T.loc6_6.2 (%T) = var <return slot>
-// CHECK:STDOUT:     %param.loc6_6: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc6_6.1: type = bind_symbolic_name T, 0, %param.loc6_6 [symbolic = %T.loc6_6.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc6_16: @F.%.loc6_20.2 (%.3) = param runtime_param0
-// CHECK:STDOUT:     %p: @F.%.loc6_20.2 (%.3) = bind_name p, %param.loc6_16
+// CHECK:STDOUT:     %param.loc6_7: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc6_6.1: type = bind_symbolic_name T, 0, %param.loc6_7 [symbolic = %T.loc6_6.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc6_17: @F.%.loc6_20.2 (%.3) = param runtime_param0
+// CHECK:STDOUT:     %p: @F.%.loc6_20.2 (%.3) = bind_name p, %param.loc6_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %G.decl: %G.type = fn_decl @G [template = constants.%G] {
 // CHECK:STDOUT:     %p.patt: %.6 = binding_pattern p
@@ -248,10 +248,10 @@ fn G(p: C*) -> const C {
 // CHECK:STDOUT:     %.loc6_26.1: type = ptr_type %.3 [symbolic = %.loc6_26.2 (constants.%.4)]
 // CHECK:STDOUT:     %T.ref.loc6_32: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)]
 // CHECK:STDOUT:     %return: ref @F.%T.loc6_6.2 (%T) = var <return slot>
-// CHECK:STDOUT:     %param.loc6_6: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc6_6.1: type = bind_symbolic_name T, 0, %param.loc6_6 [symbolic = %T.loc6_6.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc6_16: @F.%.loc6_26.2 (%.4) = param runtime_param0
-// CHECK:STDOUT:     %p: @F.%.loc6_26.2 (%.4) = bind_name p, %param.loc6_16
+// CHECK:STDOUT:     %param.loc6_7: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc6_6.1: type = bind_symbolic_name T, 0, %param.loc6_7 [symbolic = %T.loc6_6.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc6_17: @F.%.loc6_26.2 (%.4) = param runtime_param0
+// CHECK:STDOUT:     %p: @F.%.loc6_26.2 (%.4) = bind_name p, %param.loc6_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %G.decl: %G.type = fn_decl @G [template = constants.%G] {
 // CHECK:STDOUT:     %p.patt: %.8 = binding_pattern p
@@ -385,10 +385,10 @@ fn G(p: C*) -> const C {
 // CHECK:STDOUT:     %.loc6_20.1: type = ptr_type %T [symbolic = %.loc6_20.2 (constants.%.3)]
 // CHECK:STDOUT:     %T.ref.loc6_26: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)]
 // CHECK:STDOUT:     %return: ref @F.%T.loc6_6.2 (%T) = var <return slot>
-// CHECK:STDOUT:     %param.loc6_6: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc6_6.1: type = bind_symbolic_name T, 0, %param.loc6_6 [symbolic = %T.loc6_6.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc6_16: @F.%.loc6_20.2 (%.3) = param runtime_param0
-// CHECK:STDOUT:     %p: @F.%.loc6_20.2 (%.3) = bind_name p, %param.loc6_16
+// CHECK:STDOUT:     %param.loc6_7: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc6_6.1: type = bind_symbolic_name T, 0, %param.loc6_7 [symbolic = %T.loc6_6.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc6_17: @F.%.loc6_20.2 (%.3) = param runtime_param0
+// CHECK:STDOUT:     %p: @F.%.loc6_20.2 (%.3) = bind_name p, %param.loc6_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %G.decl: %G.type = fn_decl @G [template = constants.%G] {
 // CHECK:STDOUT:     %p.patt: %.7 = binding_pattern p
@@ -520,10 +520,10 @@ fn G(p: C*) -> const C {
 // CHECK:STDOUT:     %.loc6_26.1: type = ptr_type %.3 [symbolic = %.loc6_26.2 (constants.%.4)]
 // CHECK:STDOUT:     %T.ref.loc6_32: type = name_ref T, %T.loc6_6.1 [symbolic = %T.loc6_6.2 (constants.%T)]
 // CHECK:STDOUT:     %return: ref @F.%T.loc6_6.2 (%T) = var <return slot>
-// CHECK:STDOUT:     %param.loc6_6: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc6_6.1: type = bind_symbolic_name T, 0, %param.loc6_6 [symbolic = %T.loc6_6.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc6_16: @F.%.loc6_26.2 (%.4) = param runtime_param0
-// CHECK:STDOUT:     %p: @F.%.loc6_26.2 (%.4) = bind_name p, %param.loc6_16
+// CHECK:STDOUT:     %param.loc6_7: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc6_6.1: type = bind_symbolic_name T, 0, %param.loc6_7 [symbolic = %T.loc6_6.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc6_17: @F.%.loc6_26.2 (%.4) = param runtime_param0
+// CHECK:STDOUT:     %p: @F.%.loc6_26.2 (%.4) = bind_name p, %param.loc6_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %G.decl: %G.type = fn_decl @G [template = constants.%G] {
 // CHECK:STDOUT:     %p.patt: %.7 = binding_pattern p

+ 4 - 4
toolchain/check/testdata/function/builtin/call.carbon

@@ -65,10 +65,10 @@ var arr: [i32; Add(1, 2)];
 // CHECK:STDOUT:     %.loc11_27.1: type = value_of_initializer %int.make_type_32.loc11_27 [template = i32]
 // CHECK:STDOUT:     %.loc11_27.2: type = converted %int.make_type_32.loc11_27, %.loc11_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc11_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc11_8
-// CHECK:STDOUT:     %param.loc11_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc11_16
+// CHECK:STDOUT:     %param.loc11_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc11_9
+// CHECK:STDOUT:     %param.loc11_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc11_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %int.make_type_32: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:   %Add.ref: %Add.type = name_ref Add, %Add.decl [template = constants.%Add]

+ 4 - 4
toolchain/check/testdata/function/builtin/definition.carbon

@@ -57,10 +57,10 @@ fn Add(a: i32, b: i32) -> i32 = "int.sadd";
 // CHECK:STDOUT:     %.loc11_27.1: type = value_of_initializer %int.make_type_32.loc11_27 [template = i32]
 // CHECK:STDOUT:     %.loc11_27.2: type = converted %int.make_type_32.loc11_27, %.loc11_27.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc11_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc11_8
-// CHECK:STDOUT:     %param.loc11_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc11_16
+// CHECK:STDOUT:     %param.loc11_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc11_9
+// CHECK:STDOUT:     %param.loc11_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc11_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

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

@@ -90,10 +90,10 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd";
 // CHECK:STDOUT:     %.loc11_25.1: type = value_of_initializer %int.make_type_32.loc11_25 [template = i32]
 // CHECK:STDOUT:     %.loc11_25.2: type = converted %int.make_type_32.loc11_25, %.loc11_25.1 [template = i32]
 // CHECK:STDOUT:     %return.var.loc11: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc11_6: i32 = param runtime_param0
-// CHECK:STDOUT:     %n.loc11: i32 = bind_name n, %param.loc11_6
-// CHECK:STDOUT:     %param.loc11_14: i32 = param runtime_param1
-// CHECK:STDOUT:     %m.loc11: i32 = bind_name m, %param.loc11_14
+// CHECK:STDOUT:     %param.loc11_7: i32 = param runtime_param0
+// CHECK:STDOUT:     %n.loc11: i32 = bind_name n, %param.loc11_7
+// CHECK:STDOUT:     %param.loc11_15: i32 = param runtime_param1
+// CHECK:STDOUT:     %m.loc11: i32 = bind_name m, %param.loc11_15
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %A.decl.loc19: %A.type = fn_decl @A [template = constants.%A] {
 // CHECK:STDOUT:     %n.patt: i32 = binding_pattern n
@@ -111,10 +111,10 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd";
 // CHECK:STDOUT:     %.loc19_25.1: type = value_of_initializer %int.make_type_32.loc19_25 [template = i32]
 // CHECK:STDOUT:     %.loc19_25.2: type = converted %int.make_type_32.loc19_25, %.loc19_25.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc19_6: i32 = param runtime_param0
-// CHECK:STDOUT:     %n.loc19: i32 = bind_name n, %param.loc19_6
-// CHECK:STDOUT:     %param.loc19_14: i32 = param runtime_param1
-// CHECK:STDOUT:     %m.loc19: i32 = bind_name m, %param.loc19_14
+// CHECK:STDOUT:     %param.loc19_7: i32 = param runtime_param0
+// CHECK:STDOUT:     %n.loc19: i32 = bind_name n, %param.loc19_7
+// CHECK:STDOUT:     %param.loc19_15: i32 = param runtime_param1
+// CHECK:STDOUT:     %m.loc19: i32 = bind_name m, %param.loc19_15
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %B.decl.loc21: %B.type = fn_decl @B [template = constants.%B] {
 // CHECK:STDOUT:     %n.patt: i32 = binding_pattern n
@@ -132,10 +132,10 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd";
 // CHECK:STDOUT:     %.loc21_25.1: type = value_of_initializer %int.make_type_32.loc21_25 [template = i32]
 // CHECK:STDOUT:     %.loc21_25.2: type = converted %int.make_type_32.loc21_25, %.loc21_25.1 [template = i32]
 // CHECK:STDOUT:     %return.var.loc21: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc21_6: i32 = param runtime_param0
-// CHECK:STDOUT:     %n.loc21: i32 = bind_name n, %param.loc21_6
-// CHECK:STDOUT:     %param.loc21_14: i32 = param runtime_param1
-// CHECK:STDOUT:     %m.loc21: i32 = bind_name m, %param.loc21_14
+// CHECK:STDOUT:     %param.loc21_7: i32 = param runtime_param0
+// CHECK:STDOUT:     %n.loc21: i32 = bind_name n, %param.loc21_7
+// CHECK:STDOUT:     %param.loc21_15: i32 = param runtime_param1
+// CHECK:STDOUT:     %m.loc21: i32 = bind_name m, %param.loc21_15
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %B.decl.loc29: %B.type = fn_decl @B [template = constants.%B] {
 // CHECK:STDOUT:     %n.patt: i32 = binding_pattern n
@@ -153,10 +153,10 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd";
 // CHECK:STDOUT:     %.loc29_25.1: type = value_of_initializer %int.make_type_32.loc29_25 [template = i32]
 // CHECK:STDOUT:     %.loc29_25.2: type = converted %int.make_type_32.loc29_25, %.loc29_25.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc29_6: i32 = param runtime_param0
-// CHECK:STDOUT:     %n.loc29: i32 = bind_name n, %param.loc29_6
-// CHECK:STDOUT:     %param.loc29_14: i32 = param runtime_param1
-// CHECK:STDOUT:     %m.loc29: i32 = bind_name m, %param.loc29_14
+// CHECK:STDOUT:     %param.loc29_7: i32 = param runtime_param0
+// CHECK:STDOUT:     %n.loc29: i32 = bind_name n, %param.loc29_7
+// CHECK:STDOUT:     %param.loc29_15: i32 = param runtime_param1
+// CHECK:STDOUT:     %m.loc29: i32 = bind_name m, %param.loc29_15
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %C.decl.loc31: %C.type = fn_decl @C [template = constants.%C] {
 // CHECK:STDOUT:     %n.patt: i32 = binding_pattern n
@@ -174,10 +174,10 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd";
 // CHECK:STDOUT:     %.loc31_25.1: type = value_of_initializer %int.make_type_32.loc31_25 [template = i32]
 // CHECK:STDOUT:     %.loc31_25.2: type = converted %int.make_type_32.loc31_25, %.loc31_25.1 [template = i32]
 // CHECK:STDOUT:     %return.var.loc31: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc31_6: i32 = param runtime_param0
-// CHECK:STDOUT:     %n.loc31: i32 = bind_name n, %param.loc31_6
-// CHECK:STDOUT:     %param.loc31_14: i32 = param runtime_param1
-// CHECK:STDOUT:     %m.loc31: i32 = bind_name m, %param.loc31_14
+// CHECK:STDOUT:     %param.loc31_7: i32 = param runtime_param0
+// CHECK:STDOUT:     %n.loc31: i32 = bind_name n, %param.loc31_7
+// CHECK:STDOUT:     %param.loc31_15: i32 = param runtime_param1
+// CHECK:STDOUT:     %m.loc31: i32 = bind_name m, %param.loc31_15
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %C.decl.loc38: %C.type = fn_decl @C [template = constants.%C] {
 // CHECK:STDOUT:     %n.patt: i32 = binding_pattern n
@@ -195,10 +195,10 @@ fn C(n: i32, m: i32) -> i32 = "int.sadd";
 // CHECK:STDOUT:     %.loc38_25.1: type = value_of_initializer %int.make_type_32.loc38_25 [template = i32]
 // CHECK:STDOUT:     %.loc38_25.2: type = converted %int.make_type_32.loc38_25, %.loc38_25.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc38_6: i32 = param runtime_param0
-// CHECK:STDOUT:     %n.loc38: i32 = bind_name n, %param.loc38_6
-// CHECK:STDOUT:     %param.loc38_14: i32 = param runtime_param1
-// CHECK:STDOUT:     %m.loc38: i32 = bind_name m, %param.loc38_14
+// CHECK:STDOUT:     %param.loc38_7: i32 = param runtime_param0
+// CHECK:STDOUT:     %n.loc38: i32 = bind_name n, %param.loc38_7
+// CHECK:STDOUT:     %param.loc38_15: i32 = param runtime_param1
+// CHECK:STDOUT:     %m.loc38: i32 = bind_name m, %param.loc38_15
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 8 - 8
toolchain/check/testdata/function/builtin/method.carbon

@@ -103,10 +103,10 @@ var arr: [i32; 1.(I.F)(2)];
 // CHECK:STDOUT:     %.loc12_36.1: type = facet_type_access %Self.ref.loc12_36 [symbolic = %Self (constants.%Self)]
 // CHECK:STDOUT:     %.loc12_36.2: type = converted %Self.ref.loc12_36, %.loc12_36.1 [symbolic = %Self (constants.%Self)]
 // CHECK:STDOUT:     %return: ref @F.1.%Self (%Self) = var <return slot>
-// CHECK:STDOUT:     %param.loc12_8: @F.1.%Self (%Self) = param runtime_param0
-// CHECK:STDOUT:     %self: @F.1.%Self (%Self) = bind_name self, %param.loc12_8
-// CHECK:STDOUT:     %param.loc12_20: @F.1.%Self (%Self) = param runtime_param1
-// CHECK:STDOUT:     %other: @F.1.%Self (%Self) = bind_name other, %param.loc12_20
+// CHECK:STDOUT:     %param.loc12_12: @F.1.%Self (%Self) = param runtime_param0
+// CHECK:STDOUT:     %self: @F.1.%Self (%Self) = bind_name self, %param.loc12_12
+// CHECK:STDOUT:     %param.loc12_25: @F.1.%Self (%Self) = param runtime_param1
+// CHECK:STDOUT:     %other: @F.1.%Self (%Self) = bind_name other, %param.loc12_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %.loc12: %.2 = assoc_entity element0, %F.decl [template = constants.%.3]
 // CHECK:STDOUT:
@@ -133,10 +133,10 @@ var arr: [i32; 1.(I.F)(2)];
 // CHECK:STDOUT:     %.loc16_34.1: type = value_of_initializer %int.make_type_32.loc16_34 [template = i32]
 // CHECK:STDOUT:     %.loc16_34.2: type = converted %int.make_type_32.loc16_34, %.loc16_34.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc16_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %self: i32 = bind_name self, %param.loc16_8
-// CHECK:STDOUT:     %param.loc16_19: i32 = param runtime_param1
-// CHECK:STDOUT:     %other: i32 = bind_name other, %param.loc16_19
+// CHECK:STDOUT:     %param.loc16_12: i32 = param runtime_param0
+// CHECK:STDOUT:     %self: i32 = bind_name self, %param.loc16_12
+// CHECK:STDOUT:     %param.loc16_24: i32 = param runtime_param1
+// CHECK:STDOUT:     %other: i32 = bind_name other, %param.loc16_24
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %.loc15_15: <witness> = interface_witness (%F.decl) [template = constants.%.4]
 // CHECK:STDOUT:

+ 8 - 8
toolchain/check/testdata/function/builtin/no_prelude/call_from_operator.carbon

@@ -73,10 +73,10 @@ var arr: [i32; 1 + 2] = (3, 4, 3 + 4);
 // CHECK:STDOUT:     %.loc7_37.1: type = facet_type_access %Self.ref.loc7_37 [symbolic = %Self (constants.%Self)]
 // CHECK:STDOUT:     %.loc7_37.2: type = converted %Self.ref.loc7_37, %.loc7_37.1 [symbolic = %Self (constants.%Self)]
 // CHECK:STDOUT:     %return: ref @Op.%Self (%Self) = var <return slot>
-// CHECK:STDOUT:     %param.loc7_9: @Op.%Self (%Self) = param runtime_param0
-// CHECK:STDOUT:     %self: @Op.%Self (%Self) = bind_name self, %param.loc7_9
-// CHECK:STDOUT:     %param.loc7_21: @Op.%Self (%Self) = param runtime_param1
-// CHECK:STDOUT:     %other: @Op.%Self (%Self) = bind_name other, %param.loc7_21
+// CHECK:STDOUT:     %param.loc7_13: @Op.%Self (%Self) = param runtime_param0
+// CHECK:STDOUT:     %self: @Op.%Self (%Self) = bind_name self, %param.loc7_13
+// CHECK:STDOUT:     %param.loc7_26: @Op.%Self (%Self) = param runtime_param1
+// CHECK:STDOUT:     %other: @Op.%Self (%Self) = bind_name other, %param.loc7_26
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %.loc7: %.2 = assoc_entity element0, %Op.decl [template = constants.%.3]
 // CHECK:STDOUT:
@@ -186,10 +186,10 @@ var arr: [i32; 1 + 2] = (3, 4, 3 + 4);
 // CHECK:STDOUT:     %Self.ref.loc7_28: type = name_ref Self, @impl.%.loc6_6.2 [template = i32]
 // CHECK:STDOUT:     %Self.ref.loc7_37: type = name_ref Self, @impl.%.loc6_6.2 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc7_9: i32 = param runtime_param0
-// CHECK:STDOUT:     %self: i32 = bind_name self, %param.loc7_9
-// CHECK:STDOUT:     %param.loc7_21: i32 = param runtime_param1
-// CHECK:STDOUT:     %other: i32 = bind_name other, %param.loc7_21
+// CHECK:STDOUT:     %param.loc7_13: i32 = param runtime_param0
+// CHECK:STDOUT:     %self: i32 = bind_name self, %param.loc7_13
+// CHECK:STDOUT:     %param.loc7_26: i32 = param runtime_param1
+// CHECK:STDOUT:     %other: i32 = bind_name other, %param.loc7_26
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %.loc6_22: <witness> = interface_witness (%Op.decl) [template = constants.%.2]
 // CHECK:STDOUT:

+ 4 - 4
toolchain/check/testdata/function/builtin/no_prelude/import.carbon

@@ -55,10 +55,10 @@ var arr: [i32; Core.TestAdd(1, 2)] = (1, 2, 3);
 // CHECK:STDOUT:     %.loc5_31.1: type = value_of_initializer %int.make_type_32.loc5_31 [template = i32]
 // CHECK:STDOUT:     %.loc5_31.2: type = converted %int.make_type_32.loc5_31, %.loc5_31.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc5_12: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc5_12
-// CHECK:STDOUT:     %param.loc5_20: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc5_20
+// CHECK:STDOUT:     %param.loc5_13: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc5_13
+// CHECK:STDOUT:     %param.loc5_21: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc5_21
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 4 - 4
toolchain/check/testdata/function/call/fail_param_count.carbon

@@ -129,10 +129,10 @@ fn Main() {
 // CHECK:STDOUT:     %int.make_type_32.loc13_20: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:     %.loc13_20.1: type = value_of_initializer %int.make_type_32.loc13_20 [template = i32]
 // CHECK:STDOUT:     %.loc13_20.2: type = converted %int.make_type_32.loc13_20, %.loc13_20.1 [template = i32]
-// CHECK:STDOUT:     %param.loc13_9: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc13_9
-// CHECK:STDOUT:     %param.loc13_17: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc13_17
+// CHECK:STDOUT:     %param.loc13_10: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc13_10
+// CHECK:STDOUT:     %param.loc13_18: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc13_18
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Main.decl: %Main.type = fn_decl @Main [template = constants.%Main] {} {}
 // CHECK:STDOUT: }

+ 4 - 4
toolchain/check/testdata/function/call/more_param_ir.carbon

@@ -68,10 +68,10 @@ fn Main() {
 // CHECK:STDOUT:     %int.make_type_32.loc11_19: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:     %.loc11_19.1: type = value_of_initializer %int.make_type_32.loc11_19 [template = i32]
 // CHECK:STDOUT:     %.loc11_19.2: type = converted %int.make_type_32.loc11_19, %.loc11_19.1 [template = i32]
-// CHECK:STDOUT:     %param.loc11_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc11_8
-// CHECK:STDOUT:     %param.loc11_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc11_16
+// CHECK:STDOUT:     %param.loc11_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc11_9
+// CHECK:STDOUT:     %param.loc11_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc11_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Main.decl: %Main.type = fn_decl @Main [template = constants.%Main] {} {}
 // CHECK:STDOUT: }

+ 4 - 9
toolchain/check/testdata/function/call/no_prelude/fail_runtime_implicit_param.carbon

@@ -10,7 +10,7 @@
 
 // CHECK:STDERR: fail_runtime_implicit_param.carbon:[[@LINE+3]]:6: error(ImplictParamMustBeConstant): implicit parameters of functions must be constant or `self`
 // CHECK:STDERR: fn F[s: ()]();
-// CHECK:STDERR:      ^
+// CHECK:STDERR:      ^~~~~
 fn F[s: ()]();
 
 fn Run() {
@@ -32,24 +32,19 @@ fn Run() {
 // CHECK:STDOUT:     .F = %F.decl
 // CHECK:STDOUT:     .Run = %Run.decl
 // CHECK:STDOUT:   }
-// CHECK:STDOUT:   %F.decl: %F.type = fn_decl @F [template = constants.%F] {
-// CHECK:STDOUT:     %s.patt: %.1 = binding_pattern s
-// CHECK:STDOUT:     %s.param_patt: %.1 = param_pattern %s.patt, runtime_param<invalid>
-// CHECK:STDOUT:   } {
+// CHECK:STDOUT:   %F.decl: %F.type = fn_decl @F [template = constants.%F] {} {
 // CHECK:STDOUT:     %.loc14_10.1: %.1 = tuple_literal ()
 // CHECK:STDOUT:     %.loc14_10.2: type = converted %.loc14_10.1, constants.%.1 [template = constants.%.1]
-// CHECK:STDOUT:     %param: %.1 = param runtime_param<invalid>
-// CHECK:STDOUT:     %s: %.1 = bind_name s, %param
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Run.decl: %Run.type = fn_decl @Run [template = constants.%Run] {} {}
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
-// CHECK:STDOUT: fn @F[%s.param_patt: %.1]();
+// CHECK:STDOUT: fn @F[<error>: <error>]();
 // CHECK:STDOUT:
 // CHECK:STDOUT: fn @Run() {
 // CHECK:STDOUT: !entry:
 // CHECK:STDOUT:   %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F]
-// CHECK:STDOUT:   %F.call: init %.1 = call %F.ref()
+// CHECK:STDOUT:   %F.call: init %.1 = call %F.ref(<invalid>) [template = <error>]
 // CHECK:STDOUT:   return
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 4 - 4
toolchain/check/testdata/function/call/params_two.carbon

@@ -62,10 +62,10 @@ fn Main() {
 // CHECK:STDOUT:     %int.make_type_32.loc11_19: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:     %.loc11_19.1: type = value_of_initializer %int.make_type_32.loc11_19 [template = i32]
 // CHECK:STDOUT:     %.loc11_19.2: type = converted %int.make_type_32.loc11_19, %.loc11_19.1 [template = i32]
-// CHECK:STDOUT:     %param.loc11_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc11_8
-// CHECK:STDOUT:     %param.loc11_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc11_16
+// CHECK:STDOUT:     %param.loc11_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc11_9
+// CHECK:STDOUT:     %param.loc11_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc11_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Main.decl: %Main.type = fn_decl @Main [template = constants.%Main] {} {}
 // CHECK:STDOUT: }

+ 4 - 4
toolchain/check/testdata/function/call/params_two_comma.carbon

@@ -63,10 +63,10 @@ fn Main() {
 // CHECK:STDOUT:     %int.make_type_32.loc11_19: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:     %.loc11_19.1: type = value_of_initializer %int.make_type_32.loc11_19 [template = i32]
 // CHECK:STDOUT:     %.loc11_19.2: type = converted %int.make_type_32.loc11_19, %.loc11_19.1 [template = i32]
-// CHECK:STDOUT:     %param.loc11_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc11_8
-// CHECK:STDOUT:     %param.loc11_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc11_16
+// CHECK:STDOUT:     %param.loc11_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc11_9
+// CHECK:STDOUT:     %param.loc11_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc11_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %Main.decl: %Main.type = fn_decl @Main [template = constants.%Main] {} {}
 // CHECK:STDOUT: }

+ 4 - 4
toolchain/check/testdata/function/declaration/fail_param_in_type.carbon

@@ -56,10 +56,10 @@ fn F(n: i32, a: [i32; n]*);
 // CHECK:STDOUT:     %int.make_type_32.loc14_18: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:     %n.ref: i32 = name_ref n, %n
 // CHECK:STDOUT:     %.loc14_25: type = ptr_type <error> [template = <error>]
-// CHECK:STDOUT:     %param.loc14_6: i32 = param runtime_param0
-// CHECK:STDOUT:     %n: i32 = bind_name n, %param.loc14_6
-// CHECK:STDOUT:     %param.loc14_14: <error> = param runtime_param1
-// CHECK:STDOUT:     %a: <error> = bind_name a, %param.loc14_14
+// CHECK:STDOUT:     %param.loc14_7: i32 = param runtime_param0
+// CHECK:STDOUT:     %n: i32 = bind_name n, %param.loc14_7
+// CHECK:STDOUT:     %param.loc14_15: <error> = param runtime_param1
+// CHECK:STDOUT:     %a: <error> = bind_name a, %param.loc14_15
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 4 - 4
toolchain/check/testdata/function/declaration/fail_param_redecl.carbon

@@ -59,10 +59,10 @@ fn F(n: i32, n: i32);
 // CHECK:STDOUT:     %int.make_type_32.loc17_17: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:     %.loc17_17.1: type = value_of_initializer %int.make_type_32.loc17_17 [template = i32]
 // CHECK:STDOUT:     %.loc17_17.2: type = converted %int.make_type_32.loc17_17, %.loc17_17.1 [template = i32]
-// CHECK:STDOUT:     %param.loc17_6: i32 = param runtime_param0
-// CHECK:STDOUT:     %n.loc17_6: i32 = bind_name n, %param.loc17_6
-// CHECK:STDOUT:     %param.loc17_14: i32 = param runtime_param1
-// CHECK:STDOUT:     %n.loc17_14: i32 = bind_name n, %param.loc17_14
+// CHECK:STDOUT:     %param.loc17_7: i32 = param runtime_param0
+// CHECK:STDOUT:     %n.loc17_6: i32 = bind_name n, %param.loc17_7
+// CHECK:STDOUT:     %param.loc17_15: i32 = param runtime_param1
+// CHECK:STDOUT:     %n.loc17_14: i32 = bind_name n, %param.loc17_15
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 4 - 4
toolchain/check/testdata/function/definition/params_two.carbon

@@ -53,10 +53,10 @@ fn Foo(a: i32, b: i32) {}
 // CHECK:STDOUT:     %int.make_type_32.loc11_19: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:     %.loc11_19.1: type = value_of_initializer %int.make_type_32.loc11_19 [template = i32]
 // CHECK:STDOUT:     %.loc11_19.2: type = converted %int.make_type_32.loc11_19, %.loc11_19.1 [template = i32]
-// CHECK:STDOUT:     %param.loc11_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc11_8
-// CHECK:STDOUT:     %param.loc11_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc11_16
+// CHECK:STDOUT:     %param.loc11_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc11_9
+// CHECK:STDOUT:     %param.loc11_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc11_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 4 - 4
toolchain/check/testdata/function/definition/params_two_comma.carbon

@@ -53,10 +53,10 @@ fn Foo(a: i32, b: i32,) {}
 // CHECK:STDOUT:     %int.make_type_32.loc11_19: init type = call constants.%Int32() [template = i32]
 // CHECK:STDOUT:     %.loc11_19.1: type = value_of_initializer %int.make_type_32.loc11_19 [template = i32]
 // CHECK:STDOUT:     %.loc11_19.2: type = converted %int.make_type_32.loc11_19, %.loc11_19.1 [template = i32]
-// CHECK:STDOUT:     %param.loc11_8: i32 = param runtime_param0
-// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc11_8
-// CHECK:STDOUT:     %param.loc11_16: i32 = param runtime_param1
-// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc11_16
+// CHECK:STDOUT:     %param.loc11_9: i32 = param runtime_param0
+// CHECK:STDOUT:     %a: i32 = bind_name a, %param.loc11_9
+// CHECK:STDOUT:     %param.loc11_17: i32 = param runtime_param1
+// CHECK:STDOUT:     %b: i32 = bind_name b, %param.loc11_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 28 - 28
toolchain/check/testdata/function/generic/deduce.carbon

@@ -497,10 +497,10 @@ fn CallImplicitNotDeducible() {
 // CHECK:STDOUT:     %T.ref.loc6_46: type = name_ref T, %T.loc6_27.1 [symbolic = %T.loc6_27.2 (constants.%T)]
 // CHECK:STDOUT:     %.loc6_47.1: type = ptr_type %T [symbolic = %.loc6_47.2 (constants.%.3)]
 // CHECK:STDOUT:     %return: ref @ExplicitAndAlsoDeduced.%.loc6_47.2 (%.3) = var <return slot>
-// CHECK:STDOUT:     %param.loc6_27: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc6_27.1: type = bind_symbolic_name T, 0, %param.loc6_27 [symbolic = %T.loc6_27.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc6_37: @ExplicitAndAlsoDeduced.%T.loc6_27.2 (%T) = param runtime_param0
-// CHECK:STDOUT:     %x: @ExplicitAndAlsoDeduced.%T.loc6_27.2 (%T) = bind_name x, %param.loc6_37
+// CHECK:STDOUT:     %param.loc6_28: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc6_27.1: type = bind_symbolic_name T, 0, %param.loc6_28 [symbolic = %T.loc6_27.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc6_38: @ExplicitAndAlsoDeduced.%T.loc6_27.2 (%T) = param runtime_param0
+// CHECK:STDOUT:     %x: @ExplicitAndAlsoDeduced.%T.loc6_27.2 (%T) = bind_name x, %param.loc6_38
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %CallExplicitAndAlsoDeduced.decl: %CallExplicitAndAlsoDeduced.type = fn_decl @CallExplicitAndAlsoDeduced [template = constants.%CallExplicitAndAlsoDeduced] {} {
 // CHECK:STDOUT:     %A.ref.loc10: type = name_ref A, file.%A.decl [template = constants.%A]
@@ -628,10 +628,10 @@ fn CallImplicitNotDeducible() {
 // CHECK:STDOUT:     %T.ref.loc4_44: type = name_ref T, %T.loc4_25.1 [symbolic = %T.loc4_25.2 (constants.%T)]
 // CHECK:STDOUT:     %.loc4_45.1: type = ptr_type %T [symbolic = %.loc4_45.2 (constants.%.1)]
 // CHECK:STDOUT:     %return: ref @ImplicitGenericParam.%.loc4_45.2 (%.1) = var <return slot>
-// CHECK:STDOUT:     %param.loc4_25: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc4_25.1: type = bind_symbolic_name T, 0, %param.loc4_25 [symbolic = %T.loc4_25.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc4_35: @ImplicitGenericParam.%T.loc4_25.2 (%T) = param runtime_param0
-// CHECK:STDOUT:     %x: @ImplicitGenericParam.%T.loc4_25.2 (%T) = bind_name x, %param.loc4_35
+// CHECK:STDOUT:     %param.loc4_26: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc4_25.1: type = bind_symbolic_name T, 0, %param.loc4_26 [symbolic = %T.loc4_25.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc4_36: @ImplicitGenericParam.%T.loc4_25.2 (%T) = param runtime_param0
+// CHECK:STDOUT:     %x: @ImplicitGenericParam.%T.loc4_25.2 (%T) = bind_name x, %param.loc4_36
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %CallImplicitGenericParam.decl: %CallImplicitGenericParam.type = fn_decl @CallImplicitGenericParam [template = constants.%CallImplicitGenericParam] {
 // CHECK:STDOUT:     %n.patt: i32 = binding_pattern n
@@ -764,10 +764,10 @@ fn CallImplicitNotDeducible() {
 // CHECK:STDOUT:     %.loc4_35.2: type = value_of_initializer %int.make_type_32 [template = i32]
 // CHECK:STDOUT:     %.loc4_35.3: type = converted %int.make_type_32, %.loc4_35.2 [template = i32]
 // CHECK:STDOUT:     %.loc4_35.4: type = converted %.loc4_35.1, constants.%.3 [symbolic = %.loc4_35.5 (constants.%.3)]
-// CHECK:STDOUT:     %param.loc4_15: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc4_15.1: type = bind_symbolic_name T, 0, %param.loc4_15 [symbolic = %T.loc4_15.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc4_25: @TupleParam.%.loc4_35.5 (%.3) = param runtime_param0
-// CHECK:STDOUT:     %x: @TupleParam.%.loc4_35.5 (%.3) = bind_name x, %param.loc4_25
+// CHECK:STDOUT:     %param.loc4_16: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc4_15.1: type = bind_symbolic_name T, 0, %param.loc4_16 [symbolic = %T.loc4_15.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc4_26: @TupleParam.%.loc4_35.5 (%.3) = param runtime_param0
+// CHECK:STDOUT:     %x: @TupleParam.%.loc4_35.5 (%.3) = bind_name x, %param.loc4_26
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %CallTupleParam.decl: %CallTupleParam.type = fn_decl @CallTupleParam [template = constants.%CallTupleParam] {} {}
 // CHECK:STDOUT: }
@@ -866,10 +866,10 @@ fn CallImplicitNotDeducible() {
 // CHECK:STDOUT:     %.loc4_41.1: type = value_of_initializer %int.make_type_32 [template = i32]
 // CHECK:STDOUT:     %.loc4_41.2: type = converted %int.make_type_32, %.loc4_41.1 [template = i32]
 // CHECK:STDOUT:     %.loc4_44.1: type = struct_type {.a: %T, .b: i32} [symbolic = %.loc4_44.2 (constants.%.2)]
-// CHECK:STDOUT:     %param.loc4_16: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc4_16.1: type = bind_symbolic_name T, 0, %param.loc4_16 [symbolic = %T.loc4_16.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc4_26: @StructParam.%.loc4_44.2 (%.2) = param runtime_param0
-// CHECK:STDOUT:     %x: @StructParam.%.loc4_44.2 (%.2) = bind_name x, %param.loc4_26
+// CHECK:STDOUT:     %param.loc4_17: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc4_16.1: type = bind_symbolic_name T, 0, %param.loc4_17 [symbolic = %T.loc4_16.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc4_27: @StructParam.%.loc4_44.2 (%.2) = param runtime_param0
+// CHECK:STDOUT:     %x: @StructParam.%.loc4_44.2 (%.2) = bind_name x, %param.loc4_27
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %CallStructParam.decl: %CallStructParam.type = fn_decl @CallStructParam [template = constants.%CallStructParam] {} {}
 // CHECK:STDOUT: }
@@ -950,12 +950,12 @@ fn CallImplicitNotDeducible() {
 // CHECK:STDOUT:     %T.ref: type = name_ref T, %T.loc6_25.1 [symbolic = %T.loc6_25.2 (constants.%T)]
 // CHECK:STDOUT:     %U.ref: type = name_ref U, %U.loc6_35.1 [symbolic = %U.loc6_35.2 (constants.%U)]
 // CHECK:STDOUT:     %return: ref @ImplicitNotDeducible.%U.loc6_35.2 (%U) = var <return slot>
-// CHECK:STDOUT:     %param.loc6_25: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc6_25.1: type = bind_symbolic_name T, 0, %param.loc6_25 [symbolic = %T.loc6_25.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc6_35: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %U.loc6_35.1: type = bind_symbolic_name U, 1, %param.loc6_35 [symbolic = %U.loc6_35.2 (constants.%U)]
-// CHECK:STDOUT:     %param.loc6_45: @ImplicitNotDeducible.%T.loc6_25.2 (%T) = param runtime_param0
-// CHECK:STDOUT:     %x: @ImplicitNotDeducible.%T.loc6_25.2 (%T) = bind_name x, %param.loc6_45
+// CHECK:STDOUT:     %param.loc6_26: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc6_25.1: type = bind_symbolic_name T, 0, %param.loc6_26 [symbolic = %T.loc6_25.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc6_36: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %U.loc6_35.1: type = bind_symbolic_name U, 1, %param.loc6_36 [symbolic = %U.loc6_35.2 (constants.%U)]
+// CHECK:STDOUT:     %param.loc6_46: @ImplicitNotDeducible.%T.loc6_25.2 (%T) = param runtime_param0
+// CHECK:STDOUT:     %x: @ImplicitNotDeducible.%T.loc6_25.2 (%T) = bind_name x, %param.loc6_46
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %CallImplicitNotDeducible.decl: %CallImplicitNotDeducible.type = fn_decl @CallImplicitNotDeducible [template = constants.%CallImplicitNotDeducible] {} {}
 // CHECK:STDOUT: }
@@ -1030,12 +1030,12 @@ fn CallImplicitNotDeducible() {
 // CHECK:STDOUT:     %T.ref.loc4_44: type = name_ref T, %T.loc4_25.1 [symbolic = %T.loc4_25.2 (constants.%T)]
 // CHECK:STDOUT:     %T.ref.loc4_50: type = name_ref T, %T.loc4_25.1 [symbolic = %T.loc4_25.2 (constants.%T)]
 // CHECK:STDOUT:     %return: ref @ImplicitNotDeducible.%T.loc4_25.2 (%T) = var <return slot>
-// CHECK:STDOUT:     %param.loc4_25: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc4_25.1: type = bind_symbolic_name T, 0, %param.loc4_25 [symbolic = %T.loc4_25.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc4_35: @ImplicitNotDeducible.%T.loc4_25.2 (%T) = param runtime_param0
-// CHECK:STDOUT:     %x: @ImplicitNotDeducible.%T.loc4_25.2 (%T) = bind_name x, %param.loc4_35
-// CHECK:STDOUT:     %param.loc4_41: @ImplicitNotDeducible.%T.loc4_25.2 (%T) = param runtime_param1
-// CHECK:STDOUT:     %y: @ImplicitNotDeducible.%T.loc4_25.2 (%T) = bind_name y, %param.loc4_41
+// CHECK:STDOUT:     %param.loc4_26: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc4_25.1: type = bind_symbolic_name T, 0, %param.loc4_26 [symbolic = %T.loc4_25.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc4_36: @ImplicitNotDeducible.%T.loc4_25.2 (%T) = param runtime_param0
+// CHECK:STDOUT:     %x: @ImplicitNotDeducible.%T.loc4_25.2 (%T) = bind_name x, %param.loc4_36
+// CHECK:STDOUT:     %param.loc4_42: @ImplicitNotDeducible.%T.loc4_25.2 (%T) = param runtime_param1
+// CHECK:STDOUT:     %y: @ImplicitNotDeducible.%T.loc4_25.2 (%T) = bind_name y, %param.loc4_42
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %CallImplicitNotDeducible.decl: %CallImplicitNotDeducible.type = fn_decl @CallImplicitNotDeducible [template = constants.%CallImplicitNotDeducible] {} {}
 // CHECK:STDOUT: }

+ 4 - 4
toolchain/check/testdata/function/generic/fail_todo_param_in_type.carbon

@@ -61,10 +61,10 @@ fn F(N:! i32, a: [i32; N]*);
 // CHECK:STDOUT:     %.loc14_19.2: type = converted %int.make_type_32.loc14_19, %.loc14_19.1 [template = i32]
 // CHECK:STDOUT:     %.loc14_25: type = array_type %N.ref, i32 [template = <error>]
 // CHECK:STDOUT:     %.loc14_26: type = ptr_type <error> [template = <error>]
-// CHECK:STDOUT:     %param.loc14_6: i32 = param runtime_param<invalid>
-// CHECK:STDOUT:     %N.loc14_6.1: i32 = bind_symbolic_name N, 0, %param.loc14_6 [symbolic = %N.loc14_6.2 (constants.%N)]
-// CHECK:STDOUT:     %param.loc14_15: <error> = param runtime_param0
-// CHECK:STDOUT:     %a: <error> = bind_name a, %param.loc14_15
+// CHECK:STDOUT:     %param.loc14_7: i32 = param runtime_param<invalid>
+// CHECK:STDOUT:     %N.loc14_6.1: i32 = bind_symbolic_name N, 0, %param.loc14_7 [symbolic = %N.loc14_6.2 (constants.%N)]
+// CHECK:STDOUT:     %param.loc14_16: <error> = param runtime_param0
+// CHECK:STDOUT:     %a: <error> = bind_name a, %param.loc14_16
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

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

@@ -95,10 +95,10 @@ fn CallSpecific(x: C) -> C {
 // CHECK:STDOUT:     %T.ref.loc4_26: type = name_ref T, %T.loc4_13.1 [symbolic = %T.loc4_13.2 (constants.%T)]
 // CHECK:STDOUT:     %T.ref.loc4_32: type = name_ref T, %T.loc4_13.1 [symbolic = %T.loc4_13.2 (constants.%T)]
 // CHECK:STDOUT:     %return: ref @Function.%T.loc4_13.2 (%T) = var <return slot>
-// CHECK:STDOUT:     %param.loc4_13: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc4_13.1: type = bind_symbolic_name T, 0, %param.loc4_13 [symbolic = %T.loc4_13.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc4_23: @Function.%T.loc4_13.2 (%T) = param runtime_param0
-// CHECK:STDOUT:     %x: @Function.%T.loc4_13.2 (%T) = bind_name x, %param.loc4_23
+// CHECK:STDOUT:     %param.loc4_14: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc4_13.1: type = bind_symbolic_name T, 0, %param.loc4_14 [symbolic = %T.loc4_13.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc4_24: @Function.%T.loc4_13.2 (%T) = param runtime_param0
+// CHECK:STDOUT:     %x: @Function.%T.loc4_13.2 (%T) = bind_name x, %param.loc4_24
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %CallGeneric.decl: %CallGeneric.type = fn_decl @CallGeneric [template = constants.%CallGeneric] {
 // CHECK:STDOUT:     %T.patt.loc8_16.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_16.2 (constants.%T.patt.2)]
@@ -109,10 +109,10 @@ fn CallSpecific(x: C) -> C {
 // CHECK:STDOUT:     %T.ref.loc8_29: type = name_ref T, %T.loc8_16.1 [symbolic = %T.loc8_16.2 (constants.%T)]
 // CHECK:STDOUT:     %T.ref.loc8_35: type = name_ref T, %T.loc8_16.1 [symbolic = %T.loc8_16.2 (constants.%T)]
 // CHECK:STDOUT:     %return: ref @CallGeneric.%T.loc8_16.2 (%T) = var <return slot>
-// CHECK:STDOUT:     %param.loc8_16: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc8_16.1: type = bind_symbolic_name T, 0, %param.loc8_16 [symbolic = %T.loc8_16.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc8_26: @CallGeneric.%T.loc8_16.2 (%T) = param runtime_param0
-// CHECK:STDOUT:     %x: @CallGeneric.%T.loc8_16.2 (%T) = bind_name x, %param.loc8_26
+// CHECK:STDOUT:     %param.loc8_17: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc8_16.1: type = bind_symbolic_name T, 0, %param.loc8_17 [symbolic = %T.loc8_16.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc8_27: @CallGeneric.%T.loc8_16.2 (%T) = param runtime_param0
+// CHECK:STDOUT:     %x: @CallGeneric.%T.loc8_16.2 (%T) = bind_name x, %param.loc8_27
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %CallGenericPtr.decl: %CallGenericPtr.type = fn_decl @CallGenericPtr [template = constants.%CallGenericPtr] {
 // CHECK:STDOUT:     %T.patt.loc12_19.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc12_19.2 (constants.%T.patt.3)]
@@ -125,10 +125,10 @@ fn CallSpecific(x: C) -> C {
 // CHECK:STDOUT:     %T.ref.loc12_39: type = name_ref T, %T.loc12_19.1 [symbolic = %T.loc12_19.2 (constants.%T)]
 // CHECK:STDOUT:     %.loc12_40: type = ptr_type %T [symbolic = %.loc12_33.2 (constants.%.3)]
 // CHECK:STDOUT:     %return: ref @CallGenericPtr.%.loc12_33.2 (%.3) = var <return slot>
-// CHECK:STDOUT:     %param.loc12_19: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc12_19.1: type = bind_symbolic_name T, 0, %param.loc12_19 [symbolic = %T.loc12_19.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc12_29: @CallGenericPtr.%.loc12_33.2 (%.3) = param runtime_param0
-// CHECK:STDOUT:     %x: @CallGenericPtr.%.loc12_33.2 (%.3) = bind_name x, %param.loc12_29
+// CHECK:STDOUT:     %param.loc12_20: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc12_19.1: type = bind_symbolic_name T, 0, %param.loc12_20 [symbolic = %T.loc12_19.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc12_30: @CallGenericPtr.%.loc12_33.2 (%.3) = param runtime_param0
+// CHECK:STDOUT:     %x: @CallGenericPtr.%.loc12_33.2 (%.3) = bind_name x, %param.loc12_30
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %C.decl: type = class_decl @C [template = constants.%C] {} {}
 // CHECK:STDOUT:   %CallSpecific.decl: %CallSpecific.type = fn_decl @CallSpecific [template = constants.%CallSpecific] {
@@ -301,10 +301,10 @@ fn CallSpecific(x: C) -> C {
 // CHECK:STDOUT:     %T.ref.loc4_26: type = name_ref T, %T.loc4_13.1 [symbolic = %T.loc4_13.2 (constants.%T)]
 // CHECK:STDOUT:     %T.ref.loc4_32: type = name_ref T, %T.loc4_13.1 [symbolic = %T.loc4_13.2 (constants.%T)]
 // CHECK:STDOUT:     %return: ref @Function.%T.loc4_13.2 (%T) = var <return slot>
-// CHECK:STDOUT:     %param.loc4_13: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc4_13.1: type = bind_symbolic_name T, 0, %param.loc4_13 [symbolic = %T.loc4_13.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc4_23: @Function.%T.loc4_13.2 (%T) = param runtime_param0
-// CHECK:STDOUT:     %x: @Function.%T.loc4_13.2 (%T) = bind_name x, %param.loc4_23
+// CHECK:STDOUT:     %param.loc4_14: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc4_13.1: type = bind_symbolic_name T, 0, %param.loc4_14 [symbolic = %T.loc4_13.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc4_24: @Function.%T.loc4_13.2 (%T) = param runtime_param0
+// CHECK:STDOUT:     %x: @Function.%T.loc4_13.2 (%T) = bind_name x, %param.loc4_24
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %CallGeneric.decl: %CallGeneric.type = fn_decl @CallGeneric [template = constants.%CallGeneric] {
 // CHECK:STDOUT:     %T.patt.loc8_16.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc8_16.2 (constants.%T.patt.2)]
@@ -315,10 +315,10 @@ fn CallSpecific(x: C) -> C {
 // CHECK:STDOUT:     %T.ref.loc8_29: type = name_ref T, %T.loc8_16.1 [symbolic = %T.loc8_16.2 (constants.%T)]
 // CHECK:STDOUT:     %T.ref.loc8_35: type = name_ref T, %T.loc8_16.1 [symbolic = %T.loc8_16.2 (constants.%T)]
 // CHECK:STDOUT:     %return: ref @CallGeneric.%T.loc8_16.2 (%T) = var <return slot>
-// CHECK:STDOUT:     %param.loc8_16: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc8_16.1: type = bind_symbolic_name T, 0, %param.loc8_16 [symbolic = %T.loc8_16.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc8_26: @CallGeneric.%T.loc8_16.2 (%T) = param runtime_param0
-// CHECK:STDOUT:     %x: @CallGeneric.%T.loc8_16.2 (%T) = bind_name x, %param.loc8_26
+// CHECK:STDOUT:     %param.loc8_17: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc8_16.1: type = bind_symbolic_name T, 0, %param.loc8_17 [symbolic = %T.loc8_16.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc8_27: @CallGeneric.%T.loc8_16.2 (%T) = param runtime_param0
+// CHECK:STDOUT:     %x: @CallGeneric.%T.loc8_16.2 (%T) = bind_name x, %param.loc8_27
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %CallGenericPtr.decl: %CallGenericPtr.type = fn_decl @CallGenericPtr [template = constants.%CallGenericPtr] {
 // CHECK:STDOUT:     %T.patt.loc12_19.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc12_19.2 (constants.%T.patt.3)]
@@ -331,10 +331,10 @@ fn CallSpecific(x: C) -> C {
 // CHECK:STDOUT:     %T.ref.loc12_39: type = name_ref T, %T.loc12_19.1 [symbolic = %T.loc12_19.2 (constants.%T)]
 // CHECK:STDOUT:     %.loc12_40: type = ptr_type %T [symbolic = %.loc12_33.2 (constants.%.3)]
 // CHECK:STDOUT:     %return: ref @CallGenericPtr.%.loc12_33.2 (%.3) = var <return slot>
-// CHECK:STDOUT:     %param.loc12_19: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc12_19.1: type = bind_symbolic_name T, 0, %param.loc12_19 [symbolic = %T.loc12_19.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc12_29: @CallGenericPtr.%.loc12_33.2 (%.3) = param runtime_param0
-// CHECK:STDOUT:     %x: @CallGenericPtr.%.loc12_33.2 (%.3) = bind_name x, %param.loc12_29
+// CHECK:STDOUT:     %param.loc12_20: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc12_19.1: type = bind_symbolic_name T, 0, %param.loc12_20 [symbolic = %T.loc12_19.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc12_30: @CallGenericPtr.%.loc12_33.2 (%.3) = param runtime_param0
+// CHECK:STDOUT:     %x: @CallGenericPtr.%.loc12_33.2 (%.3) = bind_name x, %param.loc12_30
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %C.decl: type = class_decl @C [template = constants.%C] {} {}
 // CHECK:STDOUT:   %CallSpecific.decl: %CallSpecific.type = fn_decl @CallSpecific [template = constants.%CallSpecific] {

+ 4 - 4
toolchain/check/testdata/function/generic/no_prelude/fail_type_param_mismatch.carbon

@@ -39,10 +39,10 @@ fn F(T:! type, U:! type) {
 // CHECK:STDOUT:     %U.patt.loc11_16.1: type = symbolic_binding_pattern U, 1 [symbolic = %U.patt.loc11_16.2 (constants.%U.patt)]
 // CHECK:STDOUT:     %U.param_patt: type = param_pattern %U.patt.loc11_16.1, runtime_param<invalid> [symbolic = %U.patt.loc11_16.2 (constants.%U.patt)]
 // CHECK:STDOUT:   } {
-// CHECK:STDOUT:     %param.loc11_6: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc11_6.1: type = bind_symbolic_name T, 0, %param.loc11_6 [symbolic = %T.loc11_6.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc11_16: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %U.loc11_16.1: type = bind_symbolic_name U, 1, %param.loc11_16 [symbolic = %U.loc11_16.2 (constants.%U)]
+// CHECK:STDOUT:     %param.loc11_7: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc11_6.1: type = bind_symbolic_name T, 0, %param.loc11_7 [symbolic = %T.loc11_6.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc11_17: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %U.loc11_16.1: type = bind_symbolic_name U, 1, %param.loc11_17 [symbolic = %U.loc11_16.2 (constants.%U)]
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 4 - 4
toolchain/check/testdata/function/generic/no_prelude/indirect_generic_type.carbon

@@ -40,10 +40,10 @@ fn F(T:! type, p: T**) -> T* {
 // CHECK:STDOUT:     %T.ref.loc11_27: type = name_ref T, %T.loc11_6.1 [symbolic = %T.loc11_6.2 (constants.%T)]
 // CHECK:STDOUT:     %.loc11_28: type = ptr_type %T [symbolic = %.loc11_20.2 (constants.%.1)]
 // CHECK:STDOUT:     %return: ref @F.%.loc11_20.2 (%.1) = var <return slot>
-// CHECK:STDOUT:     %param.loc11_6: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc11_6.1: type = bind_symbolic_name T, 0, %param.loc11_6 [symbolic = %T.loc11_6.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc11_16: @F.%.loc11_21.2 (%.2) = param runtime_param0
-// CHECK:STDOUT:     %p: @F.%.loc11_21.2 (%.2) = bind_name p, %param.loc11_16
+// CHECK:STDOUT:     %param.loc11_7: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc11_6.1: type = bind_symbolic_name T, 0, %param.loc11_7 [symbolic = %T.loc11_6.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc11_17: @F.%.loc11_21.2 (%.2) = param runtime_param0
+// CHECK:STDOUT:     %p: @F.%.loc11_21.2 (%.2) = bind_name p, %param.loc11_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 4 - 4
toolchain/check/testdata/function/generic/no_prelude/type_param_scope.carbon

@@ -36,10 +36,10 @@ fn F(T:! type, n: T) -> T {
 // CHECK:STDOUT:     %T.ref.loc11_19: type = name_ref T, %T.loc11_6.1 [symbolic = %T.loc11_6.2 (constants.%T)]
 // CHECK:STDOUT:     %T.ref.loc11_25: type = name_ref T, %T.loc11_6.1 [symbolic = %T.loc11_6.2 (constants.%T)]
 // CHECK:STDOUT:     %return: ref @F.%T.loc11_6.2 (%T) = var <return slot>
-// CHECK:STDOUT:     %param.loc11_6: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc11_6.1: type = bind_symbolic_name T, 0, %param.loc11_6 [symbolic = %T.loc11_6.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc11_16: @F.%T.loc11_6.2 (%T) = param runtime_param0
-// CHECK:STDOUT:     %n: @F.%T.loc11_6.2 (%T) = bind_name n, %param.loc11_16
+// CHECK:STDOUT:     %param.loc11_7: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc11_6.1: type = bind_symbolic_name T, 0, %param.loc11_7 [symbolic = %T.loc11_6.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc11_17: @F.%T.loc11_6.2 (%T) = param runtime_param0
+// CHECK:STDOUT:     %n: @F.%T.loc11_6.2 (%T) = bind_name n, %param.loc11_17
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

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

@@ -224,10 +224,10 @@ fn F(U:! type, T:! type) -> U* {
 // CHECK:STDOUT:     %T.ref: type = name_ref T, %T.loc4_6.1 [symbolic = %T.loc4_6.2 (constants.%T)]
 // CHECK:STDOUT:     %.loc4_30.1: type = ptr_type %T [symbolic = %.loc4_30.2 (constants.%.1)]
 // CHECK:STDOUT:     %return: ref @F.%.loc4_30.2 (%.1) = var <return slot>
-// CHECK:STDOUT:     %param.loc4_6: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc4_6.1: type = bind_symbolic_name T, 0, %param.loc4_6 [symbolic = %T.loc4_6.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc4_16: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %U.loc4_16.1: type = bind_symbolic_name U, 1, %param.loc4_16 [symbolic = %U.loc4_16.2 (constants.%U)]
+// CHECK:STDOUT:     %param.loc4_7: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc4_6.1: type = bind_symbolic_name T, 0, %param.loc4_7 [symbolic = %T.loc4_6.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc4_17: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %U.loc4_16.1: type = bind_symbolic_name U, 1, %param.loc4_17 [symbolic = %U.loc4_16.2 (constants.%U)]
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %.decl: %.type = fn_decl @.1 [template = constants.%.4] {
 // CHECK:STDOUT:     %T.patt.loc13_6.1: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc13_6.2 (constants.%T.patt.2)]
@@ -238,10 +238,10 @@ fn F(U:! type, T:! type) -> U* {
 // CHECK:STDOUT:     %U.ref: type = name_ref U, %U.loc13_16.1 [symbolic = %U.loc13_16.2 (constants.%U)]
 // CHECK:STDOUT:     %.loc13_30.1: type = ptr_type %U [symbolic = %.loc13_30.2 (constants.%.3)]
 // CHECK:STDOUT:     %return: ref @.1.%.loc13_30.2 (%.3) = var <return slot>
-// CHECK:STDOUT:     %param.loc13_6: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc13_6.1: type = bind_symbolic_name T, 0, %param.loc13_6 [symbolic = %T.loc13_6.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc13_16: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %U.loc13_16.1: type = bind_symbolic_name U, 1, %param.loc13_16 [symbolic = %U.loc13_16.2 (constants.%U)]
+// CHECK:STDOUT:     %param.loc13_7: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc13_6.1: type = bind_symbolic_name T, 0, %param.loc13_7 [symbolic = %T.loc13_6.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc13_17: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %U.loc13_16.1: type = bind_symbolic_name U, 1, %param.loc13_17 [symbolic = %U.loc13_16.2 (constants.%U)]
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -336,10 +336,10 @@ fn F(U:! type, T:! type) -> U* {
 // CHECK:STDOUT:     %T.ref: type = name_ref T, %T.loc4_6.1 [symbolic = %T.loc4_6.2 (constants.%T.1)]
 // CHECK:STDOUT:     %.loc4_30.1: type = ptr_type %T.1 [symbolic = %.loc4_30.2 (constants.%.1)]
 // CHECK:STDOUT:     %return: ref @F.%.loc4_30.2 (%.1) = var <return slot>
-// CHECK:STDOUT:     %param.loc4_6: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc4_6.1: type = bind_symbolic_name T, 0, %param.loc4_6 [symbolic = %T.loc4_6.2 (constants.%T.1)]
-// CHECK:STDOUT:     %param.loc4_16: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %U.loc4_16.1: type = bind_symbolic_name U, 1, %param.loc4_16 [symbolic = %U.loc4_16.2 (constants.%U.1)]
+// CHECK:STDOUT:     %param.loc4_7: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc4_6.1: type = bind_symbolic_name T, 0, %param.loc4_7 [symbolic = %T.loc4_6.2 (constants.%T.1)]
+// CHECK:STDOUT:     %param.loc4_17: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %U.loc4_16.1: type = bind_symbolic_name U, 1, %param.loc4_17 [symbolic = %U.loc4_16.2 (constants.%U.1)]
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %.decl: %.type = fn_decl @.1 [template = constants.%.4] {
 // CHECK:STDOUT:     %U.patt.loc13_6.1: type = symbolic_binding_pattern U, 0 [symbolic = %U.patt.loc13_6.2 (constants.%U.patt.2)]
@@ -350,10 +350,10 @@ fn F(U:! type, T:! type) -> U* {
 // CHECK:STDOUT:     %T.ref.loc13: type = name_ref T, %T.loc13_16.1 [symbolic = %T.loc13_16.2 (constants.%T.2)]
 // CHECK:STDOUT:     %.loc13_30.1: type = ptr_type %T.2 [symbolic = %.loc13_30.2 (constants.%.3)]
 // CHECK:STDOUT:     %return: ref @.1.%.loc13_30.2 (%.3) = var <return slot>
-// CHECK:STDOUT:     %param.loc13_6: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %U.loc13_6.1: type = bind_symbolic_name U, 0, %param.loc13_6 [symbolic = %U.loc13_6.2 (constants.%U.2)]
-// CHECK:STDOUT:     %param.loc13_16: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc13_16.1: type = bind_symbolic_name T, 1, %param.loc13_16 [symbolic = %T.loc13_16.2 (constants.%T.2)]
+// CHECK:STDOUT:     %param.loc13_7: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %U.loc13_6.1: type = bind_symbolic_name U, 0, %param.loc13_7 [symbolic = %U.loc13_6.2 (constants.%U.2)]
+// CHECK:STDOUT:     %param.loc13_17: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc13_16.1: type = bind_symbolic_name T, 1, %param.loc13_17 [symbolic = %T.loc13_16.2 (constants.%T.2)]
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -448,10 +448,10 @@ fn F(U:! type, T:! type) -> U* {
 // CHECK:STDOUT:     %T.ref: type = name_ref T, %T.loc4_6.1 [symbolic = %T.loc4_6.2 (constants.%T.1)]
 // CHECK:STDOUT:     %.loc4_30.1: type = ptr_type %T.1 [symbolic = %.loc4_30.2 (constants.%.1)]
 // CHECK:STDOUT:     %return: ref @F.%.loc4_30.2 (%.1) = var <return slot>
-// CHECK:STDOUT:     %param.loc4_6: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc4_6.1: type = bind_symbolic_name T, 0, %param.loc4_6 [symbolic = %T.loc4_6.2 (constants.%T.1)]
-// CHECK:STDOUT:     %param.loc4_16: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %U.loc4_16.1: type = bind_symbolic_name U, 1, %param.loc4_16 [symbolic = %U.loc4_16.2 (constants.%U.1)]
+// CHECK:STDOUT:     %param.loc4_7: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc4_6.1: type = bind_symbolic_name T, 0, %param.loc4_7 [symbolic = %T.loc4_6.2 (constants.%T.1)]
+// CHECK:STDOUT:     %param.loc4_17: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %U.loc4_16.1: type = bind_symbolic_name U, 1, %param.loc4_17 [symbolic = %U.loc4_16.2 (constants.%U.1)]
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %.decl: %.type = fn_decl @.1 [template = constants.%.4] {
 // CHECK:STDOUT:     %U.patt.loc13_6.1: type = symbolic_binding_pattern U, 0 [symbolic = %U.patt.loc13_6.2 (constants.%U.patt.2)]
@@ -462,10 +462,10 @@ fn F(U:! type, T:! type) -> U* {
 // CHECK:STDOUT:     %U.ref: type = name_ref U, %U.loc13_6.1 [symbolic = %U.loc13_6.2 (constants.%U.2)]
 // CHECK:STDOUT:     %.loc13_30.1: type = ptr_type %U.2 [symbolic = %.loc13_30.2 (constants.%.3)]
 // CHECK:STDOUT:     %return: ref @.1.%.loc13_30.2 (%.3) = var <return slot>
-// CHECK:STDOUT:     %param.loc13_6: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %U.loc13_6.1: type = bind_symbolic_name U, 0, %param.loc13_6 [symbolic = %U.loc13_6.2 (constants.%U.2)]
-// CHECK:STDOUT:     %param.loc13_16: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc13_16.1: type = bind_symbolic_name T, 1, %param.loc13_16 [symbolic = %T.loc13_16.2 (constants.%T.2)]
+// CHECK:STDOUT:     %param.loc13_7: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %U.loc13_6.1: type = bind_symbolic_name U, 0, %param.loc13_7 [symbolic = %U.loc13_6.2 (constants.%U.2)]
+// CHECK:STDOUT:     %param.loc13_17: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc13_16.1: type = bind_symbolic_name T, 1, %param.loc13_17 [symbolic = %T.loc13_16.2 (constants.%T.2)]
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

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

@@ -97,10 +97,10 @@ fn CallUndefined() -> i32 {
 // CHECK:STDOUT:     %T.ref.loc4_25: type = name_ref T, %T.loc4_12.1 [symbolic = %T.loc4_12.2 (constants.%T)]
 // CHECK:STDOUT:     %T.ref.loc4_31: type = name_ref T, %T.loc4_12.1 [symbolic = %T.loc4_12.2 (constants.%T)]
 // CHECK:STDOUT:     %return: ref @Defined.%T.loc4_12.2 (%T) = var <return slot>
-// CHECK:STDOUT:     %param.loc4_12: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc4_12.1: type = bind_symbolic_name T, 0, %param.loc4_12 [symbolic = %T.loc4_12.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc4_22: @Defined.%T.loc4_12.2 (%T) = param runtime_param0
-// CHECK:STDOUT:     %x: @Defined.%T.loc4_12.2 (%T) = bind_name x, %param.loc4_22
+// CHECK:STDOUT:     %param.loc4_13: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc4_12.1: type = bind_symbolic_name T, 0, %param.loc4_13 [symbolic = %T.loc4_12.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc4_23: @Defined.%T.loc4_12.2 (%T) = param runtime_param0
+// CHECK:STDOUT:     %x: @Defined.%T.loc4_12.2 (%T) = bind_name x, %param.loc4_23
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %CallDefined.decl: %CallDefined.type = fn_decl @CallDefined [template = constants.%CallDefined] {} {
 // CHECK:STDOUT:     %int.make_type_32: init type = call constants.%Int32() [template = i32]
@@ -196,10 +196,10 @@ fn CallUndefined() -> i32 {
 // CHECK:STDOUT:     %T.ref.loc4_25: type = name_ref T, %T.loc4_12.1 [symbolic = %T.loc4_12.2 (constants.%T)]
 // CHECK:STDOUT:     %T.ref.loc4_31: type = name_ref T, %T.loc4_12.1 [symbolic = %T.loc4_12.2 (constants.%T)]
 // CHECK:STDOUT:     %return.var.loc4: ref @Defined.%T.loc4_12.2 (%T) = var <return slot>
-// CHECK:STDOUT:     %param.loc4_12: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc4_12.1: type = bind_symbolic_name T, 0, %param.loc4_12 [symbolic = %T.loc4_12.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc4_22: @Defined.%T.loc4_12.2 (%T) = param runtime_param0
-// CHECK:STDOUT:     %x.loc4: @Defined.%T.loc4_12.2 (%T) = bind_name x, %param.loc4_22
+// CHECK:STDOUT:     %param.loc4_13: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc4_12.1: type = bind_symbolic_name T, 0, %param.loc4_13 [symbolic = %T.loc4_12.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc4_23: @Defined.%T.loc4_12.2 (%T) = param runtime_param0
+// CHECK:STDOUT:     %x.loc4: @Defined.%T.loc4_12.2 (%T) = bind_name x, %param.loc4_23
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %CallDefined.decl: %CallDefined.type = fn_decl @CallDefined [template = constants.%CallDefined] {} {
 // CHECK:STDOUT:     %int.make_type_32: init type = call constants.%Int32() [template = i32]
@@ -216,10 +216,10 @@ fn CallUndefined() -> i32 {
 // CHECK:STDOUT:     %T.ref.loc10_25: type = name_ref T, %T.loc10 [symbolic = constants.%T]
 // CHECK:STDOUT:     %T.ref.loc10_31: type = name_ref T, %T.loc10 [symbolic = constants.%T]
 // CHECK:STDOUT:     %return: ref %T = var <return slot>
-// CHECK:STDOUT:     %param.loc10_12: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc10: type = bind_symbolic_name T, 0, %param.loc10_12 [symbolic = constants.%T]
-// CHECK:STDOUT:     %param.loc10_22: %T = param runtime_param0
-// CHECK:STDOUT:     %x.loc10: %T = bind_name x, %param.loc10_22
+// CHECK:STDOUT:     %param.loc10_13: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc10: type = bind_symbolic_name T, 0, %param.loc10_13 [symbolic = constants.%T]
+// CHECK:STDOUT:     %param.loc10_23: %T = param runtime_param0
+// CHECK:STDOUT:     %x.loc10: %T = bind_name x, %param.loc10_23
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:
@@ -308,10 +308,10 @@ fn CallUndefined() -> i32 {
 // CHECK:STDOUT:     %T.ref.loc4_27: type = name_ref T, %T.loc4_14.1 [symbolic = %T.loc4_14.2 (constants.%T)]
 // CHECK:STDOUT:     %T.ref.loc4_33: type = name_ref T, %T.loc4_14.1 [symbolic = %T.loc4_14.2 (constants.%T)]
 // CHECK:STDOUT:     %return: ref @Undefined.%T.loc4_14.2 (%T) = var <return slot>
-// CHECK:STDOUT:     %param.loc4_14: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc4_14.1: type = bind_symbolic_name T, 0, %param.loc4_14 [symbolic = %T.loc4_14.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc4_24: @Undefined.%T.loc4_14.2 (%T) = param runtime_param0
-// CHECK:STDOUT:     %x: @Undefined.%T.loc4_14.2 (%T) = bind_name x, %param.loc4_24
+// CHECK:STDOUT:     %param.loc4_15: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc4_14.1: type = bind_symbolic_name T, 0, %param.loc4_15 [symbolic = %T.loc4_14.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc4_25: @Undefined.%T.loc4_14.2 (%T) = param runtime_param0
+// CHECK:STDOUT:     %x: @Undefined.%T.loc4_14.2 (%T) = bind_name x, %param.loc4_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %CallUndefined.decl: %CallUndefined.type = fn_decl @CallUndefined [template = constants.%CallUndefined] {} {
 // CHECK:STDOUT:     %int.make_type_32: init type = call constants.%Int32() [template = i32]

+ 6 - 6
toolchain/check/testdata/if_expr/basic.carbon

@@ -75,12 +75,12 @@ fn F(b: bool, n: i32, m: i32) -> i32 {
 // CHECK:STDOUT:     %.loc11_34.1: type = value_of_initializer %int.make_type_32.loc11_34 [template = i32]
 // CHECK:STDOUT:     %.loc11_34.2: type = converted %int.make_type_32.loc11_34, %.loc11_34.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc11_6: bool = param runtime_param0
-// CHECK:STDOUT:     %b: bool = bind_name b, %param.loc11_6
-// CHECK:STDOUT:     %param.loc11_15: i32 = param runtime_param1
-// CHECK:STDOUT:     %n: i32 = bind_name n, %param.loc11_15
-// CHECK:STDOUT:     %param.loc11_23: i32 = param runtime_param2
-// CHECK:STDOUT:     %m: i32 = bind_name m, %param.loc11_23
+// CHECK:STDOUT:     %param.loc11_7: bool = param runtime_param0
+// CHECK:STDOUT:     %b: bool = bind_name b, %param.loc11_7
+// CHECK:STDOUT:     %param.loc11_16: i32 = param runtime_param1
+// CHECK:STDOUT:     %n: i32 = bind_name n, %param.loc11_16
+// CHECK:STDOUT:     %param.loc11_24: i32 = param runtime_param2
+// CHECK:STDOUT:     %m: i32 = bind_name m, %param.loc11_24
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 6 - 6
toolchain/check/testdata/if_expr/nested.carbon

@@ -72,12 +72,12 @@ fn F(a: bool, b: bool, c: bool) -> i32 {
 // CHECK:STDOUT:     %.loc11_36.1: type = value_of_initializer %int.make_type_32 [template = i32]
 // CHECK:STDOUT:     %.loc11_36.2: type = converted %int.make_type_32, %.loc11_36.1 [template = i32]
 // CHECK:STDOUT:     %return: ref i32 = var <return slot>
-// CHECK:STDOUT:     %param.loc11_6: bool = param runtime_param0
-// CHECK:STDOUT:     %a: bool = bind_name a, %param.loc11_6
-// CHECK:STDOUT:     %param.loc11_15: bool = param runtime_param1
-// CHECK:STDOUT:     %b: bool = bind_name b, %param.loc11_15
-// CHECK:STDOUT:     %param.loc11_24: bool = param runtime_param2
-// CHECK:STDOUT:     %c: bool = bind_name c, %param.loc11_24
+// CHECK:STDOUT:     %param.loc11_7: bool = param runtime_param0
+// CHECK:STDOUT:     %a: bool = bind_name a, %param.loc11_7
+// CHECK:STDOUT:     %param.loc11_16: bool = param runtime_param1
+// CHECK:STDOUT:     %b: bool = bind_name b, %param.loc11_16
+// CHECK:STDOUT:     %param.loc11_25: bool = param runtime_param2
+// CHECK:STDOUT:     %c: bool = bind_name c, %param.loc11_25
 // CHECK:STDOUT:   }
 // CHECK:STDOUT: }
 // CHECK:STDOUT:

+ 24 - 24
toolchain/check/testdata/impl/fail_impl_bad_assoc_fn.carbon

@@ -392,10 +392,10 @@ class SelfNestedBadReturnType {
 // CHECK:STDOUT:     %.loc93_44.1: type = value_of_initializer %bool.make_type.loc93_44 [template = bool]
 // CHECK:STDOUT:     %.loc93_44.2: type = converted %bool.make_type.loc93_44, %.loc93_44.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc93_20: bool = param runtime_param0
-// CHECK:STDOUT:     %self: bool = bind_name self, %param.loc93_20
-// CHECK:STDOUT:     %param.loc93_32: bool = param runtime_param1
-// CHECK:STDOUT:     %b: bool = bind_name b, %param.loc93_32
+// CHECK:STDOUT:     %param.loc93_24: bool = param runtime_param0
+// CHECK:STDOUT:     %self: bool = bind_name self, %param.loc93_24
+// CHECK:STDOUT:     %param.loc93_33: bool = param runtime_param1
+// CHECK:STDOUT:     %b: bool = bind_name b, %param.loc93_33
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %.loc93: %.6 = assoc_entity element0, %F.decl [template = constants.%.7]
 // CHECK:STDOUT:
@@ -572,10 +572,10 @@ class SelfNestedBadReturnType {
 // CHECK:STDOUT:     %bool.make_type.loc130_25: init type = call constants.%Bool() [template = bool]
 // CHECK:STDOUT:     %.loc130_25.1: type = value_of_initializer %bool.make_type.loc130_25 [template = bool]
 // CHECK:STDOUT:     %.loc130_25.2: type = converted %bool.make_type.loc130_25, %.loc130_25.1 [template = bool]
-// CHECK:STDOUT:     %param.loc130_10: bool = param runtime_param0
-// CHECK:STDOUT:     %self: bool = bind_name self, %param.loc130_10
-// CHECK:STDOUT:     %param.loc130_22: bool = param runtime_param1
-// CHECK:STDOUT:     %b: bool = bind_name b, %param.loc130_22
+// CHECK:STDOUT:     %param.loc130_14: bool = param runtime_param0
+// CHECK:STDOUT:     %self: bool = bind_name self, %param.loc130_14
+// CHECK:STDOUT:     %param.loc130_23: bool = param runtime_param1
+// CHECK:STDOUT:     %b: bool = bind_name b, %param.loc130_23
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %.loc122: <witness> = interface_witness (<error>) [template = <error>]
 // CHECK:STDOUT:
@@ -599,10 +599,10 @@ class SelfNestedBadReturnType {
 // CHECK:STDOUT:     %.loc143_34.1: type = value_of_initializer %bool.make_type.loc143_34 [template = bool]
 // CHECK:STDOUT:     %.loc143_34.2: type = converted %bool.make_type.loc143_34, %.loc143_34.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc143_10: bool = param runtime_param0
-// CHECK:STDOUT:     %self: bool = bind_name self, %param.loc143_10
-// CHECK:STDOUT:     %param.loc143_22: %FDifferentParamType = param runtime_param1
-// CHECK:STDOUT:     %b: %FDifferentParamType = bind_name b, %param.loc143_22
+// CHECK:STDOUT:     %param.loc143_14: bool = param runtime_param0
+// CHECK:STDOUT:     %self: bool = bind_name self, %param.loc143_14
+// CHECK:STDOUT:     %param.loc143_23: %FDifferentParamType = param runtime_param1
+// CHECK:STDOUT:     %b: %FDifferentParamType = bind_name b, %param.loc143_23
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %.loc135: <witness> = interface_witness (<error>) [template = <error>]
 // CHECK:STDOUT:
@@ -626,10 +626,10 @@ class SelfNestedBadReturnType {
 // CHECK:STDOUT:     %.loc156_34.1: type = value_of_initializer %bool.make_type.loc156_34 [template = bool]
 // CHECK:STDOUT:     %.loc156_34.2: type = converted %bool.make_type.loc156_34, %.loc156_34.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc156_10: %FDifferentImplicitParamType = param runtime_param0
-// CHECK:STDOUT:     %self: %FDifferentImplicitParamType = bind_name self, %param.loc156_10
-// CHECK:STDOUT:     %param.loc156_22: bool = param runtime_param1
-// CHECK:STDOUT:     %b: bool = bind_name b, %param.loc156_22
+// CHECK:STDOUT:     %param.loc156_14: %FDifferentImplicitParamType = param runtime_param0
+// CHECK:STDOUT:     %self: %FDifferentImplicitParamType = bind_name self, %param.loc156_14
+// CHECK:STDOUT:     %param.loc156_23: bool = param runtime_param1
+// CHECK:STDOUT:     %b: bool = bind_name b, %param.loc156_23
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %.loc148: <witness> = interface_witness (<error>) [template = <error>]
 // CHECK:STDOUT:
@@ -653,10 +653,10 @@ class SelfNestedBadReturnType {
 // CHECK:STDOUT:     %.loc169_25.2: type = converted %bool.make_type.loc169_25, %.loc169_25.1 [template = bool]
 // CHECK:STDOUT:     %Self.ref: type = name_ref Self, constants.%FDifferentReturnType [template = constants.%FDifferentReturnType]
 // CHECK:STDOUT:     %return: ref %FDifferentReturnType = var <return slot>
-// CHECK:STDOUT:     %param.loc169_10: bool = param runtime_param0
-// CHECK:STDOUT:     %self: bool = bind_name self, %param.loc169_10
-// CHECK:STDOUT:     %param.loc169_22: bool = param runtime_param1
-// CHECK:STDOUT:     %b: bool = bind_name b, %param.loc169_22
+// CHECK:STDOUT:     %param.loc169_14: bool = param runtime_param0
+// CHECK:STDOUT:     %self: bool = bind_name self, %param.loc169_14
+// CHECK:STDOUT:     %param.loc169_23: bool = param runtime_param1
+// CHECK:STDOUT:     %b: bool = bind_name b, %param.loc169_23
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %.loc161: <witness> = interface_witness (<error>) [template = <error>]
 // CHECK:STDOUT:
@@ -682,10 +682,10 @@ class SelfNestedBadReturnType {
 // CHECK:STDOUT:     %.loc183_38.1: type = value_of_initializer %bool.make_type.loc183_38 [template = bool]
 // CHECK:STDOUT:     %.loc183_38.2: type = converted %bool.make_type.loc183_38, %.loc183_38.1 [template = bool]
 // CHECK:STDOUT:     %return: ref bool = var <return slot>
-// CHECK:STDOUT:     %param.loc183_10: bool = param runtime_param0
-// CHECK:STDOUT:     %self: bool = bind_name self, %param.loc183_10
-// CHECK:STDOUT:     %param.loc183_22: bool = param runtime_param1
-// CHECK:STDOUT:     %not_b: bool = bind_name not_b, %param.loc183_22
+// CHECK:STDOUT:     %param.loc183_14: bool = param runtime_param0
+// CHECK:STDOUT:     %self: bool = bind_name self, %param.loc183_14
+// CHECK:STDOUT:     %param.loc183_27: bool = param runtime_param1
+// CHECK:STDOUT:     %not_b: bool = bind_name not_b, %param.loc183_27
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %.loc175: <witness> = interface_witness (<error>) [template = <error>]
 // CHECK:STDOUT:

+ 4 - 4
toolchain/check/testdata/impl/lookup/generic.carbon

@@ -962,10 +962,10 @@ fn G(x: A) {
 // CHECK:STDOUT:   } {
 // CHECK:STDOUT:     %T.ref: type = name_ref T, %T.loc9_14.1 [symbolic = %T.loc9_14.2 (constants.%T)]
 // CHECK:STDOUT:     %HasF.ref: type = name_ref HasF, file.%HasF.decl [template = constants.%HasF.type]
-// CHECK:STDOUT:     %param.loc9_14: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %T.loc9_14.1: type = bind_symbolic_name T, 0, %param.loc9_14 [symbolic = %T.loc9_14.2 (constants.%T)]
-// CHECK:STDOUT:     %param.loc9_24: type = param runtime_param<invalid>
-// CHECK:STDOUT:     %U.loc9_24.1: type = bind_symbolic_name U, 1, %param.loc9_24 [symbolic = %U.loc9_24.2 (constants.%U)]
+// CHECK:STDOUT:     %param.loc9_15: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %T.loc9_14.1: type = bind_symbolic_name T, 0, %param.loc9_15 [symbolic = %T.loc9_14.2 (constants.%T)]
+// CHECK:STDOUT:     %param.loc9_25: type = param runtime_param<invalid>
+// CHECK:STDOUT:     %U.loc9_24.1: type = bind_symbolic_name U, 1, %param.loc9_25 [symbolic = %U.loc9_24.2 (constants.%U)]
 // CHECK:STDOUT:   }
 // CHECK:STDOUT:   %G.decl: %G.type = fn_decl @G [template = constants.%G] {
 // CHECK:STDOUT:     %x.patt: %.5 = binding_pattern x

Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov