diff --git a/toolchain/base/BUILD b/toolchain/base/BUILD index c821015e516e7..f7a413b346723 100644 --- a/toolchain/base/BUILD +++ b/toolchain/base/BUILD @@ -66,6 +66,7 @@ cc_library( hdrs = ["fixed_size_value_store.h"], deps = [ ":mem_usage", + ":value_store", ":value_store_types", "//common:check", "@llvm-project//llvm:Support", diff --git a/toolchain/base/fixed_size_value_store.h b/toolchain/base/fixed_size_value_store.h index e750ea54576fd..57ca751ee1102 100644 --- a/toolchain/base/fixed_size_value_store.h +++ b/toolchain/base/fixed_size_value_store.h @@ -13,6 +13,7 @@ #include "llvm/ADT/StringRef.h" #include "llvm/ADT/iterator_range.h" #include "toolchain/base/mem_usage.h" +#include "toolchain/base/value_store.h" #include "toolchain/base/value_store_types.h" namespace Carbon { @@ -47,9 +48,11 @@ class FixedSizeValueStore { } // Makes a ValueStore of the specified size, initialized to a default. - static auto MakeWithExplicitSize(size_t size, ConstRefType default_value) + static auto MakeWithExplicitSize(IdTag tag, size_t size, + ConstRefType default_value) -> FixedSizeValueStore { FixedSizeValueStore store; + store.tag_ = tag; store.values_.resize(size, default_value); return store; } @@ -73,7 +76,8 @@ class FixedSizeValueStore { template requires std::same_as explicit FixedSizeValueStore(const ValueStoreT& size_source, - ConstRefType default_value) { + ConstRefType default_value) + : tag_(size_source.GetIdTag()) { values_.resize(size_source.size(), default_value); } @@ -86,7 +90,8 @@ class FixedSizeValueStore { llvm::function_ref< auto(IdT, typename ValueStoreT::ConstRefType)->ValueType> factory_fn) - : values_(llvm::map_range(source.enumerate(), factory_fn)) {} + : values_(llvm::map_range(source.enumerate(), factory_fn)), + tag_(GetIdTag(source)) {} // Move-only. FixedSizeValueStore(FixedSizeValueStore&&) noexcept = default; @@ -95,20 +100,23 @@ class FixedSizeValueStore { // Sets the value for an ID. auto Set(IdT id, ValueType value) -> void { - CARBON_DCHECK(id.index >= 0, "{0}", id); - values_[id.index] = value; + auto index = tag_.Remove(id.index); + CARBON_DCHECK(index >= 0, "{0}", id); + values_[index] = value; } // Returns a mutable value for an ID. auto Get(IdT id) -> RefType { - CARBON_DCHECK(id.index >= 0, "{0}", id); - return values_[id.index]; + auto index = tag_.Remove(id.index); + CARBON_DCHECK(index >= 0, "{0}", id); + return values_[index]; } // Returns the value for an ID. auto Get(IdT id) const -> ConstRefType { - CARBON_DCHECK(id.index >= 0, "{0}", id); - return values_[id.index]; + auto index = tag_.Remove(id.index); + CARBON_DCHECK(index >= 0, "{0}", id); + return values_[index]; } // Collects memory usage of the values. @@ -135,6 +143,8 @@ class FixedSizeValueStore { // Storage for the `ValueT` objects, indexed by the id. llvm::SmallVector values_; + + IdTag tag_; }; } // namespace Carbon diff --git a/toolchain/base/value_store.h b/toolchain/base/value_store.h index 3e3bade321ba5..aa9e757ffb497 100644 --- a/toolchain/base/value_store.h +++ b/toolchain/base/value_store.h @@ -32,6 +32,81 @@ class ValueStoreNotPrintable {}; } // namespace Internal +struct IdTag { + IdTag() + : id_tag_(0), + initial_reserved_ids_(std::numeric_limits::max()) {} + explicit IdTag(int32_t id_index, int32_t initial_reserved_ids) + : initial_reserved_ids_(initial_reserved_ids) { + // Shift down by 1 to get out of the high bit to avoid using any negative + // ids, since they have special uses. + // Shift down by another 1 to free up the second highest bit for a marker to + // indicate whether the index is tagged (& needs to be untagged) or not. + // Add one to the index so it's not zero-based, to make it a bit less likely + // this doesn't collide with anything else (though with the + // second-highest-bit-tagging this might not be needed). + id_tag_ = llvm::reverseBits((((id_index + 1) << 1) | 1) << 1); + } + auto GetCheckIRId() const -> int32_t { + return (llvm::reverseBits(id_tag_) >> 2) - 1; + } + auto Apply(int32_t index) const -> int32_t { + if (index < initial_reserved_ids_) { + return index; + } + // assert that id_tag_ doesn't have the second highest bit set + return index ^ id_tag_; + } + static auto DecomposeWithBestEffort(int32_t tagged_index) + -> std::pair { + if (tagged_index < 0) { + return {-1, tagged_index}; + } + if ((llvm::reverseBits(2) & tagged_index) == 0) { + return {-1, tagged_index}; + } + int length = 0; + int location = 0; + for (int i = 0; i != 32; ++i) { + int current_run = 0; + int location_of_current_run = i; + while (i != 32 && (tagged_index & (1 << i)) == 0) { + ++current_run; + ++i; + } + if (current_run != 0) { + --i; + } + if (current_run > length) { + length = current_run; + location = location_of_current_run; + } + } + if (length < 8) { + return {-1, tagged_index}; + } + auto index_mask = llvm::maskTrailingOnes(location); + auto ir_id = (llvm::reverseBits(tagged_index & ~index_mask) >> 2) - 1; + auto index = tagged_index & index_mask; + return {ir_id, index}; + } + auto Remove(int32_t tagged_index) const -> int32_t { + if ((llvm::reverseBits(2) & tagged_index) == 0) { + CARBON_DCHECK(tagged_index < initial_reserved_ids_, + "This untagged index is outside the initial reserved ids " + "and should have been tagged."); + return tagged_index; + } + auto index = tagged_index ^ id_tag_; + CARBON_DCHECK(index >= initial_reserved_ids_, + "When removing tagging bits, found an index that " + "shouldn't've been tagged in the first place."); + return index; + } + int32_t id_tag_; + int32_t initial_reserved_ids_; +}; + // A simple wrapper for accumulating values, providing IDs to later retrieve the // value. This does not do deduplication. template @@ -74,6 +149,7 @@ class ValueStore }; ValueStore() = default; + explicit ValueStore(IdTag tag) : tag_(tag) {} // Stores the value and returns an ID to reference it. auto Add(ValueType value) -> IdType { @@ -82,8 +158,8 @@ class ValueStore // tracking down issues easier. CARBON_DCHECK(size_ < std::numeric_limits::max(), "Id overflow"); - IdType id(size_); - auto [chunk_index, pos] = IdToChunkIndices(id); + IdType id(tag_.Apply(size_)); + auto [chunk_index, pos] = RawIndexToChunkIndices(size_); ++size_; CARBON_DCHECK(static_cast(chunk_index) <= chunks_.size(), @@ -99,16 +175,12 @@ class ValueStore // Returns a mutable value for an ID. auto Get(IdType id) -> RefType { - CARBON_DCHECK(id.index >= 0, "{0}", id); - CARBON_DCHECK(id.index < size_, "{0}", id); auto [chunk_index, pos] = IdToChunkIndices(id); return chunks_[chunk_index].Get(pos); } // Returns the value for an ID. auto Get(IdType id) const -> ConstRefType { - CARBON_DCHECK(id.index >= 0, "{0}", id); - CARBON_DCHECK(id.index < size_, "{0}", id); auto [chunk_index, pos] = IdToChunkIndices(id); return chunks_[chunk_index].Get(pos); } @@ -118,7 +190,7 @@ class ValueStore if (size <= size_) { return; } - auto [final_chunk_index, _] = IdToChunkIndices(IdType(size - 1)); + auto [final_chunk_index, _] = RawIndexToChunkIndices(size - 1); chunks_.resize(final_chunk_index + 1); } @@ -128,10 +200,10 @@ class ValueStore return; } - auto [begin_chunk_index, begin_pos] = IdToChunkIndices(IdType(size_)); + auto [begin_chunk_index, begin_pos] = RawIndexToChunkIndices(size_); // Use an inclusive range so that if `size` would be the next chunk, we // don't try doing something with it. - auto [end_chunk_index, end_pos] = IdToChunkIndices(IdType(size - 1)); + auto [end_chunk_index, end_pos] = RawIndexToChunkIndices(size - 1); chunks_.resize(end_chunk_index + 1); // If the begin and end chunks are the same, we only fill from begin to end. @@ -192,13 +264,33 @@ class ValueStore // `mapped_iterator` incorrectly infers the pointer type for `PointerProxy`. // NOLINTNEXTLINE(readability-const-return-type) auto index_to_id = [&](int32_t i) -> const std::pair { - return std::pair(IdType(i), Get(IdType(i))); + IdType id(tag_.Apply(i)); + return std::pair(id, Get(id)); }; // Because indices into `ValueStore` are all sequential values from 0, we // can use llvm::seq to walk all indices in the store. return llvm::map_range(llvm::seq(size_), index_to_id); } + auto GetIdTag() const -> IdTag { return tag_; } + auto GetRawIndex(IdT id) const -> int32_t { + auto index = tag_.Remove(id.index); + CARBON_DCHECK(index >= 0, "{0}", index); + // Attempt to decompose id.index to include extra detail in the check here +#ifndef NDEBUG + if (index >= size_) { + auto [ir_id, decomposed_index] = IdTag::DecomposeWithBestEffort(id.index); + CARBON_DCHECK( + index < size_, + "Untagged index was outside of container range. Possibly tagged " + "index {0}. Best-effort decomposition: CheckIRId: {1}, index: {2}. " + "The IdTag for this container is: {3}", + id.index, ir_id, decomposed_index, tag_.GetCheckIRId()); + } +#endif + return index; + } + private: // A chunk of `ValueType`s which has a fixed capacity, but variable size. // Tracks the size internally for verifying bounds. @@ -312,9 +404,10 @@ class ValueStore int32_t num_ = 0; }; - // Converts an id into an index into the set of chunks, and an offset into - // that specific chunk. Looks for index overflow in non-optimized builds. - static auto IdToChunkIndices(IdType id) -> std::pair { + // Converts a raw index into an index into the set of chunks, and an offset + // into that specific chunk. Looks for index overflow in non-optimized builds. + static auto RawIndexToChunkIndices(int32_t index) + -> std::pair { constexpr auto LowBits = Chunk::IndexBits(); // Verify there are no unused bits when indexing up to the `Capacity`. This @@ -328,16 +421,24 @@ class ValueStore static_assert(LowBits < 30); // The index of the chunk is the high bits. - auto chunk = id.index >> LowBits; + auto chunk = index >> LowBits; // The index into the chunk is the low bits. - auto pos = id.index & ((1 << LowBits) - 1); + auto pos = index & ((1 << LowBits) - 1); return {chunk, pos}; } + // Converts an id into an index into the set of chunks, and an offset into + // that specific chunk. + auto IdToChunkIndices(IdType id) const -> std::pair { + return RawIndexToChunkIndices(GetRawIndex(id)); + } + // Number of elements added to the store. The number should never exceed what // fits in an `int32_t`, which is checked in non-optimized builds in Add(). int32_t size_ = 0; + IdTag tag_; + // Storage for the `ValueType` objects, indexed by the id. We use a vector of // chunks of `ValueType` instead of just a vector of `ValueType` so that // addresses of `ValueType` objects are stable. This allows the rest of the diff --git a/toolchain/check/check_unit.cpp b/toolchain/check/check_unit.cpp index 1a38a0fef181b..21c389fa4dc9d 100644 --- a/toolchain/check/check_unit.cpp +++ b/toolchain/check/check_unit.cpp @@ -195,7 +195,7 @@ auto CheckUnit::CollectTransitiveImports(SemIR::InstId import_decl_id, // exported to this IR. auto ir_to_result_index = FixedSizeValueStore::MakeWithExplicitSize( - unit_and_imports_->unit->total_ir_count, -1); + IdTag(), unit_and_imports_->unit->total_ir_count, -1); // First add direct imports. This means that if an entity is imported both // directly and indirectly, the import path will reflect the direct import. diff --git a/toolchain/check/context.cpp b/toolchain/check/context.cpp index 04982a7a3218e..28ac2de673f6f 100644 --- a/toolchain/check/context.cpp +++ b/toolchain/check/context.cpp @@ -31,9 +31,9 @@ Context::Context(DiagnosticEmitterBase* emitter, scope_stack_(sem_ir_), deferred_definition_worklist_(vlog_stream), vtable_stack_("vtable_stack_", *sem_ir, vlog_stream), - check_ir_map_( - FixedSizeValueStore:: - MakeWithExplicitSize(total_ir_count_, SemIR::ImportIRId::None)), + check_ir_map_(FixedSizeValueStore:: + MakeWithExplicitSize(IdTag(), total_ir_count_, + SemIR::ImportIRId::None)), global_init_(this), region_stack_([this](SemIR::LocId loc_id, std::string label) { TODO(loc_id, label); diff --git a/toolchain/check/import_ref.cpp b/toolchain/check/import_ref.cpp index b5db0a5c6dbd0..8c4225d462062 100644 --- a/toolchain/check/import_ref.cpp +++ b/toolchain/check/import_ref.cpp @@ -36,8 +36,9 @@ namespace Carbon::Check { // Adds the ImportIR, excluding the update to the check_ir_map. static auto InternalAddImportIR(Context& context, SemIR::ImportIR import_ir) -> SemIR::ImportIRId { - context.import_ir_constant_values().push_back( - SemIR::ConstantValueStore(SemIR::ConstantId::None)); + context.import_ir_constant_values().push_back(SemIR::ConstantValueStore( + SemIR::ConstantId::None, + import_ir.sem_ir ? &import_ir.sem_ir->insts() : nullptr)); return context.import_irs().Add(import_ir); } @@ -50,7 +51,9 @@ static auto SetSpecialImportIR(Context& context, SemIR::ImportIR import_ir, ir_id = AddImportIR(context, import_ir); } else { // We don't have a check_ir_id, so add without touching check_ir_map. - ir_id = InternalAddImportIR(context, import_ir); + context.import_ir_constant_values().push_back( + SemIR::ConstantValueStore(SemIR::ConstantValueStore::Unusable)); + ir_id = context.import_irs().Add(import_ir); } CARBON_CHECK(ir_id == expected_import_ir_id, "Actual ImportIRId ($0) != Expected ImportIRId ({1})", ir_id, diff --git a/toolchain/check/testdata/basics/raw_sem_ir/cpp_interop.carbon b/toolchain/check/testdata/basics/raw_sem_ir/cpp_interop.carbon index 4e5a8baf9cc19..e7f0b19314afd 100644 --- a/toolchain/check/testdata/basics/raw_sem_ir/cpp_interop.carbon +++ b/toolchain/check/testdata/basics/raw_sem_ir/cpp_interop.carbon @@ -38,16 +38,16 @@ fn G(x: Cpp.X) { // CHECK:STDOUT: import_ir_insts: // CHECK:STDOUT: import_ir_inst0: {ir_id: ir1, clang_source_loc_id: clang_source_loc0} // CHECK:STDOUT: clang_decls: -// CHECK:STDOUT: clang_decl_id0: {key: "", inst_id: inst16} -// CHECK:STDOUT: clang_decl_id1: {key: "struct X {}", inst_id: inst18} -// CHECK:STDOUT: clang_decl_id2: {key: {decl: "void f(X x = {})", num_params: 0}, inst_id: inst41} -// CHECK:STDOUT: clang_decl_id3: {key: {decl: "extern void f__carbon_thunk()", num_params: 0}, inst_id: inst44} -// CHECK:STDOUT: clang_decl_id4: {key: {decl: "void f(X x = {})", num_params: 1}, inst_id: inst55} -// CHECK:STDOUT: clang_decl_id5: {key: {decl: "extern void f__carbon_thunk(X * _Nonnull x)", num_params: 1}, inst_id: inst64} +// CHECK:STDOUT: clang_decl_id0: {key: "", inst_id: ir0.inst16} +// CHECK:STDOUT: clang_decl_id1: {key: "struct X {}", inst_id: ir0.inst18} +// CHECK:STDOUT: clang_decl_id2: {key: {decl: "void f(X x = {})", num_params: 0}, inst_id: ir0.inst41} +// CHECK:STDOUT: clang_decl_id3: {key: {decl: "extern void f__carbon_thunk()", num_params: 0}, inst_id: ir0.inst44} +// CHECK:STDOUT: clang_decl_id4: {key: {decl: "void f(X x = {})", num_params: 1}, inst_id: ir0.inst55} +// CHECK:STDOUT: clang_decl_id5: {key: {decl: "extern void f__carbon_thunk(X * _Nonnull x)", num_params: 1}, inst_id: ir0.inst64} // CHECK:STDOUT: name_scopes: -// CHECK:STDOUT: name_scope0: {inst: inst14, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name0: inst16, name1: inst27}} -// CHECK:STDOUT: name_scope1: {inst: inst16, parent_scope: name_scope0, has_error: false, extended_scopes: [], names: {name3: inst18, name4: inst38}} -// CHECK:STDOUT: name_scope2: {inst: inst18, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope0: {inst: inst14, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name0: ir0.inst16, name1: ir0.inst27}} +// CHECK:STDOUT: name_scope1: {inst: ir0.inst16, parent_scope: name_scope0, has_error: false, extended_scopes: [], names: {name3: ir0.inst18, name4: ir0.inst38}} +// CHECK:STDOUT: name_scope2: {inst: ir0.inst18, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} // CHECK:STDOUT: entity_names: // CHECK:STDOUT: entity_name0: {name: name2, parent_scope: name_scope, index: -1, is_template: 0, clang_decl_id: clang_decl_id} // CHECK:STDOUT: entity_name1: {name: name2, parent_scope: name_scope, index: -1, is_template: 0, clang_decl_id: clang_decl_id} @@ -59,7 +59,7 @@ fn G(x: Cpp.X) { // CHECK:STDOUT: function3: {name: name4, parent_scope: name_scope1, call_params_id: inst_block13} // CHECK:STDOUT: function4: {name: name6, parent_scope: name_scope1, call_params_id: inst_block18} // CHECK:STDOUT: classes: -// CHECK:STDOUT: class0: {name: name3, parent_scope: name_scope1, self_type_id: type(inst19), inheritance_kind: Base, is_dynamic: 0, scope_id: name_scope2, body_block_id: inst_block10, adapt_id: inst, base_id: inst, complete_type_witness_id: inst33, vtable_decl_id: inst}} +// CHECK:STDOUT: class0: {name: name3, parent_scope: name_scope1, self_type_id: type(ir0.inst19), inheritance_kind: Base, is_dynamic: 0, scope_id: name_scope2, body_block_id: inst_block10, adapt_id: inst, base_id: inst, complete_type_witness_id: ir0.inst33, vtable_decl_id: inst}} // CHECK:STDOUT: generics: {} // CHECK:STDOUT: specifics: {} // CHECK:STDOUT: struct_type_fields: @@ -71,30 +71,30 @@ fn G(x: Cpp.X) { // CHECK:STDOUT: value_repr: {kind: copy, type: type(Error)} // CHECK:STDOUT: 'type(inst(NamespaceType))': // CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(NamespaceType))} -// CHECK:STDOUT: 'type(inst28)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst29)} -// CHECK:STDOUT: 'type(inst29)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst29)} +// CHECK:STDOUT: 'type(ir0.inst28)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(ir0.inst29)} +// CHECK:STDOUT: 'type(ir0.inst29)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(ir0.inst29)} // CHECK:STDOUT: 'type(inst(WitnessType))': // CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(WitnessType))} -// CHECK:STDOUT: 'type(inst32)': -// CHECK:STDOUT: value_repr: {kind: pointer, type: type(inst35)} -// CHECK:STDOUT: 'type(inst35)': -// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst35)} -// CHECK:STDOUT: 'type(inst19)': -// CHECK:STDOUT: value_repr: {kind: pointer, type: type(inst35)} -// CHECK:STDOUT: 'type(inst37)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst29)} -// CHECK:STDOUT: 'type(inst42)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst29)} -// CHECK:STDOUT: 'type(inst45)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst29)} -// CHECK:STDOUT: 'type(inst56)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst29)} -// CHECK:STDOUT: 'type(inst65)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst29)} -// CHECK:STDOUT: 'type(inst58)': -// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst58)} +// CHECK:STDOUT: 'type(ir0.inst32)': +// CHECK:STDOUT: value_repr: {kind: pointer, type: type(ir0.inst35)} +// CHECK:STDOUT: 'type(ir0.inst35)': +// CHECK:STDOUT: value_repr: {kind: copy, type: type(ir0.inst35)} +// CHECK:STDOUT: 'type(ir0.inst19)': +// CHECK:STDOUT: value_repr: {kind: pointer, type: type(ir0.inst35)} +// CHECK:STDOUT: 'type(ir0.inst37)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(ir0.inst29)} +// CHECK:STDOUT: 'type(ir0.inst42)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(ir0.inst29)} +// CHECK:STDOUT: 'type(ir0.inst45)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(ir0.inst29)} +// CHECK:STDOUT: 'type(ir0.inst56)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(ir0.inst29)} +// CHECK:STDOUT: 'type(ir0.inst65)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(ir0.inst29)} +// CHECK:STDOUT: 'type(ir0.inst58)': +// CHECK:STDOUT: value_repr: {kind: copy, type: type(ir0.inst58)} // CHECK:STDOUT: insts: // CHECK:STDOUT: 'inst(TypeType)': {kind: TypeType, type: type(TypeType)} // CHECK:STDOUT: 'inst(AutoType)': {kind: AutoType, type: type(TypeType)} @@ -111,62 +111,62 @@ fn G(x: Cpp.X) { // CHECK:STDOUT: 'inst(VtableType)': {kind: VtableType, type: type(TypeType)} // CHECK:STDOUT: 'inst(WitnessType)': {kind: WitnessType, type: type(TypeType)} // CHECK:STDOUT: inst14: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst15: {kind: ImportCppDecl} -// CHECK:STDOUT: inst16: {kind: Namespace, arg0: name_scope1, arg1: inst15, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst17: {kind: NameRef, arg0: name0, arg1: inst16, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst18: {kind: ClassDecl, arg0: class0, arg1: inst_block, type: type(TypeType)} -// CHECK:STDOUT: inst19: {kind: ClassType, arg0: class0, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst20: {kind: NameRef, arg0: name3, arg1: inst18, type: type(TypeType)} -// CHECK:STDOUT: inst21: {kind: BindName, arg0: entity_name0, arg1: inst25, type: type(inst19)} -// CHECK:STDOUT: inst22: {kind: PatternType, arg0: inst19, type: type(TypeType)} -// CHECK:STDOUT: inst23: {kind: BindingPattern, arg0: entity_name0, type: type(inst22)} -// CHECK:STDOUT: inst24: {kind: ValueParamPattern, arg0: inst23, arg1: call_param0, type: type(inst22)} -// CHECK:STDOUT: inst25: {kind: ValueParam, arg0: call_param0, arg1: name2, type: type(inst19)} -// CHECK:STDOUT: inst26: {kind: SpliceBlock, arg0: inst_block4, arg1: inst20, type: type(TypeType)} -// CHECK:STDOUT: inst27: {kind: FunctionDecl, arg0: function0, arg1: inst_block8, type: type(inst28)} -// CHECK:STDOUT: inst28: {kind: FunctionType, arg0: function0, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst29: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)} -// CHECK:STDOUT: inst30: {kind: StructValue, arg0: inst_block_empty, type: type(inst28)} -// CHECK:STDOUT: inst31: {kind: CustomLayoutType, arg0: struct_type_fields0, arg1: custom_layout1, type: type(TypeType)} -// CHECK:STDOUT: inst32: {kind: CustomLayoutType, arg0: struct_type_fields0, arg1: custom_layout1, type: type(TypeType)} -// CHECK:STDOUT: inst33: {kind: CompleteTypeWitness, arg0: inst31, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst34: {kind: CompleteTypeWitness, arg0: inst32, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst35: {kind: PointerType, arg0: inst32, type: type(TypeType)} -// CHECK:STDOUT: inst36: {kind: NameRef, arg0: name0, arg1: inst16, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst37: {kind: CppOverloadSetType, arg0: cpp_overload_set0, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst38: {kind: CppOverloadSetValue, arg0: cpp_overload_set0, type: type(inst37)} -// CHECK:STDOUT: inst39: {kind: CppOverloadSetValue, arg0: cpp_overload_set0, type: type(inst37)} -// CHECK:STDOUT: inst40: {kind: NameRef, arg0: name4, arg1: inst38, type: type(inst37)} -// CHECK:STDOUT: inst41: {kind: FunctionDecl, arg0: function1, arg1: inst_block_empty, type: type(inst42)} -// CHECK:STDOUT: inst42: {kind: FunctionType, arg0: function1, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst43: {kind: StructValue, arg0: inst_block_empty, type: type(inst42)} -// CHECK:STDOUT: inst44: {kind: FunctionDecl, arg0: function2, arg1: inst_block_empty, type: type(inst45)} -// CHECK:STDOUT: inst45: {kind: FunctionType, arg0: function2, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst46: {kind: StructValue, arg0: inst_block_empty, type: type(inst45)} -// CHECK:STDOUT: inst47: {kind: Call, arg0: inst44, arg1: inst_block_empty, type: type(inst29)} -// CHECK:STDOUT: inst48: {kind: NameRef, arg0: name0, arg1: inst16, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst49: {kind: NameRef, arg0: name4, arg1: inst38, type: type(inst37)} -// CHECK:STDOUT: inst50: {kind: NameRef, arg0: name2, arg1: inst21, type: type(inst19)} -// CHECK:STDOUT: inst51: {kind: BindName, arg0: entity_name1, arg1: inst54, type: type(inst19)} -// CHECK:STDOUT: inst52: {kind: BindingPattern, arg0: entity_name1, type: type(inst22)} -// CHECK:STDOUT: inst53: {kind: ValueParamPattern, arg0: inst52, arg1: call_param0, type: type(inst22)} -// CHECK:STDOUT: inst54: {kind: ValueParam, arg0: call_param0, arg1: name2, type: type(inst19)} -// CHECK:STDOUT: inst55: {kind: FunctionDecl, arg0: function3, arg1: inst_block15, type: type(inst56)} -// CHECK:STDOUT: inst56: {kind: FunctionType, arg0: function3, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst57: {kind: StructValue, arg0: inst_block_empty, type: type(inst56)} -// CHECK:STDOUT: inst58: {kind: PointerType, arg0: inst19, type: type(TypeType)} -// CHECK:STDOUT: inst59: {kind: BindName, arg0: entity_name2, arg1: inst63, type: type(inst58)} -// CHECK:STDOUT: inst60: {kind: PatternType, arg0: inst58, type: type(TypeType)} -// CHECK:STDOUT: inst61: {kind: BindingPattern, arg0: entity_name2, type: type(inst60)} -// CHECK:STDOUT: inst62: {kind: ValueParamPattern, arg0: inst61, arg1: call_param0, type: type(inst60)} -// CHECK:STDOUT: inst63: {kind: ValueParam, arg0: call_param0, arg1: name2, type: type(inst58)} -// CHECK:STDOUT: inst64: {kind: FunctionDecl, arg0: function4, arg1: inst_block20, type: type(inst65)} -// CHECK:STDOUT: inst65: {kind: FunctionType, arg0: function4, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst66: {kind: StructValue, arg0: inst_block_empty, type: type(inst65)} -// CHECK:STDOUT: inst67: {kind: ValueAsRef, arg0: inst50, type: type(inst19)} -// CHECK:STDOUT: inst68: {kind: AddrOf, arg0: inst67, type: type(inst58)} -// CHECK:STDOUT: inst69: {kind: Call, arg0: inst64, arg1: inst_block22, type: type(inst29)} -// CHECK:STDOUT: inst70: {kind: Return} +// CHECK:STDOUT: ir0.inst15: {kind: ImportCppDecl} +// CHECK:STDOUT: ir0.inst16: {kind: Namespace, arg0: name_scope1, arg1: ir0.inst15, type: type(inst(NamespaceType))} +// CHECK:STDOUT: ir0.inst17: {kind: NameRef, arg0: name0, arg1: ir0.inst16, type: type(inst(NamespaceType))} +// CHECK:STDOUT: ir0.inst18: {kind: ClassDecl, arg0: class0, arg1: inst_block, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst19: {kind: ClassType, arg0: class0, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst20: {kind: NameRef, arg0: name3, arg1: ir0.inst18, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst21: {kind: BindName, arg0: entity_name0, arg1: ir0.inst25, type: type(ir0.inst19)} +// CHECK:STDOUT: ir0.inst22: {kind: PatternType, arg0: ir0.inst19, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst23: {kind: BindingPattern, arg0: entity_name0, type: type(ir0.inst22)} +// CHECK:STDOUT: ir0.inst24: {kind: ValueParamPattern, arg0: ir0.inst23, arg1: call_param0, type: type(ir0.inst22)} +// CHECK:STDOUT: ir0.inst25: {kind: ValueParam, arg0: call_param0, arg1: name2, type: type(ir0.inst19)} +// CHECK:STDOUT: ir0.inst26: {kind: SpliceBlock, arg0: inst_block4, arg1: ir0.inst20, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst27: {kind: FunctionDecl, arg0: function0, arg1: inst_block8, type: type(ir0.inst28)} +// CHECK:STDOUT: ir0.inst28: {kind: FunctionType, arg0: function0, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst29: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst30: {kind: StructValue, arg0: inst_block_empty, type: type(ir0.inst28)} +// CHECK:STDOUT: ir0.inst31: {kind: CustomLayoutType, arg0: struct_type_fields0, arg1: custom_layout1, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst32: {kind: CustomLayoutType, arg0: struct_type_fields0, arg1: custom_layout1, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst33: {kind: CompleteTypeWitness, arg0: ir0.inst31, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst34: {kind: CompleteTypeWitness, arg0: ir0.inst32, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst35: {kind: PointerType, arg0: ir0.inst32, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst36: {kind: NameRef, arg0: name0, arg1: ir0.inst16, type: type(inst(NamespaceType))} +// CHECK:STDOUT: ir0.inst37: {kind: CppOverloadSetType, arg0: cpp_overload_set0, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst38: {kind: CppOverloadSetValue, arg0: cpp_overload_set0, type: type(ir0.inst37)} +// CHECK:STDOUT: ir0.inst39: {kind: CppOverloadSetValue, arg0: cpp_overload_set0, type: type(ir0.inst37)} +// CHECK:STDOUT: ir0.inst40: {kind: NameRef, arg0: name4, arg1: ir0.inst38, type: type(ir0.inst37)} +// CHECK:STDOUT: ir0.inst41: {kind: FunctionDecl, arg0: function1, arg1: inst_block_empty, type: type(ir0.inst42)} +// CHECK:STDOUT: ir0.inst42: {kind: FunctionType, arg0: function1, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst43: {kind: StructValue, arg0: inst_block_empty, type: type(ir0.inst42)} +// CHECK:STDOUT: ir0.inst44: {kind: FunctionDecl, arg0: function2, arg1: inst_block_empty, type: type(ir0.inst45)} +// CHECK:STDOUT: ir0.inst45: {kind: FunctionType, arg0: function2, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst46: {kind: StructValue, arg0: inst_block_empty, type: type(ir0.inst45)} +// CHECK:STDOUT: ir0.inst47: {kind: Call, arg0: ir0.inst44, arg1: inst_block_empty, type: type(ir0.inst29)} +// CHECK:STDOUT: ir0.inst48: {kind: NameRef, arg0: name0, arg1: ir0.inst16, type: type(inst(NamespaceType))} +// CHECK:STDOUT: ir0.inst49: {kind: NameRef, arg0: name4, arg1: ir0.inst38, type: type(ir0.inst37)} +// CHECK:STDOUT: ir0.inst50: {kind: NameRef, arg0: name2, arg1: ir0.inst21, type: type(ir0.inst19)} +// CHECK:STDOUT: ir0.inst51: {kind: BindName, arg0: entity_name1, arg1: ir0.inst54, type: type(ir0.inst19)} +// CHECK:STDOUT: ir0.inst52: {kind: BindingPattern, arg0: entity_name1, type: type(ir0.inst22)} +// CHECK:STDOUT: ir0.inst53: {kind: ValueParamPattern, arg0: ir0.inst52, arg1: call_param0, type: type(ir0.inst22)} +// CHECK:STDOUT: ir0.inst54: {kind: ValueParam, arg0: call_param0, arg1: name2, type: type(ir0.inst19)} +// CHECK:STDOUT: ir0.inst55: {kind: FunctionDecl, arg0: function3, arg1: inst_block15, type: type(ir0.inst56)} +// CHECK:STDOUT: ir0.inst56: {kind: FunctionType, arg0: function3, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst57: {kind: StructValue, arg0: inst_block_empty, type: type(ir0.inst56)} +// CHECK:STDOUT: ir0.inst58: {kind: PointerType, arg0: ir0.inst19, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst59: {kind: BindName, arg0: entity_name2, arg1: ir0.inst63, type: type(ir0.inst58)} +// CHECK:STDOUT: ir0.inst60: {kind: PatternType, arg0: ir0.inst58, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst61: {kind: BindingPattern, arg0: entity_name2, type: type(ir0.inst60)} +// CHECK:STDOUT: ir0.inst62: {kind: ValueParamPattern, arg0: ir0.inst61, arg1: call_param0, type: type(ir0.inst60)} +// CHECK:STDOUT: ir0.inst63: {kind: ValueParam, arg0: call_param0, arg1: name2, type: type(ir0.inst58)} +// CHECK:STDOUT: ir0.inst64: {kind: FunctionDecl, arg0: function4, arg1: inst_block20, type: type(ir0.inst65)} +// CHECK:STDOUT: ir0.inst65: {kind: FunctionType, arg0: function4, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst66: {kind: StructValue, arg0: inst_block_empty, type: type(ir0.inst65)} +// CHECK:STDOUT: ir0.inst67: {kind: ValueAsRef, arg0: ir0.inst50, type: type(ir0.inst19)} +// CHECK:STDOUT: ir0.inst68: {kind: AddrOf, arg0: ir0.inst67, type: type(ir0.inst58)} +// CHECK:STDOUT: ir0.inst69: {kind: Call, arg0: ir0.inst64, arg1: inst_block22, type: type(ir0.inst29)} +// CHECK:STDOUT: ir0.inst70: {kind: Return} // CHECK:STDOUT: constant_values: // CHECK:STDOUT: values: // CHECK:STDOUT: 'inst(TypeType)': concrete_constant(inst(TypeType)) @@ -184,119 +184,119 @@ fn G(x: Cpp.X) { // CHECK:STDOUT: 'inst(VtableType)': concrete_constant(inst(VtableType)) // CHECK:STDOUT: 'inst(WitnessType)': concrete_constant(inst(WitnessType)) // CHECK:STDOUT: inst14: concrete_constant(inst14) -// CHECK:STDOUT: inst16: concrete_constant(inst16) -// CHECK:STDOUT: inst17: concrete_constant(inst16) -// CHECK:STDOUT: inst18: concrete_constant(inst19) -// CHECK:STDOUT: inst19: concrete_constant(inst19) -// CHECK:STDOUT: inst20: concrete_constant(inst19) -// CHECK:STDOUT: inst22: concrete_constant(inst22) -// CHECK:STDOUT: inst23: concrete_constant(inst23) -// CHECK:STDOUT: inst24: concrete_constant(inst24) -// CHECK:STDOUT: inst26: concrete_constant(inst19) -// CHECK:STDOUT: inst27: concrete_constant(inst30) -// CHECK:STDOUT: inst28: concrete_constant(inst28) -// CHECK:STDOUT: inst29: concrete_constant(inst29) -// CHECK:STDOUT: inst30: concrete_constant(inst30) -// CHECK:STDOUT: inst31: concrete_constant(inst32) -// CHECK:STDOUT: inst32: concrete_constant(inst32) -// CHECK:STDOUT: inst33: concrete_constant(inst34) -// CHECK:STDOUT: inst34: concrete_constant(inst34) -// CHECK:STDOUT: inst35: concrete_constant(inst35) -// CHECK:STDOUT: inst36: concrete_constant(inst16) -// CHECK:STDOUT: inst37: concrete_constant(inst37) -// CHECK:STDOUT: inst38: concrete_constant(inst39) -// CHECK:STDOUT: inst39: concrete_constant(inst39) -// CHECK:STDOUT: inst40: concrete_constant(inst39) -// CHECK:STDOUT: inst41: concrete_constant(inst43) -// CHECK:STDOUT: inst42: concrete_constant(inst42) -// CHECK:STDOUT: inst43: concrete_constant(inst43) -// CHECK:STDOUT: inst44: concrete_constant(inst46) -// CHECK:STDOUT: inst45: concrete_constant(inst45) -// CHECK:STDOUT: inst46: concrete_constant(inst46) -// CHECK:STDOUT: inst48: concrete_constant(inst16) -// CHECK:STDOUT: inst49: concrete_constant(inst39) -// CHECK:STDOUT: inst52: concrete_constant(inst52) -// CHECK:STDOUT: inst53: concrete_constant(inst53) -// CHECK:STDOUT: inst55: concrete_constant(inst57) -// CHECK:STDOUT: inst56: concrete_constant(inst56) -// CHECK:STDOUT: inst57: concrete_constant(inst57) -// CHECK:STDOUT: inst58: concrete_constant(inst58) -// CHECK:STDOUT: inst60: concrete_constant(inst60) -// CHECK:STDOUT: inst61: concrete_constant(inst61) -// CHECK:STDOUT: inst62: concrete_constant(inst62) -// CHECK:STDOUT: inst64: concrete_constant(inst66) -// CHECK:STDOUT: inst65: concrete_constant(inst65) -// CHECK:STDOUT: inst66: concrete_constant(inst66) +// CHECK:STDOUT: ir0.inst16: concrete_constant(ir0.inst16) +// CHECK:STDOUT: ir0.inst17: concrete_constant(ir0.inst16) +// CHECK:STDOUT: ir0.inst18: concrete_constant(ir0.inst19) +// CHECK:STDOUT: ir0.inst19: concrete_constant(ir0.inst19) +// CHECK:STDOUT: ir0.inst20: concrete_constant(ir0.inst19) +// CHECK:STDOUT: ir0.inst22: concrete_constant(ir0.inst22) +// CHECK:STDOUT: ir0.inst23: concrete_constant(ir0.inst23) +// CHECK:STDOUT: ir0.inst24: concrete_constant(ir0.inst24) +// CHECK:STDOUT: ir0.inst26: concrete_constant(ir0.inst19) +// CHECK:STDOUT: ir0.inst27: concrete_constant(ir0.inst30) +// CHECK:STDOUT: ir0.inst28: concrete_constant(ir0.inst28) +// CHECK:STDOUT: ir0.inst29: concrete_constant(ir0.inst29) +// CHECK:STDOUT: ir0.inst30: concrete_constant(ir0.inst30) +// CHECK:STDOUT: ir0.inst31: concrete_constant(ir0.inst32) +// CHECK:STDOUT: ir0.inst32: concrete_constant(ir0.inst32) +// CHECK:STDOUT: ir0.inst33: concrete_constant(ir0.inst34) +// CHECK:STDOUT: ir0.inst34: concrete_constant(ir0.inst34) +// CHECK:STDOUT: ir0.inst35: concrete_constant(ir0.inst35) +// CHECK:STDOUT: ir0.inst36: concrete_constant(ir0.inst16) +// CHECK:STDOUT: ir0.inst37: concrete_constant(ir0.inst37) +// CHECK:STDOUT: ir0.inst38: concrete_constant(ir0.inst39) +// CHECK:STDOUT: ir0.inst39: concrete_constant(ir0.inst39) +// CHECK:STDOUT: ir0.inst40: concrete_constant(ir0.inst39) +// CHECK:STDOUT: ir0.inst41: concrete_constant(ir0.inst43) +// CHECK:STDOUT: ir0.inst42: concrete_constant(ir0.inst42) +// CHECK:STDOUT: ir0.inst43: concrete_constant(ir0.inst43) +// CHECK:STDOUT: ir0.inst44: concrete_constant(ir0.inst46) +// CHECK:STDOUT: ir0.inst45: concrete_constant(ir0.inst45) +// CHECK:STDOUT: ir0.inst46: concrete_constant(ir0.inst46) +// CHECK:STDOUT: ir0.inst48: concrete_constant(ir0.inst16) +// CHECK:STDOUT: ir0.inst49: concrete_constant(ir0.inst39) +// CHECK:STDOUT: ir0.inst52: concrete_constant(ir0.inst52) +// CHECK:STDOUT: ir0.inst53: concrete_constant(ir0.inst53) +// CHECK:STDOUT: ir0.inst55: concrete_constant(ir0.inst57) +// CHECK:STDOUT: ir0.inst56: concrete_constant(ir0.inst56) +// CHECK:STDOUT: ir0.inst57: concrete_constant(ir0.inst57) +// CHECK:STDOUT: ir0.inst58: concrete_constant(ir0.inst58) +// CHECK:STDOUT: ir0.inst60: concrete_constant(ir0.inst60) +// CHECK:STDOUT: ir0.inst61: concrete_constant(ir0.inst61) +// CHECK:STDOUT: ir0.inst62: concrete_constant(ir0.inst62) +// CHECK:STDOUT: ir0.inst64: concrete_constant(ir0.inst66) +// CHECK:STDOUT: ir0.inst65: concrete_constant(ir0.inst65) +// CHECK:STDOUT: ir0.inst66: concrete_constant(ir0.inst66) // CHECK:STDOUT: symbolic_constants: {} // CHECK:STDOUT: inst_blocks: // CHECK:STDOUT: inst_block_empty: {} // CHECK:STDOUT: exports: -// CHECK:STDOUT: 0: inst27 +// CHECK:STDOUT: 0: ir0.inst27 // CHECK:STDOUT: imports: -// CHECK:STDOUT: 0: inst16 -// CHECK:STDOUT: 1: inst18 -// CHECK:STDOUT: 2: inst38 -// CHECK:STDOUT: 3: inst41 -// CHECK:STDOUT: 4: inst44 -// CHECK:STDOUT: 5: inst55 -// CHECK:STDOUT: 6: inst64 +// CHECK:STDOUT: 0: ir0.inst16 +// CHECK:STDOUT: 1: ir0.inst18 +// CHECK:STDOUT: 2: ir0.inst38 +// CHECK:STDOUT: 3: ir0.inst41 +// CHECK:STDOUT: 4: ir0.inst44 +// CHECK:STDOUT: 5: ir0.inst55 +// CHECK:STDOUT: 6: ir0.inst64 // CHECK:STDOUT: global_init: {} // CHECK:STDOUT: inst_block4: -// CHECK:STDOUT: 0: inst17 -// CHECK:STDOUT: 1: inst20 +// CHECK:STDOUT: 0: ir0.inst17 +// CHECK:STDOUT: 1: ir0.inst20 // CHECK:STDOUT: inst_block5: -// CHECK:STDOUT: 0: inst24 +// CHECK:STDOUT: 0: ir0.inst24 // CHECK:STDOUT: inst_block6: -// CHECK:STDOUT: 0: inst25 +// CHECK:STDOUT: 0: ir0.inst25 // CHECK:STDOUT: inst_block7: -// CHECK:STDOUT: 0: inst23 -// CHECK:STDOUT: 1: inst24 +// CHECK:STDOUT: 0: ir0.inst23 +// CHECK:STDOUT: 1: ir0.inst24 // CHECK:STDOUT: inst_block8: -// CHECK:STDOUT: 0: inst25 -// CHECK:STDOUT: 1: inst26 -// CHECK:STDOUT: 2: inst21 +// CHECK:STDOUT: 0: ir0.inst25 +// CHECK:STDOUT: 1: ir0.inst26 +// CHECK:STDOUT: 2: ir0.inst21 // CHECK:STDOUT: inst_block9: -// CHECK:STDOUT: 0: inst36 -// CHECK:STDOUT: 1: inst40 -// CHECK:STDOUT: 2: inst47 -// CHECK:STDOUT: 3: inst48 -// CHECK:STDOUT: 4: inst49 -// CHECK:STDOUT: 5: inst50 -// CHECK:STDOUT: 6: inst67 -// CHECK:STDOUT: 7: inst68 -// CHECK:STDOUT: 8: inst69 -// CHECK:STDOUT: 9: inst70 +// CHECK:STDOUT: 0: ir0.inst36 +// CHECK:STDOUT: 1: ir0.inst40 +// CHECK:STDOUT: 2: ir0.inst47 +// CHECK:STDOUT: 3: ir0.inst48 +// CHECK:STDOUT: 4: ir0.inst49 +// CHECK:STDOUT: 5: ir0.inst50 +// CHECK:STDOUT: 6: ir0.inst67 +// CHECK:STDOUT: 7: ir0.inst68 +// CHECK:STDOUT: 8: ir0.inst69 +// CHECK:STDOUT: 9: ir0.inst70 // CHECK:STDOUT: inst_block10: -// CHECK:STDOUT: 0: inst31 -// CHECK:STDOUT: 1: inst33 +// CHECK:STDOUT: 0: ir0.inst31 +// CHECK:STDOUT: 1: ir0.inst33 // CHECK:STDOUT: inst_block11: {} // CHECK:STDOUT: inst_block12: -// CHECK:STDOUT: 0: inst53 +// CHECK:STDOUT: 0: ir0.inst53 // CHECK:STDOUT: inst_block13: -// CHECK:STDOUT: 0: inst54 +// CHECK:STDOUT: 0: ir0.inst54 // CHECK:STDOUT: inst_block14: -// CHECK:STDOUT: 0: inst52 -// CHECK:STDOUT: 1: inst53 +// CHECK:STDOUT: 0: ir0.inst52 +// CHECK:STDOUT: 1: ir0.inst53 // CHECK:STDOUT: inst_block15: -// CHECK:STDOUT: 0: inst54 -// CHECK:STDOUT: 1: inst51 +// CHECK:STDOUT: 0: ir0.inst54 +// CHECK:STDOUT: 1: ir0.inst51 // CHECK:STDOUT: inst_block16: {} // CHECK:STDOUT: inst_block17: -// CHECK:STDOUT: 0: inst62 +// CHECK:STDOUT: 0: ir0.inst62 // CHECK:STDOUT: inst_block18: -// CHECK:STDOUT: 0: inst63 +// CHECK:STDOUT: 0: ir0.inst63 // CHECK:STDOUT: inst_block19: -// CHECK:STDOUT: 0: inst61 -// CHECK:STDOUT: 1: inst62 +// CHECK:STDOUT: 0: ir0.inst61 +// CHECK:STDOUT: 1: ir0.inst62 // CHECK:STDOUT: inst_block20: -// CHECK:STDOUT: 0: inst63 -// CHECK:STDOUT: 1: inst59 +// CHECK:STDOUT: 0: ir0.inst63 +// CHECK:STDOUT: 1: ir0.inst59 // CHECK:STDOUT: inst_block21: -// CHECK:STDOUT: 0: inst50 +// CHECK:STDOUT: 0: ir0.inst50 // CHECK:STDOUT: inst_block22: -// CHECK:STDOUT: 0: inst68 +// CHECK:STDOUT: 0: ir0.inst68 // CHECK:STDOUT: inst_block23: // CHECK:STDOUT: 0: inst14 -// CHECK:STDOUT: 1: inst15 -// CHECK:STDOUT: 2: inst27 +// CHECK:STDOUT: 1: ir0.inst15 +// CHECK:STDOUT: 2: ir0.inst27 // CHECK:STDOUT: ... diff --git a/toolchain/check/testdata/basics/raw_sem_ir/multifile.carbon b/toolchain/check/testdata/basics/raw_sem_ir/multifile.carbon index 9dc8ed41c66d3..6e822ca1628d9 100644 --- a/toolchain/check/testdata/basics/raw_sem_ir/multifile.carbon +++ b/toolchain/check/testdata/basics/raw_sem_ir/multifile.carbon @@ -36,7 +36,7 @@ fn B() { // CHECK:STDOUT: import_ir_insts: {} // CHECK:STDOUT: clang_decls: {} // CHECK:STDOUT: name_scopes: -// CHECK:STDOUT: name_scope0: {inst: inst14, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name0: inst15}} +// CHECK:STDOUT: name_scope0: {inst: inst14, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name0: ir0.inst15}} // CHECK:STDOUT: entity_names: {} // CHECK:STDOUT: functions: // CHECK:STDOUT: function0: {name: name0, parent_scope: name_scope0, call_params_id: inst_block_empty, body: [inst_block5]} @@ -52,37 +52,37 @@ fn B() { // CHECK:STDOUT: value_repr: {kind: copy, type: type(Error)} // CHECK:STDOUT: 'type(inst(NamespaceType))': // CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(NamespaceType))} -// CHECK:STDOUT: 'type(inst16)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst17)} -// CHECK:STDOUT: 'type(inst17)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst17)} +// CHECK:STDOUT: 'type(ir0.inst16)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(ir0.inst17)} +// CHECK:STDOUT: 'type(ir0.inst17)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(ir0.inst17)} // CHECK:STDOUT: insts: // CHECK:STDOUT: inst14: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst15: {kind: FunctionDecl, arg0: function0, arg1: inst_block_empty, type: type(inst16)} -// CHECK:STDOUT: inst16: {kind: FunctionType, arg0: function0, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst17: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)} -// CHECK:STDOUT: inst18: {kind: StructValue, arg0: inst_block_empty, type: type(inst16)} -// CHECK:STDOUT: inst19: {kind: Return} +// CHECK:STDOUT: ir0.inst15: {kind: FunctionDecl, arg0: function0, arg1: inst_block_empty, type: type(ir0.inst16)} +// CHECK:STDOUT: ir0.inst16: {kind: FunctionType, arg0: function0, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst17: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst18: {kind: StructValue, arg0: inst_block_empty, type: type(ir0.inst16)} +// CHECK:STDOUT: ir0.inst19: {kind: Return} // CHECK:STDOUT: constant_values: // CHECK:STDOUT: values: // CHECK:STDOUT: inst14: concrete_constant(inst14) -// CHECK:STDOUT: inst15: concrete_constant(inst18) -// CHECK:STDOUT: inst16: concrete_constant(inst16) -// CHECK:STDOUT: inst17: concrete_constant(inst17) -// CHECK:STDOUT: inst18: concrete_constant(inst18) +// CHECK:STDOUT: ir0.inst15: concrete_constant(ir0.inst18) +// CHECK:STDOUT: ir0.inst16: concrete_constant(ir0.inst16) +// CHECK:STDOUT: ir0.inst17: concrete_constant(ir0.inst17) +// CHECK:STDOUT: ir0.inst18: concrete_constant(ir0.inst18) // CHECK:STDOUT: symbolic_constants: {} // CHECK:STDOUT: inst_blocks: // CHECK:STDOUT: inst_block_empty: {} // CHECK:STDOUT: exports: -// CHECK:STDOUT: 0: inst15 +// CHECK:STDOUT: 0: ir0.inst15 // CHECK:STDOUT: imports: {} // CHECK:STDOUT: global_init: {} // CHECK:STDOUT: inst_block4: {} // CHECK:STDOUT: inst_block5: -// CHECK:STDOUT: 0: inst19 +// CHECK:STDOUT: 0: ir0.inst19 // CHECK:STDOUT: inst_block6: // CHECK:STDOUT: 0: inst14 -// CHECK:STDOUT: 1: inst15 +// CHECK:STDOUT: 1: ir0.inst15 // CHECK:STDOUT: ... // CHECK:STDOUT: --- // CHECK:STDOUT: filename: b.carbon @@ -90,14 +90,14 @@ fn B() { // CHECK:STDOUT: import_irs: // CHECK:STDOUT: ir0: {decl_id: inst, is_export: false} // CHECK:STDOUT: ir1: {decl_id: inst, is_export: false} -// CHECK:STDOUT: ir2: {decl_id: inst15, is_export: false} +// CHECK:STDOUT: ir2: {decl_id: ir1.inst15, is_export: false} // CHECK:STDOUT: import_ir_insts: -// CHECK:STDOUT: import_ir_inst0: {ir_id: ir2, inst_id: inst15} -// CHECK:STDOUT: import_ir_inst1: {ir_id: ir2, inst_id: inst15} +// CHECK:STDOUT: import_ir_inst0: {ir_id: ir2, inst_id: ir0.inst15} +// CHECK:STDOUT: import_ir_inst1: {ir_id: ir2, inst_id: ir0.inst15} // CHECK:STDOUT: clang_decls: {} // CHECK:STDOUT: name_scopes: -// CHECK:STDOUT: name_scope0: {inst: inst14, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name1: inst16, name0: inst17}} -// CHECK:STDOUT: name_scope1: {inst: inst16, parent_scope: name_scope0, has_error: false, extended_scopes: [], names: {name1: inst22}} +// CHECK:STDOUT: name_scope0: {inst: inst14, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name1: ir1.inst16, name0: ir1.inst17}} +// CHECK:STDOUT: name_scope1: {inst: ir1.inst16, parent_scope: name_scope0, has_error: false, extended_scopes: [], names: {name1: ir1.inst22}} // CHECK:STDOUT: entity_names: // CHECK:STDOUT: entity_name0: {name: name1, parent_scope: name_scope1, index: -1, is_template: 0, clang_decl_id: clang_decl_id} // CHECK:STDOUT: functions: @@ -115,58 +115,58 @@ fn B() { // CHECK:STDOUT: value_repr: {kind: copy, type: type(Error)} // CHECK:STDOUT: 'type(inst(NamespaceType))': // CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(NamespaceType))} -// CHECK:STDOUT: 'type(inst18)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst19)} -// CHECK:STDOUT: 'type(inst19)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst19)} +// CHECK:STDOUT: 'type(ir1.inst18)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(ir1.inst19)} +// CHECK:STDOUT: 'type(ir1.inst19)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(ir1.inst19)} // CHECK:STDOUT: insts: // CHECK:STDOUT: inst14: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst15: {kind: ImportDecl, arg0: name1} -// CHECK:STDOUT: inst16: {kind: Namespace, arg0: name_scope1, arg1: inst15, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst17: {kind: FunctionDecl, arg0: function0, arg1: inst_block_empty, type: type(inst18)} -// CHECK:STDOUT: inst18: {kind: FunctionType, arg0: function0, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst19: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)} -// CHECK:STDOUT: inst20: {kind: StructValue, arg0: inst_block_empty, type: type(inst18)} -// CHECK:STDOUT: inst21: {kind: NameRef, arg0: name1, arg1: inst16, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst22: {kind: ImportRefLoaded, arg0: import_ir_inst0, arg1: entity_name0, type: type(inst24)} -// CHECK:STDOUT: inst23: {kind: FunctionDecl, arg0: function1, arg1: inst_block_empty, type: type(inst24)} -// CHECK:STDOUT: inst24: {kind: FunctionType, arg0: function1, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst25: {kind: StructValue, arg0: inst_block_empty, type: type(inst24)} -// CHECK:STDOUT: inst26: {kind: NameRef, arg0: name1, arg1: inst22, type: type(inst24)} -// CHECK:STDOUT: inst27: {kind: Call, arg0: inst26, arg1: inst_block_empty, type: type(inst19)} -// CHECK:STDOUT: inst28: {kind: Return} +// CHECK:STDOUT: ir1.inst15: {kind: ImportDecl, arg0: name1} +// CHECK:STDOUT: ir1.inst16: {kind: Namespace, arg0: name_scope1, arg1: ir1.inst15, type: type(inst(NamespaceType))} +// CHECK:STDOUT: ir1.inst17: {kind: FunctionDecl, arg0: function0, arg1: inst_block_empty, type: type(ir1.inst18)} +// CHECK:STDOUT: ir1.inst18: {kind: FunctionType, arg0: function0, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: ir1.inst19: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)} +// CHECK:STDOUT: ir1.inst20: {kind: StructValue, arg0: inst_block_empty, type: type(ir1.inst18)} +// CHECK:STDOUT: ir1.inst21: {kind: NameRef, arg0: name1, arg1: ir1.inst16, type: type(inst(NamespaceType))} +// CHECK:STDOUT: ir1.inst22: {kind: ImportRefLoaded, arg0: import_ir_inst0, arg1: entity_name0, type: type(ir1.inst24)} +// CHECK:STDOUT: ir1.inst23: {kind: FunctionDecl, arg0: function1, arg1: inst_block_empty, type: type(ir1.inst24)} +// CHECK:STDOUT: ir1.inst24: {kind: FunctionType, arg0: function1, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: ir1.inst25: {kind: StructValue, arg0: inst_block_empty, type: type(ir1.inst24)} +// CHECK:STDOUT: ir1.inst26: {kind: NameRef, arg0: name1, arg1: ir1.inst22, type: type(ir1.inst24)} +// CHECK:STDOUT: ir1.inst27: {kind: Call, arg0: ir1.inst26, arg1: inst_block_empty, type: type(ir1.inst19)} +// CHECK:STDOUT: ir1.inst28: {kind: Return} // CHECK:STDOUT: constant_values: // CHECK:STDOUT: values: // CHECK:STDOUT: inst14: concrete_constant(inst14) -// CHECK:STDOUT: inst16: concrete_constant(inst16) -// CHECK:STDOUT: inst17: concrete_constant(inst20) -// CHECK:STDOUT: inst18: concrete_constant(inst18) -// CHECK:STDOUT: inst19: concrete_constant(inst19) -// CHECK:STDOUT: inst20: concrete_constant(inst20) -// CHECK:STDOUT: inst21: concrete_constant(inst16) -// CHECK:STDOUT: inst22: concrete_constant(inst25) -// CHECK:STDOUT: inst23: concrete_constant(inst25) -// CHECK:STDOUT: inst24: concrete_constant(inst24) -// CHECK:STDOUT: inst25: concrete_constant(inst25) -// CHECK:STDOUT: inst26: concrete_constant(inst25) +// CHECK:STDOUT: ir1.inst16: concrete_constant(ir1.inst16) +// CHECK:STDOUT: ir1.inst17: concrete_constant(ir1.inst20) +// CHECK:STDOUT: ir1.inst18: concrete_constant(ir1.inst18) +// CHECK:STDOUT: ir1.inst19: concrete_constant(ir1.inst19) +// CHECK:STDOUT: ir1.inst20: concrete_constant(ir1.inst20) +// CHECK:STDOUT: ir1.inst21: concrete_constant(ir1.inst16) +// CHECK:STDOUT: ir1.inst22: concrete_constant(ir1.inst25) +// CHECK:STDOUT: ir1.inst23: concrete_constant(ir1.inst25) +// CHECK:STDOUT: ir1.inst24: concrete_constant(ir1.inst24) +// CHECK:STDOUT: ir1.inst25: concrete_constant(ir1.inst25) +// CHECK:STDOUT: ir1.inst26: concrete_constant(ir1.inst25) // CHECK:STDOUT: symbolic_constants: {} // CHECK:STDOUT: inst_blocks: // CHECK:STDOUT: inst_block_empty: {} // CHECK:STDOUT: exports: -// CHECK:STDOUT: 0: inst17 +// CHECK:STDOUT: 0: ir1.inst17 // CHECK:STDOUT: imports: -// CHECK:STDOUT: 0: inst16 -// CHECK:STDOUT: 1: inst22 -// CHECK:STDOUT: 2: inst23 +// CHECK:STDOUT: 0: ir1.inst16 +// CHECK:STDOUT: 1: ir1.inst22 +// CHECK:STDOUT: 2: ir1.inst23 // CHECK:STDOUT: global_init: {} // CHECK:STDOUT: inst_block4: {} // CHECK:STDOUT: inst_block5: -// CHECK:STDOUT: 0: inst21 -// CHECK:STDOUT: 1: inst26 -// CHECK:STDOUT: 2: inst27 -// CHECK:STDOUT: 3: inst28 +// CHECK:STDOUT: 0: ir1.inst21 +// CHECK:STDOUT: 1: ir1.inst26 +// CHECK:STDOUT: 2: ir1.inst27 +// CHECK:STDOUT: 3: ir1.inst28 // CHECK:STDOUT: inst_block6: // CHECK:STDOUT: 0: inst14 -// CHECK:STDOUT: 1: inst15 -// CHECK:STDOUT: 2: inst17 +// CHECK:STDOUT: 1: ir1.inst15 +// CHECK:STDOUT: 2: ir1.inst17 // CHECK:STDOUT: ... diff --git a/toolchain/check/testdata/basics/raw_sem_ir/multifile_with_textual_ir.carbon b/toolchain/check/testdata/basics/raw_sem_ir/multifile_with_textual_ir.carbon index 68d7d05d64cb9..df0a7f56995f2 100644 --- a/toolchain/check/testdata/basics/raw_sem_ir/multifile_with_textual_ir.carbon +++ b/toolchain/check/testdata/basics/raw_sem_ir/multifile_with_textual_ir.carbon @@ -36,7 +36,7 @@ fn B() { // CHECK:STDOUT: import_ir_insts: {} // CHECK:STDOUT: clang_decls: {} // CHECK:STDOUT: name_scopes: -// CHECK:STDOUT: name_scope0: {inst: inst14, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name0: inst15}} +// CHECK:STDOUT: name_scope0: {inst: inst14, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name0: ir0.inst15}} // CHECK:STDOUT: entity_names: {} // CHECK:STDOUT: functions: // CHECK:STDOUT: function0: {name: name0, parent_scope: name_scope0, call_params_id: inst_block_empty, body: [inst_block5]} @@ -52,37 +52,37 @@ fn B() { // CHECK:STDOUT: value_repr: {kind: copy, type: type(Error)} // CHECK:STDOUT: 'type(inst(NamespaceType))': // CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(NamespaceType))} -// CHECK:STDOUT: 'type(inst16)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst17)} -// CHECK:STDOUT: 'type(inst17)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst17)} +// CHECK:STDOUT: 'type(ir0.inst16)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(ir0.inst17)} +// CHECK:STDOUT: 'type(ir0.inst17)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(ir0.inst17)} // CHECK:STDOUT: insts: // CHECK:STDOUT: inst14: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst15: {kind: FunctionDecl, arg0: function0, arg1: inst_block_empty, type: type(inst16)} -// CHECK:STDOUT: inst16: {kind: FunctionType, arg0: function0, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst17: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)} -// CHECK:STDOUT: inst18: {kind: StructValue, arg0: inst_block_empty, type: type(inst16)} -// CHECK:STDOUT: inst19: {kind: Return} +// CHECK:STDOUT: ir0.inst15: {kind: FunctionDecl, arg0: function0, arg1: inst_block_empty, type: type(ir0.inst16)} +// CHECK:STDOUT: ir0.inst16: {kind: FunctionType, arg0: function0, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst17: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst18: {kind: StructValue, arg0: inst_block_empty, type: type(ir0.inst16)} +// CHECK:STDOUT: ir0.inst19: {kind: Return} // CHECK:STDOUT: constant_values: // CHECK:STDOUT: values: // CHECK:STDOUT: inst14: concrete_constant(inst14) -// CHECK:STDOUT: inst15: concrete_constant(inst18) -// CHECK:STDOUT: inst16: concrete_constant(inst16) -// CHECK:STDOUT: inst17: concrete_constant(inst17) -// CHECK:STDOUT: inst18: concrete_constant(inst18) +// CHECK:STDOUT: ir0.inst15: concrete_constant(ir0.inst18) +// CHECK:STDOUT: ir0.inst16: concrete_constant(ir0.inst16) +// CHECK:STDOUT: ir0.inst17: concrete_constant(ir0.inst17) +// CHECK:STDOUT: ir0.inst18: concrete_constant(ir0.inst18) // CHECK:STDOUT: symbolic_constants: {} // CHECK:STDOUT: inst_blocks: // CHECK:STDOUT: inst_block_empty: {} // CHECK:STDOUT: exports: -// CHECK:STDOUT: 0: inst15 +// CHECK:STDOUT: 0: ir0.inst15 // CHECK:STDOUT: imports: {} // CHECK:STDOUT: global_init: {} // CHECK:STDOUT: inst_block4: {} // CHECK:STDOUT: inst_block5: -// CHECK:STDOUT: 0: inst19 +// CHECK:STDOUT: 0: ir0.inst19 // CHECK:STDOUT: inst_block6: // CHECK:STDOUT: 0: inst14 -// CHECK:STDOUT: 1: inst15 +// CHECK:STDOUT: 1: ir0.inst15 // CHECK:STDOUT: ... // CHECK:STDOUT: --- a.carbon // CHECK:STDOUT: @@ -109,14 +109,14 @@ fn B() { // CHECK:STDOUT: import_irs: // CHECK:STDOUT: ir0: {decl_id: inst, is_export: false} // CHECK:STDOUT: ir1: {decl_id: inst, is_export: false} -// CHECK:STDOUT: ir2: {decl_id: inst15, is_export: false} +// CHECK:STDOUT: ir2: {decl_id: ir1.inst15, is_export: false} // CHECK:STDOUT: import_ir_insts: -// CHECK:STDOUT: import_ir_inst0: {ir_id: ir2, inst_id: inst15} -// CHECK:STDOUT: import_ir_inst1: {ir_id: ir2, inst_id: inst15} +// CHECK:STDOUT: import_ir_inst0: {ir_id: ir2, inst_id: ir0.inst15} +// CHECK:STDOUT: import_ir_inst1: {ir_id: ir2, inst_id: ir0.inst15} // CHECK:STDOUT: clang_decls: {} // CHECK:STDOUT: name_scopes: -// CHECK:STDOUT: name_scope0: {inst: inst14, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name1: inst16, name0: inst17}} -// CHECK:STDOUT: name_scope1: {inst: inst16, parent_scope: name_scope0, has_error: false, extended_scopes: [], names: {name1: inst22}} +// CHECK:STDOUT: name_scope0: {inst: inst14, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name1: ir1.inst16, name0: ir1.inst17}} +// CHECK:STDOUT: name_scope1: {inst: ir1.inst16, parent_scope: name_scope0, has_error: false, extended_scopes: [], names: {name1: ir1.inst22}} // CHECK:STDOUT: entity_names: // CHECK:STDOUT: entity_name0: {name: name1, parent_scope: name_scope1, index: -1, is_template: 0, clang_decl_id: clang_decl_id} // CHECK:STDOUT: functions: @@ -134,60 +134,60 @@ fn B() { // CHECK:STDOUT: value_repr: {kind: copy, type: type(Error)} // CHECK:STDOUT: 'type(inst(NamespaceType))': // CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(NamespaceType))} -// CHECK:STDOUT: 'type(inst18)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst19)} -// CHECK:STDOUT: 'type(inst19)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst19)} +// CHECK:STDOUT: 'type(ir1.inst18)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(ir1.inst19)} +// CHECK:STDOUT: 'type(ir1.inst19)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(ir1.inst19)} // CHECK:STDOUT: insts: // CHECK:STDOUT: inst14: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst15: {kind: ImportDecl, arg0: name1} -// CHECK:STDOUT: inst16: {kind: Namespace, arg0: name_scope1, arg1: inst15, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst17: {kind: FunctionDecl, arg0: function0, arg1: inst_block_empty, type: type(inst18)} -// CHECK:STDOUT: inst18: {kind: FunctionType, arg0: function0, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst19: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)} -// CHECK:STDOUT: inst20: {kind: StructValue, arg0: inst_block_empty, type: type(inst18)} -// CHECK:STDOUT: inst21: {kind: NameRef, arg0: name1, arg1: inst16, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst22: {kind: ImportRefLoaded, arg0: import_ir_inst0, arg1: entity_name0, type: type(inst24)} -// CHECK:STDOUT: inst23: {kind: FunctionDecl, arg0: function1, arg1: inst_block_empty, type: type(inst24)} -// CHECK:STDOUT: inst24: {kind: FunctionType, arg0: function1, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst25: {kind: StructValue, arg0: inst_block_empty, type: type(inst24)} -// CHECK:STDOUT: inst26: {kind: NameRef, arg0: name1, arg1: inst22, type: type(inst24)} -// CHECK:STDOUT: inst27: {kind: Call, arg0: inst26, arg1: inst_block_empty, type: type(inst19)} -// CHECK:STDOUT: inst28: {kind: Return} +// CHECK:STDOUT: ir1.inst15: {kind: ImportDecl, arg0: name1} +// CHECK:STDOUT: ir1.inst16: {kind: Namespace, arg0: name_scope1, arg1: ir1.inst15, type: type(inst(NamespaceType))} +// CHECK:STDOUT: ir1.inst17: {kind: FunctionDecl, arg0: function0, arg1: inst_block_empty, type: type(ir1.inst18)} +// CHECK:STDOUT: ir1.inst18: {kind: FunctionType, arg0: function0, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: ir1.inst19: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)} +// CHECK:STDOUT: ir1.inst20: {kind: StructValue, arg0: inst_block_empty, type: type(ir1.inst18)} +// CHECK:STDOUT: ir1.inst21: {kind: NameRef, arg0: name1, arg1: ir1.inst16, type: type(inst(NamespaceType))} +// CHECK:STDOUT: ir1.inst22: {kind: ImportRefLoaded, arg0: import_ir_inst0, arg1: entity_name0, type: type(ir1.inst24)} +// CHECK:STDOUT: ir1.inst23: {kind: FunctionDecl, arg0: function1, arg1: inst_block_empty, type: type(ir1.inst24)} +// CHECK:STDOUT: ir1.inst24: {kind: FunctionType, arg0: function1, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: ir1.inst25: {kind: StructValue, arg0: inst_block_empty, type: type(ir1.inst24)} +// CHECK:STDOUT: ir1.inst26: {kind: NameRef, arg0: name1, arg1: ir1.inst22, type: type(ir1.inst24)} +// CHECK:STDOUT: ir1.inst27: {kind: Call, arg0: ir1.inst26, arg1: inst_block_empty, type: type(ir1.inst19)} +// CHECK:STDOUT: ir1.inst28: {kind: Return} // CHECK:STDOUT: constant_values: // CHECK:STDOUT: values: // CHECK:STDOUT: inst14: concrete_constant(inst14) -// CHECK:STDOUT: inst16: concrete_constant(inst16) -// CHECK:STDOUT: inst17: concrete_constant(inst20) -// CHECK:STDOUT: inst18: concrete_constant(inst18) -// CHECK:STDOUT: inst19: concrete_constant(inst19) -// CHECK:STDOUT: inst20: concrete_constant(inst20) -// CHECK:STDOUT: inst21: concrete_constant(inst16) -// CHECK:STDOUT: inst22: concrete_constant(inst25) -// CHECK:STDOUT: inst23: concrete_constant(inst25) -// CHECK:STDOUT: inst24: concrete_constant(inst24) -// CHECK:STDOUT: inst25: concrete_constant(inst25) -// CHECK:STDOUT: inst26: concrete_constant(inst25) +// CHECK:STDOUT: ir1.inst16: concrete_constant(ir1.inst16) +// CHECK:STDOUT: ir1.inst17: concrete_constant(ir1.inst20) +// CHECK:STDOUT: ir1.inst18: concrete_constant(ir1.inst18) +// CHECK:STDOUT: ir1.inst19: concrete_constant(ir1.inst19) +// CHECK:STDOUT: ir1.inst20: concrete_constant(ir1.inst20) +// CHECK:STDOUT: ir1.inst21: concrete_constant(ir1.inst16) +// CHECK:STDOUT: ir1.inst22: concrete_constant(ir1.inst25) +// CHECK:STDOUT: ir1.inst23: concrete_constant(ir1.inst25) +// CHECK:STDOUT: ir1.inst24: concrete_constant(ir1.inst24) +// CHECK:STDOUT: ir1.inst25: concrete_constant(ir1.inst25) +// CHECK:STDOUT: ir1.inst26: concrete_constant(ir1.inst25) // CHECK:STDOUT: symbolic_constants: {} // CHECK:STDOUT: inst_blocks: // CHECK:STDOUT: inst_block_empty: {} // CHECK:STDOUT: exports: -// CHECK:STDOUT: 0: inst17 +// CHECK:STDOUT: 0: ir1.inst17 // CHECK:STDOUT: imports: -// CHECK:STDOUT: 0: inst16 -// CHECK:STDOUT: 1: inst22 -// CHECK:STDOUT: 2: inst23 +// CHECK:STDOUT: 0: ir1.inst16 +// CHECK:STDOUT: 1: ir1.inst22 +// CHECK:STDOUT: 2: ir1.inst23 // CHECK:STDOUT: global_init: {} // CHECK:STDOUT: inst_block4: {} // CHECK:STDOUT: inst_block5: -// CHECK:STDOUT: 0: inst21 -// CHECK:STDOUT: 1: inst26 -// CHECK:STDOUT: 2: inst27 -// CHECK:STDOUT: 3: inst28 +// CHECK:STDOUT: 0: ir1.inst21 +// CHECK:STDOUT: 1: ir1.inst26 +// CHECK:STDOUT: 2: ir1.inst27 +// CHECK:STDOUT: 3: ir1.inst28 // CHECK:STDOUT: inst_block6: // CHECK:STDOUT: 0: inst14 -// CHECK:STDOUT: 1: inst15 -// CHECK:STDOUT: 2: inst17 +// CHECK:STDOUT: 1: ir1.inst15 +// CHECK:STDOUT: 2: ir1.inst17 // CHECK:STDOUT: ... // CHECK:STDOUT: --- b.carbon // CHECK:STDOUT: diff --git a/toolchain/check/testdata/basics/raw_sem_ir/one_file.carbon b/toolchain/check/testdata/basics/raw_sem_ir/one_file.carbon index eb0d45b9a24c9..1186f268a7a44 100644 --- a/toolchain/check/testdata/basics/raw_sem_ir/one_file.carbon +++ b/toolchain/check/testdata/basics/raw_sem_ir/one_file.carbon @@ -23,214 +23,214 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: import_irs: // CHECK:STDOUT: ir0: {decl_id: inst, is_export: false} // CHECK:STDOUT: ir1: {decl_id: inst, is_export: false} -// CHECK:STDOUT: ir2: {decl_id: inst15, is_export: false} -// CHECK:STDOUT: ir3: {decl_id: inst15, is_export: false} -// CHECK:STDOUT: ir4: {decl_id: inst15, is_export: false} -// CHECK:STDOUT: ir5: {decl_id: inst15, is_export: false} +// CHECK:STDOUT: ir2: {decl_id: ir0.inst15, is_export: false} +// CHECK:STDOUT: ir3: {decl_id: ir0.inst15, is_export: false} +// CHECK:STDOUT: ir4: {decl_id: ir0.inst15, is_export: false} +// CHECK:STDOUT: ir5: {decl_id: ir0.inst15, is_export: false} // CHECK:STDOUT: import_ir_insts: -// CHECK:STDOUT: import_ir_inst0: {ir_id: ir4, inst_id: inst15} -// CHECK:STDOUT: import_ir_inst1: {ir_id: ir4, inst_id: inst15} -// CHECK:STDOUT: import_ir_inst2: {ir_id: ir4, inst_id: inst17} -// CHECK:STDOUT: import_ir_inst3: {ir_id: ir4, inst_id: inst45} -// CHECK:STDOUT: import_ir_inst4: {ir_id: ir4, inst_id: inst40} -// CHECK:STDOUT: import_ir_inst5: {ir_id: ir4, inst_id: inst40} -// CHECK:STDOUT: import_ir_inst6: {ir_id: ir4, inst_id: inst40} -// CHECK:STDOUT: import_ir_inst7: {ir_id: ir4, inst_id: inst34} -// CHECK:STDOUT: import_ir_inst8: {ir_id: ir4, inst_id: inst35} -// CHECK:STDOUT: import_ir_inst9: {ir_id: ir4, inst_id: inst28} -// CHECK:STDOUT: import_ir_inst10: {ir_id: ir4, inst_id: inst30} -// CHECK:STDOUT: import_ir_inst11: {ir_id: ir4, inst_id: inst17} -// CHECK:STDOUT: import_ir_inst12: {ir_id: ir4, inst_id: inst21} -// CHECK:STDOUT: import_ir_inst13: {ir_id: ir4, inst_id: inst24} -// CHECK:STDOUT: import_ir_inst14: {ir_id: ir4, inst_id: inst29} -// CHECK:STDOUT: import_ir_inst15: {ir_id: ir4, inst_id: inst97} -// CHECK:STDOUT: import_ir_inst16: {ir_id: ir4, inst_id: inst95} -// CHECK:STDOUT: import_ir_inst17: {ir_id: ir4, inst_id: inst84} -// CHECK:STDOUT: import_ir_inst18: {ir_id: ir4, inst_id: inst80} -// CHECK:STDOUT: import_ir_inst19: {ir_id: ir4, inst_id: inst90} -// CHECK:STDOUT: import_ir_inst20: {ir_id: ir4, inst_id: inst93} -// CHECK:STDOUT: import_ir_inst21: {ir_id: ir4, inst_id: inst116} -// CHECK:STDOUT: import_ir_inst22: {ir_id: ir4, inst_id: inst96} -// CHECK:STDOUT: import_ir_inst23: {ir_id: ir4, inst_id: inst82} -// CHECK:STDOUT: import_ir_inst24: {ir_id: ir4, inst_id: inst88} -// CHECK:STDOUT: import_ir_inst25: {ir_id: ir4, inst_id: inst92} -// CHECK:STDOUT: import_ir_inst26: {ir_id: ir4, inst_id: inst99} -// CHECK:STDOUT: import_ir_inst27: {ir_id: ir4, inst_id: inst116} -// CHECK:STDOUT: import_ir_inst28: {ir_id: ir4, inst_id: inst111} -// CHECK:STDOUT: import_ir_inst29: {ir_id: ir4, inst_id: inst112} -// CHECK:STDOUT: import_ir_inst30: {ir_id: ir4, inst_id: inst107} -// CHECK:STDOUT: import_ir_inst31: {ir_id: ir4, inst_id: inst109} -// CHECK:STDOUT: import_ir_inst32: {ir_id: ir4, inst_id: inst80} -// CHECK:STDOUT: import_ir_inst33: {ir_id: ir4, inst_id: inst119} -// CHECK:STDOUT: import_ir_inst34: {ir_id: ir4, inst_id: inst120} -// CHECK:STDOUT: import_ir_inst35: {ir_id: ir4, inst_id: inst102} -// CHECK:STDOUT: import_ir_inst36: {ir_id: ir4, inst_id: inst103} -// CHECK:STDOUT: import_ir_inst37: {ir_id: ir4, inst_id: inst104} -// CHECK:STDOUT: import_ir_inst38: {ir_id: ir4, inst_id: inst108} -// CHECK:STDOUT: import_ir_inst39: {ir_id: ir4, inst_id: inst124} -// CHECK:STDOUT: import_ir_inst40: {ir_id: ir4, inst_id: inst132} -// CHECK:STDOUT: import_ir_inst41: {ir_id: ir4, inst_id: inst139} -// CHECK:STDOUT: import_ir_inst42: {ir_id: ir4, inst_id: inst143} -// CHECK:STDOUT: import_ir_inst43: {ir_id: ir4, inst_id: inst144} -// CHECK:STDOUT: import_ir_inst44: {ir_id: ir4, inst_id: inst149} -// CHECK:STDOUT: import_ir_inst45: {ir_id: ir4, inst_id: inst170} -// CHECK:STDOUT: import_ir_inst46: {ir_id: ir4, inst_id: inst168} -// CHECK:STDOUT: import_ir_inst47: {ir_id: ir4, inst_id: inst166} -// CHECK:STDOUT: import_ir_inst48: {ir_id: ir4, inst_id: inst167} -// CHECK:STDOUT: import_ir_inst49: {ir_id: ir4, inst_id: inst194} -// CHECK:STDOUT: import_ir_inst50: {ir_id: ir4, inst_id: inst192} -// CHECK:STDOUT: import_ir_inst51: {ir_id: ir4, inst_id: inst190} -// CHECK:STDOUT: import_ir_inst52: {ir_id: ir4, inst_id: inst191} -// CHECK:STDOUT: import_ir_inst53: {ir_id: ir4, inst_id: inst218} -// CHECK:STDOUT: import_ir_inst54: {ir_id: ir4, inst_id: inst216} -// CHECK:STDOUT: import_ir_inst55: {ir_id: ir4, inst_id: inst214} -// CHECK:STDOUT: import_ir_inst56: {ir_id: ir4, inst_id: inst215} -// CHECK:STDOUT: import_ir_inst57: {ir_id: ir4, inst_id: inst242} -// CHECK:STDOUT: import_ir_inst58: {ir_id: ir4, inst_id: inst240} -// CHECK:STDOUT: import_ir_inst59: {ir_id: ir4, inst_id: inst238} -// CHECK:STDOUT: import_ir_inst60: {ir_id: ir4, inst_id: inst239} -// CHECK:STDOUT: import_ir_inst61: {ir_id: ir4, inst_id: inst271} -// CHECK:STDOUT: import_ir_inst62: {ir_id: ir4, inst_id: inst269} -// CHECK:STDOUT: import_ir_inst63: {ir_id: ir4, inst_id: inst263} -// CHECK:STDOUT: import_ir_inst64: {ir_id: ir4, inst_id: inst260} -// CHECK:STDOUT: import_ir_inst65: {ir_id: ir4, inst_id: inst265} -// CHECK:STDOUT: import_ir_inst66: {ir_id: ir4, inst_id: inst268} -// CHECK:STDOUT: import_ir_inst67: {ir_id: ir4, inst_id: inst288} -// CHECK:STDOUT: import_ir_inst68: {ir_id: ir4, inst_id: inst270} -// CHECK:STDOUT: import_ir_inst69: {ir_id: ir4, inst_id: inst262} -// CHECK:STDOUT: import_ir_inst70: {ir_id: ir4, inst_id: inst267} -// CHECK:STDOUT: import_ir_inst71: {ir_id: ir4, inst_id: inst273} -// CHECK:STDOUT: import_ir_inst72: {ir_id: ir4, inst_id: inst288} -// CHECK:STDOUT: import_ir_inst73: {ir_id: ir4, inst_id: inst283} -// CHECK:STDOUT: import_ir_inst74: {ir_id: ir4, inst_id: inst284} -// CHECK:STDOUT: import_ir_inst75: {ir_id: ir4, inst_id: inst279} -// CHECK:STDOUT: import_ir_inst76: {ir_id: ir4, inst_id: inst281} -// CHECK:STDOUT: import_ir_inst77: {ir_id: ir4, inst_id: inst260} -// CHECK:STDOUT: import_ir_inst78: {ir_id: ir4, inst_id: inst291} -// CHECK:STDOUT: import_ir_inst79: {ir_id: ir4, inst_id: inst292} -// CHECK:STDOUT: import_ir_inst80: {ir_id: ir4, inst_id: inst295} -// CHECK:STDOUT: import_ir_inst81: {ir_id: ir4, inst_id: inst275} -// CHECK:STDOUT: import_ir_inst82: {ir_id: ir4, inst_id: inst276} -// CHECK:STDOUT: import_ir_inst83: {ir_id: ir4, inst_id: inst280} -// CHECK:STDOUT: import_ir_inst84: {ir_id: ir4, inst_id: inst301} -// CHECK:STDOUT: import_ir_inst85: {ir_id: ir4, inst_id: inst299} +// CHECK:STDOUT: import_ir_inst0: {ir_id: ir4, inst_id: ir3.inst15} +// CHECK:STDOUT: import_ir_inst1: {ir_id: ir4, inst_id: ir3.inst15} +// CHECK:STDOUT: import_ir_inst2: {ir_id: ir4, inst_id: ir3.inst17} +// CHECK:STDOUT: import_ir_inst3: {ir_id: ir4, inst_id: ir3.inst45} +// CHECK:STDOUT: import_ir_inst4: {ir_id: ir4, inst_id: ir3.inst40} +// CHECK:STDOUT: import_ir_inst5: {ir_id: ir4, inst_id: ir3.inst40} +// CHECK:STDOUT: import_ir_inst6: {ir_id: ir4, inst_id: ir3.inst40} +// CHECK:STDOUT: import_ir_inst7: {ir_id: ir4, inst_id: ir3.inst34} +// CHECK:STDOUT: import_ir_inst8: {ir_id: ir4, inst_id: ir3.inst35} +// CHECK:STDOUT: import_ir_inst9: {ir_id: ir4, inst_id: ir3.inst28} +// CHECK:STDOUT: import_ir_inst10: {ir_id: ir4, inst_id: ir3.inst30} +// CHECK:STDOUT: import_ir_inst11: {ir_id: ir4, inst_id: ir3.inst17} +// CHECK:STDOUT: import_ir_inst12: {ir_id: ir4, inst_id: ir3.inst21} +// CHECK:STDOUT: import_ir_inst13: {ir_id: ir4, inst_id: ir3.inst24} +// CHECK:STDOUT: import_ir_inst14: {ir_id: ir4, inst_id: ir3.inst29} +// CHECK:STDOUT: import_ir_inst15: {ir_id: ir4, inst_id: ir3.inst97} +// CHECK:STDOUT: import_ir_inst16: {ir_id: ir4, inst_id: ir3.inst95} +// CHECK:STDOUT: import_ir_inst17: {ir_id: ir4, inst_id: ir3.inst84} +// CHECK:STDOUT: import_ir_inst18: {ir_id: ir4, inst_id: ir3.inst80} +// CHECK:STDOUT: import_ir_inst19: {ir_id: ir4, inst_id: ir3.inst90} +// CHECK:STDOUT: import_ir_inst20: {ir_id: ir4, inst_id: ir3.inst93} +// CHECK:STDOUT: import_ir_inst21: {ir_id: ir4, inst_id: ir3.inst116} +// CHECK:STDOUT: import_ir_inst22: {ir_id: ir4, inst_id: ir3.inst96} +// CHECK:STDOUT: import_ir_inst23: {ir_id: ir4, inst_id: ir3.inst82} +// CHECK:STDOUT: import_ir_inst24: {ir_id: ir4, inst_id: ir3.inst88} +// CHECK:STDOUT: import_ir_inst25: {ir_id: ir4, inst_id: ir3.inst92} +// CHECK:STDOUT: import_ir_inst26: {ir_id: ir4, inst_id: ir3.inst99} +// CHECK:STDOUT: import_ir_inst27: {ir_id: ir4, inst_id: ir3.inst116} +// CHECK:STDOUT: import_ir_inst28: {ir_id: ir4, inst_id: ir3.inst111} +// CHECK:STDOUT: import_ir_inst29: {ir_id: ir4, inst_id: ir3.inst112} +// CHECK:STDOUT: import_ir_inst30: {ir_id: ir4, inst_id: ir3.inst107} +// CHECK:STDOUT: import_ir_inst31: {ir_id: ir4, inst_id: ir3.inst109} +// CHECK:STDOUT: import_ir_inst32: {ir_id: ir4, inst_id: ir3.inst80} +// CHECK:STDOUT: import_ir_inst33: {ir_id: ir4, inst_id: ir3.inst119} +// CHECK:STDOUT: import_ir_inst34: {ir_id: ir4, inst_id: ir3.inst120} +// CHECK:STDOUT: import_ir_inst35: {ir_id: ir4, inst_id: ir3.inst102} +// CHECK:STDOUT: import_ir_inst36: {ir_id: ir4, inst_id: ir3.inst103} +// CHECK:STDOUT: import_ir_inst37: {ir_id: ir4, inst_id: ir3.inst104} +// CHECK:STDOUT: import_ir_inst38: {ir_id: ir4, inst_id: ir3.inst108} +// CHECK:STDOUT: import_ir_inst39: {ir_id: ir4, inst_id: ir3.inst124} +// CHECK:STDOUT: import_ir_inst40: {ir_id: ir4, inst_id: ir3.inst132} +// CHECK:STDOUT: import_ir_inst41: {ir_id: ir4, inst_id: ir3.inst139} +// CHECK:STDOUT: import_ir_inst42: {ir_id: ir4, inst_id: ir3.inst143} +// CHECK:STDOUT: import_ir_inst43: {ir_id: ir4, inst_id: ir3.inst144} +// CHECK:STDOUT: import_ir_inst44: {ir_id: ir4, inst_id: ir3.inst149} +// CHECK:STDOUT: import_ir_inst45: {ir_id: ir4, inst_id: ir3.inst170} +// CHECK:STDOUT: import_ir_inst46: {ir_id: ir4, inst_id: ir3.inst168} +// CHECK:STDOUT: import_ir_inst47: {ir_id: ir4, inst_id: ir3.inst166} +// CHECK:STDOUT: import_ir_inst48: {ir_id: ir4, inst_id: ir3.inst167} +// CHECK:STDOUT: import_ir_inst49: {ir_id: ir4, inst_id: ir3.inst194} +// CHECK:STDOUT: import_ir_inst50: {ir_id: ir4, inst_id: ir3.inst192} +// CHECK:STDOUT: import_ir_inst51: {ir_id: ir4, inst_id: ir3.inst190} +// CHECK:STDOUT: import_ir_inst52: {ir_id: ir4, inst_id: ir3.inst191} +// CHECK:STDOUT: import_ir_inst53: {ir_id: ir4, inst_id: ir3.inst218} +// CHECK:STDOUT: import_ir_inst54: {ir_id: ir4, inst_id: ir3.inst216} +// CHECK:STDOUT: import_ir_inst55: {ir_id: ir4, inst_id: ir3.inst214} +// CHECK:STDOUT: import_ir_inst56: {ir_id: ir4, inst_id: ir3.inst215} +// CHECK:STDOUT: import_ir_inst57: {ir_id: ir4, inst_id: ir3.inst242} +// CHECK:STDOUT: import_ir_inst58: {ir_id: ir4, inst_id: ir3.inst240} +// CHECK:STDOUT: import_ir_inst59: {ir_id: ir4, inst_id: ir3.inst238} +// CHECK:STDOUT: import_ir_inst60: {ir_id: ir4, inst_id: ir3.inst239} +// CHECK:STDOUT: import_ir_inst61: {ir_id: ir4, inst_id: ir3.inst271} +// CHECK:STDOUT: import_ir_inst62: {ir_id: ir4, inst_id: ir3.inst269} +// CHECK:STDOUT: import_ir_inst63: {ir_id: ir4, inst_id: ir3.inst263} +// CHECK:STDOUT: import_ir_inst64: {ir_id: ir4, inst_id: ir3.inst260} +// CHECK:STDOUT: import_ir_inst65: {ir_id: ir4, inst_id: ir3.inst265} +// CHECK:STDOUT: import_ir_inst66: {ir_id: ir4, inst_id: ir3.inst268} +// CHECK:STDOUT: import_ir_inst67: {ir_id: ir4, inst_id: ir3.inst288} +// CHECK:STDOUT: import_ir_inst68: {ir_id: ir4, inst_id: ir3.inst270} +// CHECK:STDOUT: import_ir_inst69: {ir_id: ir4, inst_id: ir3.inst262} +// CHECK:STDOUT: import_ir_inst70: {ir_id: ir4, inst_id: ir3.inst267} +// CHECK:STDOUT: import_ir_inst71: {ir_id: ir4, inst_id: ir3.inst273} +// CHECK:STDOUT: import_ir_inst72: {ir_id: ir4, inst_id: ir3.inst288} +// CHECK:STDOUT: import_ir_inst73: {ir_id: ir4, inst_id: ir3.inst283} +// CHECK:STDOUT: import_ir_inst74: {ir_id: ir4, inst_id: ir3.inst284} +// CHECK:STDOUT: import_ir_inst75: {ir_id: ir4, inst_id: ir3.inst279} +// CHECK:STDOUT: import_ir_inst76: {ir_id: ir4, inst_id: ir3.inst281} +// CHECK:STDOUT: import_ir_inst77: {ir_id: ir4, inst_id: ir3.inst260} +// CHECK:STDOUT: import_ir_inst78: {ir_id: ir4, inst_id: ir3.inst291} +// CHECK:STDOUT: import_ir_inst79: {ir_id: ir4, inst_id: ir3.inst292} +// CHECK:STDOUT: import_ir_inst80: {ir_id: ir4, inst_id: ir3.inst295} +// CHECK:STDOUT: import_ir_inst81: {ir_id: ir4, inst_id: ir3.inst275} +// CHECK:STDOUT: import_ir_inst82: {ir_id: ir4, inst_id: ir3.inst276} +// CHECK:STDOUT: import_ir_inst83: {ir_id: ir4, inst_id: ir3.inst280} +// CHECK:STDOUT: import_ir_inst84: {ir_id: ir4, inst_id: ir3.inst301} +// CHECK:STDOUT: import_ir_inst85: {ir_id: ir4, inst_id: ir3.inst299} // CHECK:STDOUT: import_ir_inst86: {ir_id: ir4, inst_id: inst(TypeType)} -// CHECK:STDOUT: import_ir_inst87: {ir_id: ir4, inst_id: inst298} -// CHECK:STDOUT: import_ir_inst88: {ir_id: ir4, inst_id: inst322} -// CHECK:STDOUT: import_ir_inst89: {ir_id: ir4, inst_id: inst320} -// CHECK:STDOUT: import_ir_inst90: {ir_id: ir4, inst_id: inst318} -// CHECK:STDOUT: import_ir_inst91: {ir_id: ir4, inst_id: inst319} -// CHECK:STDOUT: import_ir_inst92: {ir_id: ir4, inst_id: inst370} -// CHECK:STDOUT: import_ir_inst93: {ir_id: ir4, inst_id: inst368} -// CHECK:STDOUT: import_ir_inst94: {ir_id: ir4, inst_id: inst349} -// CHECK:STDOUT: import_ir_inst95: {ir_id: ir4, inst_id: inst343} -// CHECK:STDOUT: import_ir_inst96: {ir_id: ir4, inst_id: inst341} -// CHECK:STDOUT: import_ir_inst97: {ir_id: ir4, inst_id: inst346} -// CHECK:STDOUT: import_ir_inst98: {ir_id: ir4, inst_id: inst363} -// CHECK:STDOUT: import_ir_inst99: {ir_id: ir4, inst_id: inst365} -// CHECK:STDOUT: import_ir_inst100: {ir_id: ir4, inst_id: inst392} -// CHECK:STDOUT: import_ir_inst101: {ir_id: ir4, inst_id: inst369} -// CHECK:STDOUT: import_ir_inst102: {ir_id: ir4, inst_id: inst342} -// CHECK:STDOUT: import_ir_inst103: {ir_id: ir4, inst_id: inst348} -// CHECK:STDOUT: import_ir_inst104: {ir_id: ir4, inst_id: inst356} -// CHECK:STDOUT: import_ir_inst105: {ir_id: ir4, inst_id: inst360} -// CHECK:STDOUT: import_ir_inst106: {ir_id: ir4, inst_id: inst364} -// CHECK:STDOUT: import_ir_inst107: {ir_id: ir4, inst_id: inst372} -// CHECK:STDOUT: import_ir_inst108: {ir_id: ir4, inst_id: inst392} -// CHECK:STDOUT: import_ir_inst109: {ir_id: ir4, inst_id: inst387} -// CHECK:STDOUT: import_ir_inst110: {ir_id: ir4, inst_id: inst388} -// CHECK:STDOUT: import_ir_inst111: {ir_id: ir4, inst_id: inst383} -// CHECK:STDOUT: import_ir_inst112: {ir_id: ir4, inst_id: inst385} -// CHECK:STDOUT: import_ir_inst113: {ir_id: ir4, inst_id: inst341} -// CHECK:STDOUT: import_ir_inst114: {ir_id: ir4, inst_id: inst346} -// CHECK:STDOUT: import_ir_inst115: {ir_id: ir4, inst_id: inst395} -// CHECK:STDOUT: import_ir_inst116: {ir_id: ir4, inst_id: inst396} -// CHECK:STDOUT: import_ir_inst117: {ir_id: ir4, inst_id: inst376} -// CHECK:STDOUT: import_ir_inst118: {ir_id: ir4, inst_id: inst377} -// CHECK:STDOUT: import_ir_inst119: {ir_id: ir4, inst_id: inst378} -// CHECK:STDOUT: import_ir_inst120: {ir_id: ir4, inst_id: inst379} -// CHECK:STDOUT: import_ir_inst121: {ir_id: ir4, inst_id: inst380} -// CHECK:STDOUT: import_ir_inst122: {ir_id: ir4, inst_id: inst384} -// CHECK:STDOUT: import_ir_inst123: {ir_id: ir4, inst_id: inst401} -// CHECK:STDOUT: import_ir_inst124: {ir_id: ir4, inst_id: inst409} -// CHECK:STDOUT: import_ir_inst125: {ir_id: ir4, inst_id: inst413} -// CHECK:STDOUT: import_ir_inst126: {ir_id: ir4, inst_id: inst415} -// CHECK:STDOUT: import_ir_inst127: {ir_id: ir4, inst_id: inst416} -// CHECK:STDOUT: import_ir_inst128: {ir_id: ir4, inst_id: inst419} -// CHECK:STDOUT: import_ir_inst129: {ir_id: ir4, inst_id: inst431} -// CHECK:STDOUT: import_ir_inst130: {ir_id: ir4, inst_id: inst436} -// CHECK:STDOUT: import_ir_inst131: {ir_id: ir4, inst_id: inst440} -// CHECK:STDOUT: import_ir_inst132: {ir_id: ir4, inst_id: inst441} -// CHECK:STDOUT: import_ir_inst133: {ir_id: ir4, inst_id: inst446} -// CHECK:STDOUT: import_ir_inst134: {ir_id: ir4, inst_id: inst503} -// CHECK:STDOUT: import_ir_inst135: {ir_id: ir4, inst_id: inst501} -// CHECK:STDOUT: import_ir_inst136: {ir_id: ir4, inst_id: inst477} -// CHECK:STDOUT: import_ir_inst137: {ir_id: ir4, inst_id: inst471} -// CHECK:STDOUT: import_ir_inst138: {ir_id: ir4, inst_id: inst466} -// CHECK:STDOUT: import_ir_inst139: {ir_id: ir4, inst_id: inst464} -// CHECK:STDOUT: import_ir_inst140: {ir_id: ir4, inst_id: inst469} -// CHECK:STDOUT: import_ir_inst141: {ir_id: ir4, inst_id: inst474} -// CHECK:STDOUT: import_ir_inst142: {ir_id: ir4, inst_id: inst495} -// CHECK:STDOUT: import_ir_inst143: {ir_id: ir4, inst_id: inst497} -// CHECK:STDOUT: import_ir_inst144: {ir_id: ir4, inst_id: inst528} -// CHECK:STDOUT: import_ir_inst145: {ir_id: ir4, inst_id: inst502} -// CHECK:STDOUT: import_ir_inst146: {ir_id: ir4, inst_id: inst465} -// CHECK:STDOUT: import_ir_inst147: {ir_id: ir4, inst_id: inst470} -// CHECK:STDOUT: import_ir_inst148: {ir_id: ir4, inst_id: inst476} -// CHECK:STDOUT: import_ir_inst149: {ir_id: ir4, inst_id: inst485} -// CHECK:STDOUT: import_ir_inst150: {ir_id: ir4, inst_id: inst488} -// CHECK:STDOUT: import_ir_inst151: {ir_id: ir4, inst_id: inst492} -// CHECK:STDOUT: import_ir_inst152: {ir_id: ir4, inst_id: inst496} -// CHECK:STDOUT: import_ir_inst153: {ir_id: ir4, inst_id: inst505} -// CHECK:STDOUT: import_ir_inst154: {ir_id: ir4, inst_id: inst528} -// CHECK:STDOUT: import_ir_inst155: {ir_id: ir4, inst_id: inst523} -// CHECK:STDOUT: import_ir_inst156: {ir_id: ir4, inst_id: inst524} -// CHECK:STDOUT: import_ir_inst157: {ir_id: ir4, inst_id: inst519} -// CHECK:STDOUT: import_ir_inst158: {ir_id: ir4, inst_id: inst521} -// CHECK:STDOUT: import_ir_inst159: {ir_id: ir4, inst_id: inst464} -// CHECK:STDOUT: import_ir_inst160: {ir_id: ir4, inst_id: inst469} -// CHECK:STDOUT: import_ir_inst161: {ir_id: ir4, inst_id: inst474} -// CHECK:STDOUT: import_ir_inst162: {ir_id: ir4, inst_id: inst531} -// CHECK:STDOUT: import_ir_inst163: {ir_id: ir4, inst_id: inst532} -// CHECK:STDOUT: import_ir_inst164: {ir_id: ir4, inst_id: inst510} -// CHECK:STDOUT: import_ir_inst165: {ir_id: ir4, inst_id: inst511} -// CHECK:STDOUT: import_ir_inst166: {ir_id: ir4, inst_id: inst512} -// CHECK:STDOUT: import_ir_inst167: {ir_id: ir4, inst_id: inst513} -// CHECK:STDOUT: import_ir_inst168: {ir_id: ir4, inst_id: inst514} -// CHECK:STDOUT: import_ir_inst169: {ir_id: ir4, inst_id: inst515} -// CHECK:STDOUT: import_ir_inst170: {ir_id: ir4, inst_id: inst516} -// CHECK:STDOUT: import_ir_inst171: {ir_id: ir4, inst_id: inst520} -// CHECK:STDOUT: import_ir_inst172: {ir_id: ir4, inst_id: inst537} -// CHECK:STDOUT: import_ir_inst173: {ir_id: ir4, inst_id: inst544} -// CHECK:STDOUT: import_ir_inst174: {ir_id: ir4, inst_id: inst548} -// CHECK:STDOUT: import_ir_inst175: {ir_id: ir4, inst_id: inst550} -// CHECK:STDOUT: import_ir_inst176: {ir_id: ir4, inst_id: inst551} -// CHECK:STDOUT: import_ir_inst177: {ir_id: ir4, inst_id: inst554} -// CHECK:STDOUT: import_ir_inst178: {ir_id: ir4, inst_id: inst564} -// CHECK:STDOUT: import_ir_inst179: {ir_id: ir4, inst_id: inst568} -// CHECK:STDOUT: import_ir_inst180: {ir_id: ir4, inst_id: inst570} -// CHECK:STDOUT: import_ir_inst181: {ir_id: ir4, inst_id: inst571} -// CHECK:STDOUT: import_ir_inst182: {ir_id: ir4, inst_id: inst574} -// CHECK:STDOUT: import_ir_inst183: {ir_id: ir4, inst_id: inst586} -// CHECK:STDOUT: import_ir_inst184: {ir_id: ir4, inst_id: inst591} -// CHECK:STDOUT: import_ir_inst185: {ir_id: ir4, inst_id: inst595} -// CHECK:STDOUT: import_ir_inst186: {ir_id: ir4, inst_id: inst596} -// CHECK:STDOUT: import_ir_inst187: {ir_id: ir4, inst_id: inst601} +// CHECK:STDOUT: import_ir_inst87: {ir_id: ir4, inst_id: ir3.inst298} +// CHECK:STDOUT: import_ir_inst88: {ir_id: ir4, inst_id: ir3.inst322} +// CHECK:STDOUT: import_ir_inst89: {ir_id: ir4, inst_id: ir3.inst320} +// CHECK:STDOUT: import_ir_inst90: {ir_id: ir4, inst_id: ir3.inst318} +// CHECK:STDOUT: import_ir_inst91: {ir_id: ir4, inst_id: ir3.inst319} +// CHECK:STDOUT: import_ir_inst92: {ir_id: ir4, inst_id: ir3.inst370} +// CHECK:STDOUT: import_ir_inst93: {ir_id: ir4, inst_id: ir3.inst368} +// CHECK:STDOUT: import_ir_inst94: {ir_id: ir4, inst_id: ir3.inst349} +// CHECK:STDOUT: import_ir_inst95: {ir_id: ir4, inst_id: ir3.inst343} +// CHECK:STDOUT: import_ir_inst96: {ir_id: ir4, inst_id: ir3.inst341} +// CHECK:STDOUT: import_ir_inst97: {ir_id: ir4, inst_id: ir3.inst346} +// CHECK:STDOUT: import_ir_inst98: {ir_id: ir4, inst_id: ir3.inst363} +// CHECK:STDOUT: import_ir_inst99: {ir_id: ir4, inst_id: ir3.inst365} +// CHECK:STDOUT: import_ir_inst100: {ir_id: ir4, inst_id: ir3.inst392} +// CHECK:STDOUT: import_ir_inst101: {ir_id: ir4, inst_id: ir3.inst369} +// CHECK:STDOUT: import_ir_inst102: {ir_id: ir4, inst_id: ir3.inst342} +// CHECK:STDOUT: import_ir_inst103: {ir_id: ir4, inst_id: ir3.inst348} +// CHECK:STDOUT: import_ir_inst104: {ir_id: ir4, inst_id: ir3.inst356} +// CHECK:STDOUT: import_ir_inst105: {ir_id: ir4, inst_id: ir3.inst360} +// CHECK:STDOUT: import_ir_inst106: {ir_id: ir4, inst_id: ir3.inst364} +// CHECK:STDOUT: import_ir_inst107: {ir_id: ir4, inst_id: ir3.inst372} +// CHECK:STDOUT: import_ir_inst108: {ir_id: ir4, inst_id: ir3.inst392} +// CHECK:STDOUT: import_ir_inst109: {ir_id: ir4, inst_id: ir3.inst387} +// CHECK:STDOUT: import_ir_inst110: {ir_id: ir4, inst_id: ir3.inst388} +// CHECK:STDOUT: import_ir_inst111: {ir_id: ir4, inst_id: ir3.inst383} +// CHECK:STDOUT: import_ir_inst112: {ir_id: ir4, inst_id: ir3.inst385} +// CHECK:STDOUT: import_ir_inst113: {ir_id: ir4, inst_id: ir3.inst341} +// CHECK:STDOUT: import_ir_inst114: {ir_id: ir4, inst_id: ir3.inst346} +// CHECK:STDOUT: import_ir_inst115: {ir_id: ir4, inst_id: ir3.inst395} +// CHECK:STDOUT: import_ir_inst116: {ir_id: ir4, inst_id: ir3.inst396} +// CHECK:STDOUT: import_ir_inst117: {ir_id: ir4, inst_id: ir3.inst376} +// CHECK:STDOUT: import_ir_inst118: {ir_id: ir4, inst_id: ir3.inst377} +// CHECK:STDOUT: import_ir_inst119: {ir_id: ir4, inst_id: ir3.inst378} +// CHECK:STDOUT: import_ir_inst120: {ir_id: ir4, inst_id: ir3.inst379} +// CHECK:STDOUT: import_ir_inst121: {ir_id: ir4, inst_id: ir3.inst380} +// CHECK:STDOUT: import_ir_inst122: {ir_id: ir4, inst_id: ir3.inst384} +// CHECK:STDOUT: import_ir_inst123: {ir_id: ir4, inst_id: ir3.inst401} +// CHECK:STDOUT: import_ir_inst124: {ir_id: ir4, inst_id: ir3.inst409} +// CHECK:STDOUT: import_ir_inst125: {ir_id: ir4, inst_id: ir3.inst413} +// CHECK:STDOUT: import_ir_inst126: {ir_id: ir4, inst_id: ir3.inst415} +// CHECK:STDOUT: import_ir_inst127: {ir_id: ir4, inst_id: ir3.inst416} +// CHECK:STDOUT: import_ir_inst128: {ir_id: ir4, inst_id: ir3.inst419} +// CHECK:STDOUT: import_ir_inst129: {ir_id: ir4, inst_id: ir3.inst431} +// CHECK:STDOUT: import_ir_inst130: {ir_id: ir4, inst_id: ir3.inst436} +// CHECK:STDOUT: import_ir_inst131: {ir_id: ir4, inst_id: ir3.inst440} +// CHECK:STDOUT: import_ir_inst132: {ir_id: ir4, inst_id: ir3.inst441} +// CHECK:STDOUT: import_ir_inst133: {ir_id: ir4, inst_id: ir3.inst446} +// CHECK:STDOUT: import_ir_inst134: {ir_id: ir4, inst_id: ir3.inst503} +// CHECK:STDOUT: import_ir_inst135: {ir_id: ir4, inst_id: ir3.inst501} +// CHECK:STDOUT: import_ir_inst136: {ir_id: ir4, inst_id: ir3.inst477} +// CHECK:STDOUT: import_ir_inst137: {ir_id: ir4, inst_id: ir3.inst471} +// CHECK:STDOUT: import_ir_inst138: {ir_id: ir4, inst_id: ir3.inst466} +// CHECK:STDOUT: import_ir_inst139: {ir_id: ir4, inst_id: ir3.inst464} +// CHECK:STDOUT: import_ir_inst140: {ir_id: ir4, inst_id: ir3.inst469} +// CHECK:STDOUT: import_ir_inst141: {ir_id: ir4, inst_id: ir3.inst474} +// CHECK:STDOUT: import_ir_inst142: {ir_id: ir4, inst_id: ir3.inst495} +// CHECK:STDOUT: import_ir_inst143: {ir_id: ir4, inst_id: ir3.inst497} +// CHECK:STDOUT: import_ir_inst144: {ir_id: ir4, inst_id: ir3.inst528} +// CHECK:STDOUT: import_ir_inst145: {ir_id: ir4, inst_id: ir3.inst502} +// CHECK:STDOUT: import_ir_inst146: {ir_id: ir4, inst_id: ir3.inst465} +// CHECK:STDOUT: import_ir_inst147: {ir_id: ir4, inst_id: ir3.inst470} +// CHECK:STDOUT: import_ir_inst148: {ir_id: ir4, inst_id: ir3.inst476} +// CHECK:STDOUT: import_ir_inst149: {ir_id: ir4, inst_id: ir3.inst485} +// CHECK:STDOUT: import_ir_inst150: {ir_id: ir4, inst_id: ir3.inst488} +// CHECK:STDOUT: import_ir_inst151: {ir_id: ir4, inst_id: ir3.inst492} +// CHECK:STDOUT: import_ir_inst152: {ir_id: ir4, inst_id: ir3.inst496} +// CHECK:STDOUT: import_ir_inst153: {ir_id: ir4, inst_id: ir3.inst505} +// CHECK:STDOUT: import_ir_inst154: {ir_id: ir4, inst_id: ir3.inst528} +// CHECK:STDOUT: import_ir_inst155: {ir_id: ir4, inst_id: ir3.inst523} +// CHECK:STDOUT: import_ir_inst156: {ir_id: ir4, inst_id: ir3.inst524} +// CHECK:STDOUT: import_ir_inst157: {ir_id: ir4, inst_id: ir3.inst519} +// CHECK:STDOUT: import_ir_inst158: {ir_id: ir4, inst_id: ir3.inst521} +// CHECK:STDOUT: import_ir_inst159: {ir_id: ir4, inst_id: ir3.inst464} +// CHECK:STDOUT: import_ir_inst160: {ir_id: ir4, inst_id: ir3.inst469} +// CHECK:STDOUT: import_ir_inst161: {ir_id: ir4, inst_id: ir3.inst474} +// CHECK:STDOUT: import_ir_inst162: {ir_id: ir4, inst_id: ir3.inst531} +// CHECK:STDOUT: import_ir_inst163: {ir_id: ir4, inst_id: ir3.inst532} +// CHECK:STDOUT: import_ir_inst164: {ir_id: ir4, inst_id: ir3.inst510} +// CHECK:STDOUT: import_ir_inst165: {ir_id: ir4, inst_id: ir3.inst511} +// CHECK:STDOUT: import_ir_inst166: {ir_id: ir4, inst_id: ir3.inst512} +// CHECK:STDOUT: import_ir_inst167: {ir_id: ir4, inst_id: ir3.inst513} +// CHECK:STDOUT: import_ir_inst168: {ir_id: ir4, inst_id: ir3.inst514} +// CHECK:STDOUT: import_ir_inst169: {ir_id: ir4, inst_id: ir3.inst515} +// CHECK:STDOUT: import_ir_inst170: {ir_id: ir4, inst_id: ir3.inst516} +// CHECK:STDOUT: import_ir_inst171: {ir_id: ir4, inst_id: ir3.inst520} +// CHECK:STDOUT: import_ir_inst172: {ir_id: ir4, inst_id: ir3.inst537} +// CHECK:STDOUT: import_ir_inst173: {ir_id: ir4, inst_id: ir3.inst544} +// CHECK:STDOUT: import_ir_inst174: {ir_id: ir4, inst_id: ir3.inst548} +// CHECK:STDOUT: import_ir_inst175: {ir_id: ir4, inst_id: ir3.inst550} +// CHECK:STDOUT: import_ir_inst176: {ir_id: ir4, inst_id: ir3.inst551} +// CHECK:STDOUT: import_ir_inst177: {ir_id: ir4, inst_id: ir3.inst554} +// CHECK:STDOUT: import_ir_inst178: {ir_id: ir4, inst_id: ir3.inst564} +// CHECK:STDOUT: import_ir_inst179: {ir_id: ir4, inst_id: ir3.inst568} +// CHECK:STDOUT: import_ir_inst180: {ir_id: ir4, inst_id: ir3.inst570} +// CHECK:STDOUT: import_ir_inst181: {ir_id: ir4, inst_id: ir3.inst571} +// CHECK:STDOUT: import_ir_inst182: {ir_id: ir4, inst_id: ir3.inst574} +// CHECK:STDOUT: import_ir_inst183: {ir_id: ir4, inst_id: ir3.inst586} +// CHECK:STDOUT: import_ir_inst184: {ir_id: ir4, inst_id: ir3.inst591} +// CHECK:STDOUT: import_ir_inst185: {ir_id: ir4, inst_id: ir3.inst595} +// CHECK:STDOUT: import_ir_inst186: {ir_id: ir4, inst_id: ir3.inst596} +// CHECK:STDOUT: import_ir_inst187: {ir_id: ir4, inst_id: ir3.inst601} // CHECK:STDOUT: clang_decls: {} // CHECK:STDOUT: name_scopes: -// CHECK:STDOUT: name_scope0: {inst: inst14, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name(Core): inst16, name0: inst53}} -// CHECK:STDOUT: name_scope1: {inst: inst16, parent_scope: name_scope0, has_error: false, extended_scopes: [], names: {name3: inst69}} -// CHECK:STDOUT: name_scope2: {inst: inst70, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {name(SelfType): inst73, name4: inst74}} -// CHECK:STDOUT: name_scope3: {inst: inst94, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope4: {inst: inst139, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope5: {inst: inst143, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope6: {inst: inst147, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope7: {inst: inst151, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope8: {inst: inst155, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope9: {inst: inst181, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope10: {inst: inst185, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope11: {inst: inst189, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope12: {inst: inst245, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope0: {inst: inst14, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name(Core): ir0.inst16, name0: ir0.inst53}} +// CHECK:STDOUT: name_scope1: {inst: ir0.inst16, parent_scope: name_scope0, has_error: false, extended_scopes: [], names: {name3: ir0.inst69}} +// CHECK:STDOUT: name_scope2: {inst: ir0.inst70, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {name(SelfType): ir0.inst73, name4: ir0.inst74}} +// CHECK:STDOUT: name_scope3: {inst: ir0.inst94, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope4: {inst: ir0.inst139, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope5: {inst: ir0.inst143, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope6: {inst: ir0.inst147, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope7: {inst: ir0.inst151, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope8: {inst: ir0.inst155, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope9: {inst: ir0.inst181, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope10: {inst: ir0.inst185, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope11: {inst: ir0.inst189, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope12: {inst: ir0.inst245, parent_scope: name_scope1, has_error: false, extended_scopes: [], names: {}} // CHECK:STDOUT: entity_names: // CHECK:STDOUT: entity_name0: {name: name(PeriodSelf), parent_scope: name_scope, index: -1, is_template: 0, clang_decl_id: clang_decl_id} // CHECK:STDOUT: entity_name1: {name: name1, parent_scope: name_scope, index: 0, is_template: 0, clang_decl_id: clang_decl_id} @@ -278,24 +278,24 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: entity_name43: {name: name5, parent_scope: name_scope, index: 1, is_template: 0, clang_decl_id: clang_decl_id} // CHECK:STDOUT: entity_name44: {name: name6, parent_scope: name_scope, index: 2, is_template: 0, clang_decl_id: clang_decl_id} // CHECK:STDOUT: functions: -// CHECK:STDOUT: function0: {name: name0, parent_scope: name_scope0, call_params_id: inst_block13, return_slot_pattern: inst48, body: [inst_block20]} -// CHECK:STDOUT: function1: {name: name4, parent_scope: name_scope2, return_slot_pattern: inst85} -// CHECK:STDOUT: function2: {name: name4, parent_scope: name_scope3, return_slot_pattern: inst115} -// CHECK:STDOUT: function3: {name: name4, parent_scope: name_scope8, return_slot_pattern: inst170} -// CHECK:STDOUT: function4: {name: name4, parent_scope: name_scope11, return_slot_pattern: inst213} -// CHECK:STDOUT: function5: {name: name4, parent_scope: name_scope12, return_slot_pattern: inst273} +// CHECK:STDOUT: function0: {name: name0, parent_scope: name_scope0, call_params_id: inst_block13, return_slot_pattern: ir0.inst48, body: [inst_block20]} +// CHECK:STDOUT: function1: {name: name4, parent_scope: name_scope2, return_slot_pattern: ir0.inst85} +// CHECK:STDOUT: function2: {name: name4, parent_scope: name_scope3, return_slot_pattern: ir0.inst115} +// CHECK:STDOUT: function3: {name: name4, parent_scope: name_scope8, return_slot_pattern: ir0.inst170} +// CHECK:STDOUT: function4: {name: name4, parent_scope: name_scope11, return_slot_pattern: ir0.inst213} +// CHECK:STDOUT: function5: {name: name4, parent_scope: name_scope12, return_slot_pattern: ir0.inst273} // CHECK:STDOUT: classes: {} // CHECK:STDOUT: generics: -// CHECK:STDOUT: generic0: {decl: inst53, bindings: inst_block16} -// CHECK:STDOUT: generic1: {decl: inst79, bindings: inst_block24} -// CHECK:STDOUT: generic2: {decl: inst94, bindings: inst_block29} -// CHECK:STDOUT: generic3: {decl: inst110, bindings: inst_block36} -// CHECK:STDOUT: generic4: {decl: inst155, bindings: inst_block46} -// CHECK:STDOUT: generic5: {decl: inst166, bindings: inst_block52} -// CHECK:STDOUT: generic6: {decl: inst189, bindings: inst_block59} -// CHECK:STDOUT: generic7: {decl: inst208, bindings: inst_block67} -// CHECK:STDOUT: generic8: {decl: inst245, bindings: inst_block81} -// CHECK:STDOUT: generic9: {decl: inst268, bindings: inst_block89} +// CHECK:STDOUT: generic0: {decl: ir0.inst53, bindings: inst_block16} +// CHECK:STDOUT: generic1: {decl: ir0.inst79, bindings: inst_block24} +// CHECK:STDOUT: generic2: {decl: ir0.inst94, bindings: inst_block29} +// CHECK:STDOUT: generic3: {decl: ir0.inst110, bindings: inst_block36} +// CHECK:STDOUT: generic4: {decl: ir0.inst155, bindings: inst_block46} +// CHECK:STDOUT: generic5: {decl: ir0.inst166, bindings: inst_block52} +// CHECK:STDOUT: generic6: {decl: ir0.inst189, bindings: inst_block59} +// CHECK:STDOUT: generic7: {decl: ir0.inst208, bindings: inst_block67} +// CHECK:STDOUT: generic8: {decl: ir0.inst245, bindings: inst_block81} +// CHECK:STDOUT: generic9: {decl: ir0.inst268, bindings: inst_block89} // CHECK:STDOUT: specifics: // CHECK:STDOUT: specific0: {generic: generic0, args: inst_block17} // CHECK:STDOUT: specific1: {generic: generic1, args: inst_block26} @@ -331,14 +331,14 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: value_repr: {kind: copy, type: type(Error)} // CHECK:STDOUT: 'type(inst(NamespaceType))': // CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(NamespaceType))} -// CHECK:STDOUT: 'type(inst36)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst36)} -// CHECK:STDOUT: 'type(inst38)': -// CHECK:STDOUT: value_repr: {kind: pointer, type: type(inst40)} -// CHECK:STDOUT: 'type(inst40)': -// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst40)} -// CHECK:STDOUT: 'type(inst54)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst36)} +// CHECK:STDOUT: 'type(ir0.inst36)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(ir0.inst36)} +// CHECK:STDOUT: 'type(ir0.inst38)': +// CHECK:STDOUT: value_repr: {kind: pointer, type: type(ir0.inst40)} +// CHECK:STDOUT: 'type(ir0.inst40)': +// CHECK:STDOUT: value_repr: {kind: copy, type: type(ir0.inst40)} +// CHECK:STDOUT: 'type(ir0.inst54)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(ir0.inst36)} // CHECK:STDOUT: 'type(symbolic_constant3)': // CHECK:STDOUT: value_repr: {kind: copy, type: type(symbolic_constant3)} // CHECK:STDOUT: 'type(symbolic_constant7)': @@ -351,1430 +351,1430 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: value_repr: {kind: copy, type: type(symbolic_constant4)} // CHECK:STDOUT: 'type(symbolic_constant8)': // CHECK:STDOUT: value_repr: {kind: pointer, type: type(symbolic_constant11)} -// CHECK:STDOUT: 'type(inst71)': -// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst71)} +// CHECK:STDOUT: 'type(ir0.inst71)': +// CHECK:STDOUT: value_repr: {kind: copy, type: type(ir0.inst71)} // CHECK:STDOUT: 'type(inst(SpecificFunctionType))': // CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(SpecificFunctionType))} // CHECK:STDOUT: 'type(symbolic_constant253)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst36)} +// CHECK:STDOUT: value_repr: {kind: none, type: type(ir0.inst36)} // CHECK:STDOUT: 'type(symbolic_constant256)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst36)} +// CHECK:STDOUT: value_repr: {kind: none, type: type(ir0.inst36)} // CHECK:STDOUT: 'type(inst(BoundMethodType))': // CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(BoundMethodType))} // CHECK:STDOUT: insts: // CHECK:STDOUT: inst14: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst15: {kind: ImportDecl, arg0: name(Core)} -// CHECK:STDOUT: inst16: {kind: Namespace, arg0: name_scope1, arg1: inst15, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst17: {kind: FacetType, arg0: facet_type0, type: type(TypeType)} -// CHECK:STDOUT: inst18: {kind: BindSymbolicName, arg0: entity_name0, arg1: inst, type: type(inst17)} -// CHECK:STDOUT: inst19: {kind: BindSymbolicName, arg0: entity_name0, arg1: inst, type: type(inst17)} -// CHECK:STDOUT: inst20: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(TypeType)} -// CHECK:STDOUT: inst21: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(TypeType)} -// CHECK:STDOUT: inst22: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(TypeType)} -// CHECK:STDOUT: inst23: {kind: PatternType, arg0: inst(TypeType), type: type(TypeType)} -// CHECK:STDOUT: inst24: {kind: SymbolicBindingPattern, arg0: entity_name1, type: type(inst23)} -// CHECK:STDOUT: inst25: {kind: NameRef, arg0: name1, arg1: inst20, type: type(TypeType)} -// CHECK:STDOUT: inst26: {kind: PointerType, arg0: inst25, type: type(TypeType)} -// CHECK:STDOUT: inst27: {kind: PointerType, arg0: inst21, type: type(TypeType)} -// CHECK:STDOUT: inst28: {kind: PointerType, arg0: inst22, type: type(TypeType)} -// CHECK:STDOUT: inst29: {kind: BindName, arg0: entity_name2, arg1: inst49, type: type(symbolic_constant4)} -// CHECK:STDOUT: inst30: {kind: PatternType, arg0: inst27, type: type(TypeType)} -// CHECK:STDOUT: inst31: {kind: BindingPattern, arg0: entity_name2, type: type(symbolic_constant6)} -// CHECK:STDOUT: inst32: {kind: PatternType, arg0: inst28, type: type(TypeType)} -// CHECK:STDOUT: inst33: {kind: ValueParamPattern, arg0: inst31, arg1: call_param0, type: type(symbolic_constant6)} -// CHECK:STDOUT: inst34: {kind: NameRef, arg0: name1, arg1: inst20, type: type(TypeType)} -// CHECK:STDOUT: inst35: {kind: PointerType, arg0: inst34, type: type(TypeType)} -// CHECK:STDOUT: inst36: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)} -// CHECK:STDOUT: inst37: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst36)} -// CHECK:STDOUT: inst38: {kind: TupleType, arg0: inst_block9, type: type(TypeType)} -// CHECK:STDOUT: inst39: {kind: TupleLiteral, arg0: inst_block8, type: type(inst38)} -// CHECK:STDOUT: inst40: {kind: PointerType, arg0: inst38, type: type(TypeType)} -// CHECK:STDOUT: inst41: {kind: Converted, arg0: inst37, arg1: inst36, type: type(TypeType)} -// CHECK:STDOUT: inst42: {kind: TupleType, arg0: inst_block11, type: type(TypeType)} -// CHECK:STDOUT: inst43: {kind: Converted, arg0: inst39, arg1: inst42, type: type(TypeType)} -// CHECK:STDOUT: inst44: {kind: TupleType, arg0: inst_block12, type: type(TypeType)} -// CHECK:STDOUT: inst45: {kind: PatternType, arg0: inst42, type: type(TypeType)} -// CHECK:STDOUT: inst46: {kind: ReturnSlotPattern, arg0: inst43, type: type(symbolic_constant10)} -// CHECK:STDOUT: inst47: {kind: PatternType, arg0: inst44, type: type(TypeType)} -// CHECK:STDOUT: inst48: {kind: OutParamPattern, arg0: inst46, arg1: call_param1, type: type(symbolic_constant10)} -// CHECK:STDOUT: inst49: {kind: ValueParam, arg0: call_param0, arg1: name2, type: type(symbolic_constant4)} -// CHECK:STDOUT: inst50: {kind: SpliceBlock, arg0: inst_block6, arg1: inst26, type: type(TypeType)} -// CHECK:STDOUT: inst51: {kind: OutParam, arg0: call_param1, arg1: name(ReturnSlot), type: type(symbolic_constant8)} -// CHECK:STDOUT: inst52: {kind: ReturnSlot, arg0: inst42, arg1: inst51, type: type(symbolic_constant8)} -// CHECK:STDOUT: inst53: {kind: FunctionDecl, arg0: function0, arg1: inst_block15, type: type(inst54)} -// CHECK:STDOUT: inst54: {kind: FunctionType, arg0: function0, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst55: {kind: StructValue, arg0: inst_block_empty, type: type(inst54)} -// CHECK:STDOUT: inst56: {kind: PointerType, arg0: inst42, type: type(TypeType)} -// CHECK:STDOUT: inst57: {kind: RequireCompleteType, arg0: inst42, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst58: {kind: RequireCompleteType, arg0: inst42, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst59: {kind: RequireCompleteType, arg0: inst44, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60: {kind: RequireCompleteType, arg0: inst27, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst61: {kind: RequireCompleteType, arg0: inst27, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst62: {kind: RequireCompleteType, arg0: inst28, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst63: {kind: NameRef, arg0: name2, arg1: inst29, type: type(symbolic_constant4)} -// CHECK:STDOUT: inst64: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst36)} -// CHECK:STDOUT: inst65: {kind: TupleLiteral, arg0: inst_block21, type: type(symbolic_constant8)} -// CHECK:STDOUT: inst66: {kind: RequireCompleteType, arg0: inst42, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst67: {kind: TupleAccess, arg0: inst52, arg1: element0, type: type(symbolic_constant4)} -// CHECK:STDOUT: inst68: {kind: RequireCompleteType, arg0: inst27, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst69: {kind: ImportRefLoaded, arg0: import_ir_inst0, arg1: entity_name3, type: type(TypeType)} -// CHECK:STDOUT: inst70: {kind: InterfaceDecl, arg0: interface0, arg1: inst_block_empty, type: type(TypeType)} -// CHECK:STDOUT: inst71: {kind: FacetType, arg0: facet_type1, type: type(TypeType)} -// CHECK:STDOUT: inst72: {kind: BindSymbolicName, arg0: entity_name4, arg1: inst, type: type(inst71)} -// CHECK:STDOUT: inst73: {kind: ImportRefUnloaded, arg0: import_ir_inst2, arg1: entity_name} -// CHECK:STDOUT: inst74: {kind: ImportRefLoaded, arg0: import_ir_inst3, arg1: entity_name, type: type(inst76)} -// CHECK:STDOUT: inst75: {kind: ImportRefUnloaded, arg0: import_ir_inst4, arg1: entity_name5} -// CHECK:STDOUT: inst76: {kind: AssociatedEntityType, arg0: interface0, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst77: {kind: ImportRefLoaded, arg0: import_ir_inst5, arg1: entity_name, type: type(inst80)} -// CHECK:STDOUT: inst78: {kind: AssociatedEntity, arg0: element0, arg1: inst77, type: type(inst76)} -// CHECK:STDOUT: inst79: {kind: FunctionDecl, arg0: function1, arg1: inst_block_empty, type: type(inst80)} -// CHECK:STDOUT: inst80: {kind: FunctionType, arg0: function1, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst81: {kind: StructValue, arg0: inst_block_empty, type: type(inst80)} -// CHECK:STDOUT: inst82: {kind: FacetAccessType, arg0: inst72, type: type(TypeType)} -// CHECK:STDOUT: inst83: {kind: PatternType, arg0: inst82, type: type(TypeType)} -// CHECK:STDOUT: inst84: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant19)} -// CHECK:STDOUT: inst85: {kind: OutParamPattern, arg0: inst84, arg1: call_param1, type: type(symbolic_constant19)} -// CHECK:STDOUT: inst86: {kind: BindingPattern, arg0: entity_name7, type: type(symbolic_constant19)} -// CHECK:STDOUT: inst87: {kind: ValueParamPattern, arg0: inst86, arg1: call_param0, type: type(symbolic_constant19)} -// CHECK:STDOUT: inst88: {kind: ImportRefLoaded, arg0: import_ir_inst11, arg1: entity_name, type: type(inst71)} -// CHECK:STDOUT: inst89: {kind: BindSymbolicName, arg0: entity_name4, arg1: inst, type: type(inst71)} -// CHECK:STDOUT: inst90: {kind: FacetAccessType, arg0: inst89, type: type(TypeType)} -// CHECK:STDOUT: inst91: {kind: PatternType, arg0: inst90, type: type(TypeType)} -// CHECK:STDOUT: inst92: {kind: LookupImplWitness, arg0: inst27, arg1: specific_interface0, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst93: {kind: ImportRefUnloaded, arg0: import_ir_inst15, arg1: entity_name} -// CHECK:STDOUT: inst94: {kind: ImplDecl, arg0: impl0, arg1: inst_block_empty} -// CHECK:STDOUT: inst95: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(inst71)} -// CHECK:STDOUT: inst96: {kind: FacetAccessType, arg0: inst95, type: type(TypeType)} -// CHECK:STDOUT: inst97: {kind: ConstType, arg0: inst96, type: type(TypeType)} -// CHECK:STDOUT: inst98: {kind: PatternType, arg0: inst71, type: type(TypeType)} -// CHECK:STDOUT: inst99: {kind: SymbolicBindingPattern, arg0: entity_name10, type: type(inst98)} -// CHECK:STDOUT: inst100: {kind: ImportRefLoaded, arg0: import_ir_inst18, arg1: entity_name, type: type(inst71)} -// CHECK:STDOUT: inst101: {kind: ImportRefLoaded, arg0: import_ir_inst19, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst102: {kind: ImportRefLoaded, arg0: import_ir_inst20, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst103: {kind: ImportRefUnloaded, arg0: import_ir_inst21, arg1: entity_name} -// CHECK:STDOUT: inst104: {kind: ImplWitnessTable, arg0: inst_block30, arg1: impl0} -// CHECK:STDOUT: inst105: {kind: ImplWitness, arg0: inst104, arg1: specific2, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst106: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(inst71)} -// CHECK:STDOUT: inst107: {kind: FacetAccessType, arg0: inst106, type: type(TypeType)} -// CHECK:STDOUT: inst108: {kind: ConstType, arg0: inst107, type: type(TypeType)} -// CHECK:STDOUT: inst109: {kind: ImplWitness, arg0: inst104, arg1: specific3, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst110: {kind: FunctionDecl, arg0: function2, arg1: inst_block_empty, type: type(symbolic_constant38)} -// CHECK:STDOUT: inst111: {kind: FunctionType, arg0: function2, arg1: specific2, type: type(TypeType)} -// CHECK:STDOUT: inst112: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant38)} -// CHECK:STDOUT: inst113: {kind: PatternType, arg0: inst97, type: type(TypeType)} -// CHECK:STDOUT: inst114: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant43)} -// CHECK:STDOUT: inst115: {kind: OutParamPattern, arg0: inst114, arg1: call_param1, type: type(symbolic_constant43)} -// CHECK:STDOUT: inst116: {kind: BindingPattern, arg0: entity_name13, type: type(symbolic_constant43)} -// CHECK:STDOUT: inst117: {kind: ValueParamPattern, arg0: inst116, arg1: call_param0, type: type(symbolic_constant43)} -// CHECK:STDOUT: inst118: {kind: ImportRefLoaded, arg0: import_ir_inst32, arg1: entity_name, type: type(inst71)} -// CHECK:STDOUT: inst119: {kind: FunctionType, arg0: function2, arg1: specific3, type: type(TypeType)} -// CHECK:STDOUT: inst120: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant45)} -// CHECK:STDOUT: inst121: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(inst71)} -// CHECK:STDOUT: inst122: {kind: FacetAccessType, arg0: inst121, type: type(TypeType)} -// CHECK:STDOUT: inst123: {kind: ConstType, arg0: inst122, type: type(TypeType)} -// CHECK:STDOUT: inst124: {kind: PatternType, arg0: inst123, type: type(TypeType)} -// CHECK:STDOUT: inst125: {kind: RequireCompleteType, arg0: inst97, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst126: {kind: RequireCompleteType, arg0: inst96, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst127: {kind: LookupImplWitness, arg0: inst95, arg1: specific_interface0, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst128: {kind: FunctionTypeWithSelfType, arg0: inst80, arg1: inst95, type: type(TypeType)} -// CHECK:STDOUT: inst129: {kind: ImplWitnessAccess, arg0: inst127, arg1: element0, type: type(symbolic_constant60)} -// CHECK:STDOUT: inst130: {kind: SpecificImplFunction, arg0: inst129, arg1: specific5, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst131: {kind: RequireCompleteType, arg0: inst123, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst132: {kind: RequireCompleteType, arg0: inst122, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst133: {kind: LookupImplWitness, arg0: inst121, arg1: specific_interface0, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst134: {kind: FunctionTypeWithSelfType, arg0: inst80, arg1: inst121, type: type(TypeType)} -// CHECK:STDOUT: inst135: {kind: ImplWitnessAccess, arg0: inst133, arg1: element0, type: type(symbolic_constant69)} -// CHECK:STDOUT: inst136: {kind: SpecificImplFunction, arg0: inst135, arg1: specific6, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst137: {kind: PatternType, arg0: inst96, type: type(TypeType)} -// CHECK:STDOUT: inst138: {kind: ImportRefUnloaded, arg0: import_ir_inst45, arg1: entity_name} -// CHECK:STDOUT: inst139: {kind: ImplDecl, arg0: impl1, arg1: inst_block_empty} -// CHECK:STDOUT: inst140: {kind: ImportRefLoaded, arg0: import_ir_inst47, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst141: {kind: ImportRefLoaded, arg0: import_ir_inst48, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst142: {kind: ImportRefUnloaded, arg0: import_ir_inst49, arg1: entity_name} -// CHECK:STDOUT: inst143: {kind: ImplDecl, arg0: impl2, arg1: inst_block_empty} -// CHECK:STDOUT: inst144: {kind: ImportRefLoaded, arg0: import_ir_inst51, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst145: {kind: ImportRefLoaded, arg0: import_ir_inst52, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst146: {kind: ImportRefUnloaded, arg0: import_ir_inst53, arg1: entity_name} -// CHECK:STDOUT: inst147: {kind: ImplDecl, arg0: impl3, arg1: inst_block_empty} -// CHECK:STDOUT: inst148: {kind: ImportRefLoaded, arg0: import_ir_inst55, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst149: {kind: ImportRefLoaded, arg0: import_ir_inst56, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst150: {kind: ImportRefUnloaded, arg0: import_ir_inst57, arg1: entity_name} -// CHECK:STDOUT: inst151: {kind: ImplDecl, arg0: impl4, arg1: inst_block_empty} -// CHECK:STDOUT: inst152: {kind: ImportRefLoaded, arg0: import_ir_inst59, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst153: {kind: ImportRefLoaded, arg0: import_ir_inst60, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst154: {kind: ImportRefLoaded, arg0: import_ir_inst61, arg1: entity_name, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst155: {kind: ImplDecl, arg0: impl5, arg1: inst_block_empty} -// CHECK:STDOUT: inst156: {kind: SymbolicBindingPattern, arg0: entity_name16, type: type(inst23)} -// CHECK:STDOUT: inst157: {kind: ImportRefLoaded, arg0: import_ir_inst64, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst158: {kind: ImportRefLoaded, arg0: import_ir_inst65, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst159: {kind: ImportRefLoaded, arg0: import_ir_inst66, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst160: {kind: ImportRefUnloaded, arg0: import_ir_inst67, arg1: entity_name} -// CHECK:STDOUT: inst161: {kind: ImplWitnessTable, arg0: inst_block47, arg1: impl5} -// CHECK:STDOUT: inst162: {kind: ImplWitness, arg0: inst161, arg1: specific7, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst163: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(TypeType)} -// CHECK:STDOUT: inst164: {kind: PointerType, arg0: inst163, type: type(TypeType)} -// CHECK:STDOUT: inst165: {kind: ImplWitness, arg0: inst161, arg1: specific8, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst166: {kind: FunctionDecl, arg0: function3, arg1: inst_block_empty, type: type(symbolic_constant81)} -// CHECK:STDOUT: inst167: {kind: FunctionType, arg0: function3, arg1: specific7, type: type(TypeType)} -// CHECK:STDOUT: inst168: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant81)} -// CHECK:STDOUT: inst169: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant85)} -// CHECK:STDOUT: inst170: {kind: OutParamPattern, arg0: inst169, arg1: call_param1, type: type(symbolic_constant85)} -// CHECK:STDOUT: inst171: {kind: BindingPattern, arg0: entity_name19, type: type(symbolic_constant85)} -// CHECK:STDOUT: inst172: {kind: ValueParamPattern, arg0: inst171, arg1: call_param0, type: type(symbolic_constant85)} -// CHECK:STDOUT: inst173: {kind: ImportRefLoaded, arg0: import_ir_inst77, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst174: {kind: FunctionType, arg0: function3, arg1: specific8, type: type(TypeType)} -// CHECK:STDOUT: inst175: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant88)} -// CHECK:STDOUT: inst176: {kind: RequireCompleteType, arg0: inst164, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst177: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(TypeType)} -// CHECK:STDOUT: inst178: {kind: PointerType, arg0: inst177, type: type(TypeType)} -// CHECK:STDOUT: inst179: {kind: PatternType, arg0: inst178, type: type(TypeType)} -// CHECK:STDOUT: inst180: {kind: ImportRefUnloaded, arg0: import_ir_inst84, arg1: entity_name} -// CHECK:STDOUT: inst181: {kind: ImplDecl, arg0: impl6, arg1: inst_block_empty} -// CHECK:STDOUT: inst182: {kind: ImportRefLoaded, arg0: import_ir_inst86, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst183: {kind: ImportRefLoaded, arg0: import_ir_inst87, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst184: {kind: ImportRefUnloaded, arg0: import_ir_inst88, arg1: entity_name} -// CHECK:STDOUT: inst185: {kind: ImplDecl, arg0: impl7, arg1: inst_block_empty} -// CHECK:STDOUT: inst186: {kind: ImportRefLoaded, arg0: import_ir_inst90, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst187: {kind: ImportRefLoaded, arg0: import_ir_inst91, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst188: {kind: ImportRefUnloaded, arg0: import_ir_inst92, arg1: entity_name} -// CHECK:STDOUT: inst189: {kind: ImplDecl, arg0: impl8, arg1: inst_block_empty} -// CHECK:STDOUT: inst190: {kind: BindSymbolicName, arg0: entity_name21, arg1: inst, type: type(inst71)} -// CHECK:STDOUT: inst191: {kind: FacetAccessType, arg0: inst190, type: type(TypeType)} -// CHECK:STDOUT: inst192: {kind: TupleType, arg0: inst_block57, type: type(TypeType)} -// CHECK:STDOUT: inst193: {kind: SymbolicBindingPattern, arg0: entity_name22, type: type(inst98)} -// CHECK:STDOUT: inst194: {kind: SymbolicBindingPattern, arg0: entity_name23, type: type(inst98)} -// CHECK:STDOUT: inst195: {kind: ImportRefLoaded, arg0: import_ir_inst96, arg1: entity_name, type: type(inst71)} -// CHECK:STDOUT: inst196: {kind: ImportRefLoaded, arg0: import_ir_inst97, arg1: entity_name, type: type(inst71)} -// CHECK:STDOUT: inst197: {kind: ImportRefLoaded, arg0: import_ir_inst98, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst198: {kind: ImportRefLoaded, arg0: import_ir_inst99, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst199: {kind: ImportRefUnloaded, arg0: import_ir_inst100, arg1: entity_name} -// CHECK:STDOUT: inst200: {kind: ImplWitnessTable, arg0: inst_block60, arg1: impl8} -// CHECK:STDOUT: inst201: {kind: ImplWitness, arg0: inst200, arg1: specific10, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst202: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(inst71)} -// CHECK:STDOUT: inst203: {kind: BindSymbolicName, arg0: entity_name21, arg1: inst, type: type(inst71)} -// CHECK:STDOUT: inst204: {kind: FacetAccessType, arg0: inst202, type: type(TypeType)} -// CHECK:STDOUT: inst205: {kind: FacetAccessType, arg0: inst203, type: type(TypeType)} -// CHECK:STDOUT: inst206: {kind: TupleType, arg0: inst_block62, type: type(TypeType)} -// CHECK:STDOUT: inst207: {kind: ImplWitness, arg0: inst200, arg1: specific11, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst208: {kind: FunctionDecl, arg0: function4, arg1: inst_block_empty, type: type(symbolic_constant114)} -// CHECK:STDOUT: inst209: {kind: FunctionType, arg0: function4, arg1: specific10, type: type(TypeType)} -// CHECK:STDOUT: inst210: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant114)} -// CHECK:STDOUT: inst211: {kind: PatternType, arg0: inst192, type: type(TypeType)} -// CHECK:STDOUT: inst212: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant119)} -// CHECK:STDOUT: inst213: {kind: OutParamPattern, arg0: inst212, arg1: call_param1, type: type(symbolic_constant119)} -// CHECK:STDOUT: inst214: {kind: BindingPattern, arg0: entity_name28, type: type(symbolic_constant119)} -// CHECK:STDOUT: inst215: {kind: ValueParamPattern, arg0: inst214, arg1: call_param0, type: type(symbolic_constant119)} -// CHECK:STDOUT: inst216: {kind: ImportRefLoaded, arg0: import_ir_inst113, arg1: entity_name, type: type(inst71)} -// CHECK:STDOUT: inst217: {kind: ImportRefLoaded, arg0: import_ir_inst114, arg1: entity_name, type: type(inst71)} -// CHECK:STDOUT: inst218: {kind: FunctionType, arg0: function4, arg1: specific11, type: type(TypeType)} -// CHECK:STDOUT: inst219: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant121)} -// CHECK:STDOUT: inst220: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(inst71)} -// CHECK:STDOUT: inst221: {kind: FacetAccessType, arg0: inst220, type: type(TypeType)} -// CHECK:STDOUT: inst222: {kind: BindSymbolicName, arg0: entity_name21, arg1: inst, type: type(inst71)} -// CHECK:STDOUT: inst223: {kind: FacetAccessType, arg0: inst222, type: type(TypeType)} -// CHECK:STDOUT: inst224: {kind: TupleType, arg0: inst_block70, type: type(TypeType)} -// CHECK:STDOUT: inst225: {kind: PatternType, arg0: inst224, type: type(TypeType)} -// CHECK:STDOUT: inst226: {kind: RequireCompleteType, arg0: inst192, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst227: {kind: RequireCompleteType, arg0: inst191, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst228: {kind: LookupImplWitness, arg0: inst190, arg1: specific_interface0, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst229: {kind: FunctionTypeWithSelfType, arg0: inst80, arg1: inst190, type: type(TypeType)} -// CHECK:STDOUT: inst230: {kind: ImplWitnessAccess, arg0: inst228, arg1: element0, type: type(symbolic_constant145)} -// CHECK:STDOUT: inst231: {kind: SpecificImplFunction, arg0: inst230, arg1: specific13, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst232: {kind: RequireCompleteType, arg0: inst224, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst233: {kind: RequireCompleteType, arg0: inst221, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst234: {kind: LookupImplWitness, arg0: inst220, arg1: specific_interface0, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst235: {kind: FunctionTypeWithSelfType, arg0: inst80, arg1: inst220, type: type(TypeType)} -// CHECK:STDOUT: inst236: {kind: ImplWitnessAccess, arg0: inst234, arg1: element0, type: type(symbolic_constant154)} -// CHECK:STDOUT: inst237: {kind: SpecificImplFunction, arg0: inst236, arg1: specific14, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst238: {kind: RequireCompleteType, arg0: inst223, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst239: {kind: LookupImplWitness, arg0: inst222, arg1: specific_interface0, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst240: {kind: FunctionTypeWithSelfType, arg0: inst80, arg1: inst222, type: type(TypeType)} -// CHECK:STDOUT: inst241: {kind: ImplWitnessAccess, arg0: inst239, arg1: element0, type: type(symbolic_constant159)} -// CHECK:STDOUT: inst242: {kind: SpecificImplFunction, arg0: inst241, arg1: specific15, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst243: {kind: PatternType, arg0: inst191, type: type(TypeType)} -// CHECK:STDOUT: inst244: {kind: ImportRefUnloaded, arg0: import_ir_inst134, arg1: entity_name} -// CHECK:STDOUT: inst245: {kind: ImplDecl, arg0: impl9, arg1: inst_block_empty} -// CHECK:STDOUT: inst246: {kind: BindSymbolicName, arg0: entity_name31, arg1: inst, type: type(inst71)} -// CHECK:STDOUT: inst247: {kind: FacetAccessType, arg0: inst246, type: type(TypeType)} -// CHECK:STDOUT: inst248: {kind: TupleType, arg0: inst_block79, type: type(TypeType)} -// CHECK:STDOUT: inst249: {kind: SymbolicBindingPattern, arg0: entity_name32, type: type(inst98)} -// CHECK:STDOUT: inst250: {kind: SymbolicBindingPattern, arg0: entity_name33, type: type(inst98)} -// CHECK:STDOUT: inst251: {kind: SymbolicBindingPattern, arg0: entity_name34, type: type(inst98)} -// CHECK:STDOUT: inst252: {kind: ImportRefLoaded, arg0: import_ir_inst139, arg1: entity_name, type: type(inst71)} -// CHECK:STDOUT: inst253: {kind: ImportRefLoaded, arg0: import_ir_inst140, arg1: entity_name, type: type(inst71)} -// CHECK:STDOUT: inst254: {kind: ImportRefLoaded, arg0: import_ir_inst141, arg1: entity_name, type: type(inst71)} -// CHECK:STDOUT: inst255: {kind: ImportRefLoaded, arg0: import_ir_inst142, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst256: {kind: ImportRefLoaded, arg0: import_ir_inst143, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst257: {kind: ImportRefUnloaded, arg0: import_ir_inst144, arg1: entity_name} -// CHECK:STDOUT: inst258: {kind: ImplWitnessTable, arg0: inst_block82, arg1: impl9} -// CHECK:STDOUT: inst259: {kind: ImplWitness, arg0: inst258, arg1: specific16, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst260: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(inst71)} -// CHECK:STDOUT: inst261: {kind: BindSymbolicName, arg0: entity_name21, arg1: inst, type: type(inst71)} -// CHECK:STDOUT: inst262: {kind: BindSymbolicName, arg0: entity_name31, arg1: inst, type: type(inst71)} -// CHECK:STDOUT: inst263: {kind: FacetAccessType, arg0: inst260, type: type(TypeType)} -// CHECK:STDOUT: inst264: {kind: FacetAccessType, arg0: inst261, type: type(TypeType)} -// CHECK:STDOUT: inst265: {kind: FacetAccessType, arg0: inst262, type: type(TypeType)} -// CHECK:STDOUT: inst266: {kind: TupleType, arg0: inst_block84, type: type(TypeType)} -// CHECK:STDOUT: inst267: {kind: ImplWitness, arg0: inst258, arg1: specific17, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst268: {kind: FunctionDecl, arg0: function5, arg1: inst_block_empty, type: type(symbolic_constant186)} -// CHECK:STDOUT: inst269: {kind: FunctionType, arg0: function5, arg1: specific16, type: type(TypeType)} -// CHECK:STDOUT: inst270: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant186)} -// CHECK:STDOUT: inst271: {kind: PatternType, arg0: inst248, type: type(TypeType)} -// CHECK:STDOUT: inst272: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant191)} -// CHECK:STDOUT: inst273: {kind: OutParamPattern, arg0: inst272, arg1: call_param1, type: type(symbolic_constant191)} -// CHECK:STDOUT: inst274: {kind: BindingPattern, arg0: entity_name41, type: type(symbolic_constant191)} -// CHECK:STDOUT: inst275: {kind: ValueParamPattern, arg0: inst274, arg1: call_param0, type: type(symbolic_constant191)} -// CHECK:STDOUT: inst276: {kind: ImportRefLoaded, arg0: import_ir_inst159, arg1: entity_name, type: type(inst71)} -// CHECK:STDOUT: inst277: {kind: ImportRefLoaded, arg0: import_ir_inst160, arg1: entity_name, type: type(inst71)} -// CHECK:STDOUT: inst278: {kind: ImportRefLoaded, arg0: import_ir_inst161, arg1: entity_name, type: type(inst71)} -// CHECK:STDOUT: inst279: {kind: FunctionType, arg0: function5, arg1: specific17, type: type(TypeType)} -// CHECK:STDOUT: inst280: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant193)} -// CHECK:STDOUT: inst281: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(inst71)} -// CHECK:STDOUT: inst282: {kind: FacetAccessType, arg0: inst281, type: type(TypeType)} -// CHECK:STDOUT: inst283: {kind: BindSymbolicName, arg0: entity_name21, arg1: inst, type: type(inst71)} -// CHECK:STDOUT: inst284: {kind: FacetAccessType, arg0: inst283, type: type(TypeType)} -// CHECK:STDOUT: inst285: {kind: BindSymbolicName, arg0: entity_name31, arg1: inst, type: type(inst71)} -// CHECK:STDOUT: inst286: {kind: FacetAccessType, arg0: inst285, type: type(TypeType)} -// CHECK:STDOUT: inst287: {kind: TupleType, arg0: inst_block92, type: type(TypeType)} -// CHECK:STDOUT: inst288: {kind: PatternType, arg0: inst287, type: type(TypeType)} -// CHECK:STDOUT: inst289: {kind: RequireCompleteType, arg0: inst248, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst290: {kind: RequireCompleteType, arg0: inst247, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst291: {kind: LookupImplWitness, arg0: inst246, arg1: specific_interface0, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst292: {kind: FunctionTypeWithSelfType, arg0: inst80, arg1: inst246, type: type(TypeType)} -// CHECK:STDOUT: inst293: {kind: ImplWitnessAccess, arg0: inst291, arg1: element0, type: type(symbolic_constant226)} -// CHECK:STDOUT: inst294: {kind: SpecificImplFunction, arg0: inst293, arg1: specific19, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst295: {kind: RequireCompleteType, arg0: inst287, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst296: {kind: RequireCompleteType, arg0: inst282, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst297: {kind: LookupImplWitness, arg0: inst281, arg1: specific_interface0, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst298: {kind: FunctionTypeWithSelfType, arg0: inst80, arg1: inst281, type: type(TypeType)} -// CHECK:STDOUT: inst299: {kind: ImplWitnessAccess, arg0: inst297, arg1: element0, type: type(symbolic_constant235)} -// CHECK:STDOUT: inst300: {kind: SpecificImplFunction, arg0: inst299, arg1: specific20, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst301: {kind: RequireCompleteType, arg0: inst284, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst302: {kind: LookupImplWitness, arg0: inst283, arg1: specific_interface0, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst303: {kind: FunctionTypeWithSelfType, arg0: inst80, arg1: inst283, type: type(TypeType)} -// CHECK:STDOUT: inst304: {kind: ImplWitnessAccess, arg0: inst302, arg1: element0, type: type(symbolic_constant240)} -// CHECK:STDOUT: inst305: {kind: SpecificImplFunction, arg0: inst304, arg1: specific21, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst306: {kind: RequireCompleteType, arg0: inst286, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst307: {kind: LookupImplWitness, arg0: inst285, arg1: specific_interface0, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst308: {kind: FunctionTypeWithSelfType, arg0: inst80, arg1: inst285, type: type(TypeType)} -// CHECK:STDOUT: inst309: {kind: ImplWitnessAccess, arg0: inst307, arg1: element0, type: type(symbolic_constant245)} -// CHECK:STDOUT: inst310: {kind: SpecificImplFunction, arg0: inst309, arg1: specific22, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst311: {kind: PatternType, arg0: inst247, type: type(TypeType)} -// CHECK:STDOUT: inst312: {kind: LookupImplWitness, arg0: inst27, arg1: specific_interface0, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst313: {kind: LookupImplWitness, arg0: inst28, arg1: specific_interface0, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst314: {kind: FacetValue, arg0: inst27, arg1: inst_block103, type: type(inst71)} -// CHECK:STDOUT: inst315: {kind: FunctionTypeWithSelfType, arg0: inst80, arg1: inst314, type: type(TypeType)} -// CHECK:STDOUT: inst316: {kind: ImplWitnessAccess, arg0: inst312, arg1: element0, type: type(symbolic_constant256)} -// CHECK:STDOUT: inst317: {kind: ImplWitnessAccess, arg0: inst312, arg1: element0, type: type(symbolic_constant253)} -// CHECK:STDOUT: inst318: {kind: FacetValue, arg0: inst28, arg1: inst_block104, type: type(inst71)} -// CHECK:STDOUT: inst319: {kind: FunctionTypeWithSelfType, arg0: inst80, arg1: inst318, type: type(TypeType)} -// CHECK:STDOUT: inst320: {kind: ImplWitnessAccess, arg0: inst313, arg1: element0, type: type(symbolic_constant256)} -// CHECK:STDOUT: inst321: {kind: BoundMethod, arg0: inst63, arg1: inst316, type: type(inst(BoundMethodType))} -// CHECK:STDOUT: inst322: {kind: SpecificImplFunction, arg0: inst316, arg1: specific23, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst323: {kind: SpecificImplFunction, arg0: inst317, arg1: specific23, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst324: {kind: SpecificImplFunction, arg0: inst320, arg1: specific24, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst325: {kind: BoundMethod, arg0: inst63, arg1: inst322, type: type(inst(BoundMethodType))} -// CHECK:STDOUT: inst326: {kind: RequireCompleteType, arg0: inst27, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst327: {kind: Call, arg0: inst325, arg1: inst_block108, type: type(symbolic_constant4)} -// CHECK:STDOUT: inst328: {kind: InitializeFrom, arg0: inst327, arg1: inst67, type: type(symbolic_constant4)} -// CHECK:STDOUT: inst329: {kind: TupleAccess, arg0: inst52, arg1: element1, type: type(inst36)} -// CHECK:STDOUT: inst330: {kind: TupleInit, arg0: inst_block_empty, arg1: inst329, type: type(inst36)} -// CHECK:STDOUT: inst331: {kind: TupleValue, arg0: inst_block_empty, type: type(inst36)} -// CHECK:STDOUT: inst332: {kind: Converted, arg0: inst64, arg1: inst330, type: type(inst36)} -// CHECK:STDOUT: inst333: {kind: TupleInit, arg0: inst_block109, arg1: inst52, type: type(symbolic_constant8)} -// CHECK:STDOUT: inst334: {kind: Converted, arg0: inst65, arg1: inst333, type: type(symbolic_constant8)} -// CHECK:STDOUT: inst335: {kind: ReturnExpr, arg0: inst334, arg1: inst52} +// CHECK:STDOUT: ir0.inst15: {kind: ImportDecl, arg0: name(Core)} +// CHECK:STDOUT: ir0.inst16: {kind: Namespace, arg0: name_scope1, arg1: ir0.inst15, type: type(inst(NamespaceType))} +// CHECK:STDOUT: ir0.inst17: {kind: FacetType, arg0: facet_type0, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst18: {kind: BindSymbolicName, arg0: entity_name0, arg1: inst, type: type(ir0.inst17)} +// CHECK:STDOUT: ir0.inst19: {kind: BindSymbolicName, arg0: entity_name0, arg1: inst, type: type(ir0.inst17)} +// CHECK:STDOUT: ir0.inst20: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst21: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst22: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst23: {kind: PatternType, arg0: inst(TypeType), type: type(TypeType)} +// CHECK:STDOUT: ir0.inst24: {kind: SymbolicBindingPattern, arg0: entity_name1, type: type(ir0.inst23)} +// CHECK:STDOUT: ir0.inst25: {kind: NameRef, arg0: name1, arg1: ir0.inst20, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst26: {kind: PointerType, arg0: ir0.inst25, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst27: {kind: PointerType, arg0: ir0.inst21, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst28: {kind: PointerType, arg0: ir0.inst22, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst29: {kind: BindName, arg0: entity_name2, arg1: ir0.inst49, type: type(symbolic_constant4)} +// CHECK:STDOUT: ir0.inst30: {kind: PatternType, arg0: ir0.inst27, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst31: {kind: BindingPattern, arg0: entity_name2, type: type(symbolic_constant6)} +// CHECK:STDOUT: ir0.inst32: {kind: PatternType, arg0: ir0.inst28, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst33: {kind: ValueParamPattern, arg0: ir0.inst31, arg1: call_param0, type: type(symbolic_constant6)} +// CHECK:STDOUT: ir0.inst34: {kind: NameRef, arg0: name1, arg1: ir0.inst20, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst35: {kind: PointerType, arg0: ir0.inst34, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst36: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst37: {kind: TupleLiteral, arg0: inst_block_empty, type: type(ir0.inst36)} +// CHECK:STDOUT: ir0.inst38: {kind: TupleType, arg0: inst_block9, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst39: {kind: TupleLiteral, arg0: inst_block8, type: type(ir0.inst38)} +// CHECK:STDOUT: ir0.inst40: {kind: PointerType, arg0: ir0.inst38, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst41: {kind: Converted, arg0: ir0.inst37, arg1: ir0.inst36, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst42: {kind: TupleType, arg0: inst_block11, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst43: {kind: Converted, arg0: ir0.inst39, arg1: ir0.inst42, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst44: {kind: TupleType, arg0: inst_block12, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst45: {kind: PatternType, arg0: ir0.inst42, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst46: {kind: ReturnSlotPattern, arg0: ir0.inst43, type: type(symbolic_constant10)} +// CHECK:STDOUT: ir0.inst47: {kind: PatternType, arg0: ir0.inst44, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst48: {kind: OutParamPattern, arg0: ir0.inst46, arg1: call_param1, type: type(symbolic_constant10)} +// CHECK:STDOUT: ir0.inst49: {kind: ValueParam, arg0: call_param0, arg1: name2, type: type(symbolic_constant4)} +// CHECK:STDOUT: ir0.inst50: {kind: SpliceBlock, arg0: inst_block6, arg1: ir0.inst26, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst51: {kind: OutParam, arg0: call_param1, arg1: name(ReturnSlot), type: type(symbolic_constant8)} +// CHECK:STDOUT: ir0.inst52: {kind: ReturnSlot, arg0: ir0.inst42, arg1: ir0.inst51, type: type(symbolic_constant8)} +// CHECK:STDOUT: ir0.inst53: {kind: FunctionDecl, arg0: function0, arg1: inst_block15, type: type(ir0.inst54)} +// CHECK:STDOUT: ir0.inst54: {kind: FunctionType, arg0: function0, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst55: {kind: StructValue, arg0: inst_block_empty, type: type(ir0.inst54)} +// CHECK:STDOUT: ir0.inst56: {kind: PointerType, arg0: ir0.inst42, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst57: {kind: RequireCompleteType, arg0: ir0.inst42, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst58: {kind: RequireCompleteType, arg0: ir0.inst42, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst59: {kind: RequireCompleteType, arg0: ir0.inst44, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst60: {kind: RequireCompleteType, arg0: ir0.inst27, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst61: {kind: RequireCompleteType, arg0: ir0.inst27, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst62: {kind: RequireCompleteType, arg0: ir0.inst28, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst63: {kind: NameRef, arg0: name2, arg1: ir0.inst29, type: type(symbolic_constant4)} +// CHECK:STDOUT: ir0.inst64: {kind: TupleLiteral, arg0: inst_block_empty, type: type(ir0.inst36)} +// CHECK:STDOUT: ir0.inst65: {kind: TupleLiteral, arg0: inst_block21, type: type(symbolic_constant8)} +// CHECK:STDOUT: ir0.inst66: {kind: RequireCompleteType, arg0: ir0.inst42, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst67: {kind: TupleAccess, arg0: ir0.inst52, arg1: element0, type: type(symbolic_constant4)} +// CHECK:STDOUT: ir0.inst68: {kind: RequireCompleteType, arg0: ir0.inst27, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst69: {kind: ImportRefLoaded, arg0: import_ir_inst0, arg1: entity_name3, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst70: {kind: InterfaceDecl, arg0: interface0, arg1: inst_block_empty, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst71: {kind: FacetType, arg0: facet_type1, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst72: {kind: BindSymbolicName, arg0: entity_name4, arg1: inst, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst73: {kind: ImportRefUnloaded, arg0: import_ir_inst2, arg1: entity_name} +// CHECK:STDOUT: ir0.inst74: {kind: ImportRefLoaded, arg0: import_ir_inst3, arg1: entity_name, type: type(ir0.inst76)} +// CHECK:STDOUT: ir0.inst75: {kind: ImportRefUnloaded, arg0: import_ir_inst4, arg1: entity_name5} +// CHECK:STDOUT: ir0.inst76: {kind: AssociatedEntityType, arg0: interface0, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst77: {kind: ImportRefLoaded, arg0: import_ir_inst5, arg1: entity_name, type: type(ir0.inst80)} +// CHECK:STDOUT: ir0.inst78: {kind: AssociatedEntity, arg0: element0, arg1: ir0.inst77, type: type(ir0.inst76)} +// CHECK:STDOUT: ir0.inst79: {kind: FunctionDecl, arg0: function1, arg1: inst_block_empty, type: type(ir0.inst80)} +// CHECK:STDOUT: ir0.inst80: {kind: FunctionType, arg0: function1, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst81: {kind: StructValue, arg0: inst_block_empty, type: type(ir0.inst80)} +// CHECK:STDOUT: ir0.inst82: {kind: FacetAccessType, arg0: ir0.inst72, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst83: {kind: PatternType, arg0: ir0.inst82, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst84: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant19)} +// CHECK:STDOUT: ir0.inst85: {kind: OutParamPattern, arg0: ir0.inst84, arg1: call_param1, type: type(symbolic_constant19)} +// CHECK:STDOUT: ir0.inst86: {kind: BindingPattern, arg0: entity_name7, type: type(symbolic_constant19)} +// CHECK:STDOUT: ir0.inst87: {kind: ValueParamPattern, arg0: ir0.inst86, arg1: call_param0, type: type(symbolic_constant19)} +// CHECK:STDOUT: ir0.inst88: {kind: ImportRefLoaded, arg0: import_ir_inst11, arg1: entity_name, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst89: {kind: BindSymbolicName, arg0: entity_name4, arg1: inst, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst90: {kind: FacetAccessType, arg0: ir0.inst89, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst91: {kind: PatternType, arg0: ir0.inst90, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst92: {kind: LookupImplWitness, arg0: ir0.inst27, arg1: specific_interface0, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst93: {kind: ImportRefUnloaded, arg0: import_ir_inst15, arg1: entity_name} +// CHECK:STDOUT: ir0.inst94: {kind: ImplDecl, arg0: impl0, arg1: inst_block_empty} +// CHECK:STDOUT: ir0.inst95: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst96: {kind: FacetAccessType, arg0: ir0.inst95, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst97: {kind: ConstType, arg0: ir0.inst96, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst98: {kind: PatternType, arg0: ir0.inst71, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst99: {kind: SymbolicBindingPattern, arg0: entity_name10, type: type(ir0.inst98)} +// CHECK:STDOUT: ir0.inst100: {kind: ImportRefLoaded, arg0: import_ir_inst18, arg1: entity_name, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst101: {kind: ImportRefLoaded, arg0: import_ir_inst19, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst102: {kind: ImportRefLoaded, arg0: import_ir_inst20, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst103: {kind: ImportRefUnloaded, arg0: import_ir_inst21, arg1: entity_name} +// CHECK:STDOUT: ir0.inst104: {kind: ImplWitnessTable, arg0: inst_block30, arg1: impl0} +// CHECK:STDOUT: ir0.inst105: {kind: ImplWitness, arg0: ir0.inst104, arg1: specific2, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst106: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst107: {kind: FacetAccessType, arg0: ir0.inst106, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst108: {kind: ConstType, arg0: ir0.inst107, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst109: {kind: ImplWitness, arg0: ir0.inst104, arg1: specific3, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst110: {kind: FunctionDecl, arg0: function2, arg1: inst_block_empty, type: type(symbolic_constant38)} +// CHECK:STDOUT: ir0.inst111: {kind: FunctionType, arg0: function2, arg1: specific2, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst112: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant38)} +// CHECK:STDOUT: ir0.inst113: {kind: PatternType, arg0: ir0.inst97, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst114: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant43)} +// CHECK:STDOUT: ir0.inst115: {kind: OutParamPattern, arg0: ir0.inst114, arg1: call_param1, type: type(symbolic_constant43)} +// CHECK:STDOUT: ir0.inst116: {kind: BindingPattern, arg0: entity_name13, type: type(symbolic_constant43)} +// CHECK:STDOUT: ir0.inst117: {kind: ValueParamPattern, arg0: ir0.inst116, arg1: call_param0, type: type(symbolic_constant43)} +// CHECK:STDOUT: ir0.inst118: {kind: ImportRefLoaded, arg0: import_ir_inst32, arg1: entity_name, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst119: {kind: FunctionType, arg0: function2, arg1: specific3, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst120: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant45)} +// CHECK:STDOUT: ir0.inst121: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst122: {kind: FacetAccessType, arg0: ir0.inst121, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst123: {kind: ConstType, arg0: ir0.inst122, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst124: {kind: PatternType, arg0: ir0.inst123, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst125: {kind: RequireCompleteType, arg0: ir0.inst97, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst126: {kind: RequireCompleteType, arg0: ir0.inst96, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst127: {kind: LookupImplWitness, arg0: ir0.inst95, arg1: specific_interface0, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst128: {kind: FunctionTypeWithSelfType, arg0: ir0.inst80, arg1: ir0.inst95, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst129: {kind: ImplWitnessAccess, arg0: ir0.inst127, arg1: element0, type: type(symbolic_constant60)} +// CHECK:STDOUT: ir0.inst130: {kind: SpecificImplFunction, arg0: ir0.inst129, arg1: specific5, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: ir0.inst131: {kind: RequireCompleteType, arg0: ir0.inst123, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst132: {kind: RequireCompleteType, arg0: ir0.inst122, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst133: {kind: LookupImplWitness, arg0: ir0.inst121, arg1: specific_interface0, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst134: {kind: FunctionTypeWithSelfType, arg0: ir0.inst80, arg1: ir0.inst121, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst135: {kind: ImplWitnessAccess, arg0: ir0.inst133, arg1: element0, type: type(symbolic_constant69)} +// CHECK:STDOUT: ir0.inst136: {kind: SpecificImplFunction, arg0: ir0.inst135, arg1: specific6, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: ir0.inst137: {kind: PatternType, arg0: ir0.inst96, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst138: {kind: ImportRefUnloaded, arg0: import_ir_inst45, arg1: entity_name} +// CHECK:STDOUT: ir0.inst139: {kind: ImplDecl, arg0: impl1, arg1: inst_block_empty} +// CHECK:STDOUT: ir0.inst140: {kind: ImportRefLoaded, arg0: import_ir_inst47, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst141: {kind: ImportRefLoaded, arg0: import_ir_inst48, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst142: {kind: ImportRefUnloaded, arg0: import_ir_inst49, arg1: entity_name} +// CHECK:STDOUT: ir0.inst143: {kind: ImplDecl, arg0: impl2, arg1: inst_block_empty} +// CHECK:STDOUT: ir0.inst144: {kind: ImportRefLoaded, arg0: import_ir_inst51, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst145: {kind: ImportRefLoaded, arg0: import_ir_inst52, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst146: {kind: ImportRefUnloaded, arg0: import_ir_inst53, arg1: entity_name} +// CHECK:STDOUT: ir0.inst147: {kind: ImplDecl, arg0: impl3, arg1: inst_block_empty} +// CHECK:STDOUT: ir0.inst148: {kind: ImportRefLoaded, arg0: import_ir_inst55, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst149: {kind: ImportRefLoaded, arg0: import_ir_inst56, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst150: {kind: ImportRefUnloaded, arg0: import_ir_inst57, arg1: entity_name} +// CHECK:STDOUT: ir0.inst151: {kind: ImplDecl, arg0: impl4, arg1: inst_block_empty} +// CHECK:STDOUT: ir0.inst152: {kind: ImportRefLoaded, arg0: import_ir_inst59, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst153: {kind: ImportRefLoaded, arg0: import_ir_inst60, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst154: {kind: ImportRefLoaded, arg0: import_ir_inst61, arg1: entity_name, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst155: {kind: ImplDecl, arg0: impl5, arg1: inst_block_empty} +// CHECK:STDOUT: ir0.inst156: {kind: SymbolicBindingPattern, arg0: entity_name16, type: type(ir0.inst23)} +// CHECK:STDOUT: ir0.inst157: {kind: ImportRefLoaded, arg0: import_ir_inst64, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst158: {kind: ImportRefLoaded, arg0: import_ir_inst65, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst159: {kind: ImportRefLoaded, arg0: import_ir_inst66, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst160: {kind: ImportRefUnloaded, arg0: import_ir_inst67, arg1: entity_name} +// CHECK:STDOUT: ir0.inst161: {kind: ImplWitnessTable, arg0: inst_block47, arg1: impl5} +// CHECK:STDOUT: ir0.inst162: {kind: ImplWitness, arg0: ir0.inst161, arg1: specific7, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst163: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst164: {kind: PointerType, arg0: ir0.inst163, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst165: {kind: ImplWitness, arg0: ir0.inst161, arg1: specific8, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst166: {kind: FunctionDecl, arg0: function3, arg1: inst_block_empty, type: type(symbolic_constant81)} +// CHECK:STDOUT: ir0.inst167: {kind: FunctionType, arg0: function3, arg1: specific7, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst168: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant81)} +// CHECK:STDOUT: ir0.inst169: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant85)} +// CHECK:STDOUT: ir0.inst170: {kind: OutParamPattern, arg0: ir0.inst169, arg1: call_param1, type: type(symbolic_constant85)} +// CHECK:STDOUT: ir0.inst171: {kind: BindingPattern, arg0: entity_name19, type: type(symbolic_constant85)} +// CHECK:STDOUT: ir0.inst172: {kind: ValueParamPattern, arg0: ir0.inst171, arg1: call_param0, type: type(symbolic_constant85)} +// CHECK:STDOUT: ir0.inst173: {kind: ImportRefLoaded, arg0: import_ir_inst77, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst174: {kind: FunctionType, arg0: function3, arg1: specific8, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst175: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant88)} +// CHECK:STDOUT: ir0.inst176: {kind: RequireCompleteType, arg0: ir0.inst164, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst177: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst178: {kind: PointerType, arg0: ir0.inst177, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst179: {kind: PatternType, arg0: ir0.inst178, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst180: {kind: ImportRefUnloaded, arg0: import_ir_inst84, arg1: entity_name} +// CHECK:STDOUT: ir0.inst181: {kind: ImplDecl, arg0: impl6, arg1: inst_block_empty} +// CHECK:STDOUT: ir0.inst182: {kind: ImportRefLoaded, arg0: import_ir_inst86, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst183: {kind: ImportRefLoaded, arg0: import_ir_inst87, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst184: {kind: ImportRefUnloaded, arg0: import_ir_inst88, arg1: entity_name} +// CHECK:STDOUT: ir0.inst185: {kind: ImplDecl, arg0: impl7, arg1: inst_block_empty} +// CHECK:STDOUT: ir0.inst186: {kind: ImportRefLoaded, arg0: import_ir_inst90, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst187: {kind: ImportRefLoaded, arg0: import_ir_inst91, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst188: {kind: ImportRefUnloaded, arg0: import_ir_inst92, arg1: entity_name} +// CHECK:STDOUT: ir0.inst189: {kind: ImplDecl, arg0: impl8, arg1: inst_block_empty} +// CHECK:STDOUT: ir0.inst190: {kind: BindSymbolicName, arg0: entity_name21, arg1: inst, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst191: {kind: FacetAccessType, arg0: ir0.inst190, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst192: {kind: TupleType, arg0: inst_block57, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst193: {kind: SymbolicBindingPattern, arg0: entity_name22, type: type(ir0.inst98)} +// CHECK:STDOUT: ir0.inst194: {kind: SymbolicBindingPattern, arg0: entity_name23, type: type(ir0.inst98)} +// CHECK:STDOUT: ir0.inst195: {kind: ImportRefLoaded, arg0: import_ir_inst96, arg1: entity_name, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst196: {kind: ImportRefLoaded, arg0: import_ir_inst97, arg1: entity_name, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst197: {kind: ImportRefLoaded, arg0: import_ir_inst98, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst198: {kind: ImportRefLoaded, arg0: import_ir_inst99, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst199: {kind: ImportRefUnloaded, arg0: import_ir_inst100, arg1: entity_name} +// CHECK:STDOUT: ir0.inst200: {kind: ImplWitnessTable, arg0: inst_block60, arg1: impl8} +// CHECK:STDOUT: ir0.inst201: {kind: ImplWitness, arg0: ir0.inst200, arg1: specific10, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst202: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst203: {kind: BindSymbolicName, arg0: entity_name21, arg1: inst, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst204: {kind: FacetAccessType, arg0: ir0.inst202, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst205: {kind: FacetAccessType, arg0: ir0.inst203, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst206: {kind: TupleType, arg0: inst_block62, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst207: {kind: ImplWitness, arg0: ir0.inst200, arg1: specific11, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst208: {kind: FunctionDecl, arg0: function4, arg1: inst_block_empty, type: type(symbolic_constant114)} +// CHECK:STDOUT: ir0.inst209: {kind: FunctionType, arg0: function4, arg1: specific10, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst210: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant114)} +// CHECK:STDOUT: ir0.inst211: {kind: PatternType, arg0: ir0.inst192, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst212: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant119)} +// CHECK:STDOUT: ir0.inst213: {kind: OutParamPattern, arg0: ir0.inst212, arg1: call_param1, type: type(symbolic_constant119)} +// CHECK:STDOUT: ir0.inst214: {kind: BindingPattern, arg0: entity_name28, type: type(symbolic_constant119)} +// CHECK:STDOUT: ir0.inst215: {kind: ValueParamPattern, arg0: ir0.inst214, arg1: call_param0, type: type(symbolic_constant119)} +// CHECK:STDOUT: ir0.inst216: {kind: ImportRefLoaded, arg0: import_ir_inst113, arg1: entity_name, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst217: {kind: ImportRefLoaded, arg0: import_ir_inst114, arg1: entity_name, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst218: {kind: FunctionType, arg0: function4, arg1: specific11, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst219: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant121)} +// CHECK:STDOUT: ir0.inst220: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst221: {kind: FacetAccessType, arg0: ir0.inst220, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst222: {kind: BindSymbolicName, arg0: entity_name21, arg1: inst, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst223: {kind: FacetAccessType, arg0: ir0.inst222, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst224: {kind: TupleType, arg0: inst_block70, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst225: {kind: PatternType, arg0: ir0.inst224, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst226: {kind: RequireCompleteType, arg0: ir0.inst192, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst227: {kind: RequireCompleteType, arg0: ir0.inst191, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst228: {kind: LookupImplWitness, arg0: ir0.inst190, arg1: specific_interface0, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst229: {kind: FunctionTypeWithSelfType, arg0: ir0.inst80, arg1: ir0.inst190, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst230: {kind: ImplWitnessAccess, arg0: ir0.inst228, arg1: element0, type: type(symbolic_constant145)} +// CHECK:STDOUT: ir0.inst231: {kind: SpecificImplFunction, arg0: ir0.inst230, arg1: specific13, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: ir0.inst232: {kind: RequireCompleteType, arg0: ir0.inst224, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst233: {kind: RequireCompleteType, arg0: ir0.inst221, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst234: {kind: LookupImplWitness, arg0: ir0.inst220, arg1: specific_interface0, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst235: {kind: FunctionTypeWithSelfType, arg0: ir0.inst80, arg1: ir0.inst220, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst236: {kind: ImplWitnessAccess, arg0: ir0.inst234, arg1: element0, type: type(symbolic_constant154)} +// CHECK:STDOUT: ir0.inst237: {kind: SpecificImplFunction, arg0: ir0.inst236, arg1: specific14, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: ir0.inst238: {kind: RequireCompleteType, arg0: ir0.inst223, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst239: {kind: LookupImplWitness, arg0: ir0.inst222, arg1: specific_interface0, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst240: {kind: FunctionTypeWithSelfType, arg0: ir0.inst80, arg1: ir0.inst222, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst241: {kind: ImplWitnessAccess, arg0: ir0.inst239, arg1: element0, type: type(symbolic_constant159)} +// CHECK:STDOUT: ir0.inst242: {kind: SpecificImplFunction, arg0: ir0.inst241, arg1: specific15, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: ir0.inst243: {kind: PatternType, arg0: ir0.inst191, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst244: {kind: ImportRefUnloaded, arg0: import_ir_inst134, arg1: entity_name} +// CHECK:STDOUT: ir0.inst245: {kind: ImplDecl, arg0: impl9, arg1: inst_block_empty} +// CHECK:STDOUT: ir0.inst246: {kind: BindSymbolicName, arg0: entity_name31, arg1: inst, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst247: {kind: FacetAccessType, arg0: ir0.inst246, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst248: {kind: TupleType, arg0: inst_block79, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst249: {kind: SymbolicBindingPattern, arg0: entity_name32, type: type(ir0.inst98)} +// CHECK:STDOUT: ir0.inst250: {kind: SymbolicBindingPattern, arg0: entity_name33, type: type(ir0.inst98)} +// CHECK:STDOUT: ir0.inst251: {kind: SymbolicBindingPattern, arg0: entity_name34, type: type(ir0.inst98)} +// CHECK:STDOUT: ir0.inst252: {kind: ImportRefLoaded, arg0: import_ir_inst139, arg1: entity_name, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst253: {kind: ImportRefLoaded, arg0: import_ir_inst140, arg1: entity_name, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst254: {kind: ImportRefLoaded, arg0: import_ir_inst141, arg1: entity_name, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst255: {kind: ImportRefLoaded, arg0: import_ir_inst142, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst256: {kind: ImportRefLoaded, arg0: import_ir_inst143, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst257: {kind: ImportRefUnloaded, arg0: import_ir_inst144, arg1: entity_name} +// CHECK:STDOUT: ir0.inst258: {kind: ImplWitnessTable, arg0: inst_block82, arg1: impl9} +// CHECK:STDOUT: ir0.inst259: {kind: ImplWitness, arg0: ir0.inst258, arg1: specific16, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst260: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst261: {kind: BindSymbolicName, arg0: entity_name21, arg1: inst, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst262: {kind: BindSymbolicName, arg0: entity_name31, arg1: inst, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst263: {kind: FacetAccessType, arg0: ir0.inst260, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst264: {kind: FacetAccessType, arg0: ir0.inst261, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst265: {kind: FacetAccessType, arg0: ir0.inst262, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst266: {kind: TupleType, arg0: inst_block84, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst267: {kind: ImplWitness, arg0: ir0.inst258, arg1: specific17, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst268: {kind: FunctionDecl, arg0: function5, arg1: inst_block_empty, type: type(symbolic_constant186)} +// CHECK:STDOUT: ir0.inst269: {kind: FunctionType, arg0: function5, arg1: specific16, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst270: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant186)} +// CHECK:STDOUT: ir0.inst271: {kind: PatternType, arg0: ir0.inst248, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst272: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant191)} +// CHECK:STDOUT: ir0.inst273: {kind: OutParamPattern, arg0: ir0.inst272, arg1: call_param1, type: type(symbolic_constant191)} +// CHECK:STDOUT: ir0.inst274: {kind: BindingPattern, arg0: entity_name41, type: type(symbolic_constant191)} +// CHECK:STDOUT: ir0.inst275: {kind: ValueParamPattern, arg0: ir0.inst274, arg1: call_param0, type: type(symbolic_constant191)} +// CHECK:STDOUT: ir0.inst276: {kind: ImportRefLoaded, arg0: import_ir_inst159, arg1: entity_name, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst277: {kind: ImportRefLoaded, arg0: import_ir_inst160, arg1: entity_name, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst278: {kind: ImportRefLoaded, arg0: import_ir_inst161, arg1: entity_name, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst279: {kind: FunctionType, arg0: function5, arg1: specific17, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst280: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant193)} +// CHECK:STDOUT: ir0.inst281: {kind: BindSymbolicName, arg0: entity_name1, arg1: inst, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst282: {kind: FacetAccessType, arg0: ir0.inst281, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst283: {kind: BindSymbolicName, arg0: entity_name21, arg1: inst, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst284: {kind: FacetAccessType, arg0: ir0.inst283, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst285: {kind: BindSymbolicName, arg0: entity_name31, arg1: inst, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst286: {kind: FacetAccessType, arg0: ir0.inst285, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst287: {kind: TupleType, arg0: inst_block92, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst288: {kind: PatternType, arg0: ir0.inst287, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst289: {kind: RequireCompleteType, arg0: ir0.inst248, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst290: {kind: RequireCompleteType, arg0: ir0.inst247, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst291: {kind: LookupImplWitness, arg0: ir0.inst246, arg1: specific_interface0, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst292: {kind: FunctionTypeWithSelfType, arg0: ir0.inst80, arg1: ir0.inst246, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst293: {kind: ImplWitnessAccess, arg0: ir0.inst291, arg1: element0, type: type(symbolic_constant226)} +// CHECK:STDOUT: ir0.inst294: {kind: SpecificImplFunction, arg0: ir0.inst293, arg1: specific19, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: ir0.inst295: {kind: RequireCompleteType, arg0: ir0.inst287, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst296: {kind: RequireCompleteType, arg0: ir0.inst282, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst297: {kind: LookupImplWitness, arg0: ir0.inst281, arg1: specific_interface0, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst298: {kind: FunctionTypeWithSelfType, arg0: ir0.inst80, arg1: ir0.inst281, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst299: {kind: ImplWitnessAccess, arg0: ir0.inst297, arg1: element0, type: type(symbolic_constant235)} +// CHECK:STDOUT: ir0.inst300: {kind: SpecificImplFunction, arg0: ir0.inst299, arg1: specific20, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: ir0.inst301: {kind: RequireCompleteType, arg0: ir0.inst284, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst302: {kind: LookupImplWitness, arg0: ir0.inst283, arg1: specific_interface0, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst303: {kind: FunctionTypeWithSelfType, arg0: ir0.inst80, arg1: ir0.inst283, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst304: {kind: ImplWitnessAccess, arg0: ir0.inst302, arg1: element0, type: type(symbolic_constant240)} +// CHECK:STDOUT: ir0.inst305: {kind: SpecificImplFunction, arg0: ir0.inst304, arg1: specific21, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: ir0.inst306: {kind: RequireCompleteType, arg0: ir0.inst286, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst307: {kind: LookupImplWitness, arg0: ir0.inst285, arg1: specific_interface0, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst308: {kind: FunctionTypeWithSelfType, arg0: ir0.inst80, arg1: ir0.inst285, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst309: {kind: ImplWitnessAccess, arg0: ir0.inst307, arg1: element0, type: type(symbolic_constant245)} +// CHECK:STDOUT: ir0.inst310: {kind: SpecificImplFunction, arg0: ir0.inst309, arg1: specific22, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: ir0.inst311: {kind: PatternType, arg0: ir0.inst247, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst312: {kind: LookupImplWitness, arg0: ir0.inst27, arg1: specific_interface0, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst313: {kind: LookupImplWitness, arg0: ir0.inst28, arg1: specific_interface0, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst314: {kind: FacetValue, arg0: ir0.inst27, arg1: inst_block103, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst315: {kind: FunctionTypeWithSelfType, arg0: ir0.inst80, arg1: ir0.inst314, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst316: {kind: ImplWitnessAccess, arg0: ir0.inst312, arg1: element0, type: type(symbolic_constant256)} +// CHECK:STDOUT: ir0.inst317: {kind: ImplWitnessAccess, arg0: ir0.inst312, arg1: element0, type: type(symbolic_constant253)} +// CHECK:STDOUT: ir0.inst318: {kind: FacetValue, arg0: ir0.inst28, arg1: inst_block104, type: type(ir0.inst71)} +// CHECK:STDOUT: ir0.inst319: {kind: FunctionTypeWithSelfType, arg0: ir0.inst80, arg1: ir0.inst318, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst320: {kind: ImplWitnessAccess, arg0: ir0.inst313, arg1: element0, type: type(symbolic_constant256)} +// CHECK:STDOUT: ir0.inst321: {kind: BoundMethod, arg0: ir0.inst63, arg1: ir0.inst316, type: type(inst(BoundMethodType))} +// CHECK:STDOUT: ir0.inst322: {kind: SpecificImplFunction, arg0: ir0.inst316, arg1: specific23, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: ir0.inst323: {kind: SpecificImplFunction, arg0: ir0.inst317, arg1: specific23, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: ir0.inst324: {kind: SpecificImplFunction, arg0: ir0.inst320, arg1: specific24, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: ir0.inst325: {kind: BoundMethod, arg0: ir0.inst63, arg1: ir0.inst322, type: type(inst(BoundMethodType))} +// CHECK:STDOUT: ir0.inst326: {kind: RequireCompleteType, arg0: ir0.inst27, type: type(inst(WitnessType))} +// CHECK:STDOUT: ir0.inst327: {kind: Call, arg0: ir0.inst325, arg1: inst_block108, type: type(symbolic_constant4)} +// CHECK:STDOUT: ir0.inst328: {kind: InitializeFrom, arg0: ir0.inst327, arg1: ir0.inst67, type: type(symbolic_constant4)} +// CHECK:STDOUT: ir0.inst329: {kind: TupleAccess, arg0: ir0.inst52, arg1: element1, type: type(ir0.inst36)} +// CHECK:STDOUT: ir0.inst330: {kind: TupleInit, arg0: inst_block_empty, arg1: ir0.inst329, type: type(ir0.inst36)} +// CHECK:STDOUT: ir0.inst331: {kind: TupleValue, arg0: inst_block_empty, type: type(ir0.inst36)} +// CHECK:STDOUT: ir0.inst332: {kind: Converted, arg0: ir0.inst64, arg1: ir0.inst330, type: type(ir0.inst36)} +// CHECK:STDOUT: ir0.inst333: {kind: TupleInit, arg0: inst_block109, arg1: ir0.inst52, type: type(symbolic_constant8)} +// CHECK:STDOUT: ir0.inst334: {kind: Converted, arg0: ir0.inst65, arg1: ir0.inst333, type: type(symbolic_constant8)} +// CHECK:STDOUT: ir0.inst335: {kind: ReturnExpr, arg0: ir0.inst334, arg1: ir0.inst52} // CHECK:STDOUT: constant_values: // CHECK:STDOUT: values: // CHECK:STDOUT: inst14: concrete_constant(inst14) -// CHECK:STDOUT: inst16: concrete_constant(inst16) -// CHECK:STDOUT: inst17: concrete_constant(inst17) -// CHECK:STDOUT: inst18: symbolic_constant0 -// CHECK:STDOUT: inst19: symbolic_constant0 -// CHECK:STDOUT: inst20: symbolic_constant2 -// CHECK:STDOUT: inst21: symbolic_constant1 -// CHECK:STDOUT: inst22: symbolic_constant2 -// CHECK:STDOUT: inst23: concrete_constant(inst23) -// CHECK:STDOUT: inst24: concrete_constant(inst24) -// CHECK:STDOUT: inst25: symbolic_constant2 -// CHECK:STDOUT: inst26: symbolic_constant4 -// CHECK:STDOUT: inst27: symbolic_constant3 -// CHECK:STDOUT: inst28: symbolic_constant4 -// CHECK:STDOUT: inst30: symbolic_constant5 -// CHECK:STDOUT: inst31: concrete_constant(inst31) -// CHECK:STDOUT: inst32: symbolic_constant6 -// CHECK:STDOUT: inst33: concrete_constant(inst33) -// CHECK:STDOUT: inst34: symbolic_constant2 -// CHECK:STDOUT: inst35: symbolic_constant4 -// CHECK:STDOUT: inst36: concrete_constant(inst36) -// CHECK:STDOUT: inst38: concrete_constant(inst38) -// CHECK:STDOUT: inst40: concrete_constant(inst40) -// CHECK:STDOUT: inst41: concrete_constant(inst36) -// CHECK:STDOUT: inst42: symbolic_constant7 -// CHECK:STDOUT: inst43: symbolic_constant8 -// CHECK:STDOUT: inst44: symbolic_constant8 -// CHECK:STDOUT: inst45: symbolic_constant9 -// CHECK:STDOUT: inst46: concrete_constant(inst46) -// CHECK:STDOUT: inst47: symbolic_constant10 -// CHECK:STDOUT: inst48: concrete_constant(inst48) -// CHECK:STDOUT: inst50: symbolic_constant4 -// CHECK:STDOUT: inst53: concrete_constant(inst55) -// CHECK:STDOUT: inst54: concrete_constant(inst54) -// CHECK:STDOUT: inst55: concrete_constant(inst55) -// CHECK:STDOUT: inst56: symbolic_constant11 -// CHECK:STDOUT: inst57: symbolic_constant13 -// CHECK:STDOUT: inst58: symbolic_constant12 -// CHECK:STDOUT: inst59: symbolic_constant13 -// CHECK:STDOUT: inst60: symbolic_constant15 -// CHECK:STDOUT: inst61: symbolic_constant14 -// CHECK:STDOUT: inst62: symbolic_constant15 -// CHECK:STDOUT: inst66: symbolic_constant13 -// CHECK:STDOUT: inst68: symbolic_constant15 -// CHECK:STDOUT: inst69: concrete_constant(inst71) -// CHECK:STDOUT: inst70: concrete_constant(inst71) -// CHECK:STDOUT: inst71: concrete_constant(inst71) -// CHECK:STDOUT: inst72: symbolic_constant16 -// CHECK:STDOUT: inst73: constant -// CHECK:STDOUT: inst74: concrete_constant(inst78) -// CHECK:STDOUT: inst75: constant -// CHECK:STDOUT: inst76: concrete_constant(inst76) -// CHECK:STDOUT: inst77: concrete_constant(inst81) -// CHECK:STDOUT: inst78: concrete_constant(inst78) -// CHECK:STDOUT: inst79: concrete_constant(inst81) -// CHECK:STDOUT: inst80: concrete_constant(inst80) -// CHECK:STDOUT: inst81: concrete_constant(inst81) -// CHECK:STDOUT: inst82: symbolic_constant17 -// CHECK:STDOUT: inst83: symbolic_constant18 -// CHECK:STDOUT: inst84: concrete_constant(inst84) -// CHECK:STDOUT: inst85: concrete_constant(inst85) -// CHECK:STDOUT: inst86: concrete_constant(inst86) -// CHECK:STDOUT: inst87: concrete_constant(inst87) -// CHECK:STDOUT: inst88: symbolic_constant16 -// CHECK:STDOUT: inst89: symbolic_constant22 -// CHECK:STDOUT: inst90: symbolic_constant23 -// CHECK:STDOUT: inst91: symbolic_constant24 -// CHECK:STDOUT: inst92: symbolic_constant251 -// CHECK:STDOUT: inst93: constant -// CHECK:STDOUT: inst94: concrete_constant(inst94) -// CHECK:STDOUT: inst95: symbolic_constant25 -// CHECK:STDOUT: inst96: symbolic_constant26 -// CHECK:STDOUT: inst97: symbolic_constant27 -// CHECK:STDOUT: inst98: concrete_constant(inst98) -// CHECK:STDOUT: inst99: concrete_constant(inst99) -// CHECK:STDOUT: inst100: symbolic_constant29 -// CHECK:STDOUT: inst101: symbolic_constant28 -// CHECK:STDOUT: inst102: concrete_constant(inst71) -// CHECK:STDOUT: inst103: constant -// CHECK:STDOUT: inst104: concrete_constant(inst104) -// CHECK:STDOUT: inst105: symbolic_constant32 -// CHECK:STDOUT: inst106: symbolic_constant34 -// CHECK:STDOUT: inst107: symbolic_constant35 -// CHECK:STDOUT: inst108: symbolic_constant36 -// CHECK:STDOUT: inst109: symbolic_constant37 -// CHECK:STDOUT: inst110: symbolic_constant40 -// CHECK:STDOUT: inst111: symbolic_constant38 -// CHECK:STDOUT: inst112: symbolic_constant39 -// CHECK:STDOUT: inst113: symbolic_constant42 -// CHECK:STDOUT: inst114: concrete_constant(inst114) -// CHECK:STDOUT: inst115: concrete_constant(inst115) -// CHECK:STDOUT: inst116: concrete_constant(inst116) -// CHECK:STDOUT: inst117: concrete_constant(inst117) -// CHECK:STDOUT: inst118: symbolic_constant29 -// CHECK:STDOUT: inst119: symbolic_constant45 -// CHECK:STDOUT: inst120: symbolic_constant46 -// CHECK:STDOUT: inst121: symbolic_constant50 -// CHECK:STDOUT: inst122: symbolic_constant51 -// CHECK:STDOUT: inst123: symbolic_constant52 -// CHECK:STDOUT: inst124: symbolic_constant53 -// CHECK:STDOUT: inst125: symbolic_constant54 -// CHECK:STDOUT: inst126: symbolic_constant56 -// CHECK:STDOUT: inst127: symbolic_constant58 -// CHECK:STDOUT: inst128: symbolic_constant60 -// CHECK:STDOUT: inst129: symbolic_constant62 -// CHECK:STDOUT: inst130: symbolic_constant64 -// CHECK:STDOUT: inst131: symbolic_constant66 -// CHECK:STDOUT: inst132: symbolic_constant67 -// CHECK:STDOUT: inst133: symbolic_constant68 -// CHECK:STDOUT: inst134: symbolic_constant69 -// CHECK:STDOUT: inst135: symbolic_constant70 -// CHECK:STDOUT: inst136: symbolic_constant71 -// CHECK:STDOUT: inst137: symbolic_constant72 -// CHECK:STDOUT: inst138: constant -// CHECK:STDOUT: inst139: concrete_constant(inst139) -// CHECK:STDOUT: inst140: concrete_constant(inst(BoolType)) -// CHECK:STDOUT: inst141: concrete_constant(inst71) -// CHECK:STDOUT: inst142: constant -// CHECK:STDOUT: inst143: concrete_constant(inst143) -// CHECK:STDOUT: inst144: concrete_constant(inst(CharLiteralType)) -// CHECK:STDOUT: inst145: concrete_constant(inst71) -// CHECK:STDOUT: inst146: constant -// CHECK:STDOUT: inst147: concrete_constant(inst147) -// CHECK:STDOUT: inst148: concrete_constant(inst(FloatLiteralType)) -// CHECK:STDOUT: inst149: concrete_constant(inst71) -// CHECK:STDOUT: inst150: constant -// CHECK:STDOUT: inst151: concrete_constant(inst151) -// CHECK:STDOUT: inst152: concrete_constant(inst(IntLiteralType)) -// CHECK:STDOUT: inst153: concrete_constant(inst71) -// CHECK:STDOUT: inst154: symbolic_constant249 -// CHECK:STDOUT: inst155: concrete_constant(inst155) -// CHECK:STDOUT: inst156: concrete_constant(inst156) -// CHECK:STDOUT: inst157: symbolic_constant74 -// CHECK:STDOUT: inst158: symbolic_constant73 -// CHECK:STDOUT: inst159: concrete_constant(inst71) -// CHECK:STDOUT: inst160: constant -// CHECK:STDOUT: inst161: concrete_constant(inst161) -// CHECK:STDOUT: inst162: symbolic_constant76 -// CHECK:STDOUT: inst163: symbolic_constant78 -// CHECK:STDOUT: inst164: symbolic_constant79 -// CHECK:STDOUT: inst165: symbolic_constant80 -// CHECK:STDOUT: inst166: symbolic_constant83 -// CHECK:STDOUT: inst167: symbolic_constant81 -// CHECK:STDOUT: inst168: symbolic_constant82 -// CHECK:STDOUT: inst169: concrete_constant(inst169) -// CHECK:STDOUT: inst170: concrete_constant(inst170) -// CHECK:STDOUT: inst171: concrete_constant(inst171) -// CHECK:STDOUT: inst172: concrete_constant(inst172) -// CHECK:STDOUT: inst173: symbolic_constant74 -// CHECK:STDOUT: inst174: symbolic_constant88 -// CHECK:STDOUT: inst175: symbolic_constant89 -// CHECK:STDOUT: inst176: symbolic_constant90 -// CHECK:STDOUT: inst177: symbolic_constant93 -// CHECK:STDOUT: inst178: symbolic_constant94 -// CHECK:STDOUT: inst179: symbolic_constant95 -// CHECK:STDOUT: inst180: constant -// CHECK:STDOUT: inst181: concrete_constant(inst181) -// CHECK:STDOUT: inst182: concrete_constant(inst(TypeType)) -// CHECK:STDOUT: inst183: concrete_constant(inst71) -// CHECK:STDOUT: inst184: constant -// CHECK:STDOUT: inst185: concrete_constant(inst185) -// CHECK:STDOUT: inst186: concrete_constant(inst36) -// CHECK:STDOUT: inst187: concrete_constant(inst71) -// CHECK:STDOUT: inst188: constant -// CHECK:STDOUT: inst189: concrete_constant(inst189) -// CHECK:STDOUT: inst190: symbolic_constant96 -// CHECK:STDOUT: inst191: symbolic_constant97 -// CHECK:STDOUT: inst192: symbolic_constant98 -// CHECK:STDOUT: inst193: concrete_constant(inst193) -// CHECK:STDOUT: inst194: concrete_constant(inst194) -// CHECK:STDOUT: inst195: symbolic_constant100 -// CHECK:STDOUT: inst196: symbolic_constant101 -// CHECK:STDOUT: inst197: symbolic_constant99 -// CHECK:STDOUT: inst198: concrete_constant(inst71) -// CHECK:STDOUT: inst199: constant -// CHECK:STDOUT: inst200: concrete_constant(inst200) -// CHECK:STDOUT: inst201: symbolic_constant106 -// CHECK:STDOUT: inst202: symbolic_constant108 -// CHECK:STDOUT: inst203: symbolic_constant109 -// CHECK:STDOUT: inst204: symbolic_constant110 -// CHECK:STDOUT: inst205: symbolic_constant111 -// CHECK:STDOUT: inst206: symbolic_constant112 -// CHECK:STDOUT: inst207: symbolic_constant113 -// CHECK:STDOUT: inst208: symbolic_constant116 -// CHECK:STDOUT: inst209: symbolic_constant114 -// CHECK:STDOUT: inst210: symbolic_constant115 -// CHECK:STDOUT: inst211: symbolic_constant118 -// CHECK:STDOUT: inst212: concrete_constant(inst212) -// CHECK:STDOUT: inst213: concrete_constant(inst213) -// CHECK:STDOUT: inst214: concrete_constant(inst214) -// CHECK:STDOUT: inst215: concrete_constant(inst215) -// CHECK:STDOUT: inst216: symbolic_constant100 -// CHECK:STDOUT: inst217: symbolic_constant101 -// CHECK:STDOUT: inst218: symbolic_constant121 -// CHECK:STDOUT: inst219: symbolic_constant122 -// CHECK:STDOUT: inst220: symbolic_constant128 -// CHECK:STDOUT: inst221: symbolic_constant129 -// CHECK:STDOUT: inst222: symbolic_constant130 -// CHECK:STDOUT: inst223: symbolic_constant131 -// CHECK:STDOUT: inst224: symbolic_constant132 -// CHECK:STDOUT: inst225: symbolic_constant133 -// CHECK:STDOUT: inst226: symbolic_constant134 -// CHECK:STDOUT: inst227: symbolic_constant141 -// CHECK:STDOUT: inst228: symbolic_constant143 -// CHECK:STDOUT: inst229: symbolic_constant145 -// CHECK:STDOUT: inst230: symbolic_constant147 -// CHECK:STDOUT: inst231: symbolic_constant149 -// CHECK:STDOUT: inst232: symbolic_constant151 -// CHECK:STDOUT: inst233: symbolic_constant152 -// CHECK:STDOUT: inst234: symbolic_constant153 -// CHECK:STDOUT: inst235: symbolic_constant154 -// CHECK:STDOUT: inst236: symbolic_constant155 -// CHECK:STDOUT: inst237: symbolic_constant156 -// CHECK:STDOUT: inst238: symbolic_constant157 -// CHECK:STDOUT: inst239: symbolic_constant158 -// CHECK:STDOUT: inst240: symbolic_constant159 -// CHECK:STDOUT: inst241: symbolic_constant160 -// CHECK:STDOUT: inst242: symbolic_constant161 -// CHECK:STDOUT: inst243: symbolic_constant162 -// CHECK:STDOUT: inst244: constant -// CHECK:STDOUT: inst245: concrete_constant(inst245) -// CHECK:STDOUT: inst246: symbolic_constant163 -// CHECK:STDOUT: inst247: symbolic_constant164 -// CHECK:STDOUT: inst248: symbolic_constant165 -// CHECK:STDOUT: inst249: concrete_constant(inst249) -// CHECK:STDOUT: inst250: concrete_constant(inst250) -// CHECK:STDOUT: inst251: concrete_constant(inst251) -// CHECK:STDOUT: inst252: symbolic_constant167 -// CHECK:STDOUT: inst253: symbolic_constant168 -// CHECK:STDOUT: inst254: symbolic_constant169 -// CHECK:STDOUT: inst255: symbolic_constant166 -// CHECK:STDOUT: inst256: concrete_constant(inst71) -// CHECK:STDOUT: inst257: constant -// CHECK:STDOUT: inst258: concrete_constant(inst258) -// CHECK:STDOUT: inst259: symbolic_constant176 -// CHECK:STDOUT: inst260: symbolic_constant178 -// CHECK:STDOUT: inst261: symbolic_constant179 -// CHECK:STDOUT: inst262: symbolic_constant180 -// CHECK:STDOUT: inst263: symbolic_constant181 -// CHECK:STDOUT: inst264: symbolic_constant182 -// CHECK:STDOUT: inst265: symbolic_constant183 -// CHECK:STDOUT: inst266: symbolic_constant184 -// CHECK:STDOUT: inst267: symbolic_constant185 -// CHECK:STDOUT: inst268: symbolic_constant188 -// CHECK:STDOUT: inst269: symbolic_constant186 -// CHECK:STDOUT: inst270: symbolic_constant187 -// CHECK:STDOUT: inst271: symbolic_constant190 -// CHECK:STDOUT: inst272: concrete_constant(inst272) -// CHECK:STDOUT: inst273: concrete_constant(inst273) -// CHECK:STDOUT: inst274: concrete_constant(inst274) -// CHECK:STDOUT: inst275: concrete_constant(inst275) -// CHECK:STDOUT: inst276: symbolic_constant167 -// CHECK:STDOUT: inst277: symbolic_constant168 -// CHECK:STDOUT: inst278: symbolic_constant169 -// CHECK:STDOUT: inst279: symbolic_constant193 -// CHECK:STDOUT: inst280: symbolic_constant194 -// CHECK:STDOUT: inst281: symbolic_constant202 -// CHECK:STDOUT: inst282: symbolic_constant203 -// CHECK:STDOUT: inst283: symbolic_constant204 -// CHECK:STDOUT: inst284: symbolic_constant205 -// CHECK:STDOUT: inst285: symbolic_constant206 -// CHECK:STDOUT: inst286: symbolic_constant207 -// CHECK:STDOUT: inst287: symbolic_constant208 -// CHECK:STDOUT: inst288: symbolic_constant209 -// CHECK:STDOUT: inst289: symbolic_constant210 -// CHECK:STDOUT: inst290: symbolic_constant222 -// CHECK:STDOUT: inst291: symbolic_constant224 -// CHECK:STDOUT: inst292: symbolic_constant226 -// CHECK:STDOUT: inst293: symbolic_constant228 -// CHECK:STDOUT: inst294: symbolic_constant230 -// CHECK:STDOUT: inst295: symbolic_constant232 -// CHECK:STDOUT: inst296: symbolic_constant233 -// CHECK:STDOUT: inst297: symbolic_constant234 -// CHECK:STDOUT: inst298: symbolic_constant235 -// CHECK:STDOUT: inst299: symbolic_constant236 -// CHECK:STDOUT: inst300: symbolic_constant237 -// CHECK:STDOUT: inst301: symbolic_constant238 -// CHECK:STDOUT: inst302: symbolic_constant239 -// CHECK:STDOUT: inst303: symbolic_constant240 -// CHECK:STDOUT: inst304: symbolic_constant241 -// CHECK:STDOUT: inst305: symbolic_constant242 -// CHECK:STDOUT: inst306: symbolic_constant243 -// CHECK:STDOUT: inst307: symbolic_constant244 -// CHECK:STDOUT: inst308: symbolic_constant245 -// CHECK:STDOUT: inst309: symbolic_constant246 -// CHECK:STDOUT: inst310: symbolic_constant247 -// CHECK:STDOUT: inst311: symbolic_constant248 -// CHECK:STDOUT: inst312: symbolic_constant250 -// CHECK:STDOUT: inst313: symbolic_constant251 -// CHECK:STDOUT: inst314: symbolic_constant252 -// CHECK:STDOUT: inst315: symbolic_constant253 -// CHECK:STDOUT: inst316: symbolic_constant257 -// CHECK:STDOUT: inst317: symbolic_constant254 -// CHECK:STDOUT: inst318: symbolic_constant255 -// CHECK:STDOUT: inst319: symbolic_constant256 -// CHECK:STDOUT: inst320: symbolic_constant257 -// CHECK:STDOUT: inst322: symbolic_constant259 -// CHECK:STDOUT: inst323: symbolic_constant258 -// CHECK:STDOUT: inst324: symbolic_constant259 -// CHECK:STDOUT: inst326: symbolic_constant15 -// CHECK:STDOUT: inst330: concrete_constant(inst331) -// CHECK:STDOUT: inst331: concrete_constant(inst331) -// CHECK:STDOUT: inst332: concrete_constant(inst331) +// CHECK:STDOUT: ir0.inst16: concrete_constant(ir0.inst16) +// CHECK:STDOUT: ir0.inst17: concrete_constant(ir0.inst17) +// CHECK:STDOUT: ir0.inst18: symbolic_constant0 +// CHECK:STDOUT: ir0.inst19: symbolic_constant0 +// CHECK:STDOUT: ir0.inst20: symbolic_constant2 +// CHECK:STDOUT: ir0.inst21: symbolic_constant1 +// CHECK:STDOUT: ir0.inst22: symbolic_constant2 +// CHECK:STDOUT: ir0.inst23: concrete_constant(ir0.inst23) +// CHECK:STDOUT: ir0.inst24: concrete_constant(ir0.inst24) +// CHECK:STDOUT: ir0.inst25: symbolic_constant2 +// CHECK:STDOUT: ir0.inst26: symbolic_constant4 +// CHECK:STDOUT: ir0.inst27: symbolic_constant3 +// CHECK:STDOUT: ir0.inst28: symbolic_constant4 +// CHECK:STDOUT: ir0.inst30: symbolic_constant5 +// CHECK:STDOUT: ir0.inst31: concrete_constant(ir0.inst31) +// CHECK:STDOUT: ir0.inst32: symbolic_constant6 +// CHECK:STDOUT: ir0.inst33: concrete_constant(ir0.inst33) +// CHECK:STDOUT: ir0.inst34: symbolic_constant2 +// CHECK:STDOUT: ir0.inst35: symbolic_constant4 +// CHECK:STDOUT: ir0.inst36: concrete_constant(ir0.inst36) +// CHECK:STDOUT: ir0.inst38: concrete_constant(ir0.inst38) +// CHECK:STDOUT: ir0.inst40: concrete_constant(ir0.inst40) +// CHECK:STDOUT: ir0.inst41: concrete_constant(ir0.inst36) +// CHECK:STDOUT: ir0.inst42: symbolic_constant7 +// CHECK:STDOUT: ir0.inst43: symbolic_constant8 +// CHECK:STDOUT: ir0.inst44: symbolic_constant8 +// CHECK:STDOUT: ir0.inst45: symbolic_constant9 +// CHECK:STDOUT: ir0.inst46: concrete_constant(ir0.inst46) +// CHECK:STDOUT: ir0.inst47: symbolic_constant10 +// CHECK:STDOUT: ir0.inst48: concrete_constant(ir0.inst48) +// CHECK:STDOUT: ir0.inst50: symbolic_constant4 +// CHECK:STDOUT: ir0.inst53: concrete_constant(ir0.inst55) +// CHECK:STDOUT: ir0.inst54: concrete_constant(ir0.inst54) +// CHECK:STDOUT: ir0.inst55: concrete_constant(ir0.inst55) +// CHECK:STDOUT: ir0.inst56: symbolic_constant11 +// CHECK:STDOUT: ir0.inst57: symbolic_constant13 +// CHECK:STDOUT: ir0.inst58: symbolic_constant12 +// CHECK:STDOUT: ir0.inst59: symbolic_constant13 +// CHECK:STDOUT: ir0.inst60: symbolic_constant15 +// CHECK:STDOUT: ir0.inst61: symbolic_constant14 +// CHECK:STDOUT: ir0.inst62: symbolic_constant15 +// CHECK:STDOUT: ir0.inst66: symbolic_constant13 +// CHECK:STDOUT: ir0.inst68: symbolic_constant15 +// CHECK:STDOUT: ir0.inst69: concrete_constant(ir0.inst71) +// CHECK:STDOUT: ir0.inst70: concrete_constant(ir0.inst71) +// CHECK:STDOUT: ir0.inst71: concrete_constant(ir0.inst71) +// CHECK:STDOUT: ir0.inst72: symbolic_constant16 +// CHECK:STDOUT: ir0.inst73: constant +// CHECK:STDOUT: ir0.inst74: concrete_constant(ir0.inst78) +// CHECK:STDOUT: ir0.inst75: constant +// CHECK:STDOUT: ir0.inst76: concrete_constant(ir0.inst76) +// CHECK:STDOUT: ir0.inst77: concrete_constant(ir0.inst81) +// CHECK:STDOUT: ir0.inst78: concrete_constant(ir0.inst78) +// CHECK:STDOUT: ir0.inst79: concrete_constant(ir0.inst81) +// CHECK:STDOUT: ir0.inst80: concrete_constant(ir0.inst80) +// CHECK:STDOUT: ir0.inst81: concrete_constant(ir0.inst81) +// CHECK:STDOUT: ir0.inst82: symbolic_constant17 +// CHECK:STDOUT: ir0.inst83: symbolic_constant18 +// CHECK:STDOUT: ir0.inst84: concrete_constant(ir0.inst84) +// CHECK:STDOUT: ir0.inst85: concrete_constant(ir0.inst85) +// CHECK:STDOUT: ir0.inst86: concrete_constant(ir0.inst86) +// CHECK:STDOUT: ir0.inst87: concrete_constant(ir0.inst87) +// CHECK:STDOUT: ir0.inst88: symbolic_constant16 +// CHECK:STDOUT: ir0.inst89: symbolic_constant22 +// CHECK:STDOUT: ir0.inst90: symbolic_constant23 +// CHECK:STDOUT: ir0.inst91: symbolic_constant24 +// CHECK:STDOUT: ir0.inst92: symbolic_constant251 +// CHECK:STDOUT: ir0.inst93: constant +// CHECK:STDOUT: ir0.inst94: concrete_constant(ir0.inst94) +// CHECK:STDOUT: ir0.inst95: symbolic_constant25 +// CHECK:STDOUT: ir0.inst96: symbolic_constant26 +// CHECK:STDOUT: ir0.inst97: symbolic_constant27 +// CHECK:STDOUT: ir0.inst98: concrete_constant(ir0.inst98) +// CHECK:STDOUT: ir0.inst99: concrete_constant(ir0.inst99) +// CHECK:STDOUT: ir0.inst100: symbolic_constant29 +// CHECK:STDOUT: ir0.inst101: symbolic_constant28 +// CHECK:STDOUT: ir0.inst102: concrete_constant(ir0.inst71) +// CHECK:STDOUT: ir0.inst103: constant +// CHECK:STDOUT: ir0.inst104: concrete_constant(ir0.inst104) +// CHECK:STDOUT: ir0.inst105: symbolic_constant32 +// CHECK:STDOUT: ir0.inst106: symbolic_constant34 +// CHECK:STDOUT: ir0.inst107: symbolic_constant35 +// CHECK:STDOUT: ir0.inst108: symbolic_constant36 +// CHECK:STDOUT: ir0.inst109: symbolic_constant37 +// CHECK:STDOUT: ir0.inst110: symbolic_constant40 +// CHECK:STDOUT: ir0.inst111: symbolic_constant38 +// CHECK:STDOUT: ir0.inst112: symbolic_constant39 +// CHECK:STDOUT: ir0.inst113: symbolic_constant42 +// CHECK:STDOUT: ir0.inst114: concrete_constant(ir0.inst114) +// CHECK:STDOUT: ir0.inst115: concrete_constant(ir0.inst115) +// CHECK:STDOUT: ir0.inst116: concrete_constant(ir0.inst116) +// CHECK:STDOUT: ir0.inst117: concrete_constant(ir0.inst117) +// CHECK:STDOUT: ir0.inst118: symbolic_constant29 +// CHECK:STDOUT: ir0.inst119: symbolic_constant45 +// CHECK:STDOUT: ir0.inst120: symbolic_constant46 +// CHECK:STDOUT: ir0.inst121: symbolic_constant50 +// CHECK:STDOUT: ir0.inst122: symbolic_constant51 +// CHECK:STDOUT: ir0.inst123: symbolic_constant52 +// CHECK:STDOUT: ir0.inst124: symbolic_constant53 +// CHECK:STDOUT: ir0.inst125: symbolic_constant54 +// CHECK:STDOUT: ir0.inst126: symbolic_constant56 +// CHECK:STDOUT: ir0.inst127: symbolic_constant58 +// CHECK:STDOUT: ir0.inst128: symbolic_constant60 +// CHECK:STDOUT: ir0.inst129: symbolic_constant62 +// CHECK:STDOUT: ir0.inst130: symbolic_constant64 +// CHECK:STDOUT: ir0.inst131: symbolic_constant66 +// CHECK:STDOUT: ir0.inst132: symbolic_constant67 +// CHECK:STDOUT: ir0.inst133: symbolic_constant68 +// CHECK:STDOUT: ir0.inst134: symbolic_constant69 +// CHECK:STDOUT: ir0.inst135: symbolic_constant70 +// CHECK:STDOUT: ir0.inst136: symbolic_constant71 +// CHECK:STDOUT: ir0.inst137: symbolic_constant72 +// CHECK:STDOUT: ir0.inst138: constant +// CHECK:STDOUT: ir0.inst139: concrete_constant(ir0.inst139) +// CHECK:STDOUT: ir0.inst140: concrete_constant(inst(BoolType)) +// CHECK:STDOUT: ir0.inst141: concrete_constant(ir0.inst71) +// CHECK:STDOUT: ir0.inst142: constant +// CHECK:STDOUT: ir0.inst143: concrete_constant(ir0.inst143) +// CHECK:STDOUT: ir0.inst144: concrete_constant(inst(CharLiteralType)) +// CHECK:STDOUT: ir0.inst145: concrete_constant(ir0.inst71) +// CHECK:STDOUT: ir0.inst146: constant +// CHECK:STDOUT: ir0.inst147: concrete_constant(ir0.inst147) +// CHECK:STDOUT: ir0.inst148: concrete_constant(inst(FloatLiteralType)) +// CHECK:STDOUT: ir0.inst149: concrete_constant(ir0.inst71) +// CHECK:STDOUT: ir0.inst150: constant +// CHECK:STDOUT: ir0.inst151: concrete_constant(ir0.inst151) +// CHECK:STDOUT: ir0.inst152: concrete_constant(inst(IntLiteralType)) +// CHECK:STDOUT: ir0.inst153: concrete_constant(ir0.inst71) +// CHECK:STDOUT: ir0.inst154: symbolic_constant249 +// CHECK:STDOUT: ir0.inst155: concrete_constant(ir0.inst155) +// CHECK:STDOUT: ir0.inst156: concrete_constant(ir0.inst156) +// CHECK:STDOUT: ir0.inst157: symbolic_constant74 +// CHECK:STDOUT: ir0.inst158: symbolic_constant73 +// CHECK:STDOUT: ir0.inst159: concrete_constant(ir0.inst71) +// CHECK:STDOUT: ir0.inst160: constant +// CHECK:STDOUT: ir0.inst161: concrete_constant(ir0.inst161) +// CHECK:STDOUT: ir0.inst162: symbolic_constant76 +// CHECK:STDOUT: ir0.inst163: symbolic_constant78 +// CHECK:STDOUT: ir0.inst164: symbolic_constant79 +// CHECK:STDOUT: ir0.inst165: symbolic_constant80 +// CHECK:STDOUT: ir0.inst166: symbolic_constant83 +// CHECK:STDOUT: ir0.inst167: symbolic_constant81 +// CHECK:STDOUT: ir0.inst168: symbolic_constant82 +// CHECK:STDOUT: ir0.inst169: concrete_constant(ir0.inst169) +// CHECK:STDOUT: ir0.inst170: concrete_constant(ir0.inst170) +// CHECK:STDOUT: ir0.inst171: concrete_constant(ir0.inst171) +// CHECK:STDOUT: ir0.inst172: concrete_constant(ir0.inst172) +// CHECK:STDOUT: ir0.inst173: symbolic_constant74 +// CHECK:STDOUT: ir0.inst174: symbolic_constant88 +// CHECK:STDOUT: ir0.inst175: symbolic_constant89 +// CHECK:STDOUT: ir0.inst176: symbolic_constant90 +// CHECK:STDOUT: ir0.inst177: symbolic_constant93 +// CHECK:STDOUT: ir0.inst178: symbolic_constant94 +// CHECK:STDOUT: ir0.inst179: symbolic_constant95 +// CHECK:STDOUT: ir0.inst180: constant +// CHECK:STDOUT: ir0.inst181: concrete_constant(ir0.inst181) +// CHECK:STDOUT: ir0.inst182: concrete_constant(inst(TypeType)) +// CHECK:STDOUT: ir0.inst183: concrete_constant(ir0.inst71) +// CHECK:STDOUT: ir0.inst184: constant +// CHECK:STDOUT: ir0.inst185: concrete_constant(ir0.inst185) +// CHECK:STDOUT: ir0.inst186: concrete_constant(ir0.inst36) +// CHECK:STDOUT: ir0.inst187: concrete_constant(ir0.inst71) +// CHECK:STDOUT: ir0.inst188: constant +// CHECK:STDOUT: ir0.inst189: concrete_constant(ir0.inst189) +// CHECK:STDOUT: ir0.inst190: symbolic_constant96 +// CHECK:STDOUT: ir0.inst191: symbolic_constant97 +// CHECK:STDOUT: ir0.inst192: symbolic_constant98 +// CHECK:STDOUT: ir0.inst193: concrete_constant(ir0.inst193) +// CHECK:STDOUT: ir0.inst194: concrete_constant(ir0.inst194) +// CHECK:STDOUT: ir0.inst195: symbolic_constant100 +// CHECK:STDOUT: ir0.inst196: symbolic_constant101 +// CHECK:STDOUT: ir0.inst197: symbolic_constant99 +// CHECK:STDOUT: ir0.inst198: concrete_constant(ir0.inst71) +// CHECK:STDOUT: ir0.inst199: constant +// CHECK:STDOUT: ir0.inst200: concrete_constant(ir0.inst200) +// CHECK:STDOUT: ir0.inst201: symbolic_constant106 +// CHECK:STDOUT: ir0.inst202: symbolic_constant108 +// CHECK:STDOUT: ir0.inst203: symbolic_constant109 +// CHECK:STDOUT: ir0.inst204: symbolic_constant110 +// CHECK:STDOUT: ir0.inst205: symbolic_constant111 +// CHECK:STDOUT: ir0.inst206: symbolic_constant112 +// CHECK:STDOUT: ir0.inst207: symbolic_constant113 +// CHECK:STDOUT: ir0.inst208: symbolic_constant116 +// CHECK:STDOUT: ir0.inst209: symbolic_constant114 +// CHECK:STDOUT: ir0.inst210: symbolic_constant115 +// CHECK:STDOUT: ir0.inst211: symbolic_constant118 +// CHECK:STDOUT: ir0.inst212: concrete_constant(ir0.inst212) +// CHECK:STDOUT: ir0.inst213: concrete_constant(ir0.inst213) +// CHECK:STDOUT: ir0.inst214: concrete_constant(ir0.inst214) +// CHECK:STDOUT: ir0.inst215: concrete_constant(ir0.inst215) +// CHECK:STDOUT: ir0.inst216: symbolic_constant100 +// CHECK:STDOUT: ir0.inst217: symbolic_constant101 +// CHECK:STDOUT: ir0.inst218: symbolic_constant121 +// CHECK:STDOUT: ir0.inst219: symbolic_constant122 +// CHECK:STDOUT: ir0.inst220: symbolic_constant128 +// CHECK:STDOUT: ir0.inst221: symbolic_constant129 +// CHECK:STDOUT: ir0.inst222: symbolic_constant130 +// CHECK:STDOUT: ir0.inst223: symbolic_constant131 +// CHECK:STDOUT: ir0.inst224: symbolic_constant132 +// CHECK:STDOUT: ir0.inst225: symbolic_constant133 +// CHECK:STDOUT: ir0.inst226: symbolic_constant134 +// CHECK:STDOUT: ir0.inst227: symbolic_constant141 +// CHECK:STDOUT: ir0.inst228: symbolic_constant143 +// CHECK:STDOUT: ir0.inst229: symbolic_constant145 +// CHECK:STDOUT: ir0.inst230: symbolic_constant147 +// CHECK:STDOUT: ir0.inst231: symbolic_constant149 +// CHECK:STDOUT: ir0.inst232: symbolic_constant151 +// CHECK:STDOUT: ir0.inst233: symbolic_constant152 +// CHECK:STDOUT: ir0.inst234: symbolic_constant153 +// CHECK:STDOUT: ir0.inst235: symbolic_constant154 +// CHECK:STDOUT: ir0.inst236: symbolic_constant155 +// CHECK:STDOUT: ir0.inst237: symbolic_constant156 +// CHECK:STDOUT: ir0.inst238: symbolic_constant157 +// CHECK:STDOUT: ir0.inst239: symbolic_constant158 +// CHECK:STDOUT: ir0.inst240: symbolic_constant159 +// CHECK:STDOUT: ir0.inst241: symbolic_constant160 +// CHECK:STDOUT: ir0.inst242: symbolic_constant161 +// CHECK:STDOUT: ir0.inst243: symbolic_constant162 +// CHECK:STDOUT: ir0.inst244: constant +// CHECK:STDOUT: ir0.inst245: concrete_constant(ir0.inst245) +// CHECK:STDOUT: ir0.inst246: symbolic_constant163 +// CHECK:STDOUT: ir0.inst247: symbolic_constant164 +// CHECK:STDOUT: ir0.inst248: symbolic_constant165 +// CHECK:STDOUT: ir0.inst249: concrete_constant(ir0.inst249) +// CHECK:STDOUT: ir0.inst250: concrete_constant(ir0.inst250) +// CHECK:STDOUT: ir0.inst251: concrete_constant(ir0.inst251) +// CHECK:STDOUT: ir0.inst252: symbolic_constant167 +// CHECK:STDOUT: ir0.inst253: symbolic_constant168 +// CHECK:STDOUT: ir0.inst254: symbolic_constant169 +// CHECK:STDOUT: ir0.inst255: symbolic_constant166 +// CHECK:STDOUT: ir0.inst256: concrete_constant(ir0.inst71) +// CHECK:STDOUT: ir0.inst257: constant +// CHECK:STDOUT: ir0.inst258: concrete_constant(ir0.inst258) +// CHECK:STDOUT: ir0.inst259: symbolic_constant176 +// CHECK:STDOUT: ir0.inst260: symbolic_constant178 +// CHECK:STDOUT: ir0.inst261: symbolic_constant179 +// CHECK:STDOUT: ir0.inst262: symbolic_constant180 +// CHECK:STDOUT: ir0.inst263: symbolic_constant181 +// CHECK:STDOUT: ir0.inst264: symbolic_constant182 +// CHECK:STDOUT: ir0.inst265: symbolic_constant183 +// CHECK:STDOUT: ir0.inst266: symbolic_constant184 +// CHECK:STDOUT: ir0.inst267: symbolic_constant185 +// CHECK:STDOUT: ir0.inst268: symbolic_constant188 +// CHECK:STDOUT: ir0.inst269: symbolic_constant186 +// CHECK:STDOUT: ir0.inst270: symbolic_constant187 +// CHECK:STDOUT: ir0.inst271: symbolic_constant190 +// CHECK:STDOUT: ir0.inst272: concrete_constant(ir0.inst272) +// CHECK:STDOUT: ir0.inst273: concrete_constant(ir0.inst273) +// CHECK:STDOUT: ir0.inst274: concrete_constant(ir0.inst274) +// CHECK:STDOUT: ir0.inst275: concrete_constant(ir0.inst275) +// CHECK:STDOUT: ir0.inst276: symbolic_constant167 +// CHECK:STDOUT: ir0.inst277: symbolic_constant168 +// CHECK:STDOUT: ir0.inst278: symbolic_constant169 +// CHECK:STDOUT: ir0.inst279: symbolic_constant193 +// CHECK:STDOUT: ir0.inst280: symbolic_constant194 +// CHECK:STDOUT: ir0.inst281: symbolic_constant202 +// CHECK:STDOUT: ir0.inst282: symbolic_constant203 +// CHECK:STDOUT: ir0.inst283: symbolic_constant204 +// CHECK:STDOUT: ir0.inst284: symbolic_constant205 +// CHECK:STDOUT: ir0.inst285: symbolic_constant206 +// CHECK:STDOUT: ir0.inst286: symbolic_constant207 +// CHECK:STDOUT: ir0.inst287: symbolic_constant208 +// CHECK:STDOUT: ir0.inst288: symbolic_constant209 +// CHECK:STDOUT: ir0.inst289: symbolic_constant210 +// CHECK:STDOUT: ir0.inst290: symbolic_constant222 +// CHECK:STDOUT: ir0.inst291: symbolic_constant224 +// CHECK:STDOUT: ir0.inst292: symbolic_constant226 +// CHECK:STDOUT: ir0.inst293: symbolic_constant228 +// CHECK:STDOUT: ir0.inst294: symbolic_constant230 +// CHECK:STDOUT: ir0.inst295: symbolic_constant232 +// CHECK:STDOUT: ir0.inst296: symbolic_constant233 +// CHECK:STDOUT: ir0.inst297: symbolic_constant234 +// CHECK:STDOUT: ir0.inst298: symbolic_constant235 +// CHECK:STDOUT: ir0.inst299: symbolic_constant236 +// CHECK:STDOUT: ir0.inst300: symbolic_constant237 +// CHECK:STDOUT: ir0.inst301: symbolic_constant238 +// CHECK:STDOUT: ir0.inst302: symbolic_constant239 +// CHECK:STDOUT: ir0.inst303: symbolic_constant240 +// CHECK:STDOUT: ir0.inst304: symbolic_constant241 +// CHECK:STDOUT: ir0.inst305: symbolic_constant242 +// CHECK:STDOUT: ir0.inst306: symbolic_constant243 +// CHECK:STDOUT: ir0.inst307: symbolic_constant244 +// CHECK:STDOUT: ir0.inst308: symbolic_constant245 +// CHECK:STDOUT: ir0.inst309: symbolic_constant246 +// CHECK:STDOUT: ir0.inst310: symbolic_constant247 +// CHECK:STDOUT: ir0.inst311: symbolic_constant248 +// CHECK:STDOUT: ir0.inst312: symbolic_constant250 +// CHECK:STDOUT: ir0.inst313: symbolic_constant251 +// CHECK:STDOUT: ir0.inst314: symbolic_constant252 +// CHECK:STDOUT: ir0.inst315: symbolic_constant253 +// CHECK:STDOUT: ir0.inst316: symbolic_constant257 +// CHECK:STDOUT: ir0.inst317: symbolic_constant254 +// CHECK:STDOUT: ir0.inst318: symbolic_constant255 +// CHECK:STDOUT: ir0.inst319: symbolic_constant256 +// CHECK:STDOUT: ir0.inst320: symbolic_constant257 +// CHECK:STDOUT: ir0.inst322: symbolic_constant259 +// CHECK:STDOUT: ir0.inst323: symbolic_constant258 +// CHECK:STDOUT: ir0.inst324: symbolic_constant259 +// CHECK:STDOUT: ir0.inst326: symbolic_constant15 +// CHECK:STDOUT: ir0.inst330: concrete_constant(ir0.inst331) +// CHECK:STDOUT: ir0.inst331: concrete_constant(ir0.inst331) +// CHECK:STDOUT: ir0.inst332: concrete_constant(ir0.inst331) // CHECK:STDOUT: symbolic_constants: -// CHECK:STDOUT: symbolic_constant0: {inst: inst19, generic: generic, index: generic_inst, kind: self} -// CHECK:STDOUT: symbolic_constant1: {inst: inst21, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant2: {inst: inst21, generic: generic0, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant3: {inst: inst27, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant4: {inst: inst27, generic: generic0, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant5: {inst: inst30, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6: {inst: inst30, generic: generic0, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant7: {inst: inst42, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant8: {inst: inst42, generic: generic0, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant9: {inst: inst45, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant10: {inst: inst45, generic: generic0, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant11: {inst: inst56, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant12: {inst: inst58, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant13: {inst: inst58, generic: generic0, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant14: {inst: inst61, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant15: {inst: inst61, generic: generic0, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant16: {inst: inst72, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant17: {inst: inst82, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant18: {inst: inst83, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant19: {inst: inst83, generic: generic1, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant20: {inst: inst72, generic: generic1, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant21: {inst: inst82, generic: generic1, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant22: {inst: inst72, generic: generic1, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant23: {inst: inst82, generic: generic1, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant24: {inst: inst83, generic: generic1, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant25: {inst: inst95, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant26: {inst: inst96, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant27: {inst: inst97, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant28: {inst: inst97, generic: generic2, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant29: {inst: inst95, generic: generic2, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant30: {inst: inst95, generic: generic2, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant31: {inst: inst96, generic: generic2, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant32: {inst: inst105, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant33: {inst: inst105, generic: generic2, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant34: {inst: inst95, generic: generic2, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant35: {inst: inst96, generic: generic2, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant36: {inst: inst97, generic: generic2, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant37: {inst: inst105, generic: generic2, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant38: {inst: inst111, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant39: {inst: inst112, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant40: {inst: inst112, generic: generic2, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant41: {inst: inst111, generic: generic2, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant42: {inst: inst113, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant43: {inst: inst113, generic: generic3, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant44: {inst: inst112, generic: generic2, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant45: {inst: inst111, generic: generic2, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant46: {inst: inst112, generic: generic2, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant47: {inst: inst95, generic: generic3, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant48: {inst: inst96, generic: generic3, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant49: {inst: inst97, generic: generic3, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant50: {inst: inst95, generic: generic3, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant51: {inst: inst96, generic: generic3, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant52: {inst: inst97, generic: generic3, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant53: {inst: inst113, generic: generic3, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant54: {inst: inst125, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant55: {inst: inst125, generic: generic3, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant56: {inst: inst126, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant57: {inst: inst126, generic: generic3, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant58: {inst: inst127, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant59: {inst: inst127, generic: generic3, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant60: {inst: inst128, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant61: {inst: inst128, generic: generic3, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant62: {inst: inst129, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant63: {inst: inst129, generic: generic3, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant64: {inst: inst130, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant65: {inst: inst130, generic: generic3, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant66: {inst: inst125, generic: generic3, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant67: {inst: inst126, generic: generic3, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant68: {inst: inst127, generic: generic3, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant69: {inst: inst128, generic: generic3, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant70: {inst: inst129, generic: generic3, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant71: {inst: inst130, generic: generic3, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant72: {inst: inst137, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant73: {inst: inst27, generic: generic4, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant74: {inst: inst21, generic: generic4, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant75: {inst: inst21, generic: generic4, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant76: {inst: inst162, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant77: {inst: inst162, generic: generic4, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant78: {inst: inst21, generic: generic4, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant79: {inst: inst27, generic: generic4, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant80: {inst: inst162, generic: generic4, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant81: {inst: inst167, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant82: {inst: inst168, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant83: {inst: inst168, generic: generic4, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant84: {inst: inst167, generic: generic4, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant85: {inst: inst30, generic: generic5, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant86: {inst: inst168, generic: generic4, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant87: {inst: inst61, generic: generic4, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant88: {inst: inst167, generic: generic4, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant89: {inst: inst168, generic: generic4, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant90: {inst: inst61, generic: generic4, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant91: {inst: inst21, generic: generic5, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant92: {inst: inst27, generic: generic5, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant93: {inst: inst21, generic: generic5, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant94: {inst: inst27, generic: generic5, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant95: {inst: inst30, generic: generic5, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant96: {inst: inst190, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant97: {inst: inst191, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant98: {inst: inst192, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant99: {inst: inst192, generic: generic6, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant100: {inst: inst95, generic: generic6, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant101: {inst: inst190, generic: generic6, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant102: {inst: inst95, generic: generic6, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant103: {inst: inst190, generic: generic6, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant104: {inst: inst96, generic: generic6, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant105: {inst: inst191, generic: generic6, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant106: {inst: inst201, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant107: {inst: inst201, generic: generic6, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant108: {inst: inst95, generic: generic6, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant109: {inst: inst190, generic: generic6, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant110: {inst: inst96, generic: generic6, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant111: {inst: inst191, generic: generic6, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant112: {inst: inst192, generic: generic6, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant113: {inst: inst201, generic: generic6, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant114: {inst: inst209, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant115: {inst: inst210, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant116: {inst: inst210, generic: generic6, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant117: {inst: inst209, generic: generic6, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant118: {inst: inst211, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant119: {inst: inst211, generic: generic7, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant120: {inst: inst210, generic: generic6, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant121: {inst: inst209, generic: generic6, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant122: {inst: inst210, generic: generic6, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant123: {inst: inst95, generic: generic7, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant124: {inst: inst96, generic: generic7, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant125: {inst: inst190, generic: generic7, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant126: {inst: inst191, generic: generic7, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant127: {inst: inst192, generic: generic7, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant128: {inst: inst95, generic: generic7, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant129: {inst: inst96, generic: generic7, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant130: {inst: inst190, generic: generic7, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant131: {inst: inst191, generic: generic7, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant132: {inst: inst192, generic: generic7, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant133: {inst: inst211, generic: generic7, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant134: {inst: inst226, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant135: {inst: inst226, generic: generic7, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant136: {inst: inst126, generic: generic7, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant137: {inst: inst127, generic: generic7, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant138: {inst: inst128, generic: generic7, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant139: {inst: inst129, generic: generic7, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant140: {inst: inst130, generic: generic7, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant141: {inst: inst227, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant142: {inst: inst227, generic: generic7, index: generic_inst_in_def6, kind: checked} -// CHECK:STDOUT: symbolic_constant143: {inst: inst228, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant144: {inst: inst228, generic: generic7, index: generic_inst_in_def7, kind: checked} -// CHECK:STDOUT: symbolic_constant145: {inst: inst229, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant146: {inst: inst229, generic: generic7, index: generic_inst_in_def8, kind: checked} -// CHECK:STDOUT: symbolic_constant147: {inst: inst230, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant148: {inst: inst230, generic: generic7, index: generic_inst_in_def9, kind: checked} -// CHECK:STDOUT: symbolic_constant149: {inst: inst231, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant150: {inst: inst231, generic: generic7, index: generic_inst_in_def10, kind: checked} -// CHECK:STDOUT: symbolic_constant151: {inst: inst226, generic: generic7, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant152: {inst: inst126, generic: generic7, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant153: {inst: inst127, generic: generic7, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant154: {inst: inst128, generic: generic7, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant155: {inst: inst129, generic: generic7, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant156: {inst: inst130, generic: generic7, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant157: {inst: inst227, generic: generic7, index: generic_inst_in_def6, kind: checked} -// CHECK:STDOUT: symbolic_constant158: {inst: inst228, generic: generic7, index: generic_inst_in_def7, kind: checked} -// CHECK:STDOUT: symbolic_constant159: {inst: inst229, generic: generic7, index: generic_inst_in_def8, kind: checked} -// CHECK:STDOUT: symbolic_constant160: {inst: inst230, generic: generic7, index: generic_inst_in_def9, kind: checked} -// CHECK:STDOUT: symbolic_constant161: {inst: inst231, generic: generic7, index: generic_inst_in_def10, kind: checked} -// CHECK:STDOUT: symbolic_constant162: {inst: inst243, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant163: {inst: inst246, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant164: {inst: inst247, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant165: {inst: inst248, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant166: {inst: inst248, generic: generic8, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant167: {inst: inst95, generic: generic8, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant168: {inst: inst190, generic: generic8, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant169: {inst: inst246, generic: generic8, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant170: {inst: inst95, generic: generic8, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant171: {inst: inst190, generic: generic8, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant172: {inst: inst246, generic: generic8, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant173: {inst: inst96, generic: generic8, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant174: {inst: inst191, generic: generic8, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant175: {inst: inst247, generic: generic8, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant176: {inst: inst259, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant177: {inst: inst259, generic: generic8, index: generic_inst_in_decl7, kind: checked} -// CHECK:STDOUT: symbolic_constant178: {inst: inst95, generic: generic8, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant179: {inst: inst190, generic: generic8, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant180: {inst: inst246, generic: generic8, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant181: {inst: inst96, generic: generic8, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant182: {inst: inst191, generic: generic8, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant183: {inst: inst247, generic: generic8, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant184: {inst: inst248, generic: generic8, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant185: {inst: inst259, generic: generic8, index: generic_inst_in_decl7, kind: checked} -// CHECK:STDOUT: symbolic_constant186: {inst: inst269, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant187: {inst: inst270, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant188: {inst: inst270, generic: generic8, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant189: {inst: inst269, generic: generic8, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant190: {inst: inst271, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant191: {inst: inst271, generic: generic9, index: generic_inst_in_decl7, kind: checked} -// CHECK:STDOUT: symbolic_constant192: {inst: inst270, generic: generic8, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant193: {inst: inst269, generic: generic8, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant194: {inst: inst270, generic: generic8, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant195: {inst: inst95, generic: generic9, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant196: {inst: inst96, generic: generic9, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant197: {inst: inst190, generic: generic9, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant198: {inst: inst191, generic: generic9, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant199: {inst: inst246, generic: generic9, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant200: {inst: inst247, generic: generic9, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant201: {inst: inst248, generic: generic9, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant202: {inst: inst95, generic: generic9, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant203: {inst: inst96, generic: generic9, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant204: {inst: inst190, generic: generic9, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant205: {inst: inst191, generic: generic9, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant206: {inst: inst246, generic: generic9, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant207: {inst: inst247, generic: generic9, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant208: {inst: inst248, generic: generic9, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant209: {inst: inst271, generic: generic9, index: generic_inst_in_decl7, kind: checked} -// CHECK:STDOUT: symbolic_constant210: {inst: inst289, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant211: {inst: inst289, generic: generic9, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant212: {inst: inst126, generic: generic9, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant213: {inst: inst127, generic: generic9, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant214: {inst: inst128, generic: generic9, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant215: {inst: inst129, generic: generic9, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant216: {inst: inst130, generic: generic9, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant217: {inst: inst227, generic: generic9, index: generic_inst_in_def6, kind: checked} -// CHECK:STDOUT: symbolic_constant218: {inst: inst228, generic: generic9, index: generic_inst_in_def7, kind: checked} -// CHECK:STDOUT: symbolic_constant219: {inst: inst229, generic: generic9, index: generic_inst_in_def8, kind: checked} -// CHECK:STDOUT: symbolic_constant220: {inst: inst230, generic: generic9, index: generic_inst_in_def9, kind: checked} -// CHECK:STDOUT: symbolic_constant221: {inst: inst231, generic: generic9, index: generic_inst_in_def10, kind: checked} -// CHECK:STDOUT: symbolic_constant222: {inst: inst290, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant223: {inst: inst290, generic: generic9, index: generic_inst_in_def11, kind: checked} -// CHECK:STDOUT: symbolic_constant224: {inst: inst291, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant225: {inst: inst291, generic: generic9, index: generic_inst_in_def12, kind: checked} -// CHECK:STDOUT: symbolic_constant226: {inst: inst292, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant227: {inst: inst292, generic: generic9, index: generic_inst_in_def13, kind: checked} -// CHECK:STDOUT: symbolic_constant228: {inst: inst293, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant229: {inst: inst293, generic: generic9, index: generic_inst_in_def14, kind: checked} -// CHECK:STDOUT: symbolic_constant230: {inst: inst294, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant231: {inst: inst294, generic: generic9, index: generic_inst_in_def15, kind: checked} -// CHECK:STDOUT: symbolic_constant232: {inst: inst289, generic: generic9, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant233: {inst: inst126, generic: generic9, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant234: {inst: inst127, generic: generic9, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant235: {inst: inst128, generic: generic9, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant236: {inst: inst129, generic: generic9, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant237: {inst: inst130, generic: generic9, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant238: {inst: inst227, generic: generic9, index: generic_inst_in_def6, kind: checked} -// CHECK:STDOUT: symbolic_constant239: {inst: inst228, generic: generic9, index: generic_inst_in_def7, kind: checked} -// CHECK:STDOUT: symbolic_constant240: {inst: inst229, generic: generic9, index: generic_inst_in_def8, kind: checked} -// CHECK:STDOUT: symbolic_constant241: {inst: inst230, generic: generic9, index: generic_inst_in_def9, kind: checked} -// CHECK:STDOUT: symbolic_constant242: {inst: inst231, generic: generic9, index: generic_inst_in_def10, kind: checked} -// CHECK:STDOUT: symbolic_constant243: {inst: inst290, generic: generic9, index: generic_inst_in_def11, kind: checked} -// CHECK:STDOUT: symbolic_constant244: {inst: inst291, generic: generic9, index: generic_inst_in_def12, kind: checked} -// CHECK:STDOUT: symbolic_constant245: {inst: inst292, generic: generic9, index: generic_inst_in_def13, kind: checked} -// CHECK:STDOUT: symbolic_constant246: {inst: inst293, generic: generic9, index: generic_inst_in_def14, kind: checked} -// CHECK:STDOUT: symbolic_constant247: {inst: inst294, generic: generic9, index: generic_inst_in_def15, kind: checked} -// CHECK:STDOUT: symbolic_constant248: {inst: inst311, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant249: {inst: inst162, generic: generic4, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant250: {inst: inst312, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant251: {inst: inst312, generic: generic0, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant252: {inst: inst314, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant253: {inst: inst315, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant254: {inst: inst317, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant255: {inst: inst314, generic: generic0, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant256: {inst: inst315, generic: generic0, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant257: {inst: inst317, generic: generic0, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant258: {inst: inst323, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant259: {inst: inst323, generic: generic0, index: generic_inst_in_def6, kind: checked} +// CHECK:STDOUT: symbolic_constant0: {inst: ir0.inst19, generic: generic, index: generic_inst, kind: self} +// CHECK:STDOUT: symbolic_constant1: {inst: ir0.inst21, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant2: {inst: ir0.inst21, generic: generic0, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant3: {inst: ir0.inst27, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant4: {inst: ir0.inst27, generic: generic0, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant5: {inst: ir0.inst30, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6: {inst: ir0.inst30, generic: generic0, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant7: {inst: ir0.inst42, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant8: {inst: ir0.inst42, generic: generic0, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant9: {inst: ir0.inst45, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant10: {inst: ir0.inst45, generic: generic0, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant11: {inst: ir0.inst56, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant12: {inst: ir0.inst58, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant13: {inst: ir0.inst58, generic: generic0, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant14: {inst: ir0.inst61, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant15: {inst: ir0.inst61, generic: generic0, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant16: {inst: ir0.inst72, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant17: {inst: ir0.inst82, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant18: {inst: ir0.inst83, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant19: {inst: ir0.inst83, generic: generic1, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant20: {inst: ir0.inst72, generic: generic1, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant21: {inst: ir0.inst82, generic: generic1, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant22: {inst: ir0.inst72, generic: generic1, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant23: {inst: ir0.inst82, generic: generic1, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant24: {inst: ir0.inst83, generic: generic1, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant25: {inst: ir0.inst95, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant26: {inst: ir0.inst96, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant27: {inst: ir0.inst97, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant28: {inst: ir0.inst97, generic: generic2, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant29: {inst: ir0.inst95, generic: generic2, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant30: {inst: ir0.inst95, generic: generic2, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant31: {inst: ir0.inst96, generic: generic2, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant32: {inst: ir0.inst105, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant33: {inst: ir0.inst105, generic: generic2, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant34: {inst: ir0.inst95, generic: generic2, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant35: {inst: ir0.inst96, generic: generic2, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant36: {inst: ir0.inst97, generic: generic2, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant37: {inst: ir0.inst105, generic: generic2, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant38: {inst: ir0.inst111, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant39: {inst: ir0.inst112, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant40: {inst: ir0.inst112, generic: generic2, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant41: {inst: ir0.inst111, generic: generic2, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant42: {inst: ir0.inst113, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant43: {inst: ir0.inst113, generic: generic3, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant44: {inst: ir0.inst112, generic: generic2, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant45: {inst: ir0.inst111, generic: generic2, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant46: {inst: ir0.inst112, generic: generic2, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant47: {inst: ir0.inst95, generic: generic3, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant48: {inst: ir0.inst96, generic: generic3, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant49: {inst: ir0.inst97, generic: generic3, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant50: {inst: ir0.inst95, generic: generic3, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant51: {inst: ir0.inst96, generic: generic3, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant52: {inst: ir0.inst97, generic: generic3, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant53: {inst: ir0.inst113, generic: generic3, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant54: {inst: ir0.inst125, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant55: {inst: ir0.inst125, generic: generic3, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant56: {inst: ir0.inst126, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant57: {inst: ir0.inst126, generic: generic3, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant58: {inst: ir0.inst127, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant59: {inst: ir0.inst127, generic: generic3, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant60: {inst: ir0.inst128, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant61: {inst: ir0.inst128, generic: generic3, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant62: {inst: ir0.inst129, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant63: {inst: ir0.inst129, generic: generic3, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant64: {inst: ir0.inst130, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant65: {inst: ir0.inst130, generic: generic3, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant66: {inst: ir0.inst125, generic: generic3, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant67: {inst: ir0.inst126, generic: generic3, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant68: {inst: ir0.inst127, generic: generic3, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant69: {inst: ir0.inst128, generic: generic3, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant70: {inst: ir0.inst129, generic: generic3, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant71: {inst: ir0.inst130, generic: generic3, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant72: {inst: ir0.inst137, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant73: {inst: ir0.inst27, generic: generic4, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant74: {inst: ir0.inst21, generic: generic4, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant75: {inst: ir0.inst21, generic: generic4, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant76: {inst: ir0.inst162, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant77: {inst: ir0.inst162, generic: generic4, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant78: {inst: ir0.inst21, generic: generic4, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant79: {inst: ir0.inst27, generic: generic4, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant80: {inst: ir0.inst162, generic: generic4, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant81: {inst: ir0.inst167, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant82: {inst: ir0.inst168, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant83: {inst: ir0.inst168, generic: generic4, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant84: {inst: ir0.inst167, generic: generic4, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant85: {inst: ir0.inst30, generic: generic5, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant86: {inst: ir0.inst168, generic: generic4, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant87: {inst: ir0.inst61, generic: generic4, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant88: {inst: ir0.inst167, generic: generic4, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant89: {inst: ir0.inst168, generic: generic4, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant90: {inst: ir0.inst61, generic: generic4, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant91: {inst: ir0.inst21, generic: generic5, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant92: {inst: ir0.inst27, generic: generic5, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant93: {inst: ir0.inst21, generic: generic5, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant94: {inst: ir0.inst27, generic: generic5, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant95: {inst: ir0.inst30, generic: generic5, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant96: {inst: ir0.inst190, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant97: {inst: ir0.inst191, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant98: {inst: ir0.inst192, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant99: {inst: ir0.inst192, generic: generic6, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant100: {inst: ir0.inst95, generic: generic6, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant101: {inst: ir0.inst190, generic: generic6, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant102: {inst: ir0.inst95, generic: generic6, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant103: {inst: ir0.inst190, generic: generic6, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant104: {inst: ir0.inst96, generic: generic6, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant105: {inst: ir0.inst191, generic: generic6, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant106: {inst: ir0.inst201, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant107: {inst: ir0.inst201, generic: generic6, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant108: {inst: ir0.inst95, generic: generic6, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant109: {inst: ir0.inst190, generic: generic6, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant110: {inst: ir0.inst96, generic: generic6, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant111: {inst: ir0.inst191, generic: generic6, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant112: {inst: ir0.inst192, generic: generic6, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant113: {inst: ir0.inst201, generic: generic6, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant114: {inst: ir0.inst209, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant115: {inst: ir0.inst210, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant116: {inst: ir0.inst210, generic: generic6, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant117: {inst: ir0.inst209, generic: generic6, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant118: {inst: ir0.inst211, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant119: {inst: ir0.inst211, generic: generic7, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant120: {inst: ir0.inst210, generic: generic6, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant121: {inst: ir0.inst209, generic: generic6, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant122: {inst: ir0.inst210, generic: generic6, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant123: {inst: ir0.inst95, generic: generic7, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant124: {inst: ir0.inst96, generic: generic7, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant125: {inst: ir0.inst190, generic: generic7, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant126: {inst: ir0.inst191, generic: generic7, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant127: {inst: ir0.inst192, generic: generic7, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant128: {inst: ir0.inst95, generic: generic7, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant129: {inst: ir0.inst96, generic: generic7, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant130: {inst: ir0.inst190, generic: generic7, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant131: {inst: ir0.inst191, generic: generic7, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant132: {inst: ir0.inst192, generic: generic7, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant133: {inst: ir0.inst211, generic: generic7, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant134: {inst: ir0.inst226, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant135: {inst: ir0.inst226, generic: generic7, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant136: {inst: ir0.inst126, generic: generic7, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant137: {inst: ir0.inst127, generic: generic7, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant138: {inst: ir0.inst128, generic: generic7, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant139: {inst: ir0.inst129, generic: generic7, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant140: {inst: ir0.inst130, generic: generic7, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant141: {inst: ir0.inst227, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant142: {inst: ir0.inst227, generic: generic7, index: generic_inst_in_def6, kind: checked} +// CHECK:STDOUT: symbolic_constant143: {inst: ir0.inst228, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant144: {inst: ir0.inst228, generic: generic7, index: generic_inst_in_def7, kind: checked} +// CHECK:STDOUT: symbolic_constant145: {inst: ir0.inst229, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant146: {inst: ir0.inst229, generic: generic7, index: generic_inst_in_def8, kind: checked} +// CHECK:STDOUT: symbolic_constant147: {inst: ir0.inst230, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant148: {inst: ir0.inst230, generic: generic7, index: generic_inst_in_def9, kind: checked} +// CHECK:STDOUT: symbolic_constant149: {inst: ir0.inst231, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant150: {inst: ir0.inst231, generic: generic7, index: generic_inst_in_def10, kind: checked} +// CHECK:STDOUT: symbolic_constant151: {inst: ir0.inst226, generic: generic7, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant152: {inst: ir0.inst126, generic: generic7, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant153: {inst: ir0.inst127, generic: generic7, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant154: {inst: ir0.inst128, generic: generic7, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant155: {inst: ir0.inst129, generic: generic7, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant156: {inst: ir0.inst130, generic: generic7, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant157: {inst: ir0.inst227, generic: generic7, index: generic_inst_in_def6, kind: checked} +// CHECK:STDOUT: symbolic_constant158: {inst: ir0.inst228, generic: generic7, index: generic_inst_in_def7, kind: checked} +// CHECK:STDOUT: symbolic_constant159: {inst: ir0.inst229, generic: generic7, index: generic_inst_in_def8, kind: checked} +// CHECK:STDOUT: symbolic_constant160: {inst: ir0.inst230, generic: generic7, index: generic_inst_in_def9, kind: checked} +// CHECK:STDOUT: symbolic_constant161: {inst: ir0.inst231, generic: generic7, index: generic_inst_in_def10, kind: checked} +// CHECK:STDOUT: symbolic_constant162: {inst: ir0.inst243, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant163: {inst: ir0.inst246, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant164: {inst: ir0.inst247, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant165: {inst: ir0.inst248, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant166: {inst: ir0.inst248, generic: generic8, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant167: {inst: ir0.inst95, generic: generic8, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant168: {inst: ir0.inst190, generic: generic8, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant169: {inst: ir0.inst246, generic: generic8, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant170: {inst: ir0.inst95, generic: generic8, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant171: {inst: ir0.inst190, generic: generic8, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant172: {inst: ir0.inst246, generic: generic8, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant173: {inst: ir0.inst96, generic: generic8, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant174: {inst: ir0.inst191, generic: generic8, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant175: {inst: ir0.inst247, generic: generic8, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant176: {inst: ir0.inst259, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant177: {inst: ir0.inst259, generic: generic8, index: generic_inst_in_decl7, kind: checked} +// CHECK:STDOUT: symbolic_constant178: {inst: ir0.inst95, generic: generic8, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant179: {inst: ir0.inst190, generic: generic8, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant180: {inst: ir0.inst246, generic: generic8, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant181: {inst: ir0.inst96, generic: generic8, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant182: {inst: ir0.inst191, generic: generic8, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant183: {inst: ir0.inst247, generic: generic8, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant184: {inst: ir0.inst248, generic: generic8, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant185: {inst: ir0.inst259, generic: generic8, index: generic_inst_in_decl7, kind: checked} +// CHECK:STDOUT: symbolic_constant186: {inst: ir0.inst269, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant187: {inst: ir0.inst270, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant188: {inst: ir0.inst270, generic: generic8, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant189: {inst: ir0.inst269, generic: generic8, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant190: {inst: ir0.inst271, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant191: {inst: ir0.inst271, generic: generic9, index: generic_inst_in_decl7, kind: checked} +// CHECK:STDOUT: symbolic_constant192: {inst: ir0.inst270, generic: generic8, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant193: {inst: ir0.inst269, generic: generic8, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant194: {inst: ir0.inst270, generic: generic8, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant195: {inst: ir0.inst95, generic: generic9, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant196: {inst: ir0.inst96, generic: generic9, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant197: {inst: ir0.inst190, generic: generic9, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant198: {inst: ir0.inst191, generic: generic9, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant199: {inst: ir0.inst246, generic: generic9, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant200: {inst: ir0.inst247, generic: generic9, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant201: {inst: ir0.inst248, generic: generic9, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant202: {inst: ir0.inst95, generic: generic9, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant203: {inst: ir0.inst96, generic: generic9, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant204: {inst: ir0.inst190, generic: generic9, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant205: {inst: ir0.inst191, generic: generic9, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant206: {inst: ir0.inst246, generic: generic9, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant207: {inst: ir0.inst247, generic: generic9, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant208: {inst: ir0.inst248, generic: generic9, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant209: {inst: ir0.inst271, generic: generic9, index: generic_inst_in_decl7, kind: checked} +// CHECK:STDOUT: symbolic_constant210: {inst: ir0.inst289, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant211: {inst: ir0.inst289, generic: generic9, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant212: {inst: ir0.inst126, generic: generic9, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant213: {inst: ir0.inst127, generic: generic9, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant214: {inst: ir0.inst128, generic: generic9, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant215: {inst: ir0.inst129, generic: generic9, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant216: {inst: ir0.inst130, generic: generic9, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant217: {inst: ir0.inst227, generic: generic9, index: generic_inst_in_def6, kind: checked} +// CHECK:STDOUT: symbolic_constant218: {inst: ir0.inst228, generic: generic9, index: generic_inst_in_def7, kind: checked} +// CHECK:STDOUT: symbolic_constant219: {inst: ir0.inst229, generic: generic9, index: generic_inst_in_def8, kind: checked} +// CHECK:STDOUT: symbolic_constant220: {inst: ir0.inst230, generic: generic9, index: generic_inst_in_def9, kind: checked} +// CHECK:STDOUT: symbolic_constant221: {inst: ir0.inst231, generic: generic9, index: generic_inst_in_def10, kind: checked} +// CHECK:STDOUT: symbolic_constant222: {inst: ir0.inst290, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant223: {inst: ir0.inst290, generic: generic9, index: generic_inst_in_def11, kind: checked} +// CHECK:STDOUT: symbolic_constant224: {inst: ir0.inst291, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant225: {inst: ir0.inst291, generic: generic9, index: generic_inst_in_def12, kind: checked} +// CHECK:STDOUT: symbolic_constant226: {inst: ir0.inst292, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant227: {inst: ir0.inst292, generic: generic9, index: generic_inst_in_def13, kind: checked} +// CHECK:STDOUT: symbolic_constant228: {inst: ir0.inst293, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant229: {inst: ir0.inst293, generic: generic9, index: generic_inst_in_def14, kind: checked} +// CHECK:STDOUT: symbolic_constant230: {inst: ir0.inst294, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant231: {inst: ir0.inst294, generic: generic9, index: generic_inst_in_def15, kind: checked} +// CHECK:STDOUT: symbolic_constant232: {inst: ir0.inst289, generic: generic9, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant233: {inst: ir0.inst126, generic: generic9, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant234: {inst: ir0.inst127, generic: generic9, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant235: {inst: ir0.inst128, generic: generic9, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant236: {inst: ir0.inst129, generic: generic9, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant237: {inst: ir0.inst130, generic: generic9, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant238: {inst: ir0.inst227, generic: generic9, index: generic_inst_in_def6, kind: checked} +// CHECK:STDOUT: symbolic_constant239: {inst: ir0.inst228, generic: generic9, index: generic_inst_in_def7, kind: checked} +// CHECK:STDOUT: symbolic_constant240: {inst: ir0.inst229, generic: generic9, index: generic_inst_in_def8, kind: checked} +// CHECK:STDOUT: symbolic_constant241: {inst: ir0.inst230, generic: generic9, index: generic_inst_in_def9, kind: checked} +// CHECK:STDOUT: symbolic_constant242: {inst: ir0.inst231, generic: generic9, index: generic_inst_in_def10, kind: checked} +// CHECK:STDOUT: symbolic_constant243: {inst: ir0.inst290, generic: generic9, index: generic_inst_in_def11, kind: checked} +// CHECK:STDOUT: symbolic_constant244: {inst: ir0.inst291, generic: generic9, index: generic_inst_in_def12, kind: checked} +// CHECK:STDOUT: symbolic_constant245: {inst: ir0.inst292, generic: generic9, index: generic_inst_in_def13, kind: checked} +// CHECK:STDOUT: symbolic_constant246: {inst: ir0.inst293, generic: generic9, index: generic_inst_in_def14, kind: checked} +// CHECK:STDOUT: symbolic_constant247: {inst: ir0.inst294, generic: generic9, index: generic_inst_in_def15, kind: checked} +// CHECK:STDOUT: symbolic_constant248: {inst: ir0.inst311, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant249: {inst: ir0.inst162, generic: generic4, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant250: {inst: ir0.inst312, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant251: {inst: ir0.inst312, generic: generic0, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant252: {inst: ir0.inst314, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant253: {inst: ir0.inst315, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant254: {inst: ir0.inst317, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant255: {inst: ir0.inst314, generic: generic0, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant256: {inst: ir0.inst315, generic: generic0, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant257: {inst: ir0.inst317, generic: generic0, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant258: {inst: ir0.inst323, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant259: {inst: ir0.inst323, generic: generic0, index: generic_inst_in_def6, kind: checked} // CHECK:STDOUT: inst_blocks: // CHECK:STDOUT: inst_block_empty: {} // CHECK:STDOUT: exports: -// CHECK:STDOUT: 0: inst53 +// CHECK:STDOUT: 0: ir0.inst53 // CHECK:STDOUT: imports: -// CHECK:STDOUT: 0: inst16 -// CHECK:STDOUT: 1: inst69 -// CHECK:STDOUT: 2: inst70 -// CHECK:STDOUT: 3: inst73 -// CHECK:STDOUT: 4: inst74 -// CHECK:STDOUT: 5: inst75 -// CHECK:STDOUT: 6: inst77 -// CHECK:STDOUT: 7: inst79 -// CHECK:STDOUT: 8: inst84 -// CHECK:STDOUT: 9: inst85 -// CHECK:STDOUT: 10: inst86 -// CHECK:STDOUT: 11: inst87 -// CHECK:STDOUT: 12: inst88 -// CHECK:STDOUT: 13: inst93 -// CHECK:STDOUT: 14: inst94 -// CHECK:STDOUT: 15: inst99 -// CHECK:STDOUT: 16: inst100 -// CHECK:STDOUT: 17: inst101 -// CHECK:STDOUT: 18: inst102 -// CHECK:STDOUT: 19: inst103 -// CHECK:STDOUT: 20: inst104 -// CHECK:STDOUT: 21: inst110 -// CHECK:STDOUT: 22: inst114 -// CHECK:STDOUT: 23: inst115 -// CHECK:STDOUT: 24: inst116 -// CHECK:STDOUT: 25: inst117 -// CHECK:STDOUT: 26: inst118 -// CHECK:STDOUT: 27: inst138 -// CHECK:STDOUT: 28: inst139 -// CHECK:STDOUT: 29: inst140 -// CHECK:STDOUT: 30: inst141 -// CHECK:STDOUT: 31: inst142 -// CHECK:STDOUT: 32: inst143 -// CHECK:STDOUT: 33: inst144 -// CHECK:STDOUT: 34: inst145 -// CHECK:STDOUT: 35: inst146 -// CHECK:STDOUT: 36: inst147 -// CHECK:STDOUT: 37: inst148 -// CHECK:STDOUT: 38: inst149 -// CHECK:STDOUT: 39: inst150 -// CHECK:STDOUT: 40: inst151 -// CHECK:STDOUT: 41: inst152 -// CHECK:STDOUT: 42: inst153 -// CHECK:STDOUT: 43: inst154 -// CHECK:STDOUT: 44: inst155 -// CHECK:STDOUT: 45: inst156 -// CHECK:STDOUT: 46: inst157 -// CHECK:STDOUT: 47: inst158 -// CHECK:STDOUT: 48: inst159 -// CHECK:STDOUT: 49: inst160 -// CHECK:STDOUT: 50: inst161 -// CHECK:STDOUT: 51: inst166 -// CHECK:STDOUT: 52: inst169 -// CHECK:STDOUT: 53: inst170 -// CHECK:STDOUT: 54: inst171 -// CHECK:STDOUT: 55: inst172 -// CHECK:STDOUT: 56: inst173 -// CHECK:STDOUT: 57: inst180 -// CHECK:STDOUT: 58: inst181 -// CHECK:STDOUT: 59: inst182 -// CHECK:STDOUT: 60: inst183 -// CHECK:STDOUT: 61: inst184 -// CHECK:STDOUT: 62: inst185 -// CHECK:STDOUT: 63: inst186 -// CHECK:STDOUT: 64: inst187 -// CHECK:STDOUT: 65: inst188 -// CHECK:STDOUT: 66: inst189 -// CHECK:STDOUT: 67: inst193 -// CHECK:STDOUT: 68: inst194 -// CHECK:STDOUT: 69: inst195 -// CHECK:STDOUT: 70: inst196 -// CHECK:STDOUT: 71: inst197 -// CHECK:STDOUT: 72: inst198 -// CHECK:STDOUT: 73: inst199 -// CHECK:STDOUT: 74: inst200 -// CHECK:STDOUT: 75: inst208 -// CHECK:STDOUT: 76: inst212 -// CHECK:STDOUT: 77: inst213 -// CHECK:STDOUT: 78: inst214 -// CHECK:STDOUT: 79: inst215 -// CHECK:STDOUT: 80: inst216 -// CHECK:STDOUT: 81: inst217 -// CHECK:STDOUT: 82: inst244 -// CHECK:STDOUT: 83: inst245 -// CHECK:STDOUT: 84: inst249 -// CHECK:STDOUT: 85: inst250 -// CHECK:STDOUT: 86: inst251 -// CHECK:STDOUT: 87: inst252 -// CHECK:STDOUT: 88: inst253 -// CHECK:STDOUT: 89: inst254 -// CHECK:STDOUT: 90: inst255 -// CHECK:STDOUT: 91: inst256 -// CHECK:STDOUT: 92: inst257 -// CHECK:STDOUT: 93: inst258 -// CHECK:STDOUT: 94: inst268 -// CHECK:STDOUT: 95: inst272 -// CHECK:STDOUT: 96: inst273 -// CHECK:STDOUT: 97: inst274 -// CHECK:STDOUT: 98: inst275 -// CHECK:STDOUT: 99: inst276 -// CHECK:STDOUT: 100: inst277 -// CHECK:STDOUT: 101: inst278 +// CHECK:STDOUT: 0: ir0.inst16 +// CHECK:STDOUT: 1: ir0.inst69 +// CHECK:STDOUT: 2: ir0.inst70 +// CHECK:STDOUT: 3: ir0.inst73 +// CHECK:STDOUT: 4: ir0.inst74 +// CHECK:STDOUT: 5: ir0.inst75 +// CHECK:STDOUT: 6: ir0.inst77 +// CHECK:STDOUT: 7: ir0.inst79 +// CHECK:STDOUT: 8: ir0.inst84 +// CHECK:STDOUT: 9: ir0.inst85 +// CHECK:STDOUT: 10: ir0.inst86 +// CHECK:STDOUT: 11: ir0.inst87 +// CHECK:STDOUT: 12: ir0.inst88 +// CHECK:STDOUT: 13: ir0.inst93 +// CHECK:STDOUT: 14: ir0.inst94 +// CHECK:STDOUT: 15: ir0.inst99 +// CHECK:STDOUT: 16: ir0.inst100 +// CHECK:STDOUT: 17: ir0.inst101 +// CHECK:STDOUT: 18: ir0.inst102 +// CHECK:STDOUT: 19: ir0.inst103 +// CHECK:STDOUT: 20: ir0.inst104 +// CHECK:STDOUT: 21: ir0.inst110 +// CHECK:STDOUT: 22: ir0.inst114 +// CHECK:STDOUT: 23: ir0.inst115 +// CHECK:STDOUT: 24: ir0.inst116 +// CHECK:STDOUT: 25: ir0.inst117 +// CHECK:STDOUT: 26: ir0.inst118 +// CHECK:STDOUT: 27: ir0.inst138 +// CHECK:STDOUT: 28: ir0.inst139 +// CHECK:STDOUT: 29: ir0.inst140 +// CHECK:STDOUT: 30: ir0.inst141 +// CHECK:STDOUT: 31: ir0.inst142 +// CHECK:STDOUT: 32: ir0.inst143 +// CHECK:STDOUT: 33: ir0.inst144 +// CHECK:STDOUT: 34: ir0.inst145 +// CHECK:STDOUT: 35: ir0.inst146 +// CHECK:STDOUT: 36: ir0.inst147 +// CHECK:STDOUT: 37: ir0.inst148 +// CHECK:STDOUT: 38: ir0.inst149 +// CHECK:STDOUT: 39: ir0.inst150 +// CHECK:STDOUT: 40: ir0.inst151 +// CHECK:STDOUT: 41: ir0.inst152 +// CHECK:STDOUT: 42: ir0.inst153 +// CHECK:STDOUT: 43: ir0.inst154 +// CHECK:STDOUT: 44: ir0.inst155 +// CHECK:STDOUT: 45: ir0.inst156 +// CHECK:STDOUT: 46: ir0.inst157 +// CHECK:STDOUT: 47: ir0.inst158 +// CHECK:STDOUT: 48: ir0.inst159 +// CHECK:STDOUT: 49: ir0.inst160 +// CHECK:STDOUT: 50: ir0.inst161 +// CHECK:STDOUT: 51: ir0.inst166 +// CHECK:STDOUT: 52: ir0.inst169 +// CHECK:STDOUT: 53: ir0.inst170 +// CHECK:STDOUT: 54: ir0.inst171 +// CHECK:STDOUT: 55: ir0.inst172 +// CHECK:STDOUT: 56: ir0.inst173 +// CHECK:STDOUT: 57: ir0.inst180 +// CHECK:STDOUT: 58: ir0.inst181 +// CHECK:STDOUT: 59: ir0.inst182 +// CHECK:STDOUT: 60: ir0.inst183 +// CHECK:STDOUT: 61: ir0.inst184 +// CHECK:STDOUT: 62: ir0.inst185 +// CHECK:STDOUT: 63: ir0.inst186 +// CHECK:STDOUT: 64: ir0.inst187 +// CHECK:STDOUT: 65: ir0.inst188 +// CHECK:STDOUT: 66: ir0.inst189 +// CHECK:STDOUT: 67: ir0.inst193 +// CHECK:STDOUT: 68: ir0.inst194 +// CHECK:STDOUT: 69: ir0.inst195 +// CHECK:STDOUT: 70: ir0.inst196 +// CHECK:STDOUT: 71: ir0.inst197 +// CHECK:STDOUT: 72: ir0.inst198 +// CHECK:STDOUT: 73: ir0.inst199 +// CHECK:STDOUT: 74: ir0.inst200 +// CHECK:STDOUT: 75: ir0.inst208 +// CHECK:STDOUT: 76: ir0.inst212 +// CHECK:STDOUT: 77: ir0.inst213 +// CHECK:STDOUT: 78: ir0.inst214 +// CHECK:STDOUT: 79: ir0.inst215 +// CHECK:STDOUT: 80: ir0.inst216 +// CHECK:STDOUT: 81: ir0.inst217 +// CHECK:STDOUT: 82: ir0.inst244 +// CHECK:STDOUT: 83: ir0.inst245 +// CHECK:STDOUT: 84: ir0.inst249 +// CHECK:STDOUT: 85: ir0.inst250 +// CHECK:STDOUT: 86: ir0.inst251 +// CHECK:STDOUT: 87: ir0.inst252 +// CHECK:STDOUT: 88: ir0.inst253 +// CHECK:STDOUT: 89: ir0.inst254 +// CHECK:STDOUT: 90: ir0.inst255 +// CHECK:STDOUT: 91: ir0.inst256 +// CHECK:STDOUT: 92: ir0.inst257 +// CHECK:STDOUT: 93: ir0.inst258 +// CHECK:STDOUT: 94: ir0.inst268 +// CHECK:STDOUT: 95: ir0.inst272 +// CHECK:STDOUT: 96: ir0.inst273 +// CHECK:STDOUT: 97: ir0.inst274 +// CHECK:STDOUT: 98: ir0.inst275 +// CHECK:STDOUT: 99: ir0.inst276 +// CHECK:STDOUT: 100: ir0.inst277 +// CHECK:STDOUT: 101: ir0.inst278 // CHECK:STDOUT: global_init: {} // CHECK:STDOUT: inst_block4: -// CHECK:STDOUT: 0: inst18 +// CHECK:STDOUT: 0: ir0.inst18 // CHECK:STDOUT: inst_block5: -// CHECK:STDOUT: 0: inst24 +// CHECK:STDOUT: 0: ir0.inst24 // CHECK:STDOUT: inst_block6: -// CHECK:STDOUT: 0: inst25 -// CHECK:STDOUT: 1: inst26 +// CHECK:STDOUT: 0: ir0.inst25 +// CHECK:STDOUT: 1: ir0.inst26 // CHECK:STDOUT: inst_block7: -// CHECK:STDOUT: 0: inst33 +// CHECK:STDOUT: 0: ir0.inst33 // CHECK:STDOUT: inst_block8: -// CHECK:STDOUT: 0: inst35 -// CHECK:STDOUT: 1: inst37 +// CHECK:STDOUT: 0: ir0.inst35 +// CHECK:STDOUT: 1: ir0.inst37 // CHECK:STDOUT: inst_block9: // CHECK:STDOUT: 0: inst(TypeType) -// CHECK:STDOUT: 1: inst36 +// CHECK:STDOUT: 1: ir0.inst36 // CHECK:STDOUT: inst_block10: -// CHECK:STDOUT: 0: inst35 -// CHECK:STDOUT: 1: inst41 +// CHECK:STDOUT: 0: ir0.inst35 +// CHECK:STDOUT: 1: ir0.inst41 // CHECK:STDOUT: inst_block11: -// CHECK:STDOUT: 0: inst27 -// CHECK:STDOUT: 1: inst36 +// CHECK:STDOUT: 0: ir0.inst27 +// CHECK:STDOUT: 1: ir0.inst36 // CHECK:STDOUT: inst_block12: -// CHECK:STDOUT: 0: inst28 -// CHECK:STDOUT: 1: inst36 +// CHECK:STDOUT: 0: ir0.inst28 +// CHECK:STDOUT: 1: ir0.inst36 // CHECK:STDOUT: inst_block13: -// CHECK:STDOUT: 0: inst49 -// CHECK:STDOUT: 1: inst51 +// CHECK:STDOUT: 0: ir0.inst49 +// CHECK:STDOUT: 1: ir0.inst51 // CHECK:STDOUT: inst_block14: -// CHECK:STDOUT: 0: inst24 -// CHECK:STDOUT: 1: inst31 -// CHECK:STDOUT: 2: inst33 -// CHECK:STDOUT: 3: inst46 -// CHECK:STDOUT: 4: inst48 +// CHECK:STDOUT: 0: ir0.inst24 +// CHECK:STDOUT: 1: ir0.inst31 +// CHECK:STDOUT: 2: ir0.inst33 +// CHECK:STDOUT: 3: ir0.inst46 +// CHECK:STDOUT: 4: ir0.inst48 // CHECK:STDOUT: inst_block15: -// CHECK:STDOUT: 0: inst34 -// CHECK:STDOUT: 1: inst35 -// CHECK:STDOUT: 2: inst37 -// CHECK:STDOUT: 3: inst39 -// CHECK:STDOUT: 4: inst41 -// CHECK:STDOUT: 5: inst43 -// CHECK:STDOUT: 6: inst18 -// CHECK:STDOUT: 7: inst20 -// CHECK:STDOUT: 8: inst49 -// CHECK:STDOUT: 9: inst50 -// CHECK:STDOUT: 10: inst29 -// CHECK:STDOUT: 11: inst51 -// CHECK:STDOUT: 12: inst52 +// CHECK:STDOUT: 0: ir0.inst34 +// CHECK:STDOUT: 1: ir0.inst35 +// CHECK:STDOUT: 2: ir0.inst37 +// CHECK:STDOUT: 3: ir0.inst39 +// CHECK:STDOUT: 4: ir0.inst41 +// CHECK:STDOUT: 5: ir0.inst43 +// CHECK:STDOUT: 6: ir0.inst18 +// CHECK:STDOUT: 7: ir0.inst20 +// CHECK:STDOUT: 8: ir0.inst49 +// CHECK:STDOUT: 9: ir0.inst50 +// CHECK:STDOUT: 10: ir0.inst29 +// CHECK:STDOUT: 11: ir0.inst51 +// CHECK:STDOUT: 12: ir0.inst52 // CHECK:STDOUT: inst_block16: -// CHECK:STDOUT: 0: inst20 +// CHECK:STDOUT: 0: ir0.inst20 // CHECK:STDOUT: inst_block17: -// CHECK:STDOUT: 0: inst21 +// CHECK:STDOUT: 0: ir0.inst21 // CHECK:STDOUT: inst_block18: -// CHECK:STDOUT: 0: inst22 -// CHECK:STDOUT: 1: inst28 -// CHECK:STDOUT: 2: inst32 -// CHECK:STDOUT: 3: inst44 -// CHECK:STDOUT: 4: inst47 +// CHECK:STDOUT: 0: ir0.inst22 +// CHECK:STDOUT: 1: ir0.inst28 +// CHECK:STDOUT: 2: ir0.inst32 +// CHECK:STDOUT: 3: ir0.inst44 +// CHECK:STDOUT: 4: ir0.inst47 // CHECK:STDOUT: inst_block19: -// CHECK:STDOUT: 0: inst21 -// CHECK:STDOUT: 1: inst27 -// CHECK:STDOUT: 2: inst30 -// CHECK:STDOUT: 3: inst42 -// CHECK:STDOUT: 4: inst45 +// CHECK:STDOUT: 0: ir0.inst21 +// CHECK:STDOUT: 1: ir0.inst27 +// CHECK:STDOUT: 2: ir0.inst30 +// CHECK:STDOUT: 3: ir0.inst42 +// CHECK:STDOUT: 4: ir0.inst45 // CHECK:STDOUT: inst_block20: -// CHECK:STDOUT: 0: inst63 -// CHECK:STDOUT: 1: inst64 -// CHECK:STDOUT: 2: inst65 -// CHECK:STDOUT: 3: inst316 -// CHECK:STDOUT: 4: inst321 -// CHECK:STDOUT: 5: inst322 -// CHECK:STDOUT: 6: inst325 -// CHECK:STDOUT: 7: inst327 -// CHECK:STDOUT: 8: inst67 -// CHECK:STDOUT: 9: inst328 -// CHECK:STDOUT: 10: inst329 -// CHECK:STDOUT: 11: inst330 -// CHECK:STDOUT: 12: inst332 -// CHECK:STDOUT: 13: inst333 -// CHECK:STDOUT: 14: inst334 -// CHECK:STDOUT: 15: inst335 +// CHECK:STDOUT: 0: ir0.inst63 +// CHECK:STDOUT: 1: ir0.inst64 +// CHECK:STDOUT: 2: ir0.inst65 +// CHECK:STDOUT: 3: ir0.inst316 +// CHECK:STDOUT: 4: ir0.inst321 +// CHECK:STDOUT: 5: ir0.inst322 +// CHECK:STDOUT: 6: ir0.inst325 +// CHECK:STDOUT: 7: ir0.inst327 +// CHECK:STDOUT: 8: ir0.inst67 +// CHECK:STDOUT: 9: ir0.inst328 +// CHECK:STDOUT: 10: ir0.inst329 +// CHECK:STDOUT: 11: ir0.inst330 +// CHECK:STDOUT: 12: ir0.inst332 +// CHECK:STDOUT: 13: ir0.inst333 +// CHECK:STDOUT: 14: ir0.inst334 +// CHECK:STDOUT: 15: ir0.inst335 // CHECK:STDOUT: inst_block21: -// CHECK:STDOUT: 0: inst63 -// CHECK:STDOUT: 1: inst64 +// CHECK:STDOUT: 0: ir0.inst63 +// CHECK:STDOUT: 1: ir0.inst64 // CHECK:STDOUT: inst_block22: -// CHECK:STDOUT: 0: inst75 +// CHECK:STDOUT: 0: ir0.inst75 // CHECK:STDOUT: inst_block23: -// CHECK:STDOUT: 0: inst87 +// CHECK:STDOUT: 0: ir0.inst87 // CHECK:STDOUT: inst_block24: -// CHECK:STDOUT: 0: inst88 +// CHECK:STDOUT: 0: ir0.inst88 // CHECK:STDOUT: inst_block25: -// CHECK:STDOUT: 0: inst89 -// CHECK:STDOUT: 1: inst90 -// CHECK:STDOUT: 2: inst91 +// CHECK:STDOUT: 0: ir0.inst89 +// CHECK:STDOUT: 1: ir0.inst90 +// CHECK:STDOUT: 2: ir0.inst91 // CHECK:STDOUT: inst_block26: -// CHECK:STDOUT: 0: inst72 +// CHECK:STDOUT: 0: ir0.inst72 // CHECK:STDOUT: inst_block27: -// CHECK:STDOUT: 0: inst72 -// CHECK:STDOUT: 1: inst82 -// CHECK:STDOUT: 2: inst83 +// CHECK:STDOUT: 0: ir0.inst72 +// CHECK:STDOUT: 1: ir0.inst82 +// CHECK:STDOUT: 2: ir0.inst83 // CHECK:STDOUT: inst_block28: -// CHECK:STDOUT: 0: inst99 +// CHECK:STDOUT: 0: ir0.inst99 // CHECK:STDOUT: inst_block29: -// CHECK:STDOUT: 0: inst100 +// CHECK:STDOUT: 0: ir0.inst100 // CHECK:STDOUT: inst_block30: -// CHECK:STDOUT: 0: inst103 +// CHECK:STDOUT: 0: ir0.inst103 // CHECK:STDOUT: inst_block31: -// CHECK:STDOUT: 0: inst95 +// CHECK:STDOUT: 0: ir0.inst95 // CHECK:STDOUT: inst_block32: -// CHECK:STDOUT: 0: inst106 +// CHECK:STDOUT: 0: ir0.inst106 // CHECK:STDOUT: inst_block33: -// CHECK:STDOUT: 0: inst106 -// CHECK:STDOUT: 1: inst107 -// CHECK:STDOUT: 2: inst108 -// CHECK:STDOUT: 3: inst109 +// CHECK:STDOUT: 0: ir0.inst106 +// CHECK:STDOUT: 1: ir0.inst107 +// CHECK:STDOUT: 2: ir0.inst108 +// CHECK:STDOUT: 3: ir0.inst109 // CHECK:STDOUT: inst_block34: -// CHECK:STDOUT: 0: inst95 -// CHECK:STDOUT: 1: inst96 -// CHECK:STDOUT: 2: inst97 -// CHECK:STDOUT: 3: inst105 +// CHECK:STDOUT: 0: ir0.inst95 +// CHECK:STDOUT: 1: ir0.inst96 +// CHECK:STDOUT: 2: ir0.inst97 +// CHECK:STDOUT: 3: ir0.inst105 // CHECK:STDOUT: inst_block35: -// CHECK:STDOUT: 0: inst117 +// CHECK:STDOUT: 0: ir0.inst117 // CHECK:STDOUT: inst_block36: -// CHECK:STDOUT: 0: inst118 +// CHECK:STDOUT: 0: ir0.inst118 // CHECK:STDOUT: inst_block37: -// CHECK:STDOUT: 0: inst106 +// CHECK:STDOUT: 0: ir0.inst106 // CHECK:STDOUT: inst_block38: -// CHECK:STDOUT: 0: inst119 -// CHECK:STDOUT: 1: inst120 +// CHECK:STDOUT: 0: ir0.inst119 +// CHECK:STDOUT: 1: ir0.inst120 // CHECK:STDOUT: inst_block39: -// CHECK:STDOUT: 0: inst121 -// CHECK:STDOUT: 1: inst122 -// CHECK:STDOUT: 2: inst123 -// CHECK:STDOUT: 3: inst124 +// CHECK:STDOUT: 0: ir0.inst121 +// CHECK:STDOUT: 1: ir0.inst122 +// CHECK:STDOUT: 2: ir0.inst123 +// CHECK:STDOUT: 3: ir0.inst124 // CHECK:STDOUT: inst_block40: -// CHECK:STDOUT: 0: inst95 -// CHECK:STDOUT: 1: inst96 -// CHECK:STDOUT: 2: inst97 -// CHECK:STDOUT: 3: inst113 +// CHECK:STDOUT: 0: ir0.inst95 +// CHECK:STDOUT: 1: ir0.inst96 +// CHECK:STDOUT: 2: ir0.inst97 +// CHECK:STDOUT: 3: ir0.inst113 // CHECK:STDOUT: inst_block41: -// CHECK:STDOUT: 0: inst121 +// CHECK:STDOUT: 0: ir0.inst121 // CHECK:STDOUT: inst_block42: -// CHECK:STDOUT: 0: inst131 -// CHECK:STDOUT: 1: inst132 -// CHECK:STDOUT: 2: inst133 -// CHECK:STDOUT: 3: inst134 -// CHECK:STDOUT: 4: inst135 -// CHECK:STDOUT: 5: inst136 +// CHECK:STDOUT: 0: ir0.inst131 +// CHECK:STDOUT: 1: ir0.inst132 +// CHECK:STDOUT: 2: ir0.inst133 +// CHECK:STDOUT: 3: ir0.inst134 +// CHECK:STDOUT: 4: ir0.inst135 +// CHECK:STDOUT: 5: ir0.inst136 // CHECK:STDOUT: inst_block43: -// CHECK:STDOUT: 0: inst95 -// CHECK:STDOUT: 1: inst96 -// CHECK:STDOUT: 2: inst137 +// CHECK:STDOUT: 0: ir0.inst95 +// CHECK:STDOUT: 1: ir0.inst96 +// CHECK:STDOUT: 2: ir0.inst137 // CHECK:STDOUT: inst_block44: -// CHECK:STDOUT: 0: inst111 -// CHECK:STDOUT: 1: inst112 +// CHECK:STDOUT: 0: ir0.inst111 +// CHECK:STDOUT: 1: ir0.inst112 // CHECK:STDOUT: inst_block45: -// CHECK:STDOUT: 0: inst156 +// CHECK:STDOUT: 0: ir0.inst156 // CHECK:STDOUT: inst_block46: -// CHECK:STDOUT: 0: inst157 +// CHECK:STDOUT: 0: ir0.inst157 // CHECK:STDOUT: inst_block47: -// CHECK:STDOUT: 0: inst160 +// CHECK:STDOUT: 0: ir0.inst160 // CHECK:STDOUT: inst_block48: -// CHECK:STDOUT: 0: inst163 +// CHECK:STDOUT: 0: ir0.inst163 // CHECK:STDOUT: inst_block49: -// CHECK:STDOUT: 0: inst163 -// CHECK:STDOUT: 1: inst164 -// CHECK:STDOUT: 2: inst165 +// CHECK:STDOUT: 0: ir0.inst163 +// CHECK:STDOUT: 1: ir0.inst164 +// CHECK:STDOUT: 2: ir0.inst165 // CHECK:STDOUT: inst_block50: -// CHECK:STDOUT: 0: inst21 -// CHECK:STDOUT: 1: inst27 -// CHECK:STDOUT: 2: inst162 +// CHECK:STDOUT: 0: ir0.inst21 +// CHECK:STDOUT: 1: ir0.inst27 +// CHECK:STDOUT: 2: ir0.inst162 // CHECK:STDOUT: inst_block51: -// CHECK:STDOUT: 0: inst172 +// CHECK:STDOUT: 0: ir0.inst172 // CHECK:STDOUT: inst_block52: -// CHECK:STDOUT: 0: inst173 +// CHECK:STDOUT: 0: ir0.inst173 // CHECK:STDOUT: inst_block53: -// CHECK:STDOUT: 0: inst163 +// CHECK:STDOUT: 0: ir0.inst163 // CHECK:STDOUT: inst_block54: -// CHECK:STDOUT: 0: inst174 -// CHECK:STDOUT: 1: inst175 -// CHECK:STDOUT: 2: inst176 +// CHECK:STDOUT: 0: ir0.inst174 +// CHECK:STDOUT: 1: ir0.inst175 +// CHECK:STDOUT: 2: ir0.inst176 // CHECK:STDOUT: inst_block55: -// CHECK:STDOUT: 0: inst177 -// CHECK:STDOUT: 1: inst178 -// CHECK:STDOUT: 2: inst179 +// CHECK:STDOUT: 0: ir0.inst177 +// CHECK:STDOUT: 1: ir0.inst178 +// CHECK:STDOUT: 2: ir0.inst179 // CHECK:STDOUT: inst_block56: -// CHECK:STDOUT: 0: inst21 -// CHECK:STDOUT: 1: inst27 -// CHECK:STDOUT: 2: inst30 +// CHECK:STDOUT: 0: ir0.inst21 +// CHECK:STDOUT: 1: ir0.inst27 +// CHECK:STDOUT: 2: ir0.inst30 // CHECK:STDOUT: inst_block57: -// CHECK:STDOUT: 0: inst96 -// CHECK:STDOUT: 1: inst191 +// CHECK:STDOUT: 0: ir0.inst96 +// CHECK:STDOUT: 1: ir0.inst191 // CHECK:STDOUT: inst_block58: -// CHECK:STDOUT: 0: inst194 -// CHECK:STDOUT: 1: inst193 +// CHECK:STDOUT: 0: ir0.inst194 +// CHECK:STDOUT: 1: ir0.inst193 // CHECK:STDOUT: inst_block59: -// CHECK:STDOUT: 0: inst195 -// CHECK:STDOUT: 1: inst196 +// CHECK:STDOUT: 0: ir0.inst195 +// CHECK:STDOUT: 1: ir0.inst196 // CHECK:STDOUT: inst_block60: -// CHECK:STDOUT: 0: inst199 +// CHECK:STDOUT: 0: ir0.inst199 // CHECK:STDOUT: inst_block61: -// CHECK:STDOUT: 0: inst95 -// CHECK:STDOUT: 1: inst190 +// CHECK:STDOUT: 0: ir0.inst95 +// CHECK:STDOUT: 1: ir0.inst190 // CHECK:STDOUT: inst_block62: -// CHECK:STDOUT: 0: inst204 -// CHECK:STDOUT: 1: inst205 +// CHECK:STDOUT: 0: ir0.inst204 +// CHECK:STDOUT: 1: ir0.inst205 // CHECK:STDOUT: inst_block63: -// CHECK:STDOUT: 0: inst202 -// CHECK:STDOUT: 1: inst203 +// CHECK:STDOUT: 0: ir0.inst202 +// CHECK:STDOUT: 1: ir0.inst203 // CHECK:STDOUT: inst_block64: -// CHECK:STDOUT: 0: inst202 -// CHECK:STDOUT: 1: inst203 -// CHECK:STDOUT: 2: inst204 -// CHECK:STDOUT: 3: inst205 -// CHECK:STDOUT: 4: inst206 -// CHECK:STDOUT: 5: inst207 +// CHECK:STDOUT: 0: ir0.inst202 +// CHECK:STDOUT: 1: ir0.inst203 +// CHECK:STDOUT: 2: ir0.inst204 +// CHECK:STDOUT: 3: ir0.inst205 +// CHECK:STDOUT: 4: ir0.inst206 +// CHECK:STDOUT: 5: ir0.inst207 // CHECK:STDOUT: inst_block65: -// CHECK:STDOUT: 0: inst95 -// CHECK:STDOUT: 1: inst190 -// CHECK:STDOUT: 2: inst96 -// CHECK:STDOUT: 3: inst191 -// CHECK:STDOUT: 4: inst192 -// CHECK:STDOUT: 5: inst201 +// CHECK:STDOUT: 0: ir0.inst95 +// CHECK:STDOUT: 1: ir0.inst190 +// CHECK:STDOUT: 2: ir0.inst96 +// CHECK:STDOUT: 3: ir0.inst191 +// CHECK:STDOUT: 4: ir0.inst192 +// CHECK:STDOUT: 5: ir0.inst201 // CHECK:STDOUT: inst_block66: -// CHECK:STDOUT: 0: inst215 +// CHECK:STDOUT: 0: ir0.inst215 // CHECK:STDOUT: inst_block67: -// CHECK:STDOUT: 0: inst216 -// CHECK:STDOUT: 1: inst217 +// CHECK:STDOUT: 0: ir0.inst216 +// CHECK:STDOUT: 1: ir0.inst217 // CHECK:STDOUT: inst_block68: -// CHECK:STDOUT: 0: inst202 -// CHECK:STDOUT: 1: inst203 +// CHECK:STDOUT: 0: ir0.inst202 +// CHECK:STDOUT: 1: ir0.inst203 // CHECK:STDOUT: inst_block69: -// CHECK:STDOUT: 0: inst218 -// CHECK:STDOUT: 1: inst219 +// CHECK:STDOUT: 0: ir0.inst218 +// CHECK:STDOUT: 1: ir0.inst219 // CHECK:STDOUT: inst_block70: -// CHECK:STDOUT: 0: inst221 -// CHECK:STDOUT: 1: inst223 +// CHECK:STDOUT: 0: ir0.inst221 +// CHECK:STDOUT: 1: ir0.inst223 // CHECK:STDOUT: inst_block71: -// CHECK:STDOUT: 0: inst220 -// CHECK:STDOUT: 1: inst221 -// CHECK:STDOUT: 2: inst222 -// CHECK:STDOUT: 3: inst223 -// CHECK:STDOUT: 4: inst224 -// CHECK:STDOUT: 5: inst225 +// CHECK:STDOUT: 0: ir0.inst220 +// CHECK:STDOUT: 1: ir0.inst221 +// CHECK:STDOUT: 2: ir0.inst222 +// CHECK:STDOUT: 3: ir0.inst223 +// CHECK:STDOUT: 4: ir0.inst224 +// CHECK:STDOUT: 5: ir0.inst225 // CHECK:STDOUT: inst_block72: -// CHECK:STDOUT: 0: inst95 -// CHECK:STDOUT: 1: inst96 -// CHECK:STDOUT: 2: inst190 -// CHECK:STDOUT: 3: inst191 -// CHECK:STDOUT: 4: inst192 -// CHECK:STDOUT: 5: inst211 +// CHECK:STDOUT: 0: ir0.inst95 +// CHECK:STDOUT: 1: ir0.inst96 +// CHECK:STDOUT: 2: ir0.inst190 +// CHECK:STDOUT: 3: ir0.inst191 +// CHECK:STDOUT: 4: ir0.inst192 +// CHECK:STDOUT: 5: ir0.inst211 // CHECK:STDOUT: inst_block73: -// CHECK:STDOUT: 0: inst190 +// CHECK:STDOUT: 0: ir0.inst190 // CHECK:STDOUT: inst_block74: -// CHECK:STDOUT: 0: inst220 +// CHECK:STDOUT: 0: ir0.inst220 // CHECK:STDOUT: inst_block75: -// CHECK:STDOUT: 0: inst222 +// CHECK:STDOUT: 0: ir0.inst222 // CHECK:STDOUT: inst_block76: -// CHECK:STDOUT: 0: inst232 -// CHECK:STDOUT: 1: inst233 -// CHECK:STDOUT: 2: inst234 -// CHECK:STDOUT: 3: inst235 -// CHECK:STDOUT: 4: inst236 -// CHECK:STDOUT: 5: inst237 -// CHECK:STDOUT: 6: inst238 -// CHECK:STDOUT: 7: inst239 -// CHECK:STDOUT: 8: inst240 -// CHECK:STDOUT: 9: inst241 -// CHECK:STDOUT: 10: inst242 +// CHECK:STDOUT: 0: ir0.inst232 +// CHECK:STDOUT: 1: ir0.inst233 +// CHECK:STDOUT: 2: ir0.inst234 +// CHECK:STDOUT: 3: ir0.inst235 +// CHECK:STDOUT: 4: ir0.inst236 +// CHECK:STDOUT: 5: ir0.inst237 +// CHECK:STDOUT: 6: ir0.inst238 +// CHECK:STDOUT: 7: ir0.inst239 +// CHECK:STDOUT: 8: ir0.inst240 +// CHECK:STDOUT: 9: ir0.inst241 +// CHECK:STDOUT: 10: ir0.inst242 // CHECK:STDOUT: inst_block77: -// CHECK:STDOUT: 0: inst190 -// CHECK:STDOUT: 1: inst191 -// CHECK:STDOUT: 2: inst243 +// CHECK:STDOUT: 0: ir0.inst190 +// CHECK:STDOUT: 1: ir0.inst191 +// CHECK:STDOUT: 2: ir0.inst243 // CHECK:STDOUT: inst_block78: -// CHECK:STDOUT: 0: inst209 -// CHECK:STDOUT: 1: inst210 +// CHECK:STDOUT: 0: ir0.inst209 +// CHECK:STDOUT: 1: ir0.inst210 // CHECK:STDOUT: inst_block79: -// CHECK:STDOUT: 0: inst96 -// CHECK:STDOUT: 1: inst191 -// CHECK:STDOUT: 2: inst247 +// CHECK:STDOUT: 0: ir0.inst96 +// CHECK:STDOUT: 1: ir0.inst191 +// CHECK:STDOUT: 2: ir0.inst247 // CHECK:STDOUT: inst_block80: -// CHECK:STDOUT: 0: inst251 -// CHECK:STDOUT: 1: inst250 -// CHECK:STDOUT: 2: inst249 +// CHECK:STDOUT: 0: ir0.inst251 +// CHECK:STDOUT: 1: ir0.inst250 +// CHECK:STDOUT: 2: ir0.inst249 // CHECK:STDOUT: inst_block81: -// CHECK:STDOUT: 0: inst252 -// CHECK:STDOUT: 1: inst253 -// CHECK:STDOUT: 2: inst254 +// CHECK:STDOUT: 0: ir0.inst252 +// CHECK:STDOUT: 1: ir0.inst253 +// CHECK:STDOUT: 2: ir0.inst254 // CHECK:STDOUT: inst_block82: -// CHECK:STDOUT: 0: inst257 +// CHECK:STDOUT: 0: ir0.inst257 // CHECK:STDOUT: inst_block83: -// CHECK:STDOUT: 0: inst95 -// CHECK:STDOUT: 1: inst190 -// CHECK:STDOUT: 2: inst246 +// CHECK:STDOUT: 0: ir0.inst95 +// CHECK:STDOUT: 1: ir0.inst190 +// CHECK:STDOUT: 2: ir0.inst246 // CHECK:STDOUT: inst_block84: -// CHECK:STDOUT: 0: inst263 -// CHECK:STDOUT: 1: inst264 -// CHECK:STDOUT: 2: inst265 +// CHECK:STDOUT: 0: ir0.inst263 +// CHECK:STDOUT: 1: ir0.inst264 +// CHECK:STDOUT: 2: ir0.inst265 // CHECK:STDOUT: inst_block85: -// CHECK:STDOUT: 0: inst260 -// CHECK:STDOUT: 1: inst261 -// CHECK:STDOUT: 2: inst262 +// CHECK:STDOUT: 0: ir0.inst260 +// CHECK:STDOUT: 1: ir0.inst261 +// CHECK:STDOUT: 2: ir0.inst262 // CHECK:STDOUT: inst_block86: -// CHECK:STDOUT: 0: inst260 -// CHECK:STDOUT: 1: inst261 -// CHECK:STDOUT: 2: inst262 -// CHECK:STDOUT: 3: inst263 -// CHECK:STDOUT: 4: inst264 -// CHECK:STDOUT: 5: inst265 -// CHECK:STDOUT: 6: inst266 -// CHECK:STDOUT: 7: inst267 +// CHECK:STDOUT: 0: ir0.inst260 +// CHECK:STDOUT: 1: ir0.inst261 +// CHECK:STDOUT: 2: ir0.inst262 +// CHECK:STDOUT: 3: ir0.inst263 +// CHECK:STDOUT: 4: ir0.inst264 +// CHECK:STDOUT: 5: ir0.inst265 +// CHECK:STDOUT: 6: ir0.inst266 +// CHECK:STDOUT: 7: ir0.inst267 // CHECK:STDOUT: inst_block87: -// CHECK:STDOUT: 0: inst95 -// CHECK:STDOUT: 1: inst190 -// CHECK:STDOUT: 2: inst246 -// CHECK:STDOUT: 3: inst96 -// CHECK:STDOUT: 4: inst191 -// CHECK:STDOUT: 5: inst247 -// CHECK:STDOUT: 6: inst248 -// CHECK:STDOUT: 7: inst259 +// CHECK:STDOUT: 0: ir0.inst95 +// CHECK:STDOUT: 1: ir0.inst190 +// CHECK:STDOUT: 2: ir0.inst246 +// CHECK:STDOUT: 3: ir0.inst96 +// CHECK:STDOUT: 4: ir0.inst191 +// CHECK:STDOUT: 5: ir0.inst247 +// CHECK:STDOUT: 6: ir0.inst248 +// CHECK:STDOUT: 7: ir0.inst259 // CHECK:STDOUT: inst_block88: -// CHECK:STDOUT: 0: inst275 +// CHECK:STDOUT: 0: ir0.inst275 // CHECK:STDOUT: inst_block89: -// CHECK:STDOUT: 0: inst276 -// CHECK:STDOUT: 1: inst277 -// CHECK:STDOUT: 2: inst278 +// CHECK:STDOUT: 0: ir0.inst276 +// CHECK:STDOUT: 1: ir0.inst277 +// CHECK:STDOUT: 2: ir0.inst278 // CHECK:STDOUT: inst_block90: -// CHECK:STDOUT: 0: inst260 -// CHECK:STDOUT: 1: inst261 -// CHECK:STDOUT: 2: inst262 +// CHECK:STDOUT: 0: ir0.inst260 +// CHECK:STDOUT: 1: ir0.inst261 +// CHECK:STDOUT: 2: ir0.inst262 // CHECK:STDOUT: inst_block91: -// CHECK:STDOUT: 0: inst279 -// CHECK:STDOUT: 1: inst280 +// CHECK:STDOUT: 0: ir0.inst279 +// CHECK:STDOUT: 1: ir0.inst280 // CHECK:STDOUT: inst_block92: -// CHECK:STDOUT: 0: inst282 -// CHECK:STDOUT: 1: inst284 -// CHECK:STDOUT: 2: inst286 +// CHECK:STDOUT: 0: ir0.inst282 +// CHECK:STDOUT: 1: ir0.inst284 +// CHECK:STDOUT: 2: ir0.inst286 // CHECK:STDOUT: inst_block93: -// CHECK:STDOUT: 0: inst281 -// CHECK:STDOUT: 1: inst282 -// CHECK:STDOUT: 2: inst283 -// CHECK:STDOUT: 3: inst284 -// CHECK:STDOUT: 4: inst285 -// CHECK:STDOUT: 5: inst286 -// CHECK:STDOUT: 6: inst287 -// CHECK:STDOUT: 7: inst288 +// CHECK:STDOUT: 0: ir0.inst281 +// CHECK:STDOUT: 1: ir0.inst282 +// CHECK:STDOUT: 2: ir0.inst283 +// CHECK:STDOUT: 3: ir0.inst284 +// CHECK:STDOUT: 4: ir0.inst285 +// CHECK:STDOUT: 5: ir0.inst286 +// CHECK:STDOUT: 6: ir0.inst287 +// CHECK:STDOUT: 7: ir0.inst288 // CHECK:STDOUT: inst_block94: -// CHECK:STDOUT: 0: inst95 -// CHECK:STDOUT: 1: inst96 -// CHECK:STDOUT: 2: inst190 -// CHECK:STDOUT: 3: inst191 -// CHECK:STDOUT: 4: inst246 -// CHECK:STDOUT: 5: inst247 -// CHECK:STDOUT: 6: inst248 -// CHECK:STDOUT: 7: inst271 +// CHECK:STDOUT: 0: ir0.inst95 +// CHECK:STDOUT: 1: ir0.inst96 +// CHECK:STDOUT: 2: ir0.inst190 +// CHECK:STDOUT: 3: ir0.inst191 +// CHECK:STDOUT: 4: ir0.inst246 +// CHECK:STDOUT: 5: ir0.inst247 +// CHECK:STDOUT: 6: ir0.inst248 +// CHECK:STDOUT: 7: ir0.inst271 // CHECK:STDOUT: inst_block95: -// CHECK:STDOUT: 0: inst246 +// CHECK:STDOUT: 0: ir0.inst246 // CHECK:STDOUT: inst_block96: -// CHECK:STDOUT: 0: inst281 +// CHECK:STDOUT: 0: ir0.inst281 // CHECK:STDOUT: inst_block97: -// CHECK:STDOUT: 0: inst283 +// CHECK:STDOUT: 0: ir0.inst283 // CHECK:STDOUT: inst_block98: -// CHECK:STDOUT: 0: inst285 +// CHECK:STDOUT: 0: ir0.inst285 // CHECK:STDOUT: inst_block99: -// CHECK:STDOUT: 0: inst295 -// CHECK:STDOUT: 1: inst296 -// CHECK:STDOUT: 2: inst297 -// CHECK:STDOUT: 3: inst298 -// CHECK:STDOUT: 4: inst299 -// CHECK:STDOUT: 5: inst300 -// CHECK:STDOUT: 6: inst301 -// CHECK:STDOUT: 7: inst302 -// CHECK:STDOUT: 8: inst303 -// CHECK:STDOUT: 9: inst304 -// CHECK:STDOUT: 10: inst305 -// CHECK:STDOUT: 11: inst306 -// CHECK:STDOUT: 12: inst307 -// CHECK:STDOUT: 13: inst308 -// CHECK:STDOUT: 14: inst309 -// CHECK:STDOUT: 15: inst310 +// CHECK:STDOUT: 0: ir0.inst295 +// CHECK:STDOUT: 1: ir0.inst296 +// CHECK:STDOUT: 2: ir0.inst297 +// CHECK:STDOUT: 3: ir0.inst298 +// CHECK:STDOUT: 4: ir0.inst299 +// CHECK:STDOUT: 5: ir0.inst300 +// CHECK:STDOUT: 6: ir0.inst301 +// CHECK:STDOUT: 7: ir0.inst302 +// CHECK:STDOUT: 8: ir0.inst303 +// CHECK:STDOUT: 9: ir0.inst304 +// CHECK:STDOUT: 10: ir0.inst305 +// CHECK:STDOUT: 11: ir0.inst306 +// CHECK:STDOUT: 12: ir0.inst307 +// CHECK:STDOUT: 13: ir0.inst308 +// CHECK:STDOUT: 14: ir0.inst309 +// CHECK:STDOUT: 15: ir0.inst310 // CHECK:STDOUT: inst_block100: -// CHECK:STDOUT: 0: inst246 -// CHECK:STDOUT: 1: inst247 -// CHECK:STDOUT: 2: inst311 +// CHECK:STDOUT: 0: ir0.inst246 +// CHECK:STDOUT: 1: ir0.inst247 +// CHECK:STDOUT: 2: ir0.inst311 // CHECK:STDOUT: inst_block101: -// CHECK:STDOUT: 0: inst269 -// CHECK:STDOUT: 1: inst270 +// CHECK:STDOUT: 0: ir0.inst269 +// CHECK:STDOUT: 1: ir0.inst270 // CHECK:STDOUT: inst_block102: -// CHECK:STDOUT: 0: inst167 -// CHECK:STDOUT: 1: inst168 -// CHECK:STDOUT: 2: inst61 +// CHECK:STDOUT: 0: ir0.inst167 +// CHECK:STDOUT: 1: ir0.inst168 +// CHECK:STDOUT: 2: ir0.inst61 // CHECK:STDOUT: inst_block103: -// CHECK:STDOUT: 0: inst312 +// CHECK:STDOUT: 0: ir0.inst312 // CHECK:STDOUT: inst_block104: -// CHECK:STDOUT: 0: inst313 +// CHECK:STDOUT: 0: ir0.inst313 // CHECK:STDOUT: inst_block105: -// CHECK:STDOUT: 0: inst314 +// CHECK:STDOUT: 0: ir0.inst314 // CHECK:STDOUT: inst_block106: -// CHECK:STDOUT: 0: inst314 -// CHECK:STDOUT: 1: inst27 -// CHECK:STDOUT: 2: inst30 +// CHECK:STDOUT: 0: ir0.inst314 +// CHECK:STDOUT: 1: ir0.inst27 +// CHECK:STDOUT: 2: ir0.inst30 // CHECK:STDOUT: inst_block107: -// CHECK:STDOUT: 0: inst318 +// CHECK:STDOUT: 0: ir0.inst318 // CHECK:STDOUT: inst_block108: -// CHECK:STDOUT: 0: inst63 +// CHECK:STDOUT: 0: ir0.inst63 // CHECK:STDOUT: inst_block109: -// CHECK:STDOUT: 0: inst328 -// CHECK:STDOUT: 1: inst332 +// CHECK:STDOUT: 0: ir0.inst328 +// CHECK:STDOUT: 1: ir0.inst332 // CHECK:STDOUT: inst_block110: -// CHECK:STDOUT: 0: inst59 -// CHECK:STDOUT: 1: inst62 -// CHECK:STDOUT: 2: inst313 -// CHECK:STDOUT: 3: inst318 -// CHECK:STDOUT: 4: inst319 -// CHECK:STDOUT: 5: inst320 -// CHECK:STDOUT: 6: inst324 +// CHECK:STDOUT: 0: ir0.inst59 +// CHECK:STDOUT: 1: ir0.inst62 +// CHECK:STDOUT: 2: ir0.inst313 +// CHECK:STDOUT: 3: ir0.inst318 +// CHECK:STDOUT: 4: ir0.inst319 +// CHECK:STDOUT: 5: ir0.inst320 +// CHECK:STDOUT: 6: ir0.inst324 // CHECK:STDOUT: inst_block111: // CHECK:STDOUT: 0: inst14 -// CHECK:STDOUT: 1: inst15 -// CHECK:STDOUT: 2: inst53 +// CHECK:STDOUT: 1: ir0.inst15 +// CHECK:STDOUT: 2: ir0.inst53 // CHECK:STDOUT: ... diff --git a/toolchain/check/testdata/basics/raw_sem_ir/one_file_with_textual_ir.carbon b/toolchain/check/testdata/basics/raw_sem_ir/one_file_with_textual_ir.carbon index 7bcdfb3655fe4..3eb94e4ec7f98 100644 --- a/toolchain/check/testdata/basics/raw_sem_ir/one_file_with_textual_ir.carbon +++ b/toolchain/check/testdata/basics/raw_sem_ir/one_file_with_textual_ir.carbon @@ -26,11 +26,11 @@ fn Foo(n: ()) -> ((), ()) { // CHECK:STDOUT: import_ir_insts: {} // CHECK:STDOUT: clang_decls: {} // CHECK:STDOUT: name_scopes: -// CHECK:STDOUT: name_scope0: {inst: inst14, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name0: inst37}} +// CHECK:STDOUT: name_scope0: {inst: inst14, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name0: ir0.inst37}} // CHECK:STDOUT: entity_names: // CHECK:STDOUT: entity_name0: {name: name1, parent_scope: name_scope, index: -1, is_template: 0, clang_decl_id: clang_decl_id} // CHECK:STDOUT: functions: -// CHECK:STDOUT: function0: {name: name0, parent_scope: name_scope0, call_params_id: inst_block9, return_slot_pattern: inst32, body: [inst_block12]} +// CHECK:STDOUT: function0: {name: name0, parent_scope: name_scope0, call_params_id: inst_block9, return_slot_pattern: ir0.inst32, body: [inst_block12]} // CHECK:STDOUT: classes: {} // CHECK:STDOUT: generics: {} // CHECK:STDOUT: specifics: {} @@ -43,150 +43,150 @@ fn Foo(n: ()) -> ((), ()) { // CHECK:STDOUT: value_repr: {kind: copy, type: type(Error)} // CHECK:STDOUT: 'type(inst(NamespaceType))': // CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(NamespaceType))} -// CHECK:STDOUT: 'type(inst15)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst15)} -// CHECK:STDOUT: 'type(inst24)': -// CHECK:STDOUT: value_repr: {kind: pointer, type: type(inst26)} -// CHECK:STDOUT: 'type(inst26)': -// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst26)} -// CHECK:STDOUT: 'type(inst38)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst15)} +// CHECK:STDOUT: 'type(ir0.inst15)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(ir0.inst15)} +// CHECK:STDOUT: 'type(ir0.inst24)': +// CHECK:STDOUT: value_repr: {kind: pointer, type: type(ir0.inst26)} +// CHECK:STDOUT: 'type(ir0.inst26)': +// CHECK:STDOUT: value_repr: {kind: copy, type: type(ir0.inst26)} +// CHECK:STDOUT: 'type(ir0.inst38)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(ir0.inst15)} // CHECK:STDOUT: insts: // CHECK:STDOUT: inst14: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst15: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)} -// CHECK:STDOUT: inst16: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst15)} -// CHECK:STDOUT: inst17: {kind: Converted, arg0: inst16, arg1: inst15, type: type(TypeType)} -// CHECK:STDOUT: inst18: {kind: BindName, arg0: entity_name0, arg1: inst33, type: type(inst15)} -// CHECK:STDOUT: inst19: {kind: PatternType, arg0: inst15, type: type(TypeType)} -// CHECK:STDOUT: inst20: {kind: BindingPattern, arg0: entity_name0, type: type(inst19)} -// CHECK:STDOUT: inst21: {kind: ValueParamPattern, arg0: inst20, arg1: call_param0, type: type(inst19)} -// CHECK:STDOUT: inst22: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst15)} -// CHECK:STDOUT: inst23: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst15)} -// CHECK:STDOUT: inst24: {kind: TupleType, arg0: inst_block7, type: type(TypeType)} -// CHECK:STDOUT: inst25: {kind: TupleLiteral, arg0: inst_block6, type: type(inst24)} -// CHECK:STDOUT: inst26: {kind: PointerType, arg0: inst24, type: type(TypeType)} -// CHECK:STDOUT: inst27: {kind: Converted, arg0: inst22, arg1: inst15, type: type(TypeType)} -// CHECK:STDOUT: inst28: {kind: Converted, arg0: inst23, arg1: inst15, type: type(TypeType)} -// CHECK:STDOUT: inst29: {kind: Converted, arg0: inst25, arg1: inst24, type: type(TypeType)} -// CHECK:STDOUT: inst30: {kind: PatternType, arg0: inst24, type: type(TypeType)} -// CHECK:STDOUT: inst31: {kind: ReturnSlotPattern, arg0: inst29, type: type(inst30)} -// CHECK:STDOUT: inst32: {kind: OutParamPattern, arg0: inst31, arg1: call_param1, type: type(inst30)} -// CHECK:STDOUT: inst33: {kind: ValueParam, arg0: call_param0, arg1: name1, type: type(inst15)} -// CHECK:STDOUT: inst34: {kind: SpliceBlock, arg0: inst_block4, arg1: inst17, type: type(TypeType)} -// CHECK:STDOUT: inst35: {kind: OutParam, arg0: call_param1, arg1: name(ReturnSlot), type: type(inst24)} -// CHECK:STDOUT: inst36: {kind: ReturnSlot, arg0: inst24, arg1: inst35, type: type(inst24)} -// CHECK:STDOUT: inst37: {kind: FunctionDecl, arg0: function0, arg1: inst_block11, type: type(inst38)} -// CHECK:STDOUT: inst38: {kind: FunctionType, arg0: function0, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst39: {kind: StructValue, arg0: inst_block_empty, type: type(inst38)} -// CHECK:STDOUT: inst40: {kind: NameRef, arg0: name1, arg1: inst18, type: type(inst15)} -// CHECK:STDOUT: inst41: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst15)} -// CHECK:STDOUT: inst42: {kind: TupleLiteral, arg0: inst_block13, type: type(inst24)} -// CHECK:STDOUT: inst43: {kind: TupleAccess, arg0: inst36, arg1: element0, type: type(inst15)} -// CHECK:STDOUT: inst44: {kind: TupleInit, arg0: inst_block14, arg1: inst43, type: type(inst15)} -// CHECK:STDOUT: inst45: {kind: TupleValue, arg0: inst_block_empty, type: type(inst15)} -// CHECK:STDOUT: inst46: {kind: Converted, arg0: inst40, arg1: inst44, type: type(inst15)} -// CHECK:STDOUT: inst47: {kind: TupleAccess, arg0: inst36, arg1: element1, type: type(inst15)} -// CHECK:STDOUT: inst48: {kind: TupleInit, arg0: inst_block_empty, arg1: inst47, type: type(inst15)} -// CHECK:STDOUT: inst49: {kind: Converted, arg0: inst41, arg1: inst48, type: type(inst15)} -// CHECK:STDOUT: inst50: {kind: TupleInit, arg0: inst_block15, arg1: inst36, type: type(inst24)} -// CHECK:STDOUT: inst51: {kind: TupleValue, arg0: inst_block16, type: type(inst24)} -// CHECK:STDOUT: inst52: {kind: Converted, arg0: inst42, arg1: inst50, type: type(inst24)} -// CHECK:STDOUT: inst53: {kind: ReturnExpr, arg0: inst52, arg1: inst36} +// CHECK:STDOUT: ir0.inst15: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst16: {kind: TupleLiteral, arg0: inst_block_empty, type: type(ir0.inst15)} +// CHECK:STDOUT: ir0.inst17: {kind: Converted, arg0: ir0.inst16, arg1: ir0.inst15, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst18: {kind: BindName, arg0: entity_name0, arg1: ir0.inst33, type: type(ir0.inst15)} +// CHECK:STDOUT: ir0.inst19: {kind: PatternType, arg0: ir0.inst15, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst20: {kind: BindingPattern, arg0: entity_name0, type: type(ir0.inst19)} +// CHECK:STDOUT: ir0.inst21: {kind: ValueParamPattern, arg0: ir0.inst20, arg1: call_param0, type: type(ir0.inst19)} +// CHECK:STDOUT: ir0.inst22: {kind: TupleLiteral, arg0: inst_block_empty, type: type(ir0.inst15)} +// CHECK:STDOUT: ir0.inst23: {kind: TupleLiteral, arg0: inst_block_empty, type: type(ir0.inst15)} +// CHECK:STDOUT: ir0.inst24: {kind: TupleType, arg0: inst_block7, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst25: {kind: TupleLiteral, arg0: inst_block6, type: type(ir0.inst24)} +// CHECK:STDOUT: ir0.inst26: {kind: PointerType, arg0: ir0.inst24, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst27: {kind: Converted, arg0: ir0.inst22, arg1: ir0.inst15, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst28: {kind: Converted, arg0: ir0.inst23, arg1: ir0.inst15, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst29: {kind: Converted, arg0: ir0.inst25, arg1: ir0.inst24, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst30: {kind: PatternType, arg0: ir0.inst24, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst31: {kind: ReturnSlotPattern, arg0: ir0.inst29, type: type(ir0.inst30)} +// CHECK:STDOUT: ir0.inst32: {kind: OutParamPattern, arg0: ir0.inst31, arg1: call_param1, type: type(ir0.inst30)} +// CHECK:STDOUT: ir0.inst33: {kind: ValueParam, arg0: call_param0, arg1: name1, type: type(ir0.inst15)} +// CHECK:STDOUT: ir0.inst34: {kind: SpliceBlock, arg0: inst_block4, arg1: ir0.inst17, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst35: {kind: OutParam, arg0: call_param1, arg1: name(ReturnSlot), type: type(ir0.inst24)} +// CHECK:STDOUT: ir0.inst36: {kind: ReturnSlot, arg0: ir0.inst24, arg1: ir0.inst35, type: type(ir0.inst24)} +// CHECK:STDOUT: ir0.inst37: {kind: FunctionDecl, arg0: function0, arg1: inst_block11, type: type(ir0.inst38)} +// CHECK:STDOUT: ir0.inst38: {kind: FunctionType, arg0: function0, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: ir0.inst39: {kind: StructValue, arg0: inst_block_empty, type: type(ir0.inst38)} +// CHECK:STDOUT: ir0.inst40: {kind: NameRef, arg0: name1, arg1: ir0.inst18, type: type(ir0.inst15)} +// CHECK:STDOUT: ir0.inst41: {kind: TupleLiteral, arg0: inst_block_empty, type: type(ir0.inst15)} +// CHECK:STDOUT: ir0.inst42: {kind: TupleLiteral, arg0: inst_block13, type: type(ir0.inst24)} +// CHECK:STDOUT: ir0.inst43: {kind: TupleAccess, arg0: ir0.inst36, arg1: element0, type: type(ir0.inst15)} +// CHECK:STDOUT: ir0.inst44: {kind: TupleInit, arg0: inst_block14, arg1: ir0.inst43, type: type(ir0.inst15)} +// CHECK:STDOUT: ir0.inst45: {kind: TupleValue, arg0: inst_block_empty, type: type(ir0.inst15)} +// CHECK:STDOUT: ir0.inst46: {kind: Converted, arg0: ir0.inst40, arg1: ir0.inst44, type: type(ir0.inst15)} +// CHECK:STDOUT: ir0.inst47: {kind: TupleAccess, arg0: ir0.inst36, arg1: element1, type: type(ir0.inst15)} +// CHECK:STDOUT: ir0.inst48: {kind: TupleInit, arg0: inst_block_empty, arg1: ir0.inst47, type: type(ir0.inst15)} +// CHECK:STDOUT: ir0.inst49: {kind: Converted, arg0: ir0.inst41, arg1: ir0.inst48, type: type(ir0.inst15)} +// CHECK:STDOUT: ir0.inst50: {kind: TupleInit, arg0: inst_block15, arg1: ir0.inst36, type: type(ir0.inst24)} +// CHECK:STDOUT: ir0.inst51: {kind: TupleValue, arg0: inst_block16, type: type(ir0.inst24)} +// CHECK:STDOUT: ir0.inst52: {kind: Converted, arg0: ir0.inst42, arg1: ir0.inst50, type: type(ir0.inst24)} +// CHECK:STDOUT: ir0.inst53: {kind: ReturnExpr, arg0: ir0.inst52, arg1: ir0.inst36} // CHECK:STDOUT: constant_values: // CHECK:STDOUT: values: // CHECK:STDOUT: inst14: concrete_constant(inst14) -// CHECK:STDOUT: inst15: concrete_constant(inst15) -// CHECK:STDOUT: inst17: concrete_constant(inst15) -// CHECK:STDOUT: inst19: concrete_constant(inst19) -// CHECK:STDOUT: inst20: concrete_constant(inst20) -// CHECK:STDOUT: inst21: concrete_constant(inst21) -// CHECK:STDOUT: inst24: concrete_constant(inst24) -// CHECK:STDOUT: inst26: concrete_constant(inst26) -// CHECK:STDOUT: inst27: concrete_constant(inst15) -// CHECK:STDOUT: inst28: concrete_constant(inst15) -// CHECK:STDOUT: inst29: concrete_constant(inst24) -// CHECK:STDOUT: inst30: concrete_constant(inst30) -// CHECK:STDOUT: inst31: concrete_constant(inst31) -// CHECK:STDOUT: inst32: concrete_constant(inst32) -// CHECK:STDOUT: inst34: concrete_constant(inst15) -// CHECK:STDOUT: inst37: concrete_constant(inst39) -// CHECK:STDOUT: inst38: concrete_constant(inst38) -// CHECK:STDOUT: inst39: concrete_constant(inst39) -// CHECK:STDOUT: inst44: concrete_constant(inst45) -// CHECK:STDOUT: inst45: concrete_constant(inst45) -// CHECK:STDOUT: inst46: concrete_constant(inst45) -// CHECK:STDOUT: inst48: concrete_constant(inst45) -// CHECK:STDOUT: inst49: concrete_constant(inst45) -// CHECK:STDOUT: inst50: concrete_constant(inst51) -// CHECK:STDOUT: inst51: concrete_constant(inst51) -// CHECK:STDOUT: inst52: concrete_constant(inst51) +// CHECK:STDOUT: ir0.inst15: concrete_constant(ir0.inst15) +// CHECK:STDOUT: ir0.inst17: concrete_constant(ir0.inst15) +// CHECK:STDOUT: ir0.inst19: concrete_constant(ir0.inst19) +// CHECK:STDOUT: ir0.inst20: concrete_constant(ir0.inst20) +// CHECK:STDOUT: ir0.inst21: concrete_constant(ir0.inst21) +// CHECK:STDOUT: ir0.inst24: concrete_constant(ir0.inst24) +// CHECK:STDOUT: ir0.inst26: concrete_constant(ir0.inst26) +// CHECK:STDOUT: ir0.inst27: concrete_constant(ir0.inst15) +// CHECK:STDOUT: ir0.inst28: concrete_constant(ir0.inst15) +// CHECK:STDOUT: ir0.inst29: concrete_constant(ir0.inst24) +// CHECK:STDOUT: ir0.inst30: concrete_constant(ir0.inst30) +// CHECK:STDOUT: ir0.inst31: concrete_constant(ir0.inst31) +// CHECK:STDOUT: ir0.inst32: concrete_constant(ir0.inst32) +// CHECK:STDOUT: ir0.inst34: concrete_constant(ir0.inst15) +// CHECK:STDOUT: ir0.inst37: concrete_constant(ir0.inst39) +// CHECK:STDOUT: ir0.inst38: concrete_constant(ir0.inst38) +// CHECK:STDOUT: ir0.inst39: concrete_constant(ir0.inst39) +// CHECK:STDOUT: ir0.inst44: concrete_constant(ir0.inst45) +// CHECK:STDOUT: ir0.inst45: concrete_constant(ir0.inst45) +// CHECK:STDOUT: ir0.inst46: concrete_constant(ir0.inst45) +// CHECK:STDOUT: ir0.inst48: concrete_constant(ir0.inst45) +// CHECK:STDOUT: ir0.inst49: concrete_constant(ir0.inst45) +// CHECK:STDOUT: ir0.inst50: concrete_constant(ir0.inst51) +// CHECK:STDOUT: ir0.inst51: concrete_constant(ir0.inst51) +// CHECK:STDOUT: ir0.inst52: concrete_constant(ir0.inst51) // CHECK:STDOUT: symbolic_constants: {} // CHECK:STDOUT: inst_blocks: // CHECK:STDOUT: inst_block_empty: {} // CHECK:STDOUT: exports: -// CHECK:STDOUT: 0: inst37 +// CHECK:STDOUT: 0: ir0.inst37 // CHECK:STDOUT: imports: {} // CHECK:STDOUT: global_init: {} // CHECK:STDOUT: inst_block4: -// CHECK:STDOUT: 0: inst16 -// CHECK:STDOUT: 1: inst17 +// CHECK:STDOUT: 0: ir0.inst16 +// CHECK:STDOUT: 1: ir0.inst17 // CHECK:STDOUT: inst_block5: -// CHECK:STDOUT: 0: inst21 +// CHECK:STDOUT: 0: ir0.inst21 // CHECK:STDOUT: inst_block6: -// CHECK:STDOUT: 0: inst22 -// CHECK:STDOUT: 1: inst23 +// CHECK:STDOUT: 0: ir0.inst22 +// CHECK:STDOUT: 1: ir0.inst23 // CHECK:STDOUT: inst_block7: -// CHECK:STDOUT: 0: inst15 -// CHECK:STDOUT: 1: inst15 +// CHECK:STDOUT: 0: ir0.inst15 +// CHECK:STDOUT: 1: ir0.inst15 // CHECK:STDOUT: inst_block8: -// CHECK:STDOUT: 0: inst27 -// CHECK:STDOUT: 1: inst28 +// CHECK:STDOUT: 0: ir0.inst27 +// CHECK:STDOUT: 1: ir0.inst28 // CHECK:STDOUT: inst_block9: -// CHECK:STDOUT: 0: inst33 -// CHECK:STDOUT: 1: inst35 +// CHECK:STDOUT: 0: ir0.inst33 +// CHECK:STDOUT: 1: ir0.inst35 // CHECK:STDOUT: inst_block10: -// CHECK:STDOUT: 0: inst20 -// CHECK:STDOUT: 1: inst21 -// CHECK:STDOUT: 2: inst31 -// CHECK:STDOUT: 3: inst32 +// CHECK:STDOUT: 0: ir0.inst20 +// CHECK:STDOUT: 1: ir0.inst21 +// CHECK:STDOUT: 2: ir0.inst31 +// CHECK:STDOUT: 3: ir0.inst32 // CHECK:STDOUT: inst_block11: -// CHECK:STDOUT: 0: inst22 -// CHECK:STDOUT: 1: inst23 -// CHECK:STDOUT: 2: inst25 -// CHECK:STDOUT: 3: inst27 -// CHECK:STDOUT: 4: inst28 -// CHECK:STDOUT: 5: inst29 -// CHECK:STDOUT: 6: inst33 -// CHECK:STDOUT: 7: inst34 -// CHECK:STDOUT: 8: inst18 -// CHECK:STDOUT: 9: inst35 -// CHECK:STDOUT: 10: inst36 +// CHECK:STDOUT: 0: ir0.inst22 +// CHECK:STDOUT: 1: ir0.inst23 +// CHECK:STDOUT: 2: ir0.inst25 +// CHECK:STDOUT: 3: ir0.inst27 +// CHECK:STDOUT: 4: ir0.inst28 +// CHECK:STDOUT: 5: ir0.inst29 +// CHECK:STDOUT: 6: ir0.inst33 +// CHECK:STDOUT: 7: ir0.inst34 +// CHECK:STDOUT: 8: ir0.inst18 +// CHECK:STDOUT: 9: ir0.inst35 +// CHECK:STDOUT: 10: ir0.inst36 // CHECK:STDOUT: inst_block12: -// CHECK:STDOUT: 0: inst40 -// CHECK:STDOUT: 1: inst41 -// CHECK:STDOUT: 2: inst42 -// CHECK:STDOUT: 3: inst43 -// CHECK:STDOUT: 4: inst44 -// CHECK:STDOUT: 5: inst46 -// CHECK:STDOUT: 6: inst47 -// CHECK:STDOUT: 7: inst48 -// CHECK:STDOUT: 8: inst49 -// CHECK:STDOUT: 9: inst50 -// CHECK:STDOUT: 10: inst52 -// CHECK:STDOUT: 11: inst53 +// CHECK:STDOUT: 0: ir0.inst40 +// CHECK:STDOUT: 1: ir0.inst41 +// CHECK:STDOUT: 2: ir0.inst42 +// CHECK:STDOUT: 3: ir0.inst43 +// CHECK:STDOUT: 4: ir0.inst44 +// CHECK:STDOUT: 5: ir0.inst46 +// CHECK:STDOUT: 6: ir0.inst47 +// CHECK:STDOUT: 7: ir0.inst48 +// CHECK:STDOUT: 8: ir0.inst49 +// CHECK:STDOUT: 9: ir0.inst50 +// CHECK:STDOUT: 10: ir0.inst52 +// CHECK:STDOUT: 11: ir0.inst53 // CHECK:STDOUT: inst_block13: -// CHECK:STDOUT: 0: inst40 -// CHECK:STDOUT: 1: inst41 +// CHECK:STDOUT: 0: ir0.inst40 +// CHECK:STDOUT: 1: ir0.inst41 // CHECK:STDOUT: inst_block14: {} // CHECK:STDOUT: inst_block15: -// CHECK:STDOUT: 0: inst46 -// CHECK:STDOUT: 1: inst49 +// CHECK:STDOUT: 0: ir0.inst46 +// CHECK:STDOUT: 1: ir0.inst49 // CHECK:STDOUT: inst_block16: -// CHECK:STDOUT: 0: inst45 -// CHECK:STDOUT: 1: inst45 +// CHECK:STDOUT: 0: ir0.inst45 +// CHECK:STDOUT: 1: ir0.inst45 // CHECK:STDOUT: inst_block17: // CHECK:STDOUT: 0: inst14 -// CHECK:STDOUT: 1: inst37 +// CHECK:STDOUT: 1: ir0.inst37 // CHECK:STDOUT: ... // CHECK:STDOUT: --- one_file_with_textual_ir.carbon // CHECK:STDOUT: diff --git a/toolchain/check/testdata/basics/verbose.carbon b/toolchain/check/testdata/basics/verbose.carbon index 7d4a1be331f22..bf914d47a5945 100644 --- a/toolchain/check/testdata/basics/verbose.carbon +++ b/toolchain/check/testdata/basics/verbose.carbon @@ -14,7 +14,7 @@ // SET-CHECK-SUBSET // CHECK:STDERR: Node Push 0: FunctionIntroducer -> // CHECK:STDERR: AddPlaceholderInst: {kind: FunctionDecl, arg0: function, arg1: inst_block_empty} -// CHECK:STDERR: ReplaceInst: inst{{[0-9]+}} -> {kind: FunctionDecl, arg0: function{{[0-9]+}}, arg1: inst_block_empty, type: type(inst{{[0-9]+}})} +// CHECK:STDERR: ReplaceInst: ir{{[0-9]+}}.inst{{[0-9]+}} -> {kind: FunctionDecl, arg0: function{{[0-9]+}}, arg1: inst_block_empty, type: type(ir{{[0-9]+}}.inst{{[0-9]+}})} // CHECK:STDERR: inst_block_stack_ Push 1 // CHECK:STDERR: AddInst: {kind: Return} // CHECK:STDERR: inst_block_stack_ Pop 1: inst_block{{[0-9]+}} diff --git a/toolchain/check/testdata/if_expr/fail_not_in_function.carbon b/toolchain/check/testdata/if_expr/fail_not_in_function.carbon index d4ca3c3c6f31c..12dfeed1c82a9 100644 --- a/toolchain/check/testdata/if_expr/fail_not_in_function.carbon +++ b/toolchain/check/testdata/if_expr/fail_not_in_function.carbon @@ -130,7 +130,7 @@ fn F() { // CHECK:STDOUT: %true: bool = bool_literal true [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(.inst20.loc4_14: type) { +// CHECK:STDOUT: generic class @C(.ir4.inst20.loc4_14: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -145,7 +145,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B { -// CHECK:STDOUT: %C.ref: %C.type = name_ref C, .inst25.loc4_24 [concrete = constants.%C.generic] +// CHECK:STDOUT: %C.ref: %C.type = name_ref C, .ir4.inst25.loc4_24 [concrete = constants.%C.generic] // CHECK:STDOUT: %true: bool = bool_literal true [concrete = constants.%true] // CHECK:STDOUT: if %true br !if.expr.then else br !if.expr.else // CHECK:STDOUT: complete_type_witness = invalid diff --git a/toolchain/check/testdata/let/compile_time_bindings.carbon b/toolchain/check/testdata/let/compile_time_bindings.carbon index e54047f3483ad..85bedb9b2db24 100644 --- a/toolchain/check/testdata/let/compile_time_bindings.carbon +++ b/toolchain/check/testdata/let/compile_time_bindings.carbon @@ -640,12 +640,12 @@ impl i32 as Empty { // CHECK:STDOUT: !members: // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: .F = %C.F.decl -// CHECK:STDOUT: .x = .inst35.loc14_7 +// CHECK:STDOUT: .x = .ir3.inst35.loc14_7 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @C.F() -> %empty_tuple.type { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %x.ref: %empty_tuple.type = name_ref x, .inst35.loc14_7 +// CHECK:STDOUT: %x.ref: %empty_tuple.type = name_ref x, .ir3.inst35.loc14_7 // CHECK:STDOUT: %.loc5_25: init %empty_tuple.type = tuple_init () to %return [concrete = constants.%empty_tuple] // CHECK:STDOUT: %.loc5_26: init %empty_tuple.type = converted %x.ref, %.loc5_25 [concrete = constants.%empty_tuple] // CHECK:STDOUT: return %.loc5_26 to %return diff --git a/toolchain/check/testdata/let/fail_missing_value.carbon b/toolchain/check/testdata/let/fail_missing_value.carbon index 7c2fbf7ef4028..7d82e9130ffae 100644 --- a/toolchain/check/testdata/let/fail_missing_value.carbon +++ b/toolchain/check/testdata/let/fail_missing_value.carbon @@ -50,7 +50,7 @@ fn F() { // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .Core = imports.%Core -// CHECK:STDOUT: .n = .inst44.loc19_5 +// CHECK:STDOUT: .n = .ir0.inst44.loc19_5 // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: } // CHECK:STDOUT: %Core.import = import Core diff --git a/toolchain/check/testdata/operators/builtin/fail_and_or_not_in_function.carbon b/toolchain/check/testdata/operators/builtin/fail_and_or_not_in_function.carbon index ec8970fbefd23..933ebfc3f0256 100644 --- a/toolchain/check/testdata/operators/builtin/fail_and_or_not_in_function.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_and_or_not_in_function.carbon @@ -96,7 +96,7 @@ fn F() { // CHECK:STDOUT: %f64: type = class_type @Float, @Float(%int_64) [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] -// CHECK:STDOUT: %Copy.impl_witness.de9: = impl_witness .inst341 [concrete] +// CHECK:STDOUT: %Copy.impl_witness.de9: = impl_witness .ir0.inst341 [concrete] // CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value type, (%Copy.impl_witness.de9) [concrete] // CHECK:STDOUT: %.98f: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op.type: type = fn_type @type.as.Copy.impl.Op [concrete] @@ -105,7 +105,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%b.param: bool) -> type { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %b.ref: bool = name_ref b, .inst27.loc5_6 +// CHECK:STDOUT: %b.ref: bool = name_ref b, .ir0.inst27.loc5_6 // CHECK:STDOUT: if %b.ref br !if.expr.then else br !if.expr.else // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.then: @@ -123,7 +123,7 @@ fn F() { // CHECK:STDOUT: %impl.elem0: %.98f = impl_witness_access constants.%Copy.impl_witness.de9, element0 [concrete = constants.%type.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %.loc6, %impl.elem0 // CHECK:STDOUT: %type.as.Copy.impl.Op.call: init type = call %bound_method(%.loc6) -// CHECK:STDOUT: return %type.as.Copy.impl.Op.call to .inst36.loc5_15 +// CHECK:STDOUT: return %type.as.Copy.impl.Op.call to .ir0.inst36.loc5_15 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_and_val.carbon @@ -140,7 +140,7 @@ fn F() { // CHECK:STDOUT: %f64: type = class_type @Float, @Float(%int_64) [concrete] // CHECK:STDOUT: %Copy.type: type = facet_type <@Copy> [concrete] // CHECK:STDOUT: %Copy.Op.type: type = fn_type @Copy.Op [concrete] -// CHECK:STDOUT: %Copy.impl_witness.de9: = impl_witness .inst341 [concrete] +// CHECK:STDOUT: %Copy.impl_witness.de9: = impl_witness .ir2.inst341 [concrete] // CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value type, (%Copy.impl_witness.de9) [concrete] // CHECK:STDOUT: %.98f: type = fn_type_with_self_type %Copy.Op.type, %Copy.facet [concrete] // CHECK:STDOUT: %type.as.Copy.impl.Op.type: type = fn_type @type.as.Copy.impl.Op [concrete] @@ -149,7 +149,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: fn @F(%b.param: bool) -> type { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %b.ref: bool = name_ref b, .inst27.loc5_6 +// CHECK:STDOUT: %b.ref: bool = name_ref b, .ir2.inst27.loc5_6 // CHECK:STDOUT: if %b.ref br !if.expr.then else br !if.expr.else // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.then: @@ -167,7 +167,7 @@ fn F() { // CHECK:STDOUT: %impl.elem0: %.98f = impl_witness_access constants.%Copy.impl_witness.de9, element0 [concrete = constants.%type.as.Copy.impl.Op] // CHECK:STDOUT: %bound_method: = bound_method %.loc6, %impl.elem0 // CHECK:STDOUT: %type.as.Copy.impl.Op.call: init type = call %bound_method(%.loc6) -// CHECK:STDOUT: return %type.as.Copy.impl.Op.call to .inst36.loc5_15 +// CHECK:STDOUT: return %type.as.Copy.impl.Op.call to .ir2.inst36.loc5_15 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_or_val.carbon @@ -189,7 +189,7 @@ fn F() { // CHECK:STDOUT: %false: bool = bool_literal false [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @C(.inst30.loc4_14: bool) { +// CHECK:STDOUT: generic class @C(.ir4.inst30.loc4_14: bool) { // CHECK:STDOUT: %B: bool = bind_symbolic_name B, 0 [symbolic = %B (constants.%B.7dd)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: @@ -204,7 +204,7 @@ fn F() { // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: class @B { -// CHECK:STDOUT: %C.ref: %C.type = name_ref C, .inst36.loc4_24 [concrete = constants.%C.generic] +// CHECK:STDOUT: %C.ref: %C.type = name_ref C, .ir4.inst36.loc4_24 [concrete = constants.%C.generic] // CHECK:STDOUT: %true.loc12_20: bool = bool_literal true [concrete = constants.%true] // CHECK:STDOUT: %.loc12: bool = not %true.loc12_20 [concrete = constants.%false] // CHECK:STDOUT: %true.loc12_25: bool = bool_literal true [concrete = constants.%true] diff --git a/toolchain/driver/compile_subcommand.cpp b/toolchain/driver/compile_subcommand.cpp index a7a725c2bb91e..cabfe4f741508 100644 --- a/toolchain/driver/compile_subcommand.cpp +++ b/toolchain/driver/compile_subcommand.cpp @@ -559,8 +559,8 @@ class MultiUnitCache { auto include_in_dumps() -> const IncludeInDumpsStore& { if (!include_in_dumps_) { - include_in_dumps_.emplace( - IncludeInDumpsStore::MakeWithExplicitSize(units_.size(), false)); + include_in_dumps_.emplace(IncludeInDumpsStore::MakeWithExplicitSize( + IdTag(), units_.size(), false)); for (const auto& [i, unit] : llvm::enumerate(units_)) { // If this is first accessed after lexing is complete, we need to apply // per-file includes. Otherwise, this is based only on the exclude @@ -580,8 +580,8 @@ class MultiUnitCache { auto tree_and_subtrees_getters() -> const TreeAndSubtreesGettersStore& { if (!tree_and_subtrees_getters_) { tree_and_subtrees_getters_.emplace( - TreeAndSubtreesGettersStore::MakeWithExplicitSize(units_.size(), - nullptr)); + TreeAndSubtreesGettersStore::MakeWithExplicitSize( + IdTag(), units_.size(), nullptr)); for (const auto& [i, unit] : llvm::enumerate(units_)) { if (unit->has_source()) { tree_and_subtrees_getters_->Set(SemIR::CheckIRId(i), diff --git a/toolchain/language_server/context.cpp b/toolchain/language_server/context.cpp index 78db9c9f767ec..9b62153a3ae11 100644 --- a/toolchain/language_server/context.cpp +++ b/toolchain/language_server/context.cpp @@ -168,7 +168,7 @@ auto Context::File::SetText(Context& context, std::optional version, Check::CheckParseTreesOptions check_options; check_options.vlog_stream = context.vlog_stream(); auto getters = - Parse::GetTreeAndSubtreesStore::MakeWithExplicitSize(1, getter); + Parse::GetTreeAndSubtreesStore::MakeWithExplicitSize(IdTag(), 1, getter); auto clang_invocation = BuildClangInvocation(consumer, fs, {context.installation().clang_path()}); diff --git a/toolchain/lower/file_context.cpp b/toolchain/lower/file_context.cpp index b352745380acf..dc1b38f384771 100644 --- a/toolchain/lower/file_context.cpp +++ b/toolchain/lower/file_context.cpp @@ -50,10 +50,10 @@ FileContext::FileContext(Context& context, const SemIR::File& sem_ir, vlog_stream_(vlog_stream), functions_(LoweredFunctionStore::MakeForOverwrite(sem_ir.functions())), specific_functions_(sem_ir.specifics(), nullptr), - types_(LoweredTypeStore::MakeWithExplicitSize(sem_ir.insts().size(), - nullptr)), + types_(LoweredTypeStore::MakeWithExplicitSize( + sem_ir.insts().GetIdTag(), sem_ir.insts().size(), nullptr)), constants_(LoweredConstantStore::MakeWithExplicitSize( - sem_ir.insts().size(), nullptr)), + sem_ir.insts().GetIdTag(), sem_ir.insts().size(), nullptr)), lowered_specifics_(sem_ir.generics(), llvm::SmallVector()), coalescer_(vlog_stream_, sem_ir.specifics()), diff --git a/toolchain/sem_ir/constant.h b/toolchain/sem_ir/constant.h index a03234f902109..4c81ca40cb0f2 100644 --- a/toolchain/sem_ir/constant.h +++ b/toolchain/sem_ir/constant.h @@ -108,9 +108,20 @@ struct SymbolicConstant : Printable { // Provides a ValueStore wrapper for tracking the constant values of // instructions. class ConstantValueStore { + struct UnusableType {}; + public: - explicit ConstantValueStore(ConstantId default_value) - : default_(default_value) {} + inline static const auto Unusable = UnusableType(); + + // Constructs an unusable ConstantValueStore, only good as a placeholder (eg: + // in C++ interop, where there's no foreign SemIR to reference) + explicit ConstantValueStore(UnusableType /* tag */) + : default_(ConstantId::None), insts_(nullptr) {} + + explicit ConstantValueStore(ConstantId default_value, const InstStore* insts) + : default_(default_value), + values_((CARBON_CHECK(insts), insts->GetIdTag())), + insts_(insts) {} // Returns the constant value of the requested instruction, which is default_ // if unallocated. Always returns an unattached constant. @@ -122,18 +133,21 @@ class ConstantValueStore { // Returns the constant value of the requested instruction, which is default_ // if unallocated. This may be an attached constant. auto GetAttached(InstId inst_id) const -> ConstantId { - CARBON_DCHECK(inst_id.index >= 0); - return static_cast(inst_id.index) >= values_.size() - ? default_ - : values_.Get(inst_id); + CARBON_CHECK(insts_, + "Used ConstantValueStores must have an associated InstStore."); + auto index = insts_->GetRawIndex(inst_id); + return static_cast(index) >= values_.size() ? default_ + : values_.Get(inst_id); } // Sets the constant value of the given instruction, or sets that it is known // to not be a constant. auto Set(InstId inst_id, ConstantId const_id) -> void { - CARBON_DCHECK(inst_id.index >= 0); - if (static_cast(inst_id.index) >= values_.size()) { - values_.Resize(inst_id.index + 1, default_); + CARBON_CHECK(insts_, + "Used ConstantValueStores must have an associated InstStore."); + auto index = insts_->GetRawIndex(inst_id); + if (static_cast(index) >= values_.size()) { + values_.Resize(index + 1, default_); } values_.Get(inst_id) = const_id; } @@ -251,6 +265,8 @@ class ConstantValueStore { // `ConstantId`. For a symbolic constant, we also track information about // where the constant was used, which is stored here. ValueStore symbolic_constants_; + + const InstStore* insts_; }; // Given a constant ID, returns an instruction that has that constant value. diff --git a/toolchain/sem_ir/file.cpp b/toolchain/sem_ir/file.cpp index 24d830d1ac8c2..808141ccd6dea 100644 --- a/toolchain/sem_ir/file.cpp +++ b/toolchain/sem_ir/file.cpp @@ -36,7 +36,8 @@ File::File(const Parse::Tree* parse_tree, CheckIRId check_ir_id, value_stores_(&value_stores), filename_(std::move(filename)), impls_(*this), - constant_values_(ConstantId::NotConstant), + insts_(this, SingletonInstKinds.size() + 1), + constant_values_(ConstantId::NotConstant, &insts_), inst_blocks_(allocator_), constants_(this) { // `type` and the error type are both complete & concrete types. diff --git a/toolchain/sem_ir/file.h b/toolchain/sem_ir/file.h index ac48333a5c0b9..1b9b4484f2214 100644 --- a/toolchain/sem_ir/file.h +++ b/toolchain/sem_ir/file.h @@ -360,7 +360,7 @@ class File : public Printable { // All instructions. The first entries will always be the singleton // instructions. - InstStore insts_ = InstStore(this); + InstStore insts_; VtableStore vtables_; diff --git a/toolchain/sem_ir/formatter.cpp b/toolchain/sem_ir/formatter.cpp index a1928334b9dea..239ac07f5870a 100644 --- a/toolchain/sem_ir/formatter.cpp +++ b/toolchain/sem_ir/formatter.cpp @@ -111,7 +111,7 @@ auto Formatter::Format() -> void { auto Formatter::ComputeNodeParents() -> void { CARBON_CHECK(!node_parents_); node_parents_ = NodeParentStore::MakeWithExplicitSize( - sem_ir_->parse_tree().size(), Parse::NodeId::None); + IdTag(), sem_ir_->parse_tree().size(), Parse::NodeId::None); for (auto n : sem_ir_->parse_tree().postorder()) { for (auto child : get_tree_and_subtrees_().children(n)) { node_parents_->Set(child, n); @@ -1236,15 +1236,17 @@ auto Formatter::FormatImportRefRhs(AnyImportRef inst) -> void { const auto& import_ir = sem_ir_->import_irs().Get(import_ir_inst.ir_id()); auto loc_id = import_ir.sem_ir->insts().GetCanonicalLocId(import_ir_inst.inst_id()); + InstId stripped_inst_id( + import_ir.sem_ir->insts().GetRawIndex(import_ir_inst.inst_id())); switch (loc_id.kind()) { case LocId::Kind::None: { - out_ << import_ir_inst.inst_id() << " [no loc]"; + out_ << stripped_inst_id << " [no loc]"; break; } case LocId::Kind::ImportIRInstId: { // TODO: Probably don't want to format each indirection, but maybe // reuse GetCanonicalImportIRInst? - out_ << import_ir_inst.inst_id() << " [indirect]"; + out_ << stripped_inst_id << " [indirect]"; break; } case LocId::Kind::NodeId: { diff --git a/toolchain/sem_ir/generic.h b/toolchain/sem_ir/generic.h index 2103598a75a2a..b6a1bb876330e 100644 --- a/toolchain/sem_ir/generic.h +++ b/toolchain/sem_ir/generic.h @@ -149,6 +149,8 @@ class SpecificStore : public Yaml::Printable { return specifics_.enumerate(); } + auto GetIdTag() const { return IdTag(); } + private: // Context for hashing keys. class KeyContext; diff --git a/toolchain/sem_ir/ids.cpp b/toolchain/sem_ir/ids.cpp index eae9472750835..2b81d0c5112b1 100644 --- a/toolchain/sem_ir/ids.cpp +++ b/toolchain/sem_ir/ids.cpp @@ -16,7 +16,12 @@ auto InstId::Print(llvm::raw_ostream& out) const -> void { if (IsSingletonInstId(*this)) { out << Label << "(" << SingletonInstKinds[index] << ")"; } else { - IdBase::Print(out); + auto [ir_id, simple_index] = IdTag::DecomposeWithBestEffort(index); + if (ir_id == -1) { + IdBase::Print(out); + } else { + out << "ir" << ir_id << ".inst" << simple_index; + } } } diff --git a/toolchain/sem_ir/inst.cpp b/toolchain/sem_ir/inst.cpp index c1f14eb74b8a9..9c7388f0e0229 100644 --- a/toolchain/sem_ir/inst.cpp +++ b/toolchain/sem_ir/inst.cpp @@ -54,6 +54,10 @@ const std::pair Inst::ArgKindTable[] = { #include "toolchain/sem_ir/inst_kind.def" }; +InstStore::InstStore(File* file, int32_t reserved_inst_ids) + : file_(file), + values_(IdTag(file->check_ir_id().index, reserved_inst_ids)) {} + auto InstStore::GetUnattachedType(TypeId type_id) const -> TypeId { return file_->types().GetUnattachedType(type_id); } diff --git a/toolchain/sem_ir/inst.h b/toolchain/sem_ir/inst.h index ca6e19d7015c9..c387a81ca44e3 100644 --- a/toolchain/sem_ir/inst.h +++ b/toolchain/sem_ir/inst.h @@ -442,7 +442,7 @@ class InstStore { public: using IdType = InstId; - explicit InstStore(File* file) : file_(file) {} + explicit InstStore(File* file, int32_t reserved_inst_ids); // Adds an instruction to the instruction list, returning an ID to reference // the instruction. Note that this doesn't add the instruction to any @@ -610,7 +610,8 @@ class InstStore { // Overwrites a given instruction's location with a new value. auto SetLocId(InstId inst_id, LocId loc_id) -> void { - loc_ids_[inst_id.index] = loc_id; + auto index = values_.GetRawIndex(inst_id); + loc_ids_[index] = loc_id; } // Overwrites a given instruction and location ID with a new value. @@ -641,6 +642,12 @@ class InstStore { return values_.enumerate(); } + auto GetRawIndex(InstId id) const -> int32_t { + return values_.GetRawIndex(id); + } + + auto GetIdTag() const -> IdTag { return values_.GetIdTag(); } + private: // Given a symbolic type, get the corresponding unattached type. auto GetUnattachedType(TypeId type_id) const -> TypeId; @@ -648,9 +655,10 @@ class InstStore { // Gets the specified location for an instruction, without performing any // canonicalization. auto GetNonCanonicalLocId(InstId inst_id) const -> LocId { - CARBON_CHECK(static_cast(inst_id.index) < loc_ids_.size(), - "{0} {1}", inst_id.index, loc_ids_.size()); - return loc_ids_[inst_id.index]; + auto index = values_.GetRawIndex(inst_id); + CARBON_CHECK(static_cast(index) < loc_ids_.size(), "{0} {1}", index, + loc_ids_.size()); + return loc_ids_[index]; } File* file_; diff --git a/toolchain/sem_ir/inst_fingerprinter.cpp b/toolchain/sem_ir/inst_fingerprinter.cpp index c474de20e8127..2912eecc8f8dc 100644 --- a/toolchain/sem_ir/inst_fingerprinter.cpp +++ b/toolchain/sem_ir/inst_fingerprinter.cpp @@ -60,7 +60,7 @@ struct Worklist { auto& store = fingerprints->Get(file->check_ir_id()); if (store.size() == 0) { store = FixedSizeValueStore::MakeWithExplicitSize( - file->insts().size(), 0); + file->insts().GetIdTag(), file->insts().size(), 0); } store.Set(inst_id, fingerprint ? fingerprint : 1); } diff --git a/toolchain/sem_ir/inst_namer.cpp b/toolchain/sem_ir/inst_namer.cpp index cf0304cac7f8c..271bed5eb152e 100644 --- a/toolchain/sem_ir/inst_namer.cpp +++ b/toolchain/sem_ir/inst_namer.cpp @@ -188,7 +188,8 @@ auto InstNamer::GetUnscopedNameFor(InstId inst_id) const -> llvm::StringRef { if (IsSingletonInstId(inst_id)) { return sem_ir_->insts().Get(inst_id).kind().ir_name(); } - const auto& inst_name = insts_[inst_id.index].second; + auto index = sem_ir_->insts().GetRawIndex(inst_id); + const auto& inst_name = insts_[index].second; return inst_name ? inst_name.GetFullName() : ""; } @@ -207,7 +208,8 @@ auto InstNamer::GetNameFor(ScopeId scope_id, InstId inst_id) const return "package"; } - const auto& [inst_scope, inst_name] = insts_[inst_id.index]; + auto index = sem_ir_->insts().GetRawIndex(inst_id); + const auto& [inst_scope, inst_name] = insts_[index]; if (!inst_name) { // This should not happen in valid IR. RawStringOstream out; @@ -576,9 +578,10 @@ auto InstNamer::PushEntity(ImplId impl_id, ScopeId scope_id, Scope& scope) llvm::StringRef self_name; auto self_const_id = sem_ir_->constant_values().GetConstantInstId(impl.self_id); + auto index = sem_ir_->insts().GetRawIndex(self_const_id); if (IsSingletonInstId(self_const_id)) { self_name = sem_ir_->insts().Get(self_const_id).kind().ir_name(); - } else if (const auto& inst_name = insts_[self_const_id.index].second) { + } else if (const auto& inst_name = insts_[index].second) { self_name = inst_name.GetBaseName(); } else { self_name = ""; @@ -638,7 +641,8 @@ InstNamer::NamingContext::NamingContext(InstNamer* inst_namer, inst_(sem_ir().insts().Get(inst_id)) {} auto InstNamer::NamingContext::AddInstName(std::string name) -> void { - ScopeId old_scope_id = inst_namer_->insts_[inst_id_.index].first; + auto index = sem_ir().insts().GetRawIndex(inst_id_); + ScopeId old_scope_id = inst_namer_->insts_[index].first; if (old_scope_id == ScopeId::None) { std::variant loc_id_or_fingerprint = LocId::None; if (scope_id_ == ScopeId::Constants || scope_id_ == ScopeId::Imports) { @@ -649,7 +653,7 @@ auto InstNamer::NamingContext::AddInstName(std::string name) -> void { } auto scoped_name = inst_namer_->GetScopeInfo(scope_id_).insts.AllocateName( *inst_namer_, loc_id_or_fingerprint, std::move(name)); - inst_namer_->insts_[inst_id_.index] = {scope_id_, scoped_name}; + inst_namer_->insts_[index] = {scope_id_, scoped_name}; } else { CARBON_CHECK(old_scope_id == scope_id_, "Attempting to name inst in multiple scopes"); @@ -971,7 +975,8 @@ auto InstNamer::NamingContext::NameInst() -> void { auto const_id = sem_ir().constant_values().Get(inst_id_); if (const_id.has_value() && const_id.is_concrete()) { auto const_inst_id = sem_ir().constant_values().GetInstId(const_id); - if (!inst_namer_->insts_[const_inst_id.index].second) { + auto index = sem_ir().insts().GetRawIndex(const_inst_id); + if (!inst_namer_->insts_[index].second) { inst_namer_->PushBlockInsts(ScopeId::Imports, const_inst_id); } } @@ -1172,4 +1177,9 @@ auto InstNamer::NamingContext::NameInst() -> void { } } +auto InstNamer::has_name(InstId inst_id) const -> bool { + return static_cast( + insts_[sem_ir_->insts().GetRawIndex(inst_id)].second); +} + } // namespace Carbon::SemIR diff --git a/toolchain/sem_ir/inst_namer.h b/toolchain/sem_ir/inst_namer.h index 56c3e93d52c65..76d2767efcb4b 100644 --- a/toolchain/sem_ir/inst_namer.h +++ b/toolchain/sem_ir/inst_namer.h @@ -93,9 +93,7 @@ class InstNamer { auto GetLabelFor(ScopeId scope_id, InstBlockId block_id) const -> std::string; // Returns true if the instruction has a specific name assigned. - auto has_name(InstId inst_id) const -> bool { - return static_cast(insts_[inst_id.index].second); - } + auto has_name(InstId inst_id) const -> bool; private: // A space in which unique names can be allocated. diff --git a/toolchain/sem_ir/yaml_test.cpp b/toolchain/sem_ir/yaml_test.cpp index 569aa51494fb3..280deb766cf95 100644 --- a/toolchain/sem_ir/yaml_test.cpp +++ b/toolchain/sem_ir/yaml_test.cpp @@ -47,12 +47,12 @@ TEST(SemIRTest, Yaml) { // Matches the ID of an instruction. Instruction counts may change as various // support changes, so this code is only doing loose structural checks. auto inst_block_id = Yaml::Scalar(MatchesRegex(R"(inst_block(\d+|_empty))")); - auto inst_id = Yaml::Scalar(MatchesRegex(R"(inst\d+)")); + auto inst_id = Yaml::Scalar(MatchesRegex(R"((ir\d+\.)?inst\d+)")); auto constant_id = - Yaml::Scalar(MatchesRegex(R"(concrete_constant\(inst(\w+|\+\d+)\))")); + Yaml::Scalar(MatchesRegex(R"(concrete_constant\((ir\d+\.)?inst\d+\))")); auto inst_builtin = Yaml::Scalar(MatchesRegex(R"(inst\(\w+\))")); - auto type_id = - Yaml::Scalar(MatchesRegex(R"(type\((\w+|inst\(\w+\)|inst\d+)\))")); + auto type_id = Yaml::Scalar( + MatchesRegex(R"(type\((\w+|inst\(\w+\)|(ir\d+\.)?inst\d+)\))")); auto type_builtin = Pair(type_id, Yaml::Mapping(_)); auto file = Yaml::Mapping(ElementsAre(