diff --git a/core/prelude/types.carbon b/core/prelude/types.carbon index 117ea267827f..4059033d35dd 100644 --- a/core/prelude/types.carbon +++ b/core/prelude/types.carbon @@ -7,12 +7,13 @@ package Core library "prelude/types"; export import library "prelude/types/bool"; export import library "prelude/types/char"; export import library "prelude/types/cpp/int"; +export import library "prelude/types/cpp/nullptr"; +export import library "prelude/types/cpp/void"; export import library "prelude/types/float"; export import library "prelude/types/float_literal"; export import library "prelude/types/int"; export import library "prelude/types/int_literal"; export import library "prelude/types/maybe_unformed"; -export import library "prelude/types/cpp/nullptr"; export import library "prelude/types/optional"; export import library "prelude/types/string"; export import library "prelude/types/uint"; diff --git a/core/prelude/types/cpp/nullptr.carbon b/core/prelude/types/cpp/nullptr.carbon index cd9a720a58c6..329e9e9d6c06 100644 --- a/core/prelude/types/cpp/nullptr.carbon +++ b/core/prelude/types/cpp/nullptr.carbon @@ -7,8 +7,9 @@ package Core library "prelude/types/cpp/nullptr"; import library "prelude/copy"; import library "prelude/destroy"; import library "prelude/operators/as"; -import library "prelude/types/optional"; +import library "prelude/types/cpp/void"; import library "prelude/types/maybe_unformed"; +import library "prelude/types/optional"; namespace CppCompat; @@ -26,7 +27,7 @@ class CppCompat.NullptrT { // nullptr_t has the same size and alignment as a pointer, but the // corresponding pointer is always unformed. // TODO: Give this type a custom empty value representation. - adapt MaybeUnformed(()*); + adapt MaybeUnformed(VoidBase*); fn Make() -> Self { returned var s: Self; diff --git a/core/prelude/types/cpp/void.carbon b/core/prelude/types/cpp/void.carbon new file mode 100644 index 000000000000..42ca32ce0b24 --- /dev/null +++ b/core/prelude/types/cpp/void.carbon @@ -0,0 +1,29 @@ +// Part of the Carbon Language project, under the Apache License v2.0 with LLVM +// Exceptions. See /LICENSE for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + +package Core library "prelude/types/cpp/void"; + +namespace CppCompat; + +// C++ `void` as a Carbon type. +// +// This type represents a notional "base-most" object at the root of every +// inheritance hierarchy. There are no objects of type `VoidType`, but any value +// can be converted to a value of type `VoidType`. +// +// This type is used as the default mapping for C++ `void`, which is used in +// most contexts in which `void` can appear: for example, as a pointee of a +// pointer type, as the type of a typedef, or as a type template argument. +// However, in a function signature, a `void` return type maps to `()` instead, +// and a `(void)` parameter list maps to `()`. +// +// This type is also available via the alias `Cpp.void`. +abstract class CppCompat.VoidBase { + adapt (); +} + +// TODO: An unqualified pointer to `T` should implicitly convert to a pointer to +// ` void` if `` includes all of the qualifiers for `T`. +// Similarly, a value of type `T` should implicitly convert to a value of type +// `void`. diff --git a/toolchain/check/cpp/import.cpp b/toolchain/check/cpp/import.cpp index 58087d387bb2..168083452962 100644 --- a/toolchain/check/cpp/import.cpp +++ b/toolchain/check/cpp/import.cpp @@ -1062,6 +1062,12 @@ static auto MakeIntType(Context& context, IntId size_id, bool is_signed) return ExprAsType(context, Parse::NodeId::None, type_inst_id); } +static auto MakeCppCompatType(Context& context, SemIR::LocId loc_id, + llvm::StringRef name) -> TypeExpr { + return ExprAsType(context, loc_id, + LookupNameInCore(context, loc_id, {"CppCompat", name})); +} + // Maps a C++ builtin integer type to a Carbon type. // TODO: Handle integer types that map to named aliases. static auto MapBuiltinIntegerType(Context& context, SemIR::LocId loc_id, @@ -1090,17 +1096,13 @@ static auto MapBuiltinIntegerType(Context& context, SemIR::LocId loc_id, } if (clang::ASTContext::hasSameType(qual_type, ast_context.LongTy) && width == 32) { - return ExprAsType(context, Parse::NodeId::None, - LookupNameInCore(context, Parse::NodeId::None, - {"CppCompat", "Long32"})); + return MakeCppCompatType(context, loc_id, "Long32"); } return TypeExpr::None; } static auto MapNullptrType(Context& context, SemIR::LocId loc_id) -> TypeExpr { - return ExprAsType( - context, loc_id, - LookupNameInCore(context, loc_id, {"CppCompat", "NullptrT"})); + return MakeCppCompatType(context, loc_id, "NullptrT"); } // Maps a C++ builtin type to a Carbon type. @@ -1129,8 +1131,7 @@ static auto MapBuiltinType(Context& context, SemIR::LocId loc_id, } // TODO: Handle floating-point types that map to named aliases. } else if (type.isVoidType()) { - return ExprAsType(context, Parse::NodeId::None, - SemIR::CppVoidType::TypeInstId); + return MakeCppCompatType(context, loc_id, "VoidBase"); } else if (type.isNullPtrType()) { return MapNullptrType(context, loc_id); } diff --git a/toolchain/check/cpp/type_mapping.cpp b/toolchain/check/cpp/type_mapping.cpp index 53490c3bb1ea..b99cce8884a0 100644 --- a/toolchain/check/cpp/type_mapping.cpp +++ b/toolchain/check/cpp/type_mapping.cpp @@ -161,6 +161,9 @@ static auto TryMapClassType(Context& context, SemIR::ClassType class_type) case SemIR::RecognizedTypeInfo::CppNullptrT: { return ast_context.NullPtrTy; } + case SemIR::RecognizedTypeInfo::CppVoidBase: { + return ast_context.VoidTy; + } case SemIR::RecognizedTypeInfo::Str: { return LookupCppType(context, {"std", "string_view"}); } @@ -207,33 +210,6 @@ static auto MapNonWrapperType(Context& context, SemIR::InstId inst_id, } } -// Returns `void*` if the type is a wrapped `Cpp.void*`, consuming the pointer -// from `wrapper_types`. Otherwise returns no type. -static auto TryMapVoidPointer(Context& context, SemIR::TypeId type_id, - llvm::SmallVector& wrapper_types) - -> clang::QualType { - if (type_id != SemIR::CppVoidType::TypeId || wrapper_types.empty()) { - return clang::QualType(); - } - - if (context.types().Is(wrapper_types.back())) { - // `void*`. - wrapper_types.pop_back(); - } else if (wrapper_types.size() >= 2 && - context.types().Is(wrapper_types.back()) && - context.types().Is( - wrapper_types[wrapper_types.size() - 2])) { - // `const void*`. - wrapper_types.erase(wrapper_types.end() - 2); - } else { - return clang::QualType(); - } - - return context.ast_context().getAttributedType( - clang::attr::TypeNonNull, context.ast_context().VoidPtrTy, - context.ast_context().VoidPtrTy); -} - // Maps a Carbon type to a C++ type. Accepts an InstId, representing a value // whose type is mapped to a C++ type. Returns `clang::QualType` if the mapping // succeeds, or `clang::QualType::isNull()` if the type is not supported. @@ -258,13 +234,9 @@ static auto MapToCppType(Context& context, SemIR::InstId inst_id) wrapper_types.push_back(orig_type_id); } - clang::QualType mapped_type = - TryMapVoidPointer(context, type_id, wrapper_types); + clang::QualType mapped_type = MapNonWrapperType(context, inst_id, type_id); if (mapped_type.isNull()) { - mapped_type = MapNonWrapperType(context, inst_id, type_id); - if (mapped_type.isNull()) { - return mapped_type; - } + return mapped_type; } for (auto wrapper_type_id : llvm::reverse(wrapper_types)) { diff --git a/toolchain/check/testdata/basics/raw_sem_ir/builtins.carbon b/toolchain/check/testdata/basics/raw_sem_ir/builtins.carbon index 67957a5d5834..0a9d713cad93 100644 --- a/toolchain/check/testdata/basics/raw_sem_ir/builtins.carbon +++ b/toolchain/check/testdata/basics/raw_sem_ir/builtins.carbon @@ -20,7 +20,7 @@ // CHECK:STDOUT: import_ir_insts: {} // CHECK:STDOUT: clang_decls: {} // CHECK:STDOUT: name_scopes: -// CHECK:STDOUT: name_scope0: {inst: instE, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope0: {inst: instD, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {}} // CHECK:STDOUT: entity_names: {} // CHECK:STDOUT: cpp_global_vars: {} // CHECK:STDOUT: functions: {} @@ -42,7 +42,6 @@ // CHECK:STDOUT: 'inst(BoolType)': {kind: BoolType, type: type(TypeType)} // CHECK:STDOUT: 'inst(BoundMethodType)': {kind: BoundMethodType, type: type(TypeType)} // CHECK:STDOUT: 'inst(CharLiteralType)': {kind: CharLiteralType, type: type(TypeType)} -// CHECK:STDOUT: 'inst(CppVoidType)': {kind: CppVoidType, type: type(TypeType)} // CHECK:STDOUT: 'inst(ErrorInst)': {kind: ErrorInst, type: type(Error)} // CHECK:STDOUT: 'inst(FloatLiteralType)': {kind: FloatLiteralType, type: type(TypeType)} // CHECK:STDOUT: 'inst(InstType)': {kind: InstType, type: type(TypeType)} @@ -51,7 +50,7 @@ // CHECK:STDOUT: 'inst(SpecificFunctionType)': {kind: SpecificFunctionType, type: type(TypeType)} // CHECK:STDOUT: 'inst(VtableType)': {kind: VtableType, type: type(TypeType)} // CHECK:STDOUT: 'inst(WitnessType)': {kind: WitnessType, type: type(TypeType)} -// CHECK:STDOUT: instE: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} +// CHECK:STDOUT: instD: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} // CHECK:STDOUT: constant_values: // CHECK:STDOUT: values: // CHECK:STDOUT: 'inst(TypeType)': concrete_constant(inst(TypeType)) @@ -59,7 +58,6 @@ // CHECK:STDOUT: 'inst(BoolType)': concrete_constant(inst(BoolType)) // CHECK:STDOUT: 'inst(BoundMethodType)': concrete_constant(inst(BoundMethodType)) // CHECK:STDOUT: 'inst(CharLiteralType)': concrete_constant(inst(CharLiteralType)) -// CHECK:STDOUT: 'inst(CppVoidType)': concrete_constant(inst(CppVoidType)) // CHECK:STDOUT: 'inst(ErrorInst)': concrete_constant(inst(ErrorInst)) // CHECK:STDOUT: 'inst(FloatLiteralType)': concrete_constant(inst(FloatLiteralType)) // CHECK:STDOUT: 'inst(InstType)': concrete_constant(inst(InstType)) @@ -68,7 +66,7 @@ // CHECK:STDOUT: 'inst(SpecificFunctionType)': concrete_constant(inst(SpecificFunctionType)) // CHECK:STDOUT: 'inst(VtableType)': concrete_constant(inst(VtableType)) // CHECK:STDOUT: 'inst(WitnessType)': concrete_constant(inst(WitnessType)) -// CHECK:STDOUT: instE: concrete_constant(instE) +// CHECK:STDOUT: instD: concrete_constant(instD) // CHECK:STDOUT: symbolic_constants: {} // CHECK:STDOUT: inst_blocks: // CHECK:STDOUT: inst_block_empty: {} @@ -76,5 +74,5 @@ // CHECK:STDOUT: imports: {} // CHECK:STDOUT: global_init: {} // CHECK:STDOUT: inst_block60000004: -// CHECK:STDOUT: 0: instE +// CHECK:STDOUT: 0: instD // CHECK:STDOUT: ... 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 d00a43ebdd63..22d6e909ce74 100644 --- a/toolchain/check/testdata/basics/raw_sem_ir/cpp_interop.carbon +++ b/toolchain/check/testdata/basics/raw_sem_ir/cpp_interop.carbon @@ -43,18 +43,18 @@ fn G(x: Cpp.X) { // CHECK:STDOUT: import_ir_inst1: {ir_id: import_ir(Cpp), clang_source_loc_id: clang_source_loc60000001} // CHECK:STDOUT: import_ir_inst2: {ir_id: import_ir(Cpp), clang_source_loc_id: clang_source_loc60000002} // CHECK:STDOUT: clang_decls: -// CHECK:STDOUT: clang_decl_id60000000: {key: "", inst_id: inst60000010} -// CHECK:STDOUT: clang_decl_id60000001: {key: "struct X {}", inst_id: inst60000013} -// CHECK:STDOUT: clang_decl_id60000002: {key: "X * _Nonnull p", inst_id: inst60000021} -// CHECK:STDOUT: clang_decl_id60000003: {key: {decl: "void f(X x = {})", num_params: 0}, inst_id: inst6000002C} -// CHECK:STDOUT: clang_decl_id60000004: {key: {decl: "extern void f__carbon_thunk()", num_params: 0}, inst_id: inst6000002F} -// CHECK:STDOUT: clang_decl_id60000005: {key: {decl: "void f(X x = {})", num_params: 1}, inst_id: inst6000003A} -// CHECK:STDOUT: clang_decl_id60000006: {key: {decl: "extern void f__carbon_thunk(X * _Nonnull x)", num_params: 1}, inst_id: inst60000042} -// CHECK:STDOUT: clang_decl_id60000007: {key: "X * _Nonnull global", inst_id: inst6000004B} +// CHECK:STDOUT: clang_decl_id60000000: {key: "", inst_id: inst6000000F} +// CHECK:STDOUT: clang_decl_id60000001: {key: "struct X {}", inst_id: inst60000012} +// CHECK:STDOUT: clang_decl_id60000002: {key: "X * _Nonnull p", inst_id: inst60000020} +// CHECK:STDOUT: clang_decl_id60000003: {key: {decl: "void f(X x = {})", num_params: 0}, inst_id: inst6000002B} +// CHECK:STDOUT: clang_decl_id60000004: {key: {decl: "extern void f__carbon_thunk()", num_params: 0}, inst_id: inst6000002E} +// CHECK:STDOUT: clang_decl_id60000005: {key: {decl: "void f(X x = {})", num_params: 1}, inst_id: inst60000039} +// CHECK:STDOUT: clang_decl_id60000006: {key: {decl: "extern void f__carbon_thunk(X * _Nonnull x)", num_params: 1}, inst_id: inst60000041} +// CHECK:STDOUT: clang_decl_id60000007: {key: "X * _Nonnull global", inst_id: inst6000004A} // CHECK:STDOUT: name_scopes: -// CHECK:STDOUT: name_scope0: {inst: instE, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name(Cpp): inst60000010, name0: inst6000001C}} -// CHECK:STDOUT: name_scope60000001: {inst: inst60000010, parent_scope: name_scope0, has_error: false, extended_scopes: [], names: {name2: inst60000013, name3: inst60000029, name4: inst6000004B}} -// CHECK:STDOUT: name_scope60000002: {inst: inst60000013, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope0: {inst: instD, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name(Cpp): inst6000000F, name0: inst6000001B}} +// CHECK:STDOUT: name_scope60000001: {inst: inst6000000F, parent_scope: name_scope0, has_error: false, extended_scopes: [], names: {name2: inst60000012, name3: inst60000028, name4: inst6000004A}} +// CHECK:STDOUT: name_scope60000002: {inst: inst60000012, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} // CHECK:STDOUT: entity_names: // CHECK:STDOUT: entity_name60000000: {name: name1, parent_scope: name_scope, index: -1, is_template: 0} // CHECK:STDOUT: entity_name60000001: {name: name1, parent_scope: name_scope, index: -1, is_template: 0} @@ -69,15 +69,15 @@ fn G(x: Cpp.X) { // CHECK:STDOUT: function60000003: {name: name3, parent_scope: name_scope60000001, call_params_id: inst_block6000000D} // CHECK:STDOUT: function60000004: {name: name6, parent_scope: name_scope60000001, call_params_id: inst_block60000012} // CHECK:STDOUT: classes: -// CHECK:STDOUT: class60000000: {name: name2, parent_scope: name_scope60000001, self_type_id: type(inst60000014), inheritance_kind: Base, is_dynamic: 0, scope_id: name_scope60000002, body_block_id: inst_block6000000A, adapt_id: inst, base_id: inst, complete_type_witness_id: inst60000024, vtable_decl_id: inst}} +// CHECK:STDOUT: class60000000: {name: name2, parent_scope: name_scope60000001, self_type_id: type(inst60000013), inheritance_kind: Base, is_dynamic: 0, scope_id: name_scope60000002, body_block_id: inst_block6000000A, adapt_id: inst, base_id: inst, complete_type_witness_id: inst60000023, vtable_decl_id: inst}} // CHECK:STDOUT: generics: {} // CHECK:STDOUT: specifics: {} // CHECK:STDOUT: struct_type_fields: // CHECK:STDOUT: struct_type_fields_empty: {} // CHECK:STDOUT: struct_type_fields60000001: -// CHECK:STDOUT: 0: {name_id: name5, type_inst_id: inst6000001F} +// CHECK:STDOUT: 0: {name_id: name5, type_inst_id: inst6000001E} // CHECK:STDOUT: struct_type_fields60000002: -// CHECK:STDOUT: 0: {name_id: name5, type_inst_id: inst6000001F} +// CHECK:STDOUT: 0: {name_id: name5, type_inst_id: inst6000001E} // CHECK:STDOUT: types: // CHECK:STDOUT: 'type(TypeType)': // CHECK:STDOUT: value_repr: {kind: copy, type: type(TypeType)} @@ -86,38 +86,37 @@ fn G(x: Cpp.X) { // CHECK:STDOUT: 'type(inst(NamespaceType))': // CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(NamespaceType))} // CHECK:STDOUT: 'type(inst(InstType))': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000012)} -// CHECK:STDOUT: 'type(inst60000012)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000012)} -// CHECK:STDOUT: 'type(inst6000001D)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000012)} -// CHECK:STDOUT: 'type(inst6000001F)': -// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst6000001F)} +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000011)} +// CHECK:STDOUT: 'type(inst60000011)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000011)} +// CHECK:STDOUT: 'type(inst6000001C)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000011)} +// CHECK:STDOUT: 'type(inst6000001E)': +// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst6000001E)} // CHECK:STDOUT: 'type(inst(WitnessType))': // CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(WitnessType))} -// CHECK:STDOUT: 'type(inst60000026)': -// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst60000026)} -// CHECK:STDOUT: 'type(inst60000023)': -// CHECK:STDOUT: value_repr: {kind: pointer, type: type(inst60000026)} -// CHECK:STDOUT: 'type(inst60000014)': -// CHECK:STDOUT: value_repr: {kind: pointer, type: type(inst60000026)} -// CHECK:STDOUT: 'type(inst60000028)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000012)} -// CHECK:STDOUT: 'type(inst6000002D)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000012)} -// CHECK:STDOUT: 'type(inst60000030)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000012)} -// CHECK:STDOUT: 'type(inst6000003B)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000012)} -// CHECK:STDOUT: 'type(inst60000043)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000012)} +// CHECK:STDOUT: 'type(inst60000025)': +// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst60000025)} +// CHECK:STDOUT: 'type(inst60000022)': +// CHECK:STDOUT: value_repr: {kind: pointer, type: type(inst60000025)} +// CHECK:STDOUT: 'type(inst60000013)': +// CHECK:STDOUT: value_repr: {kind: pointer, type: type(inst60000025)} +// CHECK:STDOUT: 'type(inst60000027)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000011)} +// CHECK:STDOUT: 'type(inst6000002C)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000011)} +// CHECK:STDOUT: 'type(inst6000002F)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000011)} +// CHECK:STDOUT: 'type(inst6000003A)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000011)} +// CHECK:STDOUT: 'type(inst60000042)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000011)} // CHECK:STDOUT: insts: // CHECK:STDOUT: 'inst(TypeType)': {kind: TypeType, type: type(TypeType)} // CHECK:STDOUT: 'inst(AutoType)': {kind: AutoType, type: type(TypeType)} // CHECK:STDOUT: 'inst(BoolType)': {kind: BoolType, type: type(TypeType)} // CHECK:STDOUT: 'inst(BoundMethodType)': {kind: BoundMethodType, type: type(TypeType)} // CHECK:STDOUT: 'inst(CharLiteralType)': {kind: CharLiteralType, type: type(TypeType)} -// CHECK:STDOUT: 'inst(CppVoidType)': {kind: CppVoidType, type: type(TypeType)} // CHECK:STDOUT: 'inst(ErrorInst)': {kind: ErrorInst, type: type(Error)} // CHECK:STDOUT: 'inst(FloatLiteralType)': {kind: FloatLiteralType, type: type(TypeType)} // CHECK:STDOUT: 'inst(InstType)': {kind: InstType, type: type(TypeType)} @@ -126,79 +125,79 @@ fn G(x: Cpp.X) { // CHECK:STDOUT: 'inst(SpecificFunctionType)': {kind: SpecificFunctionType, type: type(TypeType)} // CHECK:STDOUT: 'inst(VtableType)': {kind: VtableType, type: type(TypeType)} // CHECK:STDOUT: 'inst(WitnessType)': {kind: WitnessType, type: type(TypeType)} -// CHECK:STDOUT: instE: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst6000000F: {kind: ImportCppDecl} -// CHECK:STDOUT: inst60000010: {kind: Namespace, arg0: name_scope60000001, arg1: inst6000000F, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst60000011: {kind: NameRef, arg0: name(Cpp), arg1: inst60000010, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst60000012: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)} -// CHECK:STDOUT: inst60000013: {kind: ClassDecl, arg0: class60000000, arg1: inst_block, type: type(TypeType)} -// CHECK:STDOUT: inst60000014: {kind: ClassType, arg0: class60000000, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst60000015: {kind: NameRef, arg0: name2, arg1: inst60000013, type: type(TypeType)} -// CHECK:STDOUT: inst60000016: {kind: ValueBinding, arg0: entity_name60000000, arg1: inst6000001A, type: type(inst60000014)} -// CHECK:STDOUT: inst60000017: {kind: PatternType, arg0: inst60000014, type: type(TypeType)} -// CHECK:STDOUT: inst60000018: {kind: ValueBindingPattern, arg0: entity_name60000000, type: type(inst60000017)} -// CHECK:STDOUT: inst60000019: {kind: ValueParamPattern, arg0: inst60000018, arg1: call_param0, type: type(inst60000017)} -// CHECK:STDOUT: inst6000001A: {kind: ValueParam, arg0: call_param0, arg1: name1, type: type(inst60000014)} -// CHECK:STDOUT: inst6000001B: {kind: SpliceBlock, arg0: inst_block60000004, arg1: inst60000015, type: type(TypeType)} -// CHECK:STDOUT: inst6000001C: {kind: FunctionDecl, arg0: function60000000, arg1: inst_block60000008, type: type(inst6000001D)} -// CHECK:STDOUT: inst6000001D: {kind: FunctionType, arg0: function60000000, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst6000001E: {kind: StructValue, arg0: inst_block_empty, type: type(inst6000001D)} -// CHECK:STDOUT: inst6000001F: {kind: PointerType, arg0: inst60000014, type: type(TypeType)} -// CHECK:STDOUT: inst60000020: {kind: UnboundElementType, arg0: inst60000014, arg1: inst6000001F, type: type(TypeType)} -// CHECK:STDOUT: inst60000021: {kind: FieldDecl, arg0: name5, arg1: element0, type: type(inst60000020)} -// CHECK:STDOUT: inst60000022: {kind: CustomLayoutType, arg0: struct_type_fields60000001, arg1: custom_layout60000001, type: type(TypeType)} -// CHECK:STDOUT: inst60000023: {kind: CustomLayoutType, arg0: struct_type_fields60000002, arg1: custom_layout60000001, type: type(TypeType)} +// CHECK:STDOUT: instD: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} +// CHECK:STDOUT: inst6000000E: {kind: ImportCppDecl} +// CHECK:STDOUT: inst6000000F: {kind: Namespace, arg0: name_scope60000001, arg1: inst6000000E, type: type(inst(NamespaceType))} +// CHECK:STDOUT: inst60000010: {kind: NameRef, arg0: name(Cpp), arg1: inst6000000F, type: type(inst(NamespaceType))} +// CHECK:STDOUT: inst60000011: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)} +// CHECK:STDOUT: inst60000012: {kind: ClassDecl, arg0: class60000000, arg1: inst_block, type: type(TypeType)} +// CHECK:STDOUT: inst60000013: {kind: ClassType, arg0: class60000000, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: inst60000014: {kind: NameRef, arg0: name2, arg1: inst60000012, type: type(TypeType)} +// CHECK:STDOUT: inst60000015: {kind: ValueBinding, arg0: entity_name60000000, arg1: inst60000019, type: type(inst60000013)} +// CHECK:STDOUT: inst60000016: {kind: PatternType, arg0: inst60000013, type: type(TypeType)} +// CHECK:STDOUT: inst60000017: {kind: ValueBindingPattern, arg0: entity_name60000000, type: type(inst60000016)} +// CHECK:STDOUT: inst60000018: {kind: ValueParamPattern, arg0: inst60000017, arg1: call_param0, type: type(inst60000016)} +// CHECK:STDOUT: inst60000019: {kind: ValueParam, arg0: call_param0, arg1: name1, type: type(inst60000013)} +// CHECK:STDOUT: inst6000001A: {kind: SpliceBlock, arg0: inst_block60000004, arg1: inst60000014, type: type(TypeType)} +// CHECK:STDOUT: inst6000001B: {kind: FunctionDecl, arg0: function60000000, arg1: inst_block60000008, type: type(inst6000001C)} +// CHECK:STDOUT: inst6000001C: {kind: FunctionType, arg0: function60000000, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: inst6000001D: {kind: StructValue, arg0: inst_block_empty, type: type(inst6000001C)} +// CHECK:STDOUT: inst6000001E: {kind: PointerType, arg0: inst60000013, type: type(TypeType)} +// CHECK:STDOUT: inst6000001F: {kind: UnboundElementType, arg0: inst60000013, arg1: inst6000001E, type: type(TypeType)} +// CHECK:STDOUT: inst60000020: {kind: FieldDecl, arg0: name5, arg1: element0, type: type(inst6000001F)} +// CHECK:STDOUT: inst60000021: {kind: CustomLayoutType, arg0: struct_type_fields60000001, arg1: custom_layout60000001, type: type(TypeType)} +// CHECK:STDOUT: inst60000022: {kind: CustomLayoutType, arg0: struct_type_fields60000002, arg1: custom_layout60000001, type: type(TypeType)} +// CHECK:STDOUT: inst60000023: {kind: CompleteTypeWitness, arg0: inst60000021, type: type(inst(WitnessType))} // CHECK:STDOUT: inst60000024: {kind: CompleteTypeWitness, arg0: inst60000022, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000025: {kind: CompleteTypeWitness, arg0: inst60000023, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000026: {kind: PointerType, arg0: inst60000023, type: type(TypeType)} -// CHECK:STDOUT: inst60000027: {kind: NameRef, arg0: name(Cpp), arg1: inst60000010, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst60000028: {kind: CppOverloadSetType, arg0: cpp_overload_set60000000, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst60000029: {kind: CppOverloadSetValue, arg0: cpp_overload_set60000000, type: type(inst60000028)} -// CHECK:STDOUT: inst6000002A: {kind: CppOverloadSetValue, arg0: cpp_overload_set60000000, type: type(inst60000028)} -// CHECK:STDOUT: inst6000002B: {kind: NameRef, arg0: name3, arg1: inst60000029, type: type(inst60000028)} -// CHECK:STDOUT: inst6000002C: {kind: FunctionDecl, arg0: function60000001, arg1: inst_block_empty, type: type(inst6000002D)} -// CHECK:STDOUT: inst6000002D: {kind: FunctionType, arg0: function60000001, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst6000002E: {kind: StructValue, arg0: inst_block_empty, type: type(inst6000002D)} -// CHECK:STDOUT: inst6000002F: {kind: FunctionDecl, arg0: function60000002, arg1: inst_block_empty, type: type(inst60000030)} -// CHECK:STDOUT: inst60000030: {kind: FunctionType, arg0: function60000002, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst60000031: {kind: StructValue, arg0: inst_block_empty, type: type(inst60000030)} -// CHECK:STDOUT: inst60000032: {kind: Call, arg0: inst6000002F, arg1: inst_block_empty, type: type(inst60000012)} -// CHECK:STDOUT: inst60000033: {kind: NameRef, arg0: name(Cpp), arg1: inst60000010, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst60000034: {kind: NameRef, arg0: name3, arg1: inst60000029, type: type(inst60000028)} -// CHECK:STDOUT: inst60000035: {kind: NameRef, arg0: name1, arg1: inst60000016, type: type(inst60000014)} -// CHECK:STDOUT: inst60000036: {kind: ValueBinding, arg0: entity_name60000001, arg1: inst60000039, type: type(inst60000014)} -// CHECK:STDOUT: inst60000037: {kind: ValueBindingPattern, arg0: entity_name60000001, type: type(inst60000017)} -// CHECK:STDOUT: inst60000038: {kind: ValueParamPattern, arg0: inst60000037, arg1: call_param0, type: type(inst60000017)} -// CHECK:STDOUT: inst60000039: {kind: ValueParam, arg0: call_param0, arg1: name1, type: type(inst60000014)} -// CHECK:STDOUT: inst6000003A: {kind: FunctionDecl, arg0: function60000003, arg1: inst_block6000000F, type: type(inst6000003B)} -// CHECK:STDOUT: inst6000003B: {kind: FunctionType, arg0: function60000003, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst6000003C: {kind: StructValue, arg0: inst_block_empty, type: type(inst6000003B)} -// CHECK:STDOUT: inst6000003D: {kind: ValueBinding, arg0: entity_name60000002, arg1: inst60000041, type: type(inst6000001F)} -// CHECK:STDOUT: inst6000003E: {kind: PatternType, arg0: inst6000001F, type: type(TypeType)} -// CHECK:STDOUT: inst6000003F: {kind: ValueBindingPattern, arg0: entity_name60000002, type: type(inst6000003E)} -// CHECK:STDOUT: inst60000040: {kind: ValueParamPattern, arg0: inst6000003F, arg1: call_param0, type: type(inst6000003E)} -// CHECK:STDOUT: inst60000041: {kind: ValueParam, arg0: call_param0, arg1: name1, type: type(inst6000001F)} -// CHECK:STDOUT: inst60000042: {kind: FunctionDecl, arg0: function60000004, arg1: inst_block60000014, type: type(inst60000043)} -// CHECK:STDOUT: inst60000043: {kind: FunctionType, arg0: function60000004, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst60000044: {kind: StructValue, arg0: inst_block_empty, type: type(inst60000043)} -// CHECK:STDOUT: inst60000045: {kind: ValueAsRef, arg0: inst60000035, type: type(inst60000014)} -// CHECK:STDOUT: inst60000046: {kind: AddrOf, arg0: inst60000045, type: type(inst6000001F)} -// CHECK:STDOUT: inst60000047: {kind: Call, arg0: inst60000042, arg1: inst_block60000016, type: type(inst60000012)} -// CHECK:STDOUT: inst60000048: {kind: NameRef, arg0: name(Cpp), arg1: inst60000010, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst60000049: {kind: NameRef, arg0: name3, arg1: inst60000029, type: type(inst60000028)} -// CHECK:STDOUT: inst6000004A: {kind: NameRef, arg0: name(Cpp), arg1: inst60000010, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst6000004B: {kind: VarStorage, arg0: inst6000004D, type: type(inst6000001F)} -// CHECK:STDOUT: inst6000004C: {kind: RefBindingPattern, arg0: entity_name60000003, type: type(inst6000003E)} -// CHECK:STDOUT: inst6000004D: {kind: VarPattern, arg0: inst6000004C, type: type(inst6000003E)} -// CHECK:STDOUT: inst6000004E: {kind: NameBindingDecl, arg0: inst_block60000017} -// CHECK:STDOUT: inst6000004F: {kind: NameRef, arg0: name4, arg1: inst6000004B, type: type(inst6000001F)} -// CHECK:STDOUT: inst60000050: {kind: AcquireValue, arg0: inst6000004F, type: type(inst6000001F)} -// CHECK:STDOUT: inst60000051: {kind: Deref, arg0: inst60000050, type: type(inst60000014)} -// CHECK:STDOUT: inst60000052: {kind: AcquireValue, arg0: inst60000051, type: type(inst60000014)} -// CHECK:STDOUT: inst60000053: {kind: ValueAsRef, arg0: inst60000052, type: type(inst60000014)} -// CHECK:STDOUT: inst60000054: {kind: AddrOf, arg0: inst60000053, type: type(inst6000001F)} -// CHECK:STDOUT: inst60000055: {kind: Call, arg0: inst60000042, arg1: inst_block60000019, type: type(inst60000012)} -// CHECK:STDOUT: inst60000056: {kind: Return} +// CHECK:STDOUT: inst60000025: {kind: PointerType, arg0: inst60000022, type: type(TypeType)} +// CHECK:STDOUT: inst60000026: {kind: NameRef, arg0: name(Cpp), arg1: inst6000000F, type: type(inst(NamespaceType))} +// CHECK:STDOUT: inst60000027: {kind: CppOverloadSetType, arg0: cpp_overload_set60000000, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: inst60000028: {kind: CppOverloadSetValue, arg0: cpp_overload_set60000000, type: type(inst60000027)} +// CHECK:STDOUT: inst60000029: {kind: CppOverloadSetValue, arg0: cpp_overload_set60000000, type: type(inst60000027)} +// CHECK:STDOUT: inst6000002A: {kind: NameRef, arg0: name3, arg1: inst60000028, type: type(inst60000027)} +// CHECK:STDOUT: inst6000002B: {kind: FunctionDecl, arg0: function60000001, arg1: inst_block_empty, type: type(inst6000002C)} +// CHECK:STDOUT: inst6000002C: {kind: FunctionType, arg0: function60000001, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: inst6000002D: {kind: StructValue, arg0: inst_block_empty, type: type(inst6000002C)} +// CHECK:STDOUT: inst6000002E: {kind: FunctionDecl, arg0: function60000002, arg1: inst_block_empty, type: type(inst6000002F)} +// CHECK:STDOUT: inst6000002F: {kind: FunctionType, arg0: function60000002, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: inst60000030: {kind: StructValue, arg0: inst_block_empty, type: type(inst6000002F)} +// CHECK:STDOUT: inst60000031: {kind: Call, arg0: inst6000002E, arg1: inst_block_empty, type: type(inst60000011)} +// CHECK:STDOUT: inst60000032: {kind: NameRef, arg0: name(Cpp), arg1: inst6000000F, type: type(inst(NamespaceType))} +// CHECK:STDOUT: inst60000033: {kind: NameRef, arg0: name3, arg1: inst60000028, type: type(inst60000027)} +// CHECK:STDOUT: inst60000034: {kind: NameRef, arg0: name1, arg1: inst60000015, type: type(inst60000013)} +// CHECK:STDOUT: inst60000035: {kind: ValueBinding, arg0: entity_name60000001, arg1: inst60000038, type: type(inst60000013)} +// CHECK:STDOUT: inst60000036: {kind: ValueBindingPattern, arg0: entity_name60000001, type: type(inst60000016)} +// CHECK:STDOUT: inst60000037: {kind: ValueParamPattern, arg0: inst60000036, arg1: call_param0, type: type(inst60000016)} +// CHECK:STDOUT: inst60000038: {kind: ValueParam, arg0: call_param0, arg1: name1, type: type(inst60000013)} +// CHECK:STDOUT: inst60000039: {kind: FunctionDecl, arg0: function60000003, arg1: inst_block6000000F, type: type(inst6000003A)} +// CHECK:STDOUT: inst6000003A: {kind: FunctionType, arg0: function60000003, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: inst6000003B: {kind: StructValue, arg0: inst_block_empty, type: type(inst6000003A)} +// CHECK:STDOUT: inst6000003C: {kind: ValueBinding, arg0: entity_name60000002, arg1: inst60000040, type: type(inst6000001E)} +// CHECK:STDOUT: inst6000003D: {kind: PatternType, arg0: inst6000001E, type: type(TypeType)} +// CHECK:STDOUT: inst6000003E: {kind: ValueBindingPattern, arg0: entity_name60000002, type: type(inst6000003D)} +// CHECK:STDOUT: inst6000003F: {kind: ValueParamPattern, arg0: inst6000003E, arg1: call_param0, type: type(inst6000003D)} +// CHECK:STDOUT: inst60000040: {kind: ValueParam, arg0: call_param0, arg1: name1, type: type(inst6000001E)} +// CHECK:STDOUT: inst60000041: {kind: FunctionDecl, arg0: function60000004, arg1: inst_block60000014, type: type(inst60000042)} +// CHECK:STDOUT: inst60000042: {kind: FunctionType, arg0: function60000004, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: inst60000043: {kind: StructValue, arg0: inst_block_empty, type: type(inst60000042)} +// CHECK:STDOUT: inst60000044: {kind: ValueAsRef, arg0: inst60000034, type: type(inst60000013)} +// CHECK:STDOUT: inst60000045: {kind: AddrOf, arg0: inst60000044, type: type(inst6000001E)} +// CHECK:STDOUT: inst60000046: {kind: Call, arg0: inst60000041, arg1: inst_block60000016, type: type(inst60000011)} +// CHECK:STDOUT: inst60000047: {kind: NameRef, arg0: name(Cpp), arg1: inst6000000F, type: type(inst(NamespaceType))} +// CHECK:STDOUT: inst60000048: {kind: NameRef, arg0: name3, arg1: inst60000028, type: type(inst60000027)} +// CHECK:STDOUT: inst60000049: {kind: NameRef, arg0: name(Cpp), arg1: inst6000000F, type: type(inst(NamespaceType))} +// CHECK:STDOUT: inst6000004A: {kind: VarStorage, arg0: inst6000004C, type: type(inst6000001E)} +// CHECK:STDOUT: inst6000004B: {kind: RefBindingPattern, arg0: entity_name60000003, type: type(inst6000003D)} +// CHECK:STDOUT: inst6000004C: {kind: VarPattern, arg0: inst6000004B, type: type(inst6000003D)} +// CHECK:STDOUT: inst6000004D: {kind: NameBindingDecl, arg0: inst_block60000017} +// CHECK:STDOUT: inst6000004E: {kind: NameRef, arg0: name4, arg1: inst6000004A, type: type(inst6000001E)} +// CHECK:STDOUT: inst6000004F: {kind: AcquireValue, arg0: inst6000004E, type: type(inst6000001E)} +// CHECK:STDOUT: inst60000050: {kind: Deref, arg0: inst6000004F, type: type(inst60000013)} +// CHECK:STDOUT: inst60000051: {kind: AcquireValue, arg0: inst60000050, type: type(inst60000013)} +// CHECK:STDOUT: inst60000052: {kind: ValueAsRef, arg0: inst60000051, type: type(inst60000013)} +// CHECK:STDOUT: inst60000053: {kind: AddrOf, arg0: inst60000052, type: type(inst6000001E)} +// CHECK:STDOUT: inst60000054: {kind: Call, arg0: inst60000041, arg1: inst_block60000019, type: type(inst60000011)} +// CHECK:STDOUT: inst60000055: {kind: Return} // CHECK:STDOUT: constant_values: // CHECK:STDOUT: values: // CHECK:STDOUT: 'inst(TypeType)': concrete_constant(inst(TypeType)) @@ -206,7 +205,6 @@ fn G(x: Cpp.X) { // CHECK:STDOUT: 'inst(BoolType)': concrete_constant(inst(BoolType)) // CHECK:STDOUT: 'inst(BoundMethodType)': concrete_constant(inst(BoundMethodType)) // CHECK:STDOUT: 'inst(CharLiteralType)': concrete_constant(inst(CharLiteralType)) -// CHECK:STDOUT: 'inst(CppVoidType)': concrete_constant(inst(CppVoidType)) // CHECK:STDOUT: 'inst(ErrorInst)': concrete_constant(inst(ErrorInst)) // CHECK:STDOUT: 'inst(FloatLiteralType)': concrete_constant(inst(FloatLiteralType)) // CHECK:STDOUT: 'inst(InstType)': concrete_constant(inst(InstType)) @@ -215,149 +213,149 @@ fn G(x: Cpp.X) { // CHECK:STDOUT: 'inst(SpecificFunctionType)': concrete_constant(inst(SpecificFunctionType)) // CHECK:STDOUT: 'inst(VtableType)': concrete_constant(inst(VtableType)) // CHECK:STDOUT: 'inst(WitnessType)': concrete_constant(inst(WitnessType)) -// CHECK:STDOUT: instE: concrete_constant(instE) -// CHECK:STDOUT: inst60000010: concrete_constant(inst60000010) -// CHECK:STDOUT: inst60000011: concrete_constant(inst60000010) -// CHECK:STDOUT: inst60000012: concrete_constant(inst60000012) -// CHECK:STDOUT: inst60000013: concrete_constant(inst60000014) -// CHECK:STDOUT: inst60000014: concrete_constant(inst60000014) -// CHECK:STDOUT: inst60000015: concrete_constant(inst60000014) +// CHECK:STDOUT: instD: concrete_constant(instD) +// CHECK:STDOUT: inst6000000F: concrete_constant(inst6000000F) +// CHECK:STDOUT: inst60000010: concrete_constant(inst6000000F) +// CHECK:STDOUT: inst60000011: concrete_constant(inst60000011) +// CHECK:STDOUT: inst60000012: concrete_constant(inst60000013) +// CHECK:STDOUT: inst60000013: concrete_constant(inst60000013) +// CHECK:STDOUT: inst60000014: concrete_constant(inst60000013) +// CHECK:STDOUT: inst60000016: concrete_constant(inst60000016) // CHECK:STDOUT: inst60000017: concrete_constant(inst60000017) // CHECK:STDOUT: inst60000018: concrete_constant(inst60000018) -// CHECK:STDOUT: inst60000019: concrete_constant(inst60000019) -// CHECK:STDOUT: inst6000001B: concrete_constant(inst60000014) -// CHECK:STDOUT: inst6000001C: concrete_constant(inst6000001E) +// CHECK:STDOUT: inst6000001A: concrete_constant(inst60000013) +// CHECK:STDOUT: inst6000001B: concrete_constant(inst6000001D) +// CHECK:STDOUT: inst6000001C: concrete_constant(inst6000001C) // CHECK:STDOUT: inst6000001D: concrete_constant(inst6000001D) // CHECK:STDOUT: inst6000001E: concrete_constant(inst6000001E) // CHECK:STDOUT: inst6000001F: concrete_constant(inst6000001F) // CHECK:STDOUT: inst60000020: concrete_constant(inst60000020) -// CHECK:STDOUT: inst60000021: concrete_constant(inst60000021) -// CHECK:STDOUT: inst60000022: concrete_constant(inst60000023) -// CHECK:STDOUT: inst60000023: concrete_constant(inst60000023) -// CHECK:STDOUT: inst60000024: concrete_constant(inst60000025) +// CHECK:STDOUT: inst60000021: concrete_constant(inst60000022) +// CHECK:STDOUT: inst60000022: concrete_constant(inst60000022) +// CHECK:STDOUT: inst60000023: concrete_constant(inst60000024) +// CHECK:STDOUT: inst60000024: concrete_constant(inst60000024) // CHECK:STDOUT: inst60000025: concrete_constant(inst60000025) -// CHECK:STDOUT: inst60000026: concrete_constant(inst60000026) -// CHECK:STDOUT: inst60000027: concrete_constant(inst60000010) -// CHECK:STDOUT: inst60000028: concrete_constant(inst60000028) -// CHECK:STDOUT: inst60000029: concrete_constant(inst6000002A) -// CHECK:STDOUT: inst6000002A: concrete_constant(inst6000002A) -// CHECK:STDOUT: inst6000002B: concrete_constant(inst6000002A) -// CHECK:STDOUT: inst6000002C: concrete_constant(inst6000002E) +// CHECK:STDOUT: inst60000026: concrete_constant(inst6000000F) +// CHECK:STDOUT: inst60000027: concrete_constant(inst60000027) +// CHECK:STDOUT: inst60000028: concrete_constant(inst60000029) +// CHECK:STDOUT: inst60000029: concrete_constant(inst60000029) +// CHECK:STDOUT: inst6000002A: concrete_constant(inst60000029) +// CHECK:STDOUT: inst6000002B: concrete_constant(inst6000002D) +// CHECK:STDOUT: inst6000002C: concrete_constant(inst6000002C) // CHECK:STDOUT: inst6000002D: concrete_constant(inst6000002D) -// CHECK:STDOUT: inst6000002E: concrete_constant(inst6000002E) -// CHECK:STDOUT: inst6000002F: concrete_constant(inst60000031) +// CHECK:STDOUT: inst6000002E: concrete_constant(inst60000030) +// CHECK:STDOUT: inst6000002F: concrete_constant(inst6000002F) // CHECK:STDOUT: inst60000030: concrete_constant(inst60000030) -// CHECK:STDOUT: inst60000031: concrete_constant(inst60000031) -// CHECK:STDOUT: inst60000033: concrete_constant(inst60000010) -// CHECK:STDOUT: inst60000034: concrete_constant(inst6000002A) +// CHECK:STDOUT: inst60000032: concrete_constant(inst6000000F) +// CHECK:STDOUT: inst60000033: concrete_constant(inst60000029) +// CHECK:STDOUT: inst60000036: concrete_constant(inst60000036) // CHECK:STDOUT: inst60000037: concrete_constant(inst60000037) -// CHECK:STDOUT: inst60000038: concrete_constant(inst60000038) -// CHECK:STDOUT: inst6000003A: concrete_constant(inst6000003C) +// CHECK:STDOUT: inst60000039: concrete_constant(inst6000003B) +// CHECK:STDOUT: inst6000003A: concrete_constant(inst6000003A) // CHECK:STDOUT: inst6000003B: concrete_constant(inst6000003B) -// CHECK:STDOUT: inst6000003C: concrete_constant(inst6000003C) +// CHECK:STDOUT: inst6000003D: concrete_constant(inst6000003D) // CHECK:STDOUT: inst6000003E: concrete_constant(inst6000003E) // CHECK:STDOUT: inst6000003F: concrete_constant(inst6000003F) -// CHECK:STDOUT: inst60000040: concrete_constant(inst60000040) -// CHECK:STDOUT: inst60000042: concrete_constant(inst60000044) +// CHECK:STDOUT: inst60000041: concrete_constant(inst60000043) +// CHECK:STDOUT: inst60000042: concrete_constant(inst60000042) // CHECK:STDOUT: inst60000043: concrete_constant(inst60000043) -// CHECK:STDOUT: inst60000044: concrete_constant(inst60000044) -// CHECK:STDOUT: inst60000048: concrete_constant(inst60000010) -// CHECK:STDOUT: inst60000049: concrete_constant(inst6000002A) -// CHECK:STDOUT: inst6000004A: concrete_constant(inst60000010) +// CHECK:STDOUT: inst60000047: concrete_constant(inst6000000F) +// CHECK:STDOUT: inst60000048: concrete_constant(inst60000029) +// CHECK:STDOUT: inst60000049: concrete_constant(inst6000000F) +// CHECK:STDOUT: inst6000004A: concrete_constant(inst6000004A) // CHECK:STDOUT: inst6000004B: concrete_constant(inst6000004B) // CHECK:STDOUT: inst6000004C: concrete_constant(inst6000004C) -// CHECK:STDOUT: inst6000004D: concrete_constant(inst6000004D) -// CHECK:STDOUT: inst6000004F: concrete_constant(inst6000004B) +// CHECK:STDOUT: inst6000004E: concrete_constant(inst6000004A) // CHECK:STDOUT: symbolic_constants: {} // CHECK:STDOUT: inst_blocks: // CHECK:STDOUT: inst_block_empty: {} // CHECK:STDOUT: exports: -// CHECK:STDOUT: 0: inst6000001C +// CHECK:STDOUT: 0: inst6000001B // CHECK:STDOUT: imports: -// CHECK:STDOUT: 0: inst60000010 -// CHECK:STDOUT: 1: inst60000013 -// CHECK:STDOUT: 2: inst60000029 -// CHECK:STDOUT: 3: inst6000002C -// CHECK:STDOUT: 4: inst6000002F -// CHECK:STDOUT: 5: inst6000003A -// CHECK:STDOUT: 6: inst60000042 -// CHECK:STDOUT: 7: inst6000004B -// CHECK:STDOUT: 8: inst6000004E +// CHECK:STDOUT: 0: inst6000000F +// CHECK:STDOUT: 1: inst60000012 +// CHECK:STDOUT: 2: inst60000028 +// CHECK:STDOUT: 3: inst6000002B +// CHECK:STDOUT: 4: inst6000002E +// CHECK:STDOUT: 5: inst60000039 +// CHECK:STDOUT: 6: inst60000041 +// CHECK:STDOUT: 7: inst6000004A +// CHECK:STDOUT: 8: inst6000004D // CHECK:STDOUT: global_init: {} // CHECK:STDOUT: inst_block60000004: -// CHECK:STDOUT: 0: inst60000011 -// CHECK:STDOUT: 1: inst60000015 +// CHECK:STDOUT: 0: inst60000010 +// CHECK:STDOUT: 1: inst60000014 // CHECK:STDOUT: inst_block60000005: -// CHECK:STDOUT: 0: inst60000019 -// CHECK:STDOUT: inst_block60000006: -// CHECK:STDOUT: 0: inst6000001A -// CHECK:STDOUT: inst_block60000007: // CHECK:STDOUT: 0: inst60000018 -// CHECK:STDOUT: 1: inst60000019 +// CHECK:STDOUT: inst_block60000006: +// CHECK:STDOUT: 0: inst60000019 +// CHECK:STDOUT: inst_block60000007: +// CHECK:STDOUT: 0: inst60000017 +// CHECK:STDOUT: 1: inst60000018 // CHECK:STDOUT: inst_block60000008: -// CHECK:STDOUT: 0: inst6000001A -// CHECK:STDOUT: 1: inst6000001B -// CHECK:STDOUT: 2: inst60000016 +// CHECK:STDOUT: 0: inst60000019 +// CHECK:STDOUT: 1: inst6000001A +// CHECK:STDOUT: 2: inst60000015 // CHECK:STDOUT: inst_block60000009: -// CHECK:STDOUT: 0: inst60000027 -// CHECK:STDOUT: 1: inst6000002B -// CHECK:STDOUT: 2: inst60000032 -// CHECK:STDOUT: 3: inst60000033 -// CHECK:STDOUT: 4: inst60000034 -// CHECK:STDOUT: 5: inst60000035 -// CHECK:STDOUT: 6: inst60000045 -// CHECK:STDOUT: 7: inst60000046 -// CHECK:STDOUT: 8: inst60000047 -// CHECK:STDOUT: 9: inst60000048 -// CHECK:STDOUT: 10: inst60000049 -// CHECK:STDOUT: 11: inst6000004A -// CHECK:STDOUT: 12: inst6000004F -// CHECK:STDOUT: 13: inst60000050 -// CHECK:STDOUT: 14: inst60000051 -// CHECK:STDOUT: 15: inst60000052 -// CHECK:STDOUT: 16: inst60000053 -// CHECK:STDOUT: 17: inst60000054 -// CHECK:STDOUT: 18: inst60000055 -// CHECK:STDOUT: 19: inst60000056 +// CHECK:STDOUT: 0: inst60000026 +// CHECK:STDOUT: 1: inst6000002A +// CHECK:STDOUT: 2: inst60000031 +// CHECK:STDOUT: 3: inst60000032 +// CHECK:STDOUT: 4: inst60000033 +// CHECK:STDOUT: 5: inst60000034 +// CHECK:STDOUT: 6: inst60000044 +// CHECK:STDOUT: 7: inst60000045 +// CHECK:STDOUT: 8: inst60000046 +// CHECK:STDOUT: 9: inst60000047 +// CHECK:STDOUT: 10: inst60000048 +// CHECK:STDOUT: 11: inst60000049 +// CHECK:STDOUT: 12: inst6000004E +// CHECK:STDOUT: 13: inst6000004F +// CHECK:STDOUT: 14: inst60000050 +// CHECK:STDOUT: 15: inst60000051 +// CHECK:STDOUT: 16: inst60000052 +// CHECK:STDOUT: 17: inst60000053 +// CHECK:STDOUT: 18: inst60000054 +// CHECK:STDOUT: 19: inst60000055 // CHECK:STDOUT: inst_block6000000A: -// CHECK:STDOUT: 0: inst60000021 -// CHECK:STDOUT: 1: inst60000022 -// CHECK:STDOUT: 2: inst60000024 +// CHECK:STDOUT: 0: inst60000020 +// CHECK:STDOUT: 1: inst60000021 +// CHECK:STDOUT: 2: inst60000023 // CHECK:STDOUT: inst_block6000000B: {} // CHECK:STDOUT: inst_block6000000C: -// CHECK:STDOUT: 0: inst60000038 -// CHECK:STDOUT: inst_block6000000D: -// CHECK:STDOUT: 0: inst60000039 -// CHECK:STDOUT: inst_block6000000E: // CHECK:STDOUT: 0: inst60000037 -// CHECK:STDOUT: 1: inst60000038 +// CHECK:STDOUT: inst_block6000000D: +// CHECK:STDOUT: 0: inst60000038 +// CHECK:STDOUT: inst_block6000000E: +// CHECK:STDOUT: 0: inst60000036 +// CHECK:STDOUT: 1: inst60000037 // CHECK:STDOUT: inst_block6000000F: -// CHECK:STDOUT: 0: inst60000039 -// CHECK:STDOUT: 1: inst60000036 +// CHECK:STDOUT: 0: inst60000038 +// CHECK:STDOUT: 1: inst60000035 // CHECK:STDOUT: inst_block60000010: {} // CHECK:STDOUT: inst_block60000011: -// CHECK:STDOUT: 0: inst60000040 -// CHECK:STDOUT: inst_block60000012: -// CHECK:STDOUT: 0: inst60000041 -// CHECK:STDOUT: inst_block60000013: // CHECK:STDOUT: 0: inst6000003F -// CHECK:STDOUT: 1: inst60000040 +// CHECK:STDOUT: inst_block60000012: +// CHECK:STDOUT: 0: inst60000040 +// CHECK:STDOUT: inst_block60000013: +// CHECK:STDOUT: 0: inst6000003E +// CHECK:STDOUT: 1: inst6000003F // CHECK:STDOUT: inst_block60000014: -// CHECK:STDOUT: 0: inst60000041 -// CHECK:STDOUT: 1: inst6000003D +// CHECK:STDOUT: 0: inst60000040 +// CHECK:STDOUT: 1: inst6000003C // CHECK:STDOUT: inst_block60000015: -// CHECK:STDOUT: 0: inst60000035 +// CHECK:STDOUT: 0: inst60000034 // CHECK:STDOUT: inst_block60000016: -// CHECK:STDOUT: 0: inst60000046 +// CHECK:STDOUT: 0: inst60000045 // CHECK:STDOUT: inst_block60000017: -// CHECK:STDOUT: 0: inst6000004C -// CHECK:STDOUT: 1: inst6000004D +// CHECK:STDOUT: 0: inst6000004B +// CHECK:STDOUT: 1: inst6000004C // CHECK:STDOUT: inst_block60000018: -// CHECK:STDOUT: 0: inst60000052 +// CHECK:STDOUT: 0: inst60000051 // CHECK:STDOUT: inst_block60000019: -// CHECK:STDOUT: 0: inst60000054 +// CHECK:STDOUT: 0: inst60000053 // CHECK:STDOUT: inst_block6000001A: -// CHECK:STDOUT: 0: instE -// CHECK:STDOUT: 1: inst6000000F -// CHECK:STDOUT: 2: inst6000001C +// CHECK:STDOUT: 0: instD +// CHECK:STDOUT: 1: inst6000000E +// CHECK:STDOUT: 2: inst6000001B // 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 4f19e5dd2338..8797376f91d6 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: instE, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name0: inst6000000F}} +// CHECK:STDOUT: name_scope0: {inst: instD, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name0: inst6000000E}} // CHECK:STDOUT: entity_names: {} // CHECK:STDOUT: cpp_global_vars: {} // CHECK:STDOUT: functions: @@ -53,37 +53,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(inst6000000F)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000010)} // CHECK:STDOUT: 'type(inst60000010)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000011)} -// CHECK:STDOUT: 'type(inst60000011)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000011)} +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000010)} // CHECK:STDOUT: insts: -// CHECK:STDOUT: instE: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst6000000F: {kind: FunctionDecl, arg0: function60000000, arg1: inst_block_empty, type: type(inst60000010)} -// CHECK:STDOUT: inst60000010: {kind: FunctionType, arg0: function60000000, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst60000011: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)} -// CHECK:STDOUT: inst60000012: {kind: StructValue, arg0: inst_block_empty, type: type(inst60000010)} -// CHECK:STDOUT: inst60000013: {kind: Return} +// CHECK:STDOUT: instD: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} +// CHECK:STDOUT: inst6000000E: {kind: FunctionDecl, arg0: function60000000, arg1: inst_block_empty, type: type(inst6000000F)} +// CHECK:STDOUT: inst6000000F: {kind: FunctionType, arg0: function60000000, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: inst60000010: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)} +// CHECK:STDOUT: inst60000011: {kind: StructValue, arg0: inst_block_empty, type: type(inst6000000F)} +// CHECK:STDOUT: inst60000012: {kind: Return} // CHECK:STDOUT: constant_values: // CHECK:STDOUT: values: -// CHECK:STDOUT: instE: concrete_constant(instE) -// CHECK:STDOUT: inst6000000F: concrete_constant(inst60000012) +// CHECK:STDOUT: instD: concrete_constant(instD) +// CHECK:STDOUT: inst6000000E: concrete_constant(inst60000011) +// CHECK:STDOUT: inst6000000F: concrete_constant(inst6000000F) // CHECK:STDOUT: inst60000010: concrete_constant(inst60000010) // CHECK:STDOUT: inst60000011: concrete_constant(inst60000011) -// CHECK:STDOUT: inst60000012: concrete_constant(inst60000012) // CHECK:STDOUT: symbolic_constants: {} // CHECK:STDOUT: inst_blocks: // CHECK:STDOUT: inst_block_empty: {} // CHECK:STDOUT: exports: -// CHECK:STDOUT: 0: inst6000000F +// CHECK:STDOUT: 0: inst6000000E // CHECK:STDOUT: imports: {} // CHECK:STDOUT: global_init: {} // CHECK:STDOUT: inst_block60000004: {} // CHECK:STDOUT: inst_block60000005: -// CHECK:STDOUT: 0: inst60000013 +// CHECK:STDOUT: 0: inst60000012 // CHECK:STDOUT: inst_block60000006: -// CHECK:STDOUT: 0: instE -// CHECK:STDOUT: 1: inst6000000F +// CHECK:STDOUT: 0: instD +// CHECK:STDOUT: 1: inst6000000E // CHECK:STDOUT: ... // CHECK:STDOUT: --- // CHECK:STDOUT: filename: b.carbon @@ -91,14 +91,14 @@ fn B() { // CHECK:STDOUT: import_irs: // CHECK:STDOUT: 'import_ir(ApiForImpl)': {decl_id: inst, is_export: false} // CHECK:STDOUT: 'import_ir(Cpp)': {decl_id: inst, is_export: false} -// CHECK:STDOUT: import_ir50000002: {decl_id: inst5000000F, is_export: false} +// CHECK:STDOUT: import_ir50000002: {decl_id: inst5000000E, is_export: false} // CHECK:STDOUT: import_ir_insts: -// CHECK:STDOUT: import_ir_inst0: {ir_id: import_ir50000002, inst_id: inst6000000F} -// CHECK:STDOUT: import_ir_inst1: {ir_id: import_ir50000002, inst_id: inst6000000F} +// CHECK:STDOUT: import_ir_inst0: {ir_id: import_ir50000002, inst_id: inst6000000E} +// CHECK:STDOUT: import_ir_inst1: {ir_id: import_ir50000002, inst_id: inst6000000E} // CHECK:STDOUT: clang_decls: {} // CHECK:STDOUT: name_scopes: -// CHECK:STDOUT: name_scope0: {inst: instE, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name1: inst50000010, name0: inst50000011}} -// CHECK:STDOUT: name_scope50000001: {inst: inst50000010, parent_scope: name_scope0, has_error: false, extended_scopes: [], names: {name1: inst50000016}} +// CHECK:STDOUT: name_scope0: {inst: instD, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name1: inst5000000F, name0: inst50000010}} +// CHECK:STDOUT: name_scope50000001: {inst: inst5000000F, parent_scope: name_scope0, has_error: false, extended_scopes: [], names: {name1: inst50000015}} // CHECK:STDOUT: entity_names: // CHECK:STDOUT: entity_name50000000: {name: name1, parent_scope: name_scope50000001, index: -1, is_template: 0} // CHECK:STDOUT: cpp_global_vars: {} @@ -117,60 +117,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(inst50000011)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst50000012)} // CHECK:STDOUT: 'type(inst50000012)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst50000013)} -// CHECK:STDOUT: 'type(inst50000013)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst50000013)} +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst50000012)} // CHECK:STDOUT: 'type(inst(InstType))': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst50000013)} +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst50000012)} // CHECK:STDOUT: insts: -// CHECK:STDOUT: instE: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst5000000F: {kind: ImportDecl, arg0: name1} -// CHECK:STDOUT: inst50000010: {kind: Namespace, arg0: name_scope50000001, arg1: inst5000000F, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst50000011: {kind: FunctionDecl, arg0: function50000000, arg1: inst_block_empty, type: type(inst50000012)} -// CHECK:STDOUT: inst50000012: {kind: FunctionType, arg0: function50000000, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst50000013: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)} -// CHECK:STDOUT: inst50000014: {kind: StructValue, arg0: inst_block_empty, type: type(inst50000012)} -// CHECK:STDOUT: inst50000015: {kind: NameRef, arg0: name1, arg1: inst50000010, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst50000016: {kind: ImportRefLoaded, arg0: import_ir_inst0, arg1: entity_name50000000, type: type(inst50000018)} -// CHECK:STDOUT: inst50000017: {kind: FunctionDecl, arg0: function50000001, arg1: inst_block_empty, type: type(inst50000018)} -// CHECK:STDOUT: inst50000018: {kind: FunctionType, arg0: function50000001, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst50000019: {kind: StructValue, arg0: inst_block_empty, type: type(inst50000018)} -// CHECK:STDOUT: inst5000001A: {kind: NameRef, arg0: name1, arg1: inst50000016, type: type(inst50000018)} -// CHECK:STDOUT: inst5000001B: {kind: Call, arg0: inst5000001A, arg1: inst_block_empty, type: type(inst50000013)} -// CHECK:STDOUT: inst5000001C: {kind: Return} +// CHECK:STDOUT: instD: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} +// CHECK:STDOUT: inst5000000E: {kind: ImportDecl, arg0: name1} +// CHECK:STDOUT: inst5000000F: {kind: Namespace, arg0: name_scope50000001, arg1: inst5000000E, type: type(inst(NamespaceType))} +// CHECK:STDOUT: inst50000010: {kind: FunctionDecl, arg0: function50000000, arg1: inst_block_empty, type: type(inst50000011)} +// CHECK:STDOUT: inst50000011: {kind: FunctionType, arg0: function50000000, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: inst50000012: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)} +// CHECK:STDOUT: inst50000013: {kind: StructValue, arg0: inst_block_empty, type: type(inst50000011)} +// CHECK:STDOUT: inst50000014: {kind: NameRef, arg0: name1, arg1: inst5000000F, type: type(inst(NamespaceType))} +// CHECK:STDOUT: inst50000015: {kind: ImportRefLoaded, arg0: import_ir_inst0, arg1: entity_name50000000, type: type(inst50000017)} +// CHECK:STDOUT: inst50000016: {kind: FunctionDecl, arg0: function50000001, arg1: inst_block_empty, type: type(inst50000017)} +// CHECK:STDOUT: inst50000017: {kind: FunctionType, arg0: function50000001, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: inst50000018: {kind: StructValue, arg0: inst_block_empty, type: type(inst50000017)} +// CHECK:STDOUT: inst50000019: {kind: NameRef, arg0: name1, arg1: inst50000015, type: type(inst50000017)} +// CHECK:STDOUT: inst5000001A: {kind: Call, arg0: inst50000019, arg1: inst_block_empty, type: type(inst50000012)} +// CHECK:STDOUT: inst5000001B: {kind: Return} // CHECK:STDOUT: constant_values: // CHECK:STDOUT: values: -// CHECK:STDOUT: instE: concrete_constant(instE) -// CHECK:STDOUT: inst50000010: concrete_constant(inst50000010) -// CHECK:STDOUT: inst50000011: concrete_constant(inst50000014) +// CHECK:STDOUT: instD: concrete_constant(instD) +// CHECK:STDOUT: inst5000000F: concrete_constant(inst5000000F) +// CHECK:STDOUT: inst50000010: concrete_constant(inst50000013) +// CHECK:STDOUT: inst50000011: concrete_constant(inst50000011) // CHECK:STDOUT: inst50000012: concrete_constant(inst50000012) // CHECK:STDOUT: inst50000013: concrete_constant(inst50000013) -// CHECK:STDOUT: inst50000014: concrete_constant(inst50000014) -// CHECK:STDOUT: inst50000015: concrete_constant(inst50000010) -// CHECK:STDOUT: inst50000016: concrete_constant(inst50000019) -// CHECK:STDOUT: inst50000017: concrete_constant(inst50000019) +// CHECK:STDOUT: inst50000014: concrete_constant(inst5000000F) +// CHECK:STDOUT: inst50000015: concrete_constant(inst50000018) +// CHECK:STDOUT: inst50000016: concrete_constant(inst50000018) +// CHECK:STDOUT: inst50000017: concrete_constant(inst50000017) // CHECK:STDOUT: inst50000018: concrete_constant(inst50000018) -// CHECK:STDOUT: inst50000019: concrete_constant(inst50000019) -// CHECK:STDOUT: inst5000001A: concrete_constant(inst50000019) +// CHECK:STDOUT: inst50000019: concrete_constant(inst50000018) // CHECK:STDOUT: symbolic_constants: {} // CHECK:STDOUT: inst_blocks: // CHECK:STDOUT: inst_block_empty: {} // CHECK:STDOUT: exports: -// CHECK:STDOUT: 0: inst50000011 -// CHECK:STDOUT: imports: // CHECK:STDOUT: 0: inst50000010 -// CHECK:STDOUT: 1: inst50000016 -// CHECK:STDOUT: 2: inst50000017 +// CHECK:STDOUT: imports: +// CHECK:STDOUT: 0: inst5000000F +// CHECK:STDOUT: 1: inst50000015 +// CHECK:STDOUT: 2: inst50000016 // CHECK:STDOUT: global_init: {} // CHECK:STDOUT: inst_block50000004: {} // CHECK:STDOUT: inst_block50000005: -// CHECK:STDOUT: 0: inst50000015 -// CHECK:STDOUT: 1: inst5000001A -// CHECK:STDOUT: 2: inst5000001B -// CHECK:STDOUT: 3: inst5000001C +// CHECK:STDOUT: 0: inst50000014 +// CHECK:STDOUT: 1: inst50000019 +// CHECK:STDOUT: 2: inst5000001A +// CHECK:STDOUT: 3: inst5000001B // CHECK:STDOUT: inst_block50000006: -// CHECK:STDOUT: 0: instE -// CHECK:STDOUT: 1: inst5000000F -// CHECK:STDOUT: 2: inst50000011 +// CHECK:STDOUT: 0: instD +// CHECK:STDOUT: 1: inst5000000E +// CHECK:STDOUT: 2: inst50000010 // 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 86a623599d5a..20d480248ddd 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: instE, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name0: inst6000000F}} +// CHECK:STDOUT: name_scope0: {inst: instD, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name0: inst6000000E}} // CHECK:STDOUT: entity_names: {} // CHECK:STDOUT: cpp_global_vars: {} // CHECK:STDOUT: functions: @@ -53,37 +53,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(inst6000000F)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000010)} // CHECK:STDOUT: 'type(inst60000010)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000011)} -// CHECK:STDOUT: 'type(inst60000011)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000011)} +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000010)} // CHECK:STDOUT: insts: -// CHECK:STDOUT: instE: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst6000000F: {kind: FunctionDecl, arg0: function60000000, arg1: inst_block_empty, type: type(inst60000010)} -// CHECK:STDOUT: inst60000010: {kind: FunctionType, arg0: function60000000, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst60000011: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)} -// CHECK:STDOUT: inst60000012: {kind: StructValue, arg0: inst_block_empty, type: type(inst60000010)} -// CHECK:STDOUT: inst60000013: {kind: Return} +// CHECK:STDOUT: instD: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} +// CHECK:STDOUT: inst6000000E: {kind: FunctionDecl, arg0: function60000000, arg1: inst_block_empty, type: type(inst6000000F)} +// CHECK:STDOUT: inst6000000F: {kind: FunctionType, arg0: function60000000, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: inst60000010: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)} +// CHECK:STDOUT: inst60000011: {kind: StructValue, arg0: inst_block_empty, type: type(inst6000000F)} +// CHECK:STDOUT: inst60000012: {kind: Return} // CHECK:STDOUT: constant_values: // CHECK:STDOUT: values: -// CHECK:STDOUT: instE: concrete_constant(instE) -// CHECK:STDOUT: inst6000000F: concrete_constant(inst60000012) +// CHECK:STDOUT: instD: concrete_constant(instD) +// CHECK:STDOUT: inst6000000E: concrete_constant(inst60000011) +// CHECK:STDOUT: inst6000000F: concrete_constant(inst6000000F) // CHECK:STDOUT: inst60000010: concrete_constant(inst60000010) // CHECK:STDOUT: inst60000011: concrete_constant(inst60000011) -// CHECK:STDOUT: inst60000012: concrete_constant(inst60000012) // CHECK:STDOUT: symbolic_constants: {} // CHECK:STDOUT: inst_blocks: // CHECK:STDOUT: inst_block_empty: {} // CHECK:STDOUT: exports: -// CHECK:STDOUT: 0: inst6000000F +// CHECK:STDOUT: 0: inst6000000E // CHECK:STDOUT: imports: {} // CHECK:STDOUT: global_init: {} // CHECK:STDOUT: inst_block60000004: {} // CHECK:STDOUT: inst_block60000005: -// CHECK:STDOUT: 0: inst60000013 +// CHECK:STDOUT: 0: inst60000012 // CHECK:STDOUT: inst_block60000006: -// CHECK:STDOUT: 0: instE -// CHECK:STDOUT: 1: inst6000000F +// CHECK:STDOUT: 0: instD +// CHECK:STDOUT: 1: inst6000000E // CHECK:STDOUT: ... // CHECK:STDOUT: --- a.carbon // CHECK:STDOUT: @@ -110,14 +110,14 @@ fn B() { // CHECK:STDOUT: import_irs: // CHECK:STDOUT: 'import_ir(ApiForImpl)': {decl_id: inst, is_export: false} // CHECK:STDOUT: 'import_ir(Cpp)': {decl_id: inst, is_export: false} -// CHECK:STDOUT: import_ir50000002: {decl_id: inst5000000F, is_export: false} +// CHECK:STDOUT: import_ir50000002: {decl_id: inst5000000E, is_export: false} // CHECK:STDOUT: import_ir_insts: -// CHECK:STDOUT: import_ir_inst0: {ir_id: import_ir50000002, inst_id: inst6000000F} -// CHECK:STDOUT: import_ir_inst1: {ir_id: import_ir50000002, inst_id: inst6000000F} +// CHECK:STDOUT: import_ir_inst0: {ir_id: import_ir50000002, inst_id: inst6000000E} +// CHECK:STDOUT: import_ir_inst1: {ir_id: import_ir50000002, inst_id: inst6000000E} // CHECK:STDOUT: clang_decls: {} // CHECK:STDOUT: name_scopes: -// CHECK:STDOUT: name_scope0: {inst: instE, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name1: inst50000010, name0: inst50000011}} -// CHECK:STDOUT: name_scope50000001: {inst: inst50000010, parent_scope: name_scope0, has_error: false, extended_scopes: [], names: {name1: inst50000016}} +// CHECK:STDOUT: name_scope0: {inst: instD, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name1: inst5000000F, name0: inst50000010}} +// CHECK:STDOUT: name_scope50000001: {inst: inst5000000F, parent_scope: name_scope0, has_error: false, extended_scopes: [], names: {name1: inst50000015}} // CHECK:STDOUT: entity_names: // CHECK:STDOUT: entity_name50000000: {name: name1, parent_scope: name_scope50000001, index: -1, is_template: 0} // CHECK:STDOUT: cpp_global_vars: {} @@ -136,62 +136,62 @@ 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(inst50000011)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst50000012)} // CHECK:STDOUT: 'type(inst50000012)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst50000013)} -// CHECK:STDOUT: 'type(inst50000013)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst50000013)} +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst50000012)} // CHECK:STDOUT: 'type(inst(InstType))': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst50000013)} +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst50000012)} // CHECK:STDOUT: insts: -// CHECK:STDOUT: instE: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst5000000F: {kind: ImportDecl, arg0: name1} -// CHECK:STDOUT: inst50000010: {kind: Namespace, arg0: name_scope50000001, arg1: inst5000000F, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst50000011: {kind: FunctionDecl, arg0: function50000000, arg1: inst_block_empty, type: type(inst50000012)} -// CHECK:STDOUT: inst50000012: {kind: FunctionType, arg0: function50000000, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst50000013: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)} -// CHECK:STDOUT: inst50000014: {kind: StructValue, arg0: inst_block_empty, type: type(inst50000012)} -// CHECK:STDOUT: inst50000015: {kind: NameRef, arg0: name1, arg1: inst50000010, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst50000016: {kind: ImportRefLoaded, arg0: import_ir_inst0, arg1: entity_name50000000, type: type(inst50000018)} -// CHECK:STDOUT: inst50000017: {kind: FunctionDecl, arg0: function50000001, arg1: inst_block_empty, type: type(inst50000018)} -// CHECK:STDOUT: inst50000018: {kind: FunctionType, arg0: function50000001, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst50000019: {kind: StructValue, arg0: inst_block_empty, type: type(inst50000018)} -// CHECK:STDOUT: inst5000001A: {kind: NameRef, arg0: name1, arg1: inst50000016, type: type(inst50000018)} -// CHECK:STDOUT: inst5000001B: {kind: Call, arg0: inst5000001A, arg1: inst_block_empty, type: type(inst50000013)} -// CHECK:STDOUT: inst5000001C: {kind: Return} +// CHECK:STDOUT: instD: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} +// CHECK:STDOUT: inst5000000E: {kind: ImportDecl, arg0: name1} +// CHECK:STDOUT: inst5000000F: {kind: Namespace, arg0: name_scope50000001, arg1: inst5000000E, type: type(inst(NamespaceType))} +// CHECK:STDOUT: inst50000010: {kind: FunctionDecl, arg0: function50000000, arg1: inst_block_empty, type: type(inst50000011)} +// CHECK:STDOUT: inst50000011: {kind: FunctionType, arg0: function50000000, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: inst50000012: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)} +// CHECK:STDOUT: inst50000013: {kind: StructValue, arg0: inst_block_empty, type: type(inst50000011)} +// CHECK:STDOUT: inst50000014: {kind: NameRef, arg0: name1, arg1: inst5000000F, type: type(inst(NamespaceType))} +// CHECK:STDOUT: inst50000015: {kind: ImportRefLoaded, arg0: import_ir_inst0, arg1: entity_name50000000, type: type(inst50000017)} +// CHECK:STDOUT: inst50000016: {kind: FunctionDecl, arg0: function50000001, arg1: inst_block_empty, type: type(inst50000017)} +// CHECK:STDOUT: inst50000017: {kind: FunctionType, arg0: function50000001, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: inst50000018: {kind: StructValue, arg0: inst_block_empty, type: type(inst50000017)} +// CHECK:STDOUT: inst50000019: {kind: NameRef, arg0: name1, arg1: inst50000015, type: type(inst50000017)} +// CHECK:STDOUT: inst5000001A: {kind: Call, arg0: inst50000019, arg1: inst_block_empty, type: type(inst50000012)} +// CHECK:STDOUT: inst5000001B: {kind: Return} // CHECK:STDOUT: constant_values: // CHECK:STDOUT: values: -// CHECK:STDOUT: instE: concrete_constant(instE) -// CHECK:STDOUT: inst50000010: concrete_constant(inst50000010) -// CHECK:STDOUT: inst50000011: concrete_constant(inst50000014) +// CHECK:STDOUT: instD: concrete_constant(instD) +// CHECK:STDOUT: inst5000000F: concrete_constant(inst5000000F) +// CHECK:STDOUT: inst50000010: concrete_constant(inst50000013) +// CHECK:STDOUT: inst50000011: concrete_constant(inst50000011) // CHECK:STDOUT: inst50000012: concrete_constant(inst50000012) // CHECK:STDOUT: inst50000013: concrete_constant(inst50000013) -// CHECK:STDOUT: inst50000014: concrete_constant(inst50000014) -// CHECK:STDOUT: inst50000015: concrete_constant(inst50000010) -// CHECK:STDOUT: inst50000016: concrete_constant(inst50000019) -// CHECK:STDOUT: inst50000017: concrete_constant(inst50000019) +// CHECK:STDOUT: inst50000014: concrete_constant(inst5000000F) +// CHECK:STDOUT: inst50000015: concrete_constant(inst50000018) +// CHECK:STDOUT: inst50000016: concrete_constant(inst50000018) +// CHECK:STDOUT: inst50000017: concrete_constant(inst50000017) // CHECK:STDOUT: inst50000018: concrete_constant(inst50000018) -// CHECK:STDOUT: inst50000019: concrete_constant(inst50000019) -// CHECK:STDOUT: inst5000001A: concrete_constant(inst50000019) +// CHECK:STDOUT: inst50000019: concrete_constant(inst50000018) // CHECK:STDOUT: symbolic_constants: {} // CHECK:STDOUT: inst_blocks: // CHECK:STDOUT: inst_block_empty: {} // CHECK:STDOUT: exports: -// CHECK:STDOUT: 0: inst50000011 -// CHECK:STDOUT: imports: // CHECK:STDOUT: 0: inst50000010 -// CHECK:STDOUT: 1: inst50000016 -// CHECK:STDOUT: 2: inst50000017 +// CHECK:STDOUT: imports: +// CHECK:STDOUT: 0: inst5000000F +// CHECK:STDOUT: 1: inst50000015 +// CHECK:STDOUT: 2: inst50000016 // CHECK:STDOUT: global_init: {} // CHECK:STDOUT: inst_block50000004: {} // CHECK:STDOUT: inst_block50000005: -// CHECK:STDOUT: 0: inst50000015 -// CHECK:STDOUT: 1: inst5000001A -// CHECK:STDOUT: 2: inst5000001B -// CHECK:STDOUT: 3: inst5000001C +// CHECK:STDOUT: 0: inst50000014 +// CHECK:STDOUT: 1: inst50000019 +// CHECK:STDOUT: 2: inst5000001A +// CHECK:STDOUT: 3: inst5000001B // CHECK:STDOUT: inst_block50000006: -// CHECK:STDOUT: 0: instE -// CHECK:STDOUT: 1: inst5000000F -// CHECK:STDOUT: 2: inst50000011 +// CHECK:STDOUT: 0: instD +// CHECK:STDOUT: 1: inst5000000E +// CHECK:STDOUT: 2: inst50000010 // 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 266dc9ac104b..6576aaa299dd 100644 --- a/toolchain/check/testdata/basics/raw_sem_ir/one_file.carbon +++ b/toolchain/check/testdata/basics/raw_sem_ir/one_file.carbon @@ -23,216 +23,216 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: import_irs: // CHECK:STDOUT: 'import_ir(ApiForImpl)': {decl_id: inst, is_export: false} // CHECK:STDOUT: 'import_ir(Cpp)': {decl_id: inst, is_export: false} -// CHECK:STDOUT: import_ir60000002: {decl_id: inst6000000F, is_export: false} -// CHECK:STDOUT: import_ir60000003: {decl_id: inst6000000F, is_export: false} -// CHECK:STDOUT: import_ir60000004: {decl_id: inst6000000F, is_export: false} -// CHECK:STDOUT: import_ir60000005: {decl_id: inst6000000F, is_export: false} +// CHECK:STDOUT: import_ir60000002: {decl_id: inst6000000E, is_export: false} +// CHECK:STDOUT: import_ir60000003: {decl_id: inst6000000E, is_export: false} +// CHECK:STDOUT: import_ir60000004: {decl_id: inst6000000E, is_export: false} +// CHECK:STDOUT: import_ir60000005: {decl_id: inst6000000E, is_export: false} // CHECK:STDOUT: import_ir_insts: -// CHECK:STDOUT: import_ir_inst0: {ir_id: import_ir60000004, inst_id: inst4800000F} -// CHECK:STDOUT: import_ir_inst1: {ir_id: import_ir60000004, inst_id: inst4800000F} -// CHECK:STDOUT: import_ir_inst2: {ir_id: import_ir60000004, inst_id: inst48000011} -// CHECK:STDOUT: import_ir_inst3: {ir_id: import_ir60000004, inst_id: inst4800002D} -// CHECK:STDOUT: import_ir_inst4: {ir_id: import_ir60000004, inst_id: inst48000028} -// CHECK:STDOUT: import_ir_inst5: {ir_id: import_ir60000004, inst_id: inst48000028} -// CHECK:STDOUT: import_ir_inst6: {ir_id: import_ir60000004, inst_id: inst48000028} -// CHECK:STDOUT: import_ir_inst7: {ir_id: import_ir60000004, inst_id: inst48000022} -// CHECK:STDOUT: import_ir_inst8: {ir_id: import_ir60000004, inst_id: inst48000023} -// CHECK:STDOUT: import_ir_inst9: {ir_id: import_ir60000004, inst_id: inst4800001C} -// CHECK:STDOUT: import_ir_instA: {ir_id: import_ir60000004, inst_id: inst4800001E} -// CHECK:STDOUT: import_ir_instB: {ir_id: import_ir60000004, inst_id: inst48000011} -// CHECK:STDOUT: import_ir_instC: {ir_id: import_ir60000004, inst_id: inst48000015} -// CHECK:STDOUT: import_ir_instD: {ir_id: import_ir60000004, inst_id: inst48000018} -// CHECK:STDOUT: import_ir_instE: {ir_id: import_ir60000004, inst_id: inst4800001D} -// CHECK:STDOUT: import_ir_instF: {ir_id: import_ir60000004, inst_id: inst48000061} -// CHECK:STDOUT: import_ir_inst10: {ir_id: import_ir60000004, inst_id: inst4800005F} -// CHECK:STDOUT: import_ir_inst11: {ir_id: import_ir60000004, inst_id: inst48000054} -// CHECK:STDOUT: import_ir_inst12: {ir_id: import_ir60000004, inst_id: inst48000050} -// CHECK:STDOUT: import_ir_inst13: {ir_id: import_ir60000004, inst_id: inst4800005A} -// CHECK:STDOUT: import_ir_inst14: {ir_id: import_ir60000004, inst_id: inst4800005D} -// CHECK:STDOUT: import_ir_inst15: {ir_id: import_ir60000004, inst_id: inst48000075} -// CHECK:STDOUT: import_ir_inst16: {ir_id: import_ir60000004, inst_id: inst48000060} -// CHECK:STDOUT: import_ir_inst17: {ir_id: import_ir60000004, inst_id: inst48000052} -// CHECK:STDOUT: import_ir_inst18: {ir_id: import_ir60000004, inst_id: inst48000058} -// CHECK:STDOUT: import_ir_inst19: {ir_id: import_ir60000004, inst_id: inst4800005C} -// CHECK:STDOUT: import_ir_inst1A: {ir_id: import_ir60000004, inst_id: inst48000063} -// CHECK:STDOUT: import_ir_inst1B: {ir_id: import_ir60000004, inst_id: inst48000075} -// CHECK:STDOUT: import_ir_inst1C: {ir_id: import_ir60000004, inst_id: inst48000070} -// CHECK:STDOUT: import_ir_inst1D: {ir_id: import_ir60000004, inst_id: inst48000071} -// CHECK:STDOUT: import_ir_inst1E: {ir_id: import_ir60000004, inst_id: inst4800006C} -// CHECK:STDOUT: import_ir_inst1F: {ir_id: import_ir60000004, inst_id: inst4800006E} -// CHECK:STDOUT: import_ir_inst20: {ir_id: import_ir60000004, inst_id: inst48000050} -// CHECK:STDOUT: import_ir_inst21: {ir_id: import_ir60000004, inst_id: inst48000078} -// CHECK:STDOUT: import_ir_inst22: {ir_id: import_ir60000004, inst_id: inst48000079} -// CHECK:STDOUT: import_ir_inst23: {ir_id: import_ir60000004, inst_id: inst48000067} -// CHECK:STDOUT: import_ir_inst24: {ir_id: import_ir60000004, inst_id: inst48000068} -// CHECK:STDOUT: import_ir_inst25: {ir_id: import_ir60000004, inst_id: inst48000069} -// CHECK:STDOUT: import_ir_inst26: {ir_id: import_ir60000004, inst_id: inst4800006D} -// CHECK:STDOUT: import_ir_inst27: {ir_id: import_ir60000004, inst_id: inst4800007D} -// CHECK:STDOUT: import_ir_inst28: {ir_id: import_ir60000004, inst_id: inst48000085} -// CHECK:STDOUT: import_ir_inst29: {ir_id: import_ir60000004, inst_id: inst4800008C} -// CHECK:STDOUT: import_ir_inst2A: {ir_id: import_ir60000004, inst_id: inst48000090} -// CHECK:STDOUT: import_ir_inst2B: {ir_id: import_ir60000004, inst_id: inst48000091} -// CHECK:STDOUT: import_ir_inst2C: {ir_id: import_ir60000004, inst_id: inst48000096} -// CHECK:STDOUT: import_ir_inst2D: {ir_id: import_ir60000004, inst_id: inst480000AB} -// CHECK:STDOUT: import_ir_inst2E: {ir_id: import_ir60000004, inst_id: inst480000A9} -// CHECK:STDOUT: import_ir_inst2F: {ir_id: import_ir60000004, inst_id: inst480000A7} -// CHECK:STDOUT: import_ir_inst30: {ir_id: import_ir60000004, inst_id: inst480000A8} -// CHECK:STDOUT: import_ir_inst31: {ir_id: import_ir60000004, inst_id: inst480000C3} -// CHECK:STDOUT: import_ir_inst32: {ir_id: import_ir60000004, inst_id: inst480000C1} -// CHECK:STDOUT: import_ir_inst33: {ir_id: import_ir60000004, inst_id: inst480000BF} -// CHECK:STDOUT: import_ir_inst34: {ir_id: import_ir60000004, inst_id: inst480000C0} -// CHECK:STDOUT: import_ir_inst35: {ir_id: import_ir60000004, inst_id: inst480000DB} -// CHECK:STDOUT: import_ir_inst36: {ir_id: import_ir60000004, inst_id: inst480000D9} -// CHECK:STDOUT: import_ir_inst37: {ir_id: import_ir60000004, inst_id: inst480000D7} -// CHECK:STDOUT: import_ir_inst38: {ir_id: import_ir60000004, inst_id: inst480000D8} -// CHECK:STDOUT: import_ir_inst39: {ir_id: import_ir60000004, inst_id: inst480000F3} -// CHECK:STDOUT: import_ir_inst3A: {ir_id: import_ir60000004, inst_id: inst480000F1} -// CHECK:STDOUT: import_ir_inst3B: {ir_id: import_ir60000004, inst_id: inst480000EF} -// CHECK:STDOUT: import_ir_inst3C: {ir_id: import_ir60000004, inst_id: inst480000F0} -// CHECK:STDOUT: import_ir_inst3D: {ir_id: import_ir60000004, inst_id: inst48000110} -// CHECK:STDOUT: import_ir_inst3E: {ir_id: import_ir60000004, inst_id: inst4800010E} -// CHECK:STDOUT: import_ir_inst3F: {ir_id: import_ir60000004, inst_id: inst48000108} -// CHECK:STDOUT: import_ir_inst40: {ir_id: import_ir60000004, inst_id: inst48000105} -// CHECK:STDOUT: import_ir_inst41: {ir_id: import_ir60000004, inst_id: inst4800010A} -// CHECK:STDOUT: import_ir_inst42: {ir_id: import_ir60000004, inst_id: inst4800010D} -// CHECK:STDOUT: import_ir_inst43: {ir_id: import_ir60000004, inst_id: inst48000121} -// CHECK:STDOUT: import_ir_inst44: {ir_id: import_ir60000004, inst_id: inst4800010F} -// CHECK:STDOUT: import_ir_inst45: {ir_id: import_ir60000004, inst_id: inst48000107} -// CHECK:STDOUT: import_ir_inst46: {ir_id: import_ir60000004, inst_id: inst4800010C} -// CHECK:STDOUT: import_ir_inst47: {ir_id: import_ir60000004, inst_id: inst48000112} -// CHECK:STDOUT: import_ir_inst48: {ir_id: import_ir60000004, inst_id: inst48000121} -// CHECK:STDOUT: import_ir_inst49: {ir_id: import_ir60000004, inst_id: inst4800011C} -// CHECK:STDOUT: import_ir_inst4A: {ir_id: import_ir60000004, inst_id: inst4800011D} -// CHECK:STDOUT: import_ir_inst4B: {ir_id: import_ir60000004, inst_id: inst48000118} -// CHECK:STDOUT: import_ir_inst4C: {ir_id: import_ir60000004, inst_id: inst4800011A} -// CHECK:STDOUT: import_ir_inst4D: {ir_id: import_ir60000004, inst_id: inst48000105} -// CHECK:STDOUT: import_ir_inst4E: {ir_id: import_ir60000004, inst_id: inst48000124} -// CHECK:STDOUT: import_ir_inst4F: {ir_id: import_ir60000004, inst_id: inst48000125} -// CHECK:STDOUT: import_ir_inst50: {ir_id: import_ir60000004, inst_id: inst48000128} -// CHECK:STDOUT: import_ir_inst51: {ir_id: import_ir60000004, inst_id: inst48000114} -// CHECK:STDOUT: import_ir_inst52: {ir_id: import_ir60000004, inst_id: inst48000115} -// CHECK:STDOUT: import_ir_inst53: {ir_id: import_ir60000004, inst_id: inst48000119} -// CHECK:STDOUT: import_ir_inst54: {ir_id: import_ir60000004, inst_id: inst4800012E} -// CHECK:STDOUT: import_ir_inst55: {ir_id: import_ir60000004, inst_id: inst4800012C} +// CHECK:STDOUT: import_ir_inst0: {ir_id: import_ir60000004, inst_id: inst4800000E} +// CHECK:STDOUT: import_ir_inst1: {ir_id: import_ir60000004, inst_id: inst4800000E} +// CHECK:STDOUT: import_ir_inst2: {ir_id: import_ir60000004, inst_id: inst48000010} +// CHECK:STDOUT: import_ir_inst3: {ir_id: import_ir60000004, inst_id: inst4800002C} +// CHECK:STDOUT: import_ir_inst4: {ir_id: import_ir60000004, inst_id: inst48000027} +// CHECK:STDOUT: import_ir_inst5: {ir_id: import_ir60000004, inst_id: inst48000027} +// CHECK:STDOUT: import_ir_inst6: {ir_id: import_ir60000004, inst_id: inst48000027} +// CHECK:STDOUT: import_ir_inst7: {ir_id: import_ir60000004, inst_id: inst48000021} +// CHECK:STDOUT: import_ir_inst8: {ir_id: import_ir60000004, inst_id: inst48000022} +// CHECK:STDOUT: import_ir_inst9: {ir_id: import_ir60000004, inst_id: inst4800001B} +// CHECK:STDOUT: import_ir_instA: {ir_id: import_ir60000004, inst_id: inst4800001D} +// CHECK:STDOUT: import_ir_instB: {ir_id: import_ir60000004, inst_id: inst48000010} +// CHECK:STDOUT: import_ir_instC: {ir_id: import_ir60000004, inst_id: inst48000014} +// CHECK:STDOUT: import_ir_instD: {ir_id: import_ir60000004, inst_id: inst48000017} +// CHECK:STDOUT: import_ir_instE: {ir_id: import_ir60000004, inst_id: inst4800001C} +// CHECK:STDOUT: import_ir_instF: {ir_id: import_ir60000004, inst_id: inst48000060} +// CHECK:STDOUT: import_ir_inst10: {ir_id: import_ir60000004, inst_id: inst4800005E} +// CHECK:STDOUT: import_ir_inst11: {ir_id: import_ir60000004, inst_id: inst48000053} +// CHECK:STDOUT: import_ir_inst12: {ir_id: import_ir60000004, inst_id: inst4800004F} +// CHECK:STDOUT: import_ir_inst13: {ir_id: import_ir60000004, inst_id: inst48000059} +// CHECK:STDOUT: import_ir_inst14: {ir_id: import_ir60000004, inst_id: inst4800005C} +// CHECK:STDOUT: import_ir_inst15: {ir_id: import_ir60000004, inst_id: inst48000074} +// CHECK:STDOUT: import_ir_inst16: {ir_id: import_ir60000004, inst_id: inst4800005F} +// CHECK:STDOUT: import_ir_inst17: {ir_id: import_ir60000004, inst_id: inst48000051} +// CHECK:STDOUT: import_ir_inst18: {ir_id: import_ir60000004, inst_id: inst48000057} +// CHECK:STDOUT: import_ir_inst19: {ir_id: import_ir60000004, inst_id: inst4800005B} +// CHECK:STDOUT: import_ir_inst1A: {ir_id: import_ir60000004, inst_id: inst48000062} +// CHECK:STDOUT: import_ir_inst1B: {ir_id: import_ir60000004, inst_id: inst48000074} +// CHECK:STDOUT: import_ir_inst1C: {ir_id: import_ir60000004, inst_id: inst4800006F} +// CHECK:STDOUT: import_ir_inst1D: {ir_id: import_ir60000004, inst_id: inst48000070} +// CHECK:STDOUT: import_ir_inst1E: {ir_id: import_ir60000004, inst_id: inst4800006B} +// CHECK:STDOUT: import_ir_inst1F: {ir_id: import_ir60000004, inst_id: inst4800006D} +// CHECK:STDOUT: import_ir_inst20: {ir_id: import_ir60000004, inst_id: inst4800004F} +// CHECK:STDOUT: import_ir_inst21: {ir_id: import_ir60000004, inst_id: inst48000077} +// CHECK:STDOUT: import_ir_inst22: {ir_id: import_ir60000004, inst_id: inst48000078} +// CHECK:STDOUT: import_ir_inst23: {ir_id: import_ir60000004, inst_id: inst48000066} +// CHECK:STDOUT: import_ir_inst24: {ir_id: import_ir60000004, inst_id: inst48000067} +// CHECK:STDOUT: import_ir_inst25: {ir_id: import_ir60000004, inst_id: inst48000068} +// CHECK:STDOUT: import_ir_inst26: {ir_id: import_ir60000004, inst_id: inst4800006C} +// CHECK:STDOUT: import_ir_inst27: {ir_id: import_ir60000004, inst_id: inst4800007C} +// CHECK:STDOUT: import_ir_inst28: {ir_id: import_ir60000004, inst_id: inst48000084} +// CHECK:STDOUT: import_ir_inst29: {ir_id: import_ir60000004, inst_id: inst4800008B} +// CHECK:STDOUT: import_ir_inst2A: {ir_id: import_ir60000004, inst_id: inst4800008F} +// CHECK:STDOUT: import_ir_inst2B: {ir_id: import_ir60000004, inst_id: inst48000090} +// CHECK:STDOUT: import_ir_inst2C: {ir_id: import_ir60000004, inst_id: inst48000095} +// CHECK:STDOUT: import_ir_inst2D: {ir_id: import_ir60000004, inst_id: inst480000AA} +// CHECK:STDOUT: import_ir_inst2E: {ir_id: import_ir60000004, inst_id: inst480000A8} +// CHECK:STDOUT: import_ir_inst2F: {ir_id: import_ir60000004, inst_id: inst480000A6} +// CHECK:STDOUT: import_ir_inst30: {ir_id: import_ir60000004, inst_id: inst480000A7} +// CHECK:STDOUT: import_ir_inst31: {ir_id: import_ir60000004, inst_id: inst480000C2} +// CHECK:STDOUT: import_ir_inst32: {ir_id: import_ir60000004, inst_id: inst480000C0} +// CHECK:STDOUT: import_ir_inst33: {ir_id: import_ir60000004, inst_id: inst480000BE} +// CHECK:STDOUT: import_ir_inst34: {ir_id: import_ir60000004, inst_id: inst480000BF} +// CHECK:STDOUT: import_ir_inst35: {ir_id: import_ir60000004, inst_id: inst480000DA} +// CHECK:STDOUT: import_ir_inst36: {ir_id: import_ir60000004, inst_id: inst480000D8} +// CHECK:STDOUT: import_ir_inst37: {ir_id: import_ir60000004, inst_id: inst480000D6} +// CHECK:STDOUT: import_ir_inst38: {ir_id: import_ir60000004, inst_id: inst480000D7} +// CHECK:STDOUT: import_ir_inst39: {ir_id: import_ir60000004, inst_id: inst480000F2} +// CHECK:STDOUT: import_ir_inst3A: {ir_id: import_ir60000004, inst_id: inst480000F0} +// CHECK:STDOUT: import_ir_inst3B: {ir_id: import_ir60000004, inst_id: inst480000EE} +// CHECK:STDOUT: import_ir_inst3C: {ir_id: import_ir60000004, inst_id: inst480000EF} +// CHECK:STDOUT: import_ir_inst3D: {ir_id: import_ir60000004, inst_id: inst4800010F} +// CHECK:STDOUT: import_ir_inst3E: {ir_id: import_ir60000004, inst_id: inst4800010D} +// CHECK:STDOUT: import_ir_inst3F: {ir_id: import_ir60000004, inst_id: inst48000107} +// CHECK:STDOUT: import_ir_inst40: {ir_id: import_ir60000004, inst_id: inst48000104} +// CHECK:STDOUT: import_ir_inst41: {ir_id: import_ir60000004, inst_id: inst48000109} +// CHECK:STDOUT: import_ir_inst42: {ir_id: import_ir60000004, inst_id: inst4800010C} +// CHECK:STDOUT: import_ir_inst43: {ir_id: import_ir60000004, inst_id: inst48000120} +// CHECK:STDOUT: import_ir_inst44: {ir_id: import_ir60000004, inst_id: inst4800010E} +// CHECK:STDOUT: import_ir_inst45: {ir_id: import_ir60000004, inst_id: inst48000106} +// CHECK:STDOUT: import_ir_inst46: {ir_id: import_ir60000004, inst_id: inst4800010B} +// CHECK:STDOUT: import_ir_inst47: {ir_id: import_ir60000004, inst_id: inst48000111} +// CHECK:STDOUT: import_ir_inst48: {ir_id: import_ir60000004, inst_id: inst48000120} +// CHECK:STDOUT: import_ir_inst49: {ir_id: import_ir60000004, inst_id: inst4800011B} +// CHECK:STDOUT: import_ir_inst4A: {ir_id: import_ir60000004, inst_id: inst4800011C} +// CHECK:STDOUT: import_ir_inst4B: {ir_id: import_ir60000004, inst_id: inst48000117} +// CHECK:STDOUT: import_ir_inst4C: {ir_id: import_ir60000004, inst_id: inst48000119} +// CHECK:STDOUT: import_ir_inst4D: {ir_id: import_ir60000004, inst_id: inst48000104} +// CHECK:STDOUT: import_ir_inst4E: {ir_id: import_ir60000004, inst_id: inst48000123} +// CHECK:STDOUT: import_ir_inst4F: {ir_id: import_ir60000004, inst_id: inst48000124} +// CHECK:STDOUT: import_ir_inst50: {ir_id: import_ir60000004, inst_id: inst48000127} +// CHECK:STDOUT: import_ir_inst51: {ir_id: import_ir60000004, inst_id: inst48000113} +// CHECK:STDOUT: import_ir_inst52: {ir_id: import_ir60000004, inst_id: inst48000114} +// CHECK:STDOUT: import_ir_inst53: {ir_id: import_ir60000004, inst_id: inst48000118} +// CHECK:STDOUT: import_ir_inst54: {ir_id: import_ir60000004, inst_id: inst4800012D} +// CHECK:STDOUT: import_ir_inst55: {ir_id: import_ir60000004, inst_id: inst4800012B} // CHECK:STDOUT: import_ir_inst56: {ir_id: import_ir60000004, inst_id: inst(TypeType)} -// CHECK:STDOUT: import_ir_inst57: {ir_id: import_ir60000004, inst_id: inst4800012B} -// CHECK:STDOUT: import_ir_inst58: {ir_id: import_ir60000004, inst_id: inst48000144} -// CHECK:STDOUT: import_ir_inst59: {ir_id: import_ir60000004, inst_id: inst48000142} -// CHECK:STDOUT: import_ir_inst5A: {ir_id: import_ir60000004, inst_id: inst48000140} -// CHECK:STDOUT: import_ir_inst5B: {ir_id: import_ir60000004, inst_id: inst48000141} -// CHECK:STDOUT: import_ir_inst5C: {ir_id: import_ir60000004, inst_id: inst48000176} -// CHECK:STDOUT: import_ir_inst5D: {ir_id: import_ir60000004, inst_id: inst48000174} -// CHECK:STDOUT: import_ir_inst5E: {ir_id: import_ir60000004, inst_id: inst4800015F} -// CHECK:STDOUT: import_ir_inst5F: {ir_id: import_ir60000004, inst_id: inst48000159} -// CHECK:STDOUT: import_ir_inst60: {ir_id: import_ir60000004, inst_id: inst48000157} -// CHECK:STDOUT: import_ir_inst61: {ir_id: import_ir60000004, inst_id: inst4800015C} -// CHECK:STDOUT: import_ir_inst62: {ir_id: import_ir60000004, inst_id: inst4800016F} -// CHECK:STDOUT: import_ir_inst63: {ir_id: import_ir60000004, inst_id: inst48000171} -// CHECK:STDOUT: import_ir_inst64: {ir_id: import_ir60000004, inst_id: inst4800018E} -// CHECK:STDOUT: import_ir_inst65: {ir_id: import_ir60000004, inst_id: inst48000175} -// CHECK:STDOUT: import_ir_inst66: {ir_id: import_ir60000004, inst_id: inst48000158} -// CHECK:STDOUT: import_ir_inst67: {ir_id: import_ir60000004, inst_id: inst4800015E} -// CHECK:STDOUT: import_ir_inst68: {ir_id: import_ir60000004, inst_id: inst48000165} -// CHECK:STDOUT: import_ir_inst69: {ir_id: import_ir60000004, inst_id: inst48000168} -// CHECK:STDOUT: import_ir_inst6A: {ir_id: import_ir60000004, inst_id: inst4800016C} -// CHECK:STDOUT: import_ir_inst6B: {ir_id: import_ir60000004, inst_id: inst48000170} -// CHECK:STDOUT: import_ir_inst6C: {ir_id: import_ir60000004, inst_id: inst48000178} -// CHECK:STDOUT: import_ir_inst6D: {ir_id: import_ir60000004, inst_id: inst4800018E} -// CHECK:STDOUT: import_ir_inst6E: {ir_id: import_ir60000004, inst_id: inst48000189} -// CHECK:STDOUT: import_ir_inst6F: {ir_id: import_ir60000004, inst_id: inst4800018A} -// CHECK:STDOUT: import_ir_inst70: {ir_id: import_ir60000004, inst_id: inst48000185} -// CHECK:STDOUT: import_ir_inst71: {ir_id: import_ir60000004, inst_id: inst48000187} -// CHECK:STDOUT: import_ir_inst72: {ir_id: import_ir60000004, inst_id: inst48000157} -// CHECK:STDOUT: import_ir_inst73: {ir_id: import_ir60000004, inst_id: inst4800015C} -// CHECK:STDOUT: import_ir_inst74: {ir_id: import_ir60000004, inst_id: inst48000191} -// CHECK:STDOUT: import_ir_inst75: {ir_id: import_ir60000004, inst_id: inst48000192} -// CHECK:STDOUT: import_ir_inst76: {ir_id: import_ir60000004, inst_id: inst4800017E} -// CHECK:STDOUT: import_ir_inst77: {ir_id: import_ir60000004, inst_id: inst4800017F} -// CHECK:STDOUT: import_ir_inst78: {ir_id: import_ir60000004, inst_id: inst48000180} -// CHECK:STDOUT: import_ir_inst79: {ir_id: import_ir60000004, inst_id: inst48000181} -// CHECK:STDOUT: import_ir_inst7A: {ir_id: import_ir60000004, inst_id: inst48000182} -// CHECK:STDOUT: import_ir_inst7B: {ir_id: import_ir60000004, inst_id: inst48000186} -// CHECK:STDOUT: import_ir_inst7C: {ir_id: import_ir60000004, inst_id: inst48000197} -// CHECK:STDOUT: import_ir_inst7D: {ir_id: import_ir60000004, inst_id: inst4800019F} -// CHECK:STDOUT: import_ir_inst7E: {ir_id: import_ir60000004, inst_id: inst480001A3} -// CHECK:STDOUT: import_ir_inst7F: {ir_id: import_ir60000004, inst_id: inst480001A5} -// CHECK:STDOUT: import_ir_inst80: {ir_id: import_ir60000004, inst_id: inst480001A6} -// CHECK:STDOUT: import_ir_inst81: {ir_id: import_ir60000004, inst_id: inst480001A9} -// CHECK:STDOUT: import_ir_inst82: {ir_id: import_ir60000004, inst_id: inst480001B5} -// CHECK:STDOUT: import_ir_inst83: {ir_id: import_ir60000004, inst_id: inst480001BA} -// CHECK:STDOUT: import_ir_inst84: {ir_id: import_ir60000004, inst_id: inst480001BE} -// CHECK:STDOUT: import_ir_inst85: {ir_id: import_ir60000004, inst_id: inst480001BF} -// CHECK:STDOUT: import_ir_inst86: {ir_id: import_ir60000004, inst_id: inst480001C4} -// CHECK:STDOUT: import_ir_inst87: {ir_id: import_ir60000004, inst_id: inst480001FF} -// CHECK:STDOUT: import_ir_inst88: {ir_id: import_ir60000004, inst_id: inst480001FD} -// CHECK:STDOUT: import_ir_inst89: {ir_id: import_ir60000004, inst_id: inst480001E3} -// CHECK:STDOUT: import_ir_inst8A: {ir_id: import_ir60000004, inst_id: inst480001DD} -// CHECK:STDOUT: import_ir_inst8B: {ir_id: import_ir60000004, inst_id: inst480001D8} -// CHECK:STDOUT: import_ir_inst8C: {ir_id: import_ir60000004, inst_id: inst480001D6} -// CHECK:STDOUT: import_ir_inst8D: {ir_id: import_ir60000004, inst_id: inst480001DB} -// CHECK:STDOUT: import_ir_inst8E: {ir_id: import_ir60000004, inst_id: inst480001E0} -// CHECK:STDOUT: import_ir_inst8F: {ir_id: import_ir60000004, inst_id: inst480001F7} -// CHECK:STDOUT: import_ir_inst90: {ir_id: import_ir60000004, inst_id: inst480001F9} -// CHECK:STDOUT: import_ir_inst91: {ir_id: import_ir60000004, inst_id: inst4800021B} -// CHECK:STDOUT: import_ir_inst92: {ir_id: import_ir60000004, inst_id: inst480001FE} -// CHECK:STDOUT: import_ir_inst93: {ir_id: import_ir60000004, inst_id: inst480001D7} -// CHECK:STDOUT: import_ir_inst94: {ir_id: import_ir60000004, inst_id: inst480001DC} -// CHECK:STDOUT: import_ir_inst95: {ir_id: import_ir60000004, inst_id: inst480001E2} -// CHECK:STDOUT: import_ir_inst96: {ir_id: import_ir60000004, inst_id: inst480001EA} -// CHECK:STDOUT: import_ir_inst97: {ir_id: import_ir60000004, inst_id: inst480001ED} -// CHECK:STDOUT: import_ir_inst98: {ir_id: import_ir60000004, inst_id: inst480001F0} -// CHECK:STDOUT: import_ir_inst99: {ir_id: import_ir60000004, inst_id: inst480001F4} -// CHECK:STDOUT: import_ir_inst9A: {ir_id: import_ir60000004, inst_id: inst480001F8} -// CHECK:STDOUT: import_ir_inst9B: {ir_id: import_ir60000004, inst_id: inst48000201} -// CHECK:STDOUT: import_ir_inst9C: {ir_id: import_ir60000004, inst_id: inst4800021B} -// CHECK:STDOUT: import_ir_inst9D: {ir_id: import_ir60000004, inst_id: inst48000216} -// CHECK:STDOUT: import_ir_inst9E: {ir_id: import_ir60000004, inst_id: inst48000217} -// CHECK:STDOUT: import_ir_inst9F: {ir_id: import_ir60000004, inst_id: inst48000212} -// CHECK:STDOUT: import_ir_instA0: {ir_id: import_ir60000004, inst_id: inst48000214} -// CHECK:STDOUT: import_ir_instA1: {ir_id: import_ir60000004, inst_id: inst480001D6} -// CHECK:STDOUT: import_ir_instA2: {ir_id: import_ir60000004, inst_id: inst480001DB} -// CHECK:STDOUT: import_ir_instA3: {ir_id: import_ir60000004, inst_id: inst480001E0} -// CHECK:STDOUT: import_ir_instA4: {ir_id: import_ir60000004, inst_id: inst4800021E} -// CHECK:STDOUT: import_ir_instA5: {ir_id: import_ir60000004, inst_id: inst4800021F} -// CHECK:STDOUT: import_ir_instA6: {ir_id: import_ir60000004, inst_id: inst48000209} -// CHECK:STDOUT: import_ir_instA7: {ir_id: import_ir60000004, inst_id: inst4800020A} -// CHECK:STDOUT: import_ir_instA8: {ir_id: import_ir60000004, inst_id: inst4800020B} -// CHECK:STDOUT: import_ir_instA9: {ir_id: import_ir60000004, inst_id: inst4800020C} -// CHECK:STDOUT: import_ir_instAA: {ir_id: import_ir60000004, inst_id: inst4800020D} -// CHECK:STDOUT: import_ir_instAB: {ir_id: import_ir60000004, inst_id: inst4800020E} -// CHECK:STDOUT: import_ir_instAC: {ir_id: import_ir60000004, inst_id: inst4800020F} -// CHECK:STDOUT: import_ir_instAD: {ir_id: import_ir60000004, inst_id: inst48000213} -// CHECK:STDOUT: import_ir_instAE: {ir_id: import_ir60000004, inst_id: inst48000224} -// CHECK:STDOUT: import_ir_instAF: {ir_id: import_ir60000004, inst_id: inst4800022B} -// CHECK:STDOUT: import_ir_instB0: {ir_id: import_ir60000004, inst_id: inst4800022F} -// CHECK:STDOUT: import_ir_instB1: {ir_id: import_ir60000004, inst_id: inst48000231} -// CHECK:STDOUT: import_ir_instB2: {ir_id: import_ir60000004, inst_id: inst48000232} -// CHECK:STDOUT: import_ir_instB3: {ir_id: import_ir60000004, inst_id: inst48000235} -// CHECK:STDOUT: import_ir_instB4: {ir_id: import_ir60000004, inst_id: inst4800023F} -// CHECK:STDOUT: import_ir_instB5: {ir_id: import_ir60000004, inst_id: inst48000243} -// CHECK:STDOUT: import_ir_instB6: {ir_id: import_ir60000004, inst_id: inst48000245} -// CHECK:STDOUT: import_ir_instB7: {ir_id: import_ir60000004, inst_id: inst48000246} -// CHECK:STDOUT: import_ir_instB8: {ir_id: import_ir60000004, inst_id: inst48000249} -// CHECK:STDOUT: import_ir_instB9: {ir_id: import_ir60000004, inst_id: inst48000255} -// CHECK:STDOUT: import_ir_instBA: {ir_id: import_ir60000004, inst_id: inst4800025A} -// CHECK:STDOUT: import_ir_instBB: {ir_id: import_ir60000004, inst_id: inst4800025E} -// CHECK:STDOUT: import_ir_instBC: {ir_id: import_ir60000004, inst_id: inst4800025F} -// CHECK:STDOUT: import_ir_instBD: {ir_id: import_ir60000004, inst_id: inst48000264} +// CHECK:STDOUT: import_ir_inst57: {ir_id: import_ir60000004, inst_id: inst4800012A} +// CHECK:STDOUT: import_ir_inst58: {ir_id: import_ir60000004, inst_id: inst48000143} +// CHECK:STDOUT: import_ir_inst59: {ir_id: import_ir60000004, inst_id: inst48000141} +// CHECK:STDOUT: import_ir_inst5A: {ir_id: import_ir60000004, inst_id: inst4800013F} +// CHECK:STDOUT: import_ir_inst5B: {ir_id: import_ir60000004, inst_id: inst48000140} +// CHECK:STDOUT: import_ir_inst5C: {ir_id: import_ir60000004, inst_id: inst48000175} +// CHECK:STDOUT: import_ir_inst5D: {ir_id: import_ir60000004, inst_id: inst48000173} +// CHECK:STDOUT: import_ir_inst5E: {ir_id: import_ir60000004, inst_id: inst4800015E} +// CHECK:STDOUT: import_ir_inst5F: {ir_id: import_ir60000004, inst_id: inst48000158} +// CHECK:STDOUT: import_ir_inst60: {ir_id: import_ir60000004, inst_id: inst48000156} +// CHECK:STDOUT: import_ir_inst61: {ir_id: import_ir60000004, inst_id: inst4800015B} +// CHECK:STDOUT: import_ir_inst62: {ir_id: import_ir60000004, inst_id: inst4800016E} +// CHECK:STDOUT: import_ir_inst63: {ir_id: import_ir60000004, inst_id: inst48000170} +// CHECK:STDOUT: import_ir_inst64: {ir_id: import_ir60000004, inst_id: inst4800018D} +// CHECK:STDOUT: import_ir_inst65: {ir_id: import_ir60000004, inst_id: inst48000174} +// CHECK:STDOUT: import_ir_inst66: {ir_id: import_ir60000004, inst_id: inst48000157} +// CHECK:STDOUT: import_ir_inst67: {ir_id: import_ir60000004, inst_id: inst4800015D} +// CHECK:STDOUT: import_ir_inst68: {ir_id: import_ir60000004, inst_id: inst48000164} +// CHECK:STDOUT: import_ir_inst69: {ir_id: import_ir60000004, inst_id: inst48000167} +// CHECK:STDOUT: import_ir_inst6A: {ir_id: import_ir60000004, inst_id: inst4800016B} +// CHECK:STDOUT: import_ir_inst6B: {ir_id: import_ir60000004, inst_id: inst4800016F} +// CHECK:STDOUT: import_ir_inst6C: {ir_id: import_ir60000004, inst_id: inst48000177} +// CHECK:STDOUT: import_ir_inst6D: {ir_id: import_ir60000004, inst_id: inst4800018D} +// CHECK:STDOUT: import_ir_inst6E: {ir_id: import_ir60000004, inst_id: inst48000188} +// CHECK:STDOUT: import_ir_inst6F: {ir_id: import_ir60000004, inst_id: inst48000189} +// CHECK:STDOUT: import_ir_inst70: {ir_id: import_ir60000004, inst_id: inst48000184} +// CHECK:STDOUT: import_ir_inst71: {ir_id: import_ir60000004, inst_id: inst48000186} +// CHECK:STDOUT: import_ir_inst72: {ir_id: import_ir60000004, inst_id: inst48000156} +// CHECK:STDOUT: import_ir_inst73: {ir_id: import_ir60000004, inst_id: inst4800015B} +// CHECK:STDOUT: import_ir_inst74: {ir_id: import_ir60000004, inst_id: inst48000190} +// CHECK:STDOUT: import_ir_inst75: {ir_id: import_ir60000004, inst_id: inst48000191} +// CHECK:STDOUT: import_ir_inst76: {ir_id: import_ir60000004, inst_id: inst4800017D} +// CHECK:STDOUT: import_ir_inst77: {ir_id: import_ir60000004, inst_id: inst4800017E} +// CHECK:STDOUT: import_ir_inst78: {ir_id: import_ir60000004, inst_id: inst4800017F} +// CHECK:STDOUT: import_ir_inst79: {ir_id: import_ir60000004, inst_id: inst48000180} +// CHECK:STDOUT: import_ir_inst7A: {ir_id: import_ir60000004, inst_id: inst48000181} +// CHECK:STDOUT: import_ir_inst7B: {ir_id: import_ir60000004, inst_id: inst48000185} +// CHECK:STDOUT: import_ir_inst7C: {ir_id: import_ir60000004, inst_id: inst48000196} +// CHECK:STDOUT: import_ir_inst7D: {ir_id: import_ir60000004, inst_id: inst4800019E} +// CHECK:STDOUT: import_ir_inst7E: {ir_id: import_ir60000004, inst_id: inst480001A2} +// CHECK:STDOUT: import_ir_inst7F: {ir_id: import_ir60000004, inst_id: inst480001A4} +// CHECK:STDOUT: import_ir_inst80: {ir_id: import_ir60000004, inst_id: inst480001A5} +// CHECK:STDOUT: import_ir_inst81: {ir_id: import_ir60000004, inst_id: inst480001A8} +// CHECK:STDOUT: import_ir_inst82: {ir_id: import_ir60000004, inst_id: inst480001B4} +// CHECK:STDOUT: import_ir_inst83: {ir_id: import_ir60000004, inst_id: inst480001B9} +// CHECK:STDOUT: import_ir_inst84: {ir_id: import_ir60000004, inst_id: inst480001BD} +// CHECK:STDOUT: import_ir_inst85: {ir_id: import_ir60000004, inst_id: inst480001BE} +// CHECK:STDOUT: import_ir_inst86: {ir_id: import_ir60000004, inst_id: inst480001C3} +// CHECK:STDOUT: import_ir_inst87: {ir_id: import_ir60000004, inst_id: inst480001FE} +// CHECK:STDOUT: import_ir_inst88: {ir_id: import_ir60000004, inst_id: inst480001FC} +// CHECK:STDOUT: import_ir_inst89: {ir_id: import_ir60000004, inst_id: inst480001E2} +// CHECK:STDOUT: import_ir_inst8A: {ir_id: import_ir60000004, inst_id: inst480001DC} +// CHECK:STDOUT: import_ir_inst8B: {ir_id: import_ir60000004, inst_id: inst480001D7} +// CHECK:STDOUT: import_ir_inst8C: {ir_id: import_ir60000004, inst_id: inst480001D5} +// CHECK:STDOUT: import_ir_inst8D: {ir_id: import_ir60000004, inst_id: inst480001DA} +// CHECK:STDOUT: import_ir_inst8E: {ir_id: import_ir60000004, inst_id: inst480001DF} +// CHECK:STDOUT: import_ir_inst8F: {ir_id: import_ir60000004, inst_id: inst480001F6} +// CHECK:STDOUT: import_ir_inst90: {ir_id: import_ir60000004, inst_id: inst480001F8} +// CHECK:STDOUT: import_ir_inst91: {ir_id: import_ir60000004, inst_id: inst4800021A} +// CHECK:STDOUT: import_ir_inst92: {ir_id: import_ir60000004, inst_id: inst480001FD} +// CHECK:STDOUT: import_ir_inst93: {ir_id: import_ir60000004, inst_id: inst480001D6} +// CHECK:STDOUT: import_ir_inst94: {ir_id: import_ir60000004, inst_id: inst480001DB} +// CHECK:STDOUT: import_ir_inst95: {ir_id: import_ir60000004, inst_id: inst480001E1} +// CHECK:STDOUT: import_ir_inst96: {ir_id: import_ir60000004, inst_id: inst480001E9} +// CHECK:STDOUT: import_ir_inst97: {ir_id: import_ir60000004, inst_id: inst480001EC} +// CHECK:STDOUT: import_ir_inst98: {ir_id: import_ir60000004, inst_id: inst480001EF} +// CHECK:STDOUT: import_ir_inst99: {ir_id: import_ir60000004, inst_id: inst480001F3} +// CHECK:STDOUT: import_ir_inst9A: {ir_id: import_ir60000004, inst_id: inst480001F7} +// CHECK:STDOUT: import_ir_inst9B: {ir_id: import_ir60000004, inst_id: inst48000200} +// CHECK:STDOUT: import_ir_inst9C: {ir_id: import_ir60000004, inst_id: inst4800021A} +// CHECK:STDOUT: import_ir_inst9D: {ir_id: import_ir60000004, inst_id: inst48000215} +// CHECK:STDOUT: import_ir_inst9E: {ir_id: import_ir60000004, inst_id: inst48000216} +// CHECK:STDOUT: import_ir_inst9F: {ir_id: import_ir60000004, inst_id: inst48000211} +// CHECK:STDOUT: import_ir_instA0: {ir_id: import_ir60000004, inst_id: inst48000213} +// CHECK:STDOUT: import_ir_instA1: {ir_id: import_ir60000004, inst_id: inst480001D5} +// CHECK:STDOUT: import_ir_instA2: {ir_id: import_ir60000004, inst_id: inst480001DA} +// CHECK:STDOUT: import_ir_instA3: {ir_id: import_ir60000004, inst_id: inst480001DF} +// CHECK:STDOUT: import_ir_instA4: {ir_id: import_ir60000004, inst_id: inst4800021D} +// CHECK:STDOUT: import_ir_instA5: {ir_id: import_ir60000004, inst_id: inst4800021E} +// CHECK:STDOUT: import_ir_instA6: {ir_id: import_ir60000004, inst_id: inst48000208} +// CHECK:STDOUT: import_ir_instA7: {ir_id: import_ir60000004, inst_id: inst48000209} +// CHECK:STDOUT: import_ir_instA8: {ir_id: import_ir60000004, inst_id: inst4800020A} +// CHECK:STDOUT: import_ir_instA9: {ir_id: import_ir60000004, inst_id: inst4800020B} +// CHECK:STDOUT: import_ir_instAA: {ir_id: import_ir60000004, inst_id: inst4800020C} +// CHECK:STDOUT: import_ir_instAB: {ir_id: import_ir60000004, inst_id: inst4800020D} +// CHECK:STDOUT: import_ir_instAC: {ir_id: import_ir60000004, inst_id: inst4800020E} +// CHECK:STDOUT: import_ir_instAD: {ir_id: import_ir60000004, inst_id: inst48000212} +// CHECK:STDOUT: import_ir_instAE: {ir_id: import_ir60000004, inst_id: inst48000223} +// CHECK:STDOUT: import_ir_instAF: {ir_id: import_ir60000004, inst_id: inst4800022A} +// CHECK:STDOUT: import_ir_instB0: {ir_id: import_ir60000004, inst_id: inst4800022E} +// CHECK:STDOUT: import_ir_instB1: {ir_id: import_ir60000004, inst_id: inst48000230} +// CHECK:STDOUT: import_ir_instB2: {ir_id: import_ir60000004, inst_id: inst48000231} +// CHECK:STDOUT: import_ir_instB3: {ir_id: import_ir60000004, inst_id: inst48000234} +// CHECK:STDOUT: import_ir_instB4: {ir_id: import_ir60000004, inst_id: inst4800023E} +// CHECK:STDOUT: import_ir_instB5: {ir_id: import_ir60000004, inst_id: inst48000242} +// CHECK:STDOUT: import_ir_instB6: {ir_id: import_ir60000004, inst_id: inst48000244} +// CHECK:STDOUT: import_ir_instB7: {ir_id: import_ir60000004, inst_id: inst48000245} +// CHECK:STDOUT: import_ir_instB8: {ir_id: import_ir60000004, inst_id: inst48000248} +// CHECK:STDOUT: import_ir_instB9: {ir_id: import_ir60000004, inst_id: inst48000254} +// CHECK:STDOUT: import_ir_instBA: {ir_id: import_ir60000004, inst_id: inst48000259} +// CHECK:STDOUT: import_ir_instBB: {ir_id: import_ir60000004, inst_id: inst4800025D} +// CHECK:STDOUT: import_ir_instBC: {ir_id: import_ir60000004, inst_id: inst4800025E} +// CHECK:STDOUT: import_ir_instBD: {ir_id: import_ir60000004, inst_id: inst48000263} // CHECK:STDOUT: clang_decls: {} // CHECK:STDOUT: name_scopes: -// CHECK:STDOUT: name_scope0: {inst: instE, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name(Core): inst60000010, name0: inst60000038}} -// CHECK:STDOUT: name_scope60000001: {inst: inst60000010, parent_scope: name_scope0, has_error: false, extended_scopes: [], names: {name3: inst60000048}} -// CHECK:STDOUT: name_scope60000002: {inst: inst60000049, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {name(SelfType): inst6000004C, name4: inst6000004D}} -// CHECK:STDOUT: name_scope60000003: {inst: inst60000061, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope60000004: {inst: inst6000008E, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope60000005: {inst: inst60000092, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope60000006: {inst: inst60000096, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope60000007: {inst: inst6000009A, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope60000008: {inst: inst6000009E, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope60000009: {inst: inst600000B8, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope6000000A: {inst: inst600000BC, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope6000000B: {inst: inst600000C0, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} -// CHECK:STDOUT: name_scope6000000C: {inst: inst600000FB, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope0: {inst: instD, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name(Core): inst6000000F, name0: inst60000037}} +// CHECK:STDOUT: name_scope60000001: {inst: inst6000000F, parent_scope: name_scope0, has_error: false, extended_scopes: [], names: {name3: inst60000047}} +// CHECK:STDOUT: name_scope60000002: {inst: inst60000048, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {name(SelfType): inst6000004B, name4: inst6000004C}} +// CHECK:STDOUT: name_scope60000003: {inst: inst60000060, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope60000004: {inst: inst6000008D, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope60000005: {inst: inst60000091, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope60000006: {inst: inst60000095, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope60000007: {inst: inst60000099, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope60000008: {inst: inst6000009D, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope60000009: {inst: inst600000B7, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope6000000A: {inst: inst600000BB, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope6000000B: {inst: inst600000BF, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope6000000C: {inst: inst600000FA, parent_scope: name_scope60000001, has_error: false, extended_scopes: [], names: {}} // CHECK:STDOUT: entity_names: // CHECK:STDOUT: entity_name60000000: {name: name(PeriodSelf), parent_scope: name_scope, index: -1, is_template: 0} // CHECK:STDOUT: entity_name60000001: {name: name1, parent_scope: name_scope, index: 0, is_template: 0} @@ -298,24 +298,24 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: entity_name6000003D: {name: name6, parent_scope: name_scope, index: 2, is_template: 0} // CHECK:STDOUT: cpp_global_vars: {} // CHECK:STDOUT: functions: -// CHECK:STDOUT: function60000000: {name: name0, parent_scope: name_scope0, call_params_id: inst_block6000000F, return_slot_pattern: inst60000033, body: [inst_block60000016]} -// CHECK:STDOUT: function60000001: {name: name4, parent_scope: name_scope60000002, return_slot_pattern: inst60000058} -// CHECK:STDOUT: function60000002: {name: name4, parent_scope: name_scope60000003, return_slot_pattern: inst60000076} -// CHECK:STDOUT: function60000003: {name: name4, parent_scope: name_scope60000008, return_slot_pattern: inst600000AD} -// CHECK:STDOUT: function60000004: {name: name4, parent_scope: name_scope6000000B, return_slot_pattern: inst600000DB} -// CHECK:STDOUT: function60000005: {name: name4, parent_scope: name_scope6000000C, return_slot_pattern: inst6000011A} +// CHECK:STDOUT: function60000000: {name: name0, parent_scope: name_scope0, call_params_id: inst_block6000000F, return_slot_pattern: inst60000032, body: [inst_block60000016]} +// CHECK:STDOUT: function60000001: {name: name4, parent_scope: name_scope60000002, return_slot_pattern: inst60000057} +// CHECK:STDOUT: function60000002: {name: name4, parent_scope: name_scope60000003, return_slot_pattern: inst60000075} +// CHECK:STDOUT: function60000003: {name: name4, parent_scope: name_scope60000008, return_slot_pattern: inst600000AC} +// CHECK:STDOUT: function60000004: {name: name4, parent_scope: name_scope6000000B, return_slot_pattern: inst600000DA} +// CHECK:STDOUT: function60000005: {name: name4, parent_scope: name_scope6000000C, return_slot_pattern: inst60000119} // CHECK:STDOUT: classes: {} // CHECK:STDOUT: generics: -// CHECK:STDOUT: generic60000000: {decl: inst60000038, bindings: inst_block60000012} -// CHECK:STDOUT: generic60000001: {decl: inst60000052, bindings: inst_block6000001A} -// CHECK:STDOUT: generic60000002: {decl: inst60000061, bindings: inst_block6000001F} -// CHECK:STDOUT: generic60000003: {decl: inst60000071, bindings: inst_block60000026} -// CHECK:STDOUT: generic60000004: {decl: inst6000009E, bindings: inst_block60000030} -// CHECK:STDOUT: generic60000005: {decl: inst600000A9, bindings: inst_block60000036} -// CHECK:STDOUT: generic60000006: {decl: inst600000C0, bindings: inst_block6000003D} -// CHECK:STDOUT: generic60000007: {decl: inst600000D6, bindings: inst_block60000047} -// CHECK:STDOUT: generic60000008: {decl: inst600000FB, bindings: inst_block60000055} -// CHECK:STDOUT: generic60000009: {decl: inst60000115, bindings: inst_block6000005F} +// CHECK:STDOUT: generic60000000: {decl: inst60000037, bindings: inst_block60000012} +// CHECK:STDOUT: generic60000001: {decl: inst60000051, bindings: inst_block6000001A} +// CHECK:STDOUT: generic60000002: {decl: inst60000060, bindings: inst_block6000001F} +// CHECK:STDOUT: generic60000003: {decl: inst60000070, bindings: inst_block60000026} +// CHECK:STDOUT: generic60000004: {decl: inst6000009D, bindings: inst_block60000030} +// CHECK:STDOUT: generic60000005: {decl: inst600000A8, bindings: inst_block60000036} +// CHECK:STDOUT: generic60000006: {decl: inst600000BF, bindings: inst_block6000003D} +// CHECK:STDOUT: generic60000007: {decl: inst600000D5, bindings: inst_block60000047} +// CHECK:STDOUT: generic60000008: {decl: inst600000FA, bindings: inst_block60000055} +// CHECK:STDOUT: generic60000009: {decl: inst60000114, bindings: inst_block6000005F} // CHECK:STDOUT: specifics: // CHECK:STDOUT: specific60000000: {generic: generic60000000, args: inst_block60000013} // CHECK:STDOUT: specific60000001: {generic: generic60000001, args: inst_block6000001C} @@ -351,14 +351,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(inst60000024)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000024)} -// CHECK:STDOUT: 'type(inst6000002B)': -// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst6000002B)} -// CHECK:STDOUT: 'type(inst60000027)': -// CHECK:STDOUT: value_repr: {kind: pointer, type: type(inst6000002B)} -// CHECK:STDOUT: 'type(inst60000039)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000024)} +// CHECK:STDOUT: 'type(inst60000023)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000023)} +// CHECK:STDOUT: 'type(inst6000002A)': +// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst6000002A)} +// CHECK:STDOUT: 'type(inst60000026)': +// CHECK:STDOUT: value_repr: {kind: pointer, type: type(inst6000002A)} +// CHECK:STDOUT: 'type(inst60000038)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000023)} // CHECK:STDOUT: 'type(symbolic_constant3)': // CHECK:STDOUT: value_repr: {kind: copy, type: type(symbolic_constant3)} // CHECK:STDOUT: 'type(symbolic_constantD)': @@ -372,1488 +372,1488 @@ fn Foo[T:! type](p: T*) -> (T*, ()) { // CHECK:STDOUT: 'type(symbolic_constantA)': // CHECK:STDOUT: value_repr: {kind: pointer, type: type(symbolic_constantD)} // CHECK:STDOUT: 'type(inst(InstType))': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000024)} -// CHECK:STDOUT: 'type(inst6000004A)': -// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst6000004A)} +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000023)} +// CHECK:STDOUT: 'type(inst60000049)': +// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst60000049)} // CHECK:STDOUT: 'type(inst(SpecificFunctionType))': // CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(SpecificFunctionType))} // CHECK:STDOUT: 'type(symbolic_constant60000109)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000024)} +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000023)} // CHECK:STDOUT: 'type(symbolic_constant6000010C)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000024)} +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst60000023)} // CHECK:STDOUT: 'type(inst(BoundMethodType))': // CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(BoundMethodType))} // CHECK:STDOUT: insts: -// CHECK:STDOUT: instE: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst6000000F: {kind: ImportDecl, arg0: name(Core)} -// CHECK:STDOUT: inst60000010: {kind: Namespace, arg0: name_scope60000001, arg1: inst6000000F, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst60000011: {kind: FacetType, arg0: facet_type60000000, type: type(TypeType)} -// CHECK:STDOUT: inst60000012: {kind: SymbolicBinding, arg0: entity_name60000000, arg1: inst, type: type(inst60000011)} -// CHECK:STDOUT: inst60000013: {kind: SymbolicBinding, arg0: entity_name60000000, arg1: inst, type: type(inst60000011)} +// CHECK:STDOUT: instD: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} +// CHECK:STDOUT: inst6000000E: {kind: ImportDecl, arg0: name(Core)} +// CHECK:STDOUT: inst6000000F: {kind: Namespace, arg0: name_scope60000001, arg1: inst6000000E, type: type(inst(NamespaceType))} +// CHECK:STDOUT: inst60000010: {kind: FacetType, arg0: facet_type60000000, type: type(TypeType)} +// CHECK:STDOUT: inst60000011: {kind: SymbolicBinding, arg0: entity_name60000000, arg1: inst, type: type(inst60000010)} +// CHECK:STDOUT: inst60000012: {kind: SymbolicBinding, arg0: entity_name60000000, arg1: inst, type: type(inst60000010)} +// CHECK:STDOUT: inst60000013: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(TypeType)} // CHECK:STDOUT: inst60000014: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(TypeType)} // CHECK:STDOUT: inst60000015: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(TypeType)} -// CHECK:STDOUT: inst60000016: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(TypeType)} -// CHECK:STDOUT: inst60000017: {kind: PatternType, arg0: inst(TypeType), type: type(TypeType)} -// CHECK:STDOUT: inst60000018: {kind: SymbolicBindingPattern, arg0: entity_name60000001, type: type(inst60000017)} -// CHECK:STDOUT: inst60000019: {kind: NameRef, arg0: name1, arg1: inst60000014, type: type(TypeType)} -// CHECK:STDOUT: inst6000001A: {kind: PointerType, arg0: inst60000019, type: type(TypeType)} +// CHECK:STDOUT: inst60000016: {kind: PatternType, arg0: inst(TypeType), type: type(TypeType)} +// CHECK:STDOUT: inst60000017: {kind: SymbolicBindingPattern, arg0: entity_name60000001, type: type(inst60000016)} +// CHECK:STDOUT: inst60000018: {kind: NameRef, arg0: name1, arg1: inst60000013, type: type(TypeType)} +// CHECK:STDOUT: inst60000019: {kind: PointerType, arg0: inst60000018, type: type(TypeType)} +// CHECK:STDOUT: inst6000001A: {kind: PointerType, arg0: inst60000014, type: type(TypeType)} // CHECK:STDOUT: inst6000001B: {kind: PointerType, arg0: inst60000015, type: type(TypeType)} -// CHECK:STDOUT: inst6000001C: {kind: PointerType, arg0: inst60000016, type: type(TypeType)} -// CHECK:STDOUT: inst6000001D: {kind: ValueBinding, arg0: entity_name60000002, arg1: inst60000034, type: type(symbolic_constant4)} -// CHECK:STDOUT: inst6000001E: {kind: PatternType, arg0: inst6000001B, type: type(TypeType)} -// CHECK:STDOUT: inst6000001F: {kind: ValueBindingPattern, arg0: entity_name60000002, type: type(symbolic_constant6)} -// CHECK:STDOUT: inst60000020: {kind: PatternType, arg0: inst6000001C, type: type(TypeType)} -// CHECK:STDOUT: inst60000021: {kind: ValueParamPattern, arg0: inst6000001F, arg1: call_param0, type: type(symbolic_constant6)} -// CHECK:STDOUT: inst60000022: {kind: NameRef, arg0: name1, arg1: inst60000014, type: type(TypeType)} -// CHECK:STDOUT: inst60000023: {kind: PointerType, arg0: inst60000022, type: type(TypeType)} -// CHECK:STDOUT: inst60000024: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)} -// CHECK:STDOUT: inst60000025: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst60000024)} -// CHECK:STDOUT: inst60000026: {kind: TupleValue, arg0: inst_block_empty, type: type(inst60000024)} -// CHECK:STDOUT: inst60000027: {kind: TupleType, arg0: inst_block60000009, type: type(TypeType)} -// CHECK:STDOUT: inst60000028: {kind: TupleLiteral, arg0: inst_block60000008, type: type(inst60000027)} -// CHECK:STDOUT: inst60000029: {kind: TupleValue, arg0: inst_block6000000A, type: type(inst60000027)} -// CHECK:STDOUT: inst6000002A: {kind: TupleValue, arg0: inst_block6000000B, type: type(inst60000027)} -// CHECK:STDOUT: inst6000002B: {kind: PointerType, arg0: inst60000027, type: type(TypeType)} -// CHECK:STDOUT: inst6000002C: {kind: Converted, arg0: inst60000026, arg1: inst60000024, type: type(TypeType)} -// CHECK:STDOUT: inst6000002D: {kind: TupleType, arg0: inst_block6000000D, type: type(TypeType)} -// CHECK:STDOUT: inst6000002E: {kind: Converted, arg0: inst60000028, arg1: inst6000002D, type: type(TypeType)} -// CHECK:STDOUT: inst6000002F: {kind: TupleType, arg0: inst_block6000000E, type: type(TypeType)} -// CHECK:STDOUT: inst60000030: {kind: PatternType, arg0: inst6000002D, type: type(TypeType)} -// CHECK:STDOUT: inst60000031: {kind: ReturnSlotPattern, arg0: inst6000002E, type: type(symbolic_constantC)} -// CHECK:STDOUT: inst60000032: {kind: PatternType, arg0: inst6000002F, type: type(TypeType)} -// CHECK:STDOUT: inst60000033: {kind: OutParamPattern, arg0: inst60000031, arg1: call_param1, type: type(symbolic_constantC)} -// CHECK:STDOUT: inst60000034: {kind: ValueParam, arg0: call_param0, arg1: name2, type: type(symbolic_constant4)} -// CHECK:STDOUT: inst60000035: {kind: SpliceBlock, arg0: inst_block60000006, arg1: inst6000001A, type: type(TypeType)} -// CHECK:STDOUT: inst60000036: {kind: OutParam, arg0: call_param1, arg1: name(ReturnSlot), type: type(symbolic_constantA)} -// CHECK:STDOUT: inst60000037: {kind: ReturnSlot, arg0: inst6000002D, arg1: inst60000036, type: type(symbolic_constantA)} -// CHECK:STDOUT: inst60000038: {kind: FunctionDecl, arg0: function60000000, arg1: inst_block60000011, type: type(inst60000039)} -// CHECK:STDOUT: inst60000039: {kind: FunctionType, arg0: function60000000, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst6000003A: {kind: StructValue, arg0: inst_block_empty, type: type(inst60000039)} -// CHECK:STDOUT: inst6000003B: {kind: PointerType, arg0: inst6000002D, type: type(TypeType)} -// CHECK:STDOUT: inst6000003C: {kind: RequireCompleteType, arg0: inst6000002D, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000003D: {kind: RequireCompleteType, arg0: inst6000002D, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000003E: {kind: RequireCompleteType, arg0: inst6000002F, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000003F: {kind: RequireCompleteType, arg0: inst6000001B, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000001C: {kind: ValueBinding, arg0: entity_name60000002, arg1: inst60000033, type: type(symbolic_constant4)} +// CHECK:STDOUT: inst6000001D: {kind: PatternType, arg0: inst6000001A, type: type(TypeType)} +// CHECK:STDOUT: inst6000001E: {kind: ValueBindingPattern, arg0: entity_name60000002, type: type(symbolic_constant6)} +// CHECK:STDOUT: inst6000001F: {kind: PatternType, arg0: inst6000001B, type: type(TypeType)} +// CHECK:STDOUT: inst60000020: {kind: ValueParamPattern, arg0: inst6000001E, arg1: call_param0, type: type(symbolic_constant6)} +// CHECK:STDOUT: inst60000021: {kind: NameRef, arg0: name1, arg1: inst60000013, type: type(TypeType)} +// CHECK:STDOUT: inst60000022: {kind: PointerType, arg0: inst60000021, type: type(TypeType)} +// CHECK:STDOUT: inst60000023: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)} +// CHECK:STDOUT: inst60000024: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst60000023)} +// CHECK:STDOUT: inst60000025: {kind: TupleValue, arg0: inst_block_empty, type: type(inst60000023)} +// CHECK:STDOUT: inst60000026: {kind: TupleType, arg0: inst_block60000009, type: type(TypeType)} +// CHECK:STDOUT: inst60000027: {kind: TupleLiteral, arg0: inst_block60000008, type: type(inst60000026)} +// CHECK:STDOUT: inst60000028: {kind: TupleValue, arg0: inst_block6000000A, type: type(inst60000026)} +// CHECK:STDOUT: inst60000029: {kind: TupleValue, arg0: inst_block6000000B, type: type(inst60000026)} +// CHECK:STDOUT: inst6000002A: {kind: PointerType, arg0: inst60000026, type: type(TypeType)} +// CHECK:STDOUT: inst6000002B: {kind: Converted, arg0: inst60000025, arg1: inst60000023, type: type(TypeType)} +// CHECK:STDOUT: inst6000002C: {kind: TupleType, arg0: inst_block6000000D, type: type(TypeType)} +// CHECK:STDOUT: inst6000002D: {kind: Converted, arg0: inst60000027, arg1: inst6000002C, type: type(TypeType)} +// CHECK:STDOUT: inst6000002E: {kind: TupleType, arg0: inst_block6000000E, type: type(TypeType)} +// CHECK:STDOUT: inst6000002F: {kind: PatternType, arg0: inst6000002C, type: type(TypeType)} +// CHECK:STDOUT: inst60000030: {kind: ReturnSlotPattern, arg0: inst6000002D, type: type(symbolic_constantC)} +// CHECK:STDOUT: inst60000031: {kind: PatternType, arg0: inst6000002E, type: type(TypeType)} +// CHECK:STDOUT: inst60000032: {kind: OutParamPattern, arg0: inst60000030, arg1: call_param1, type: type(symbolic_constantC)} +// CHECK:STDOUT: inst60000033: {kind: ValueParam, arg0: call_param0, arg1: name2, type: type(symbolic_constant4)} +// CHECK:STDOUT: inst60000034: {kind: SpliceBlock, arg0: inst_block60000006, arg1: inst60000019, type: type(TypeType)} +// CHECK:STDOUT: inst60000035: {kind: OutParam, arg0: call_param1, arg1: name(ReturnSlot), type: type(symbolic_constantA)} +// CHECK:STDOUT: inst60000036: {kind: ReturnSlot, arg0: inst6000002C, arg1: inst60000035, type: type(symbolic_constantA)} +// CHECK:STDOUT: inst60000037: {kind: FunctionDecl, arg0: function60000000, arg1: inst_block60000011, type: type(inst60000038)} +// CHECK:STDOUT: inst60000038: {kind: FunctionType, arg0: function60000000, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: inst60000039: {kind: StructValue, arg0: inst_block_empty, type: type(inst60000038)} +// CHECK:STDOUT: inst6000003A: {kind: PointerType, arg0: inst6000002C, type: type(TypeType)} +// CHECK:STDOUT: inst6000003B: {kind: RequireCompleteType, arg0: inst6000002C, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000003C: {kind: RequireCompleteType, arg0: inst6000002C, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000003D: {kind: RequireCompleteType, arg0: inst6000002E, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000003E: {kind: RequireCompleteType, arg0: inst6000001A, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000003F: {kind: RequireCompleteType, arg0: inst6000001A, type: type(inst(WitnessType))} // CHECK:STDOUT: inst60000040: {kind: RequireCompleteType, arg0: inst6000001B, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000041: {kind: RequireCompleteType, arg0: inst6000001C, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000042: {kind: NameRef, arg0: name2, arg1: inst6000001D, type: type(symbolic_constant4)} -// CHECK:STDOUT: inst60000043: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst60000024)} -// CHECK:STDOUT: inst60000044: {kind: TupleLiteral, arg0: inst_block60000017, type: type(symbolic_constantA)} -// CHECK:STDOUT: inst60000045: {kind: RequireCompleteType, arg0: inst6000002D, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000046: {kind: TupleAccess, arg0: inst60000037, arg1: element0, type: type(symbolic_constant4)} -// CHECK:STDOUT: inst60000047: {kind: RequireCompleteType, arg0: inst6000001B, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000048: {kind: ImportRefLoaded, arg0: import_ir_inst0, arg1: entity_name60000003, type: type(TypeType)} -// CHECK:STDOUT: inst60000049: {kind: InterfaceDecl, arg0: interface60000000, arg1: inst_block_empty, type: type(TypeType)} -// CHECK:STDOUT: inst6000004A: {kind: FacetType, arg0: facet_type60000001, type: type(TypeType)} -// CHECK:STDOUT: inst6000004B: {kind: SymbolicBinding, arg0: entity_name60000004, arg1: inst, type: type(inst6000004A)} -// CHECK:STDOUT: inst6000004C: {kind: ImportRefUnloaded, arg0: import_ir_inst2, arg1: entity_name} -// CHECK:STDOUT: inst6000004D: {kind: ImportRefLoaded, arg0: import_ir_inst3, arg1: entity_name, type: type(inst6000004F)} -// CHECK:STDOUT: inst6000004E: {kind: ImportRefUnloaded, arg0: import_ir_inst4, arg1: entity_name60000005} -// CHECK:STDOUT: inst6000004F: {kind: AssociatedEntityType, arg0: interface60000000, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst60000050: {kind: ImportRefLoaded, arg0: import_ir_inst5, arg1: entity_name, type: type(inst60000053)} -// CHECK:STDOUT: inst60000051: {kind: AssociatedEntity, arg0: element0, arg1: inst60000050, type: type(inst6000004F)} -// CHECK:STDOUT: inst60000052: {kind: FunctionDecl, arg0: function60000001, arg1: inst_block_empty, type: type(inst60000053)} -// CHECK:STDOUT: inst60000053: {kind: FunctionType, arg0: function60000001, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst60000054: {kind: StructValue, arg0: inst_block_empty, type: type(inst60000053)} -// CHECK:STDOUT: inst60000055: {kind: SymbolicBindingType, arg0: entity_name60000004, arg1: inst6000004B, type: type(TypeType)} -// CHECK:STDOUT: inst60000056: {kind: PatternType, arg0: inst60000055, type: type(TypeType)} -// CHECK:STDOUT: inst60000057: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant60000015)} -// CHECK:STDOUT: inst60000058: {kind: OutParamPattern, arg0: inst60000057, arg1: call_param1, type: type(symbolic_constant60000015)} -// CHECK:STDOUT: inst60000059: {kind: ValueBindingPattern, arg0: entity_name60000008, type: type(symbolic_constant60000015)} -// CHECK:STDOUT: inst6000005A: {kind: ValueParamPattern, arg0: inst60000059, arg1: call_param0, type: type(symbolic_constant60000015)} -// CHECK:STDOUT: inst6000005B: {kind: ImportRefLoaded, arg0: import_ir_instB, arg1: entity_name, type: type(inst6000004A)} -// CHECK:STDOUT: inst6000005C: {kind: SymbolicBinding, arg0: entity_name60000004, arg1: inst, type: type(inst6000004A)} -// CHECK:STDOUT: inst6000005D: {kind: SymbolicBindingType, arg0: entity_name60000004, arg1: inst6000005C, type: type(TypeType)} -// CHECK:STDOUT: inst6000005E: {kind: PatternType, arg0: inst6000005D, type: type(TypeType)} -// CHECK:STDOUT: inst6000005F: {kind: LookupImplWitness, arg0: inst6000001B, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000060: {kind: ImportRefUnloaded, arg0: import_ir_instF, arg1: entity_name} -// CHECK:STDOUT: inst60000061: {kind: ImplDecl, arg0: impl60000000, arg1: inst_block_empty} -// CHECK:STDOUT: inst60000062: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004A)} -// CHECK:STDOUT: inst60000063: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst60000062, type: type(TypeType)} -// CHECK:STDOUT: inst60000064: {kind: ConstType, arg0: inst60000063, type: type(TypeType)} -// CHECK:STDOUT: inst60000065: {kind: PatternType, arg0: inst6000004A, type: type(TypeType)} -// CHECK:STDOUT: inst60000066: {kind: SymbolicBindingPattern, arg0: entity_name6000000E, type: type(inst60000065)} -// CHECK:STDOUT: inst60000067: {kind: ImportRefLoaded, arg0: import_ir_inst12, arg1: entity_name, type: type(inst6000004A)} -// CHECK:STDOUT: inst60000068: {kind: ImportRefLoaded, arg0: import_ir_inst13, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst60000069: {kind: ImportRefLoaded, arg0: import_ir_inst14, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst6000006A: {kind: ImportRefUnloaded, arg0: import_ir_inst15, arg1: entity_name} -// CHECK:STDOUT: inst6000006B: {kind: ImplWitnessTable, arg0: inst_block60000020, arg1: impl60000000} -// CHECK:STDOUT: inst6000006C: {kind: ImplWitness, arg0: inst6000006B, arg1: specific60000002, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000006D: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004A)} -// CHECK:STDOUT: inst6000006E: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst6000006D, type: type(TypeType)} -// CHECK:STDOUT: inst6000006F: {kind: ConstType, arg0: inst6000006E, type: type(TypeType)} -// CHECK:STDOUT: inst60000070: {kind: ImplWitness, arg0: inst6000006B, arg1: specific60000003, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000071: {kind: FunctionDecl, arg0: function60000002, arg1: inst_block_empty, type: type(symbolic_constant60000029)} -// CHECK:STDOUT: inst60000072: {kind: FunctionType, arg0: function60000002, arg1: specific60000002, type: type(TypeType)} -// CHECK:STDOUT: inst60000073: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant60000029)} -// CHECK:STDOUT: inst60000074: {kind: PatternType, arg0: inst60000064, type: type(TypeType)} -// CHECK:STDOUT: inst60000075: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant6000002E)} -// CHECK:STDOUT: inst60000076: {kind: OutParamPattern, arg0: inst60000075, arg1: call_param1, type: type(symbolic_constant6000002E)} -// CHECK:STDOUT: inst60000077: {kind: ValueBindingPattern, arg0: entity_name60000011, type: type(symbolic_constant6000002E)} -// CHECK:STDOUT: inst60000078: {kind: ValueParamPattern, arg0: inst60000077, arg1: call_param0, type: type(symbolic_constant6000002E)} -// CHECK:STDOUT: inst60000079: {kind: ImportRefLoaded, arg0: import_ir_inst20, arg1: entity_name, type: type(inst6000004A)} -// CHECK:STDOUT: inst6000007A: {kind: FunctionType, arg0: function60000002, arg1: specific60000003, type: type(TypeType)} -// CHECK:STDOUT: inst6000007B: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant60000030)} -// CHECK:STDOUT: inst6000007C: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004A)} -// CHECK:STDOUT: inst6000007D: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst6000007C, type: type(TypeType)} -// CHECK:STDOUT: inst6000007E: {kind: ConstType, arg0: inst6000007D, type: type(TypeType)} -// CHECK:STDOUT: inst6000007F: {kind: PatternType, arg0: inst6000007E, type: type(TypeType)} -// CHECK:STDOUT: inst60000080: {kind: RequireCompleteType, arg0: inst60000064, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000081: {kind: RequireCompleteType, arg0: inst60000063, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000082: {kind: LookupImplWitness, arg0: inst60000062, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000083: {kind: FunctionTypeWithSelfType, arg0: inst60000053, arg1: inst60000062, type: type(TypeType)} -// CHECK:STDOUT: inst60000084: {kind: ImplWitnessAccess, arg0: inst60000082, arg1: element0, type: type(symbolic_constant6000003F)} -// CHECK:STDOUT: inst60000085: {kind: SpecificImplFunction, arg0: inst60000084, arg1: specific60000005, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst60000086: {kind: RequireCompleteType, arg0: inst6000007E, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000087: {kind: RequireCompleteType, arg0: inst6000007D, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000088: {kind: LookupImplWitness, arg0: inst6000007C, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000089: {kind: FunctionTypeWithSelfType, arg0: inst60000053, arg1: inst6000007C, type: type(TypeType)} -// CHECK:STDOUT: inst6000008A: {kind: ImplWitnessAccess, arg0: inst60000088, arg1: element0, type: type(symbolic_constant60000048)} -// CHECK:STDOUT: inst6000008B: {kind: SpecificImplFunction, arg0: inst6000008A, arg1: specific60000006, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst6000008C: {kind: PatternType, arg0: inst60000063, type: type(TypeType)} -// CHECK:STDOUT: inst6000008D: {kind: ImportRefUnloaded, arg0: import_ir_inst2D, arg1: entity_name} -// CHECK:STDOUT: inst6000008E: {kind: ImplDecl, arg0: impl60000001, arg1: inst_block_empty} -// CHECK:STDOUT: inst6000008F: {kind: ImportRefLoaded, arg0: import_ir_inst2F, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst60000090: {kind: ImportRefLoaded, arg0: import_ir_inst30, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst60000091: {kind: ImportRefUnloaded, arg0: import_ir_inst31, arg1: entity_name} -// CHECK:STDOUT: inst60000092: {kind: ImplDecl, arg0: impl60000002, arg1: inst_block_empty} -// CHECK:STDOUT: inst60000093: {kind: ImportRefLoaded, arg0: import_ir_inst33, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst60000094: {kind: ImportRefLoaded, arg0: import_ir_inst34, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst60000095: {kind: ImportRefUnloaded, arg0: import_ir_inst35, arg1: entity_name} -// CHECK:STDOUT: inst60000096: {kind: ImplDecl, arg0: impl60000003, arg1: inst_block_empty} -// CHECK:STDOUT: inst60000097: {kind: ImportRefLoaded, arg0: import_ir_inst37, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst60000098: {kind: ImportRefLoaded, arg0: import_ir_inst38, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst60000099: {kind: ImportRefUnloaded, arg0: import_ir_inst39, arg1: entity_name} -// CHECK:STDOUT: inst6000009A: {kind: ImplDecl, arg0: impl60000004, arg1: inst_block_empty} -// CHECK:STDOUT: inst6000009B: {kind: ImportRefLoaded, arg0: import_ir_inst3B, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst6000009C: {kind: ImportRefLoaded, arg0: import_ir_inst3C, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst6000009D: {kind: ImportRefLoaded, arg0: import_ir_inst3D, arg1: entity_name, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000009E: {kind: ImplDecl, arg0: impl60000005, arg1: inst_block_empty} -// CHECK:STDOUT: inst6000009F: {kind: SymbolicBindingPattern, arg0: entity_name60000016, type: type(inst60000017)} -// CHECK:STDOUT: inst600000A0: {kind: ImportRefLoaded, arg0: import_ir_inst40, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000A1: {kind: ImportRefLoaded, arg0: import_ir_inst41, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000A2: {kind: ImportRefLoaded, arg0: import_ir_inst42, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000A3: {kind: ImportRefUnloaded, arg0: import_ir_inst43, arg1: entity_name} -// CHECK:STDOUT: inst600000A4: {kind: ImplWitnessTable, arg0: inst_block60000031, arg1: impl60000005} -// CHECK:STDOUT: inst600000A5: {kind: ImplWitness, arg0: inst600000A4, arg1: specific60000007, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000A6: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(TypeType)} -// CHECK:STDOUT: inst600000A7: {kind: PointerType, arg0: inst600000A6, type: type(TypeType)} -// CHECK:STDOUT: inst600000A8: {kind: ImplWitness, arg0: inst600000A4, arg1: specific60000008, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000A9: {kind: FunctionDecl, arg0: function60000003, arg1: inst_block_empty, type: type(symbolic_constant60000055)} -// CHECK:STDOUT: inst600000AA: {kind: FunctionType, arg0: function60000003, arg1: specific60000007, type: type(TypeType)} -// CHECK:STDOUT: inst600000AB: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant60000055)} -// CHECK:STDOUT: inst600000AC: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant60000059)} -// CHECK:STDOUT: inst600000AD: {kind: OutParamPattern, arg0: inst600000AC, arg1: call_param1, type: type(symbolic_constant60000059)} -// CHECK:STDOUT: inst600000AE: {kind: ValueBindingPattern, arg0: entity_name60000018, type: type(symbolic_constant60000059)} -// CHECK:STDOUT: inst600000AF: {kind: ValueParamPattern, arg0: inst600000AE, arg1: call_param0, type: type(symbolic_constant60000059)} -// CHECK:STDOUT: inst600000B0: {kind: ImportRefLoaded, arg0: import_ir_inst4D, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000B1: {kind: FunctionType, arg0: function60000003, arg1: specific60000008, type: type(TypeType)} -// CHECK:STDOUT: inst600000B2: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant6000005C)} -// CHECK:STDOUT: inst600000B3: {kind: RequireCompleteType, arg0: inst600000A7, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000B4: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(TypeType)} -// CHECK:STDOUT: inst600000B5: {kind: PointerType, arg0: inst600000B4, type: type(TypeType)} -// CHECK:STDOUT: inst600000B6: {kind: PatternType, arg0: inst600000B5, type: type(TypeType)} -// CHECK:STDOUT: inst600000B7: {kind: ImportRefUnloaded, arg0: import_ir_inst54, arg1: entity_name} -// CHECK:STDOUT: inst600000B8: {kind: ImplDecl, arg0: impl60000006, arg1: inst_block_empty} -// CHECK:STDOUT: inst600000B9: {kind: ImportRefLoaded, arg0: import_ir_inst56, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000BA: {kind: ImportRefLoaded, arg0: import_ir_inst57, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000BB: {kind: ImportRefUnloaded, arg0: import_ir_inst58, arg1: entity_name} -// CHECK:STDOUT: inst600000BC: {kind: ImplDecl, arg0: impl60000007, arg1: inst_block_empty} -// CHECK:STDOUT: inst600000BD: {kind: ImportRefLoaded, arg0: import_ir_inst5A, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000BE: {kind: ImportRefLoaded, arg0: import_ir_inst5B, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000BF: {kind: ImportRefUnloaded, arg0: import_ir_inst5C, arg1: entity_name} -// CHECK:STDOUT: inst600000C0: {kind: ImplDecl, arg0: impl60000008, arg1: inst_block_empty} -// CHECK:STDOUT: inst600000C1: {kind: SymbolicBinding, arg0: entity_name6000001A, arg1: inst, type: type(inst6000004A)} -// CHECK:STDOUT: inst600000C2: {kind: SymbolicBindingType, arg0: entity_name6000001A, arg1: inst600000C1, type: type(TypeType)} -// CHECK:STDOUT: inst600000C3: {kind: TupleType, arg0: inst_block6000003B, type: type(TypeType)} -// CHECK:STDOUT: inst600000C4: {kind: SymbolicBindingPattern, arg0: entity_name6000001E, type: type(inst60000065)} -// CHECK:STDOUT: inst600000C5: {kind: SymbolicBindingPattern, arg0: entity_name6000001F, type: type(inst60000065)} -// CHECK:STDOUT: inst600000C6: {kind: ImportRefLoaded, arg0: import_ir_inst60, arg1: entity_name, type: type(inst6000004A)} -// CHECK:STDOUT: inst600000C7: {kind: ImportRefLoaded, arg0: import_ir_inst61, arg1: entity_name, type: type(inst6000004A)} -// CHECK:STDOUT: inst600000C8: {kind: ImportRefLoaded, arg0: import_ir_inst62, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000C9: {kind: ImportRefLoaded, arg0: import_ir_inst63, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst600000CA: {kind: TupleType, arg0: inst_block6000003E, type: type(TypeType)} -// CHECK:STDOUT: inst600000CB: {kind: TupleValue, arg0: inst_block6000003F, type: type(inst600000CA)} -// CHECK:STDOUT: inst600000CC: {kind: ImportRefUnloaded, arg0: import_ir_inst64, arg1: entity_name} -// CHECK:STDOUT: inst600000CD: {kind: ImplWitnessTable, arg0: inst_block60000040, arg1: impl60000008} -// CHECK:STDOUT: inst600000CE: {kind: ImplWitness, arg0: inst600000CD, arg1: specific6000000A, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000CF: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004A)} -// CHECK:STDOUT: inst600000D0: {kind: SymbolicBinding, arg0: entity_name6000001A, arg1: inst, type: type(inst6000004A)} -// CHECK:STDOUT: inst600000D1: {kind: TupleValue, arg0: inst_block60000041, type: type(inst600000CA)} -// CHECK:STDOUT: inst600000D2: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst600000CF, type: type(TypeType)} -// CHECK:STDOUT: inst600000D3: {kind: SymbolicBindingType, arg0: entity_name6000001A, arg1: inst600000D0, type: type(TypeType)} -// CHECK:STDOUT: inst600000D4: {kind: TupleType, arg0: inst_block60000042, type: type(TypeType)} -// CHECK:STDOUT: inst600000D5: {kind: ImplWitness, arg0: inst600000CD, arg1: specific6000000B, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000D6: {kind: FunctionDecl, arg0: function60000004, arg1: inst_block_empty, type: type(symbolic_constant6000007A)} -// CHECK:STDOUT: inst600000D7: {kind: FunctionType, arg0: function60000004, arg1: specific6000000A, type: type(TypeType)} -// CHECK:STDOUT: inst600000D8: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant6000007A)} -// CHECK:STDOUT: inst600000D9: {kind: PatternType, arg0: inst600000C3, type: type(TypeType)} -// CHECK:STDOUT: inst600000DA: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant6000007F)} -// CHECK:STDOUT: inst600000DB: {kind: OutParamPattern, arg0: inst600000DA, arg1: call_param1, type: type(symbolic_constant6000007F)} -// CHECK:STDOUT: inst600000DC: {kind: ValueBindingPattern, arg0: entity_name60000024, type: type(symbolic_constant6000007F)} -// CHECK:STDOUT: inst600000DD: {kind: ValueParamPattern, arg0: inst600000DC, arg1: call_param0, type: type(symbolic_constant6000007F)} -// CHECK:STDOUT: inst600000DE: {kind: ImportRefLoaded, arg0: import_ir_inst72, arg1: entity_name, type: type(inst6000004A)} -// CHECK:STDOUT: inst600000DF: {kind: ImportRefLoaded, arg0: import_ir_inst73, arg1: entity_name, type: type(inst6000004A)} -// CHECK:STDOUT: inst600000E0: {kind: FunctionType, arg0: function60000004, arg1: specific6000000B, type: type(TypeType)} -// CHECK:STDOUT: inst600000E1: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant60000081)} -// CHECK:STDOUT: inst600000E2: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004A)} -// CHECK:STDOUT: inst600000E3: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst600000E2, type: type(TypeType)} -// CHECK:STDOUT: inst600000E4: {kind: SymbolicBinding, arg0: entity_name6000001A, arg1: inst, type: type(inst6000004A)} -// CHECK:STDOUT: inst600000E5: {kind: SymbolicBindingType, arg0: entity_name6000001A, arg1: inst600000E4, type: type(TypeType)} -// CHECK:STDOUT: inst600000E6: {kind: TupleType, arg0: inst_block6000004A, type: type(TypeType)} -// CHECK:STDOUT: inst600000E7: {kind: PatternType, arg0: inst600000E6, type: type(TypeType)} -// CHECK:STDOUT: inst600000E8: {kind: RequireCompleteType, arg0: inst600000C3, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000E9: {kind: RequireCompleteType, arg0: inst600000C2, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000EA: {kind: LookupImplWitness, arg0: inst600000C1, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000EB: {kind: FunctionTypeWithSelfType, arg0: inst60000053, arg1: inst600000C1, type: type(TypeType)} -// CHECK:STDOUT: inst600000EC: {kind: ImplWitnessAccess, arg0: inst600000EA, arg1: element0, type: type(symbolic_constant60000099)} -// CHECK:STDOUT: inst600000ED: {kind: SpecificImplFunction, arg0: inst600000EC, arg1: specific6000000D, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst600000EE: {kind: RequireCompleteType, arg0: inst600000E6, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000EF: {kind: RequireCompleteType, arg0: inst600000E3, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000F0: {kind: LookupImplWitness, arg0: inst600000E2, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000F1: {kind: FunctionTypeWithSelfType, arg0: inst60000053, arg1: inst600000E2, type: type(TypeType)} -// CHECK:STDOUT: inst600000F2: {kind: ImplWitnessAccess, arg0: inst600000F0, arg1: element0, type: type(symbolic_constant600000A2)} -// CHECK:STDOUT: inst600000F3: {kind: SpecificImplFunction, arg0: inst600000F2, arg1: specific6000000E, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst600000F4: {kind: RequireCompleteType, arg0: inst600000E5, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000F5: {kind: LookupImplWitness, arg0: inst600000E4, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst600000F6: {kind: FunctionTypeWithSelfType, arg0: inst60000053, arg1: inst600000E4, type: type(TypeType)} -// CHECK:STDOUT: inst600000F7: {kind: ImplWitnessAccess, arg0: inst600000F5, arg1: element0, type: type(symbolic_constant600000A7)} -// CHECK:STDOUT: inst600000F8: {kind: SpecificImplFunction, arg0: inst600000F7, arg1: specific6000000F, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst600000F9: {kind: PatternType, arg0: inst600000C2, type: type(TypeType)} -// CHECK:STDOUT: inst600000FA: {kind: ImportRefUnloaded, arg0: import_ir_inst87, arg1: entity_name} -// CHECK:STDOUT: inst600000FB: {kind: ImplDecl, arg0: impl60000009, arg1: inst_block_empty} -// CHECK:STDOUT: inst600000FC: {kind: SymbolicBinding, arg0: entity_name60000029, arg1: inst, type: type(inst6000004A)} -// CHECK:STDOUT: inst600000FD: {kind: SymbolicBindingType, arg0: entity_name60000029, arg1: inst600000FC, type: type(TypeType)} -// CHECK:STDOUT: inst600000FE: {kind: TupleType, arg0: inst_block60000053, type: type(TypeType)} -// CHECK:STDOUT: inst600000FF: {kind: SymbolicBindingPattern, arg0: entity_name6000002E, type: type(inst60000065)} -// CHECK:STDOUT: inst60000100: {kind: SymbolicBindingPattern, arg0: entity_name6000002F, type: type(inst60000065)} -// CHECK:STDOUT: inst60000101: {kind: SymbolicBindingPattern, arg0: entity_name60000030, type: type(inst60000065)} -// CHECK:STDOUT: inst60000102: {kind: ImportRefLoaded, arg0: import_ir_inst8C, arg1: entity_name, type: type(inst6000004A)} -// CHECK:STDOUT: inst60000103: {kind: ImportRefLoaded, arg0: import_ir_inst8D, arg1: entity_name, type: type(inst6000004A)} -// CHECK:STDOUT: inst60000104: {kind: ImportRefLoaded, arg0: import_ir_inst8E, arg1: entity_name, type: type(inst6000004A)} -// CHECK:STDOUT: inst60000105: {kind: ImportRefLoaded, arg0: import_ir_inst8F, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst60000106: {kind: ImportRefLoaded, arg0: import_ir_inst90, arg1: entity_name, type: type(TypeType)} -// CHECK:STDOUT: inst60000107: {kind: TupleType, arg0: inst_block60000056, type: type(TypeType)} -// CHECK:STDOUT: inst60000108: {kind: TupleValue, arg0: inst_block60000057, type: type(inst60000107)} -// CHECK:STDOUT: inst60000109: {kind: ImportRefUnloaded, arg0: import_ir_inst91, arg1: entity_name} -// CHECK:STDOUT: inst6000010A: {kind: ImplWitnessTable, arg0: inst_block60000058, arg1: impl60000009} -// CHECK:STDOUT: inst6000010B: {kind: ImplWitness, arg0: inst6000010A, arg1: specific60000010, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000010C: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004A)} -// CHECK:STDOUT: inst6000010D: {kind: SymbolicBinding, arg0: entity_name6000001A, arg1: inst, type: type(inst6000004A)} -// CHECK:STDOUT: inst6000010E: {kind: SymbolicBinding, arg0: entity_name60000029, arg1: inst, type: type(inst6000004A)} -// CHECK:STDOUT: inst6000010F: {kind: TupleValue, arg0: inst_block60000059, type: type(inst60000107)} -// CHECK:STDOUT: inst60000110: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst6000010C, type: type(TypeType)} -// CHECK:STDOUT: inst60000111: {kind: SymbolicBindingType, arg0: entity_name6000001A, arg1: inst6000010D, type: type(TypeType)} -// CHECK:STDOUT: inst60000112: {kind: SymbolicBindingType, arg0: entity_name60000029, arg1: inst6000010E, type: type(TypeType)} -// CHECK:STDOUT: inst60000113: {kind: TupleType, arg0: inst_block6000005A, type: type(TypeType)} -// CHECK:STDOUT: inst60000114: {kind: ImplWitness, arg0: inst6000010A, arg1: specific60000011, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000115: {kind: FunctionDecl, arg0: function60000005, arg1: inst_block_empty, type: type(symbolic_constant600000C6)} -// CHECK:STDOUT: inst60000116: {kind: FunctionType, arg0: function60000005, arg1: specific60000010, type: type(TypeType)} -// CHECK:STDOUT: inst60000117: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant600000C6)} -// CHECK:STDOUT: inst60000118: {kind: PatternType, arg0: inst600000FE, type: type(TypeType)} -// CHECK:STDOUT: inst60000119: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant600000CB)} -// CHECK:STDOUT: inst6000011A: {kind: OutParamPattern, arg0: inst60000119, arg1: call_param1, type: type(symbolic_constant600000CB)} -// CHECK:STDOUT: inst6000011B: {kind: ValueBindingPattern, arg0: entity_name60000037, type: type(symbolic_constant600000CB)} -// CHECK:STDOUT: inst6000011C: {kind: ValueParamPattern, arg0: inst6000011B, arg1: call_param0, type: type(symbolic_constant600000CB)} -// CHECK:STDOUT: inst6000011D: {kind: ImportRefLoaded, arg0: import_ir_instA1, arg1: entity_name, type: type(inst6000004A)} -// CHECK:STDOUT: inst6000011E: {kind: ImportRefLoaded, arg0: import_ir_instA2, arg1: entity_name, type: type(inst6000004A)} -// CHECK:STDOUT: inst6000011F: {kind: ImportRefLoaded, arg0: import_ir_instA3, arg1: entity_name, type: type(inst6000004A)} -// CHECK:STDOUT: inst60000120: {kind: FunctionType, arg0: function60000005, arg1: specific60000011, type: type(TypeType)} -// CHECK:STDOUT: inst60000121: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant600000CD)} -// CHECK:STDOUT: inst60000122: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst6000004A)} -// CHECK:STDOUT: inst60000123: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst60000122, type: type(TypeType)} -// CHECK:STDOUT: inst60000124: {kind: SymbolicBinding, arg0: entity_name6000001A, arg1: inst, type: type(inst6000004A)} -// CHECK:STDOUT: inst60000125: {kind: SymbolicBindingType, arg0: entity_name6000001A, arg1: inst60000124, type: type(TypeType)} -// CHECK:STDOUT: inst60000126: {kind: SymbolicBinding, arg0: entity_name60000029, arg1: inst, type: type(inst6000004A)} -// CHECK:STDOUT: inst60000127: {kind: SymbolicBindingType, arg0: entity_name60000029, arg1: inst60000126, type: type(TypeType)} -// CHECK:STDOUT: inst60000128: {kind: TupleType, arg0: inst_block60000062, type: type(TypeType)} -// CHECK:STDOUT: inst60000129: {kind: PatternType, arg0: inst60000128, type: type(TypeType)} -// CHECK:STDOUT: inst6000012A: {kind: RequireCompleteType, arg0: inst600000FE, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000012B: {kind: RequireCompleteType, arg0: inst600000FD, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000012C: {kind: LookupImplWitness, arg0: inst600000FC, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000012D: {kind: FunctionTypeWithSelfType, arg0: inst60000053, arg1: inst600000FC, type: type(TypeType)} -// CHECK:STDOUT: inst6000012E: {kind: ImplWitnessAccess, arg0: inst6000012C, arg1: element0, type: type(symbolic_constant600000EE)} -// CHECK:STDOUT: inst6000012F: {kind: SpecificImplFunction, arg0: inst6000012E, arg1: specific60000013, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst60000130: {kind: RequireCompleteType, arg0: inst60000128, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000131: {kind: RequireCompleteType, arg0: inst60000123, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000132: {kind: LookupImplWitness, arg0: inst60000122, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000133: {kind: FunctionTypeWithSelfType, arg0: inst60000053, arg1: inst60000122, type: type(TypeType)} -// CHECK:STDOUT: inst60000134: {kind: ImplWitnessAccess, arg0: inst60000132, arg1: element0, type: type(symbolic_constant600000F7)} -// CHECK:STDOUT: inst60000135: {kind: SpecificImplFunction, arg0: inst60000134, arg1: specific60000014, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst60000136: {kind: RequireCompleteType, arg0: inst60000125, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000137: {kind: LookupImplWitness, arg0: inst60000124, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000138: {kind: FunctionTypeWithSelfType, arg0: inst60000053, arg1: inst60000124, type: type(TypeType)} -// CHECK:STDOUT: inst60000139: {kind: ImplWitnessAccess, arg0: inst60000137, arg1: element0, type: type(symbolic_constant600000FC)} -// CHECK:STDOUT: inst6000013A: {kind: SpecificImplFunction, arg0: inst60000139, arg1: specific60000015, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst6000013B: {kind: RequireCompleteType, arg0: inst60000127, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000013C: {kind: LookupImplWitness, arg0: inst60000126, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst6000013D: {kind: FunctionTypeWithSelfType, arg0: inst60000053, arg1: inst60000126, type: type(TypeType)} -// CHECK:STDOUT: inst6000013E: {kind: ImplWitnessAccess, arg0: inst6000013C, arg1: element0, type: type(symbolic_constant60000101)} -// CHECK:STDOUT: inst6000013F: {kind: SpecificImplFunction, arg0: inst6000013E, arg1: specific60000016, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst60000140: {kind: PatternType, arg0: inst600000FD, type: type(TypeType)} +// CHECK:STDOUT: inst60000041: {kind: NameRef, arg0: name2, arg1: inst6000001C, type: type(symbolic_constant4)} +// CHECK:STDOUT: inst60000042: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst60000023)} +// CHECK:STDOUT: inst60000043: {kind: TupleLiteral, arg0: inst_block60000017, type: type(symbolic_constantA)} +// CHECK:STDOUT: inst60000044: {kind: RequireCompleteType, arg0: inst6000002C, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000045: {kind: TupleAccess, arg0: inst60000036, arg1: element0, type: type(symbolic_constant4)} +// CHECK:STDOUT: inst60000046: {kind: RequireCompleteType, arg0: inst6000001A, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000047: {kind: ImportRefLoaded, arg0: import_ir_inst0, arg1: entity_name60000003, type: type(TypeType)} +// CHECK:STDOUT: inst60000048: {kind: InterfaceDecl, arg0: interface60000000, arg1: inst_block_empty, type: type(TypeType)} +// CHECK:STDOUT: inst60000049: {kind: FacetType, arg0: facet_type60000001, type: type(TypeType)} +// CHECK:STDOUT: inst6000004A: {kind: SymbolicBinding, arg0: entity_name60000004, arg1: inst, type: type(inst60000049)} +// CHECK:STDOUT: inst6000004B: {kind: ImportRefUnloaded, arg0: import_ir_inst2, arg1: entity_name} +// CHECK:STDOUT: inst6000004C: {kind: ImportRefLoaded, arg0: import_ir_inst3, arg1: entity_name, type: type(inst6000004E)} +// CHECK:STDOUT: inst6000004D: {kind: ImportRefUnloaded, arg0: import_ir_inst4, arg1: entity_name60000005} +// CHECK:STDOUT: inst6000004E: {kind: AssociatedEntityType, arg0: interface60000000, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: inst6000004F: {kind: ImportRefLoaded, arg0: import_ir_inst5, arg1: entity_name, type: type(inst60000052)} +// CHECK:STDOUT: inst60000050: {kind: AssociatedEntity, arg0: element0, arg1: inst6000004F, type: type(inst6000004E)} +// CHECK:STDOUT: inst60000051: {kind: FunctionDecl, arg0: function60000001, arg1: inst_block_empty, type: type(inst60000052)} +// CHECK:STDOUT: inst60000052: {kind: FunctionType, arg0: function60000001, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: inst60000053: {kind: StructValue, arg0: inst_block_empty, type: type(inst60000052)} +// CHECK:STDOUT: inst60000054: {kind: SymbolicBindingType, arg0: entity_name60000004, arg1: inst6000004A, type: type(TypeType)} +// CHECK:STDOUT: inst60000055: {kind: PatternType, arg0: inst60000054, type: type(TypeType)} +// CHECK:STDOUT: inst60000056: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant60000015)} +// CHECK:STDOUT: inst60000057: {kind: OutParamPattern, arg0: inst60000056, arg1: call_param1, type: type(symbolic_constant60000015)} +// CHECK:STDOUT: inst60000058: {kind: ValueBindingPattern, arg0: entity_name60000008, type: type(symbolic_constant60000015)} +// CHECK:STDOUT: inst60000059: {kind: ValueParamPattern, arg0: inst60000058, arg1: call_param0, type: type(symbolic_constant60000015)} +// CHECK:STDOUT: inst6000005A: {kind: ImportRefLoaded, arg0: import_ir_instB, arg1: entity_name, type: type(inst60000049)} +// CHECK:STDOUT: inst6000005B: {kind: SymbolicBinding, arg0: entity_name60000004, arg1: inst, type: type(inst60000049)} +// CHECK:STDOUT: inst6000005C: {kind: SymbolicBindingType, arg0: entity_name60000004, arg1: inst6000005B, type: type(TypeType)} +// CHECK:STDOUT: inst6000005D: {kind: PatternType, arg0: inst6000005C, type: type(TypeType)} +// CHECK:STDOUT: inst6000005E: {kind: LookupImplWitness, arg0: inst6000001A, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000005F: {kind: ImportRefUnloaded, arg0: import_ir_instF, arg1: entity_name} +// CHECK:STDOUT: inst60000060: {kind: ImplDecl, arg0: impl60000000, arg1: inst_block_empty} +// CHECK:STDOUT: inst60000061: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst60000049)} +// CHECK:STDOUT: inst60000062: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst60000061, type: type(TypeType)} +// CHECK:STDOUT: inst60000063: {kind: ConstType, arg0: inst60000062, type: type(TypeType)} +// CHECK:STDOUT: inst60000064: {kind: PatternType, arg0: inst60000049, type: type(TypeType)} +// CHECK:STDOUT: inst60000065: {kind: SymbolicBindingPattern, arg0: entity_name6000000E, type: type(inst60000064)} +// CHECK:STDOUT: inst60000066: {kind: ImportRefLoaded, arg0: import_ir_inst12, arg1: entity_name, type: type(inst60000049)} +// CHECK:STDOUT: inst60000067: {kind: ImportRefLoaded, arg0: import_ir_inst13, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst60000068: {kind: ImportRefLoaded, arg0: import_ir_inst14, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst60000069: {kind: ImportRefUnloaded, arg0: import_ir_inst15, arg1: entity_name} +// CHECK:STDOUT: inst6000006A: {kind: ImplWitnessTable, arg0: inst_block60000020, arg1: impl60000000} +// CHECK:STDOUT: inst6000006B: {kind: ImplWitness, arg0: inst6000006A, arg1: specific60000002, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000006C: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst60000049)} +// CHECK:STDOUT: inst6000006D: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst6000006C, type: type(TypeType)} +// CHECK:STDOUT: inst6000006E: {kind: ConstType, arg0: inst6000006D, type: type(TypeType)} +// CHECK:STDOUT: inst6000006F: {kind: ImplWitness, arg0: inst6000006A, arg1: specific60000003, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000070: {kind: FunctionDecl, arg0: function60000002, arg1: inst_block_empty, type: type(symbolic_constant60000029)} +// CHECK:STDOUT: inst60000071: {kind: FunctionType, arg0: function60000002, arg1: specific60000002, type: type(TypeType)} +// CHECK:STDOUT: inst60000072: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant60000029)} +// CHECK:STDOUT: inst60000073: {kind: PatternType, arg0: inst60000063, type: type(TypeType)} +// CHECK:STDOUT: inst60000074: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant6000002E)} +// CHECK:STDOUT: inst60000075: {kind: OutParamPattern, arg0: inst60000074, arg1: call_param1, type: type(symbolic_constant6000002E)} +// CHECK:STDOUT: inst60000076: {kind: ValueBindingPattern, arg0: entity_name60000011, type: type(symbolic_constant6000002E)} +// CHECK:STDOUT: inst60000077: {kind: ValueParamPattern, arg0: inst60000076, arg1: call_param0, type: type(symbolic_constant6000002E)} +// CHECK:STDOUT: inst60000078: {kind: ImportRefLoaded, arg0: import_ir_inst20, arg1: entity_name, type: type(inst60000049)} +// CHECK:STDOUT: inst60000079: {kind: FunctionType, arg0: function60000002, arg1: specific60000003, type: type(TypeType)} +// CHECK:STDOUT: inst6000007A: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant60000030)} +// CHECK:STDOUT: inst6000007B: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst60000049)} +// CHECK:STDOUT: inst6000007C: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst6000007B, type: type(TypeType)} +// CHECK:STDOUT: inst6000007D: {kind: ConstType, arg0: inst6000007C, type: type(TypeType)} +// CHECK:STDOUT: inst6000007E: {kind: PatternType, arg0: inst6000007D, type: type(TypeType)} +// CHECK:STDOUT: inst6000007F: {kind: RequireCompleteType, arg0: inst60000063, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000080: {kind: RequireCompleteType, arg0: inst60000062, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000081: {kind: LookupImplWitness, arg0: inst60000061, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000082: {kind: FunctionTypeWithSelfType, arg0: inst60000052, arg1: inst60000061, type: type(TypeType)} +// CHECK:STDOUT: inst60000083: {kind: ImplWitnessAccess, arg0: inst60000081, arg1: element0, type: type(symbolic_constant6000003F)} +// CHECK:STDOUT: inst60000084: {kind: SpecificImplFunction, arg0: inst60000083, arg1: specific60000005, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst60000085: {kind: RequireCompleteType, arg0: inst6000007D, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000086: {kind: RequireCompleteType, arg0: inst6000007C, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000087: {kind: LookupImplWitness, arg0: inst6000007B, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000088: {kind: FunctionTypeWithSelfType, arg0: inst60000052, arg1: inst6000007B, type: type(TypeType)} +// CHECK:STDOUT: inst60000089: {kind: ImplWitnessAccess, arg0: inst60000087, arg1: element0, type: type(symbolic_constant60000048)} +// CHECK:STDOUT: inst6000008A: {kind: SpecificImplFunction, arg0: inst60000089, arg1: specific60000006, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst6000008B: {kind: PatternType, arg0: inst60000062, type: type(TypeType)} +// CHECK:STDOUT: inst6000008C: {kind: ImportRefUnloaded, arg0: import_ir_inst2D, arg1: entity_name} +// CHECK:STDOUT: inst6000008D: {kind: ImplDecl, arg0: impl60000001, arg1: inst_block_empty} +// CHECK:STDOUT: inst6000008E: {kind: ImportRefLoaded, arg0: import_ir_inst2F, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst6000008F: {kind: ImportRefLoaded, arg0: import_ir_inst30, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst60000090: {kind: ImportRefUnloaded, arg0: import_ir_inst31, arg1: entity_name} +// CHECK:STDOUT: inst60000091: {kind: ImplDecl, arg0: impl60000002, arg1: inst_block_empty} +// CHECK:STDOUT: inst60000092: {kind: ImportRefLoaded, arg0: import_ir_inst33, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst60000093: {kind: ImportRefLoaded, arg0: import_ir_inst34, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst60000094: {kind: ImportRefUnloaded, arg0: import_ir_inst35, arg1: entity_name} +// CHECK:STDOUT: inst60000095: {kind: ImplDecl, arg0: impl60000003, arg1: inst_block_empty} +// CHECK:STDOUT: inst60000096: {kind: ImportRefLoaded, arg0: import_ir_inst37, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst60000097: {kind: ImportRefLoaded, arg0: import_ir_inst38, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst60000098: {kind: ImportRefUnloaded, arg0: import_ir_inst39, arg1: entity_name} +// CHECK:STDOUT: inst60000099: {kind: ImplDecl, arg0: impl60000004, arg1: inst_block_empty} +// CHECK:STDOUT: inst6000009A: {kind: ImportRefLoaded, arg0: import_ir_inst3B, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst6000009B: {kind: ImportRefLoaded, arg0: import_ir_inst3C, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst6000009C: {kind: ImportRefLoaded, arg0: import_ir_inst3D, arg1: entity_name, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000009D: {kind: ImplDecl, arg0: impl60000005, arg1: inst_block_empty} +// CHECK:STDOUT: inst6000009E: {kind: SymbolicBindingPattern, arg0: entity_name60000016, type: type(inst60000016)} +// CHECK:STDOUT: inst6000009F: {kind: ImportRefLoaded, arg0: import_ir_inst40, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst600000A0: {kind: ImportRefLoaded, arg0: import_ir_inst41, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst600000A1: {kind: ImportRefLoaded, arg0: import_ir_inst42, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst600000A2: {kind: ImportRefUnloaded, arg0: import_ir_inst43, arg1: entity_name} +// CHECK:STDOUT: inst600000A3: {kind: ImplWitnessTable, arg0: inst_block60000031, arg1: impl60000005} +// CHECK:STDOUT: inst600000A4: {kind: ImplWitness, arg0: inst600000A3, arg1: specific60000007, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000A5: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(TypeType)} +// CHECK:STDOUT: inst600000A6: {kind: PointerType, arg0: inst600000A5, type: type(TypeType)} +// CHECK:STDOUT: inst600000A7: {kind: ImplWitness, arg0: inst600000A3, arg1: specific60000008, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000A8: {kind: FunctionDecl, arg0: function60000003, arg1: inst_block_empty, type: type(symbolic_constant60000055)} +// CHECK:STDOUT: inst600000A9: {kind: FunctionType, arg0: function60000003, arg1: specific60000007, type: type(TypeType)} +// CHECK:STDOUT: inst600000AA: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant60000055)} +// CHECK:STDOUT: inst600000AB: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant60000059)} +// CHECK:STDOUT: inst600000AC: {kind: OutParamPattern, arg0: inst600000AB, arg1: call_param1, type: type(symbolic_constant60000059)} +// CHECK:STDOUT: inst600000AD: {kind: ValueBindingPattern, arg0: entity_name60000018, type: type(symbolic_constant60000059)} +// CHECK:STDOUT: inst600000AE: {kind: ValueParamPattern, arg0: inst600000AD, arg1: call_param0, type: type(symbolic_constant60000059)} +// CHECK:STDOUT: inst600000AF: {kind: ImportRefLoaded, arg0: import_ir_inst4D, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst600000B0: {kind: FunctionType, arg0: function60000003, arg1: specific60000008, type: type(TypeType)} +// CHECK:STDOUT: inst600000B1: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant6000005C)} +// CHECK:STDOUT: inst600000B2: {kind: RequireCompleteType, arg0: inst600000A6, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000B3: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(TypeType)} +// CHECK:STDOUT: inst600000B4: {kind: PointerType, arg0: inst600000B3, type: type(TypeType)} +// CHECK:STDOUT: inst600000B5: {kind: PatternType, arg0: inst600000B4, type: type(TypeType)} +// CHECK:STDOUT: inst600000B6: {kind: ImportRefUnloaded, arg0: import_ir_inst54, arg1: entity_name} +// CHECK:STDOUT: inst600000B7: {kind: ImplDecl, arg0: impl60000006, arg1: inst_block_empty} +// CHECK:STDOUT: inst600000B8: {kind: ImportRefLoaded, arg0: import_ir_inst56, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst600000B9: {kind: ImportRefLoaded, arg0: import_ir_inst57, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst600000BA: {kind: ImportRefUnloaded, arg0: import_ir_inst58, arg1: entity_name} +// CHECK:STDOUT: inst600000BB: {kind: ImplDecl, arg0: impl60000007, arg1: inst_block_empty} +// CHECK:STDOUT: inst600000BC: {kind: ImportRefLoaded, arg0: import_ir_inst5A, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst600000BD: {kind: ImportRefLoaded, arg0: import_ir_inst5B, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst600000BE: {kind: ImportRefUnloaded, arg0: import_ir_inst5C, arg1: entity_name} +// CHECK:STDOUT: inst600000BF: {kind: ImplDecl, arg0: impl60000008, arg1: inst_block_empty} +// CHECK:STDOUT: inst600000C0: {kind: SymbolicBinding, arg0: entity_name6000001A, arg1: inst, type: type(inst60000049)} +// CHECK:STDOUT: inst600000C1: {kind: SymbolicBindingType, arg0: entity_name6000001A, arg1: inst600000C0, type: type(TypeType)} +// CHECK:STDOUT: inst600000C2: {kind: TupleType, arg0: inst_block6000003B, type: type(TypeType)} +// CHECK:STDOUT: inst600000C3: {kind: SymbolicBindingPattern, arg0: entity_name6000001E, type: type(inst60000064)} +// CHECK:STDOUT: inst600000C4: {kind: SymbolicBindingPattern, arg0: entity_name6000001F, type: type(inst60000064)} +// CHECK:STDOUT: inst600000C5: {kind: ImportRefLoaded, arg0: import_ir_inst60, arg1: entity_name, type: type(inst60000049)} +// CHECK:STDOUT: inst600000C6: {kind: ImportRefLoaded, arg0: import_ir_inst61, arg1: entity_name, type: type(inst60000049)} +// CHECK:STDOUT: inst600000C7: {kind: ImportRefLoaded, arg0: import_ir_inst62, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst600000C8: {kind: ImportRefLoaded, arg0: import_ir_inst63, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst600000C9: {kind: TupleType, arg0: inst_block6000003E, type: type(TypeType)} +// CHECK:STDOUT: inst600000CA: {kind: TupleValue, arg0: inst_block6000003F, type: type(inst600000C9)} +// CHECK:STDOUT: inst600000CB: {kind: ImportRefUnloaded, arg0: import_ir_inst64, arg1: entity_name} +// CHECK:STDOUT: inst600000CC: {kind: ImplWitnessTable, arg0: inst_block60000040, arg1: impl60000008} +// CHECK:STDOUT: inst600000CD: {kind: ImplWitness, arg0: inst600000CC, arg1: specific6000000A, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000CE: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst60000049)} +// CHECK:STDOUT: inst600000CF: {kind: SymbolicBinding, arg0: entity_name6000001A, arg1: inst, type: type(inst60000049)} +// CHECK:STDOUT: inst600000D0: {kind: TupleValue, arg0: inst_block60000041, type: type(inst600000C9)} +// CHECK:STDOUT: inst600000D1: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst600000CE, type: type(TypeType)} +// CHECK:STDOUT: inst600000D2: {kind: SymbolicBindingType, arg0: entity_name6000001A, arg1: inst600000CF, type: type(TypeType)} +// CHECK:STDOUT: inst600000D3: {kind: TupleType, arg0: inst_block60000042, type: type(TypeType)} +// CHECK:STDOUT: inst600000D4: {kind: ImplWitness, arg0: inst600000CC, arg1: specific6000000B, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000D5: {kind: FunctionDecl, arg0: function60000004, arg1: inst_block_empty, type: type(symbolic_constant6000007A)} +// CHECK:STDOUT: inst600000D6: {kind: FunctionType, arg0: function60000004, arg1: specific6000000A, type: type(TypeType)} +// CHECK:STDOUT: inst600000D7: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant6000007A)} +// CHECK:STDOUT: inst600000D8: {kind: PatternType, arg0: inst600000C2, type: type(TypeType)} +// CHECK:STDOUT: inst600000D9: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant6000007F)} +// CHECK:STDOUT: inst600000DA: {kind: OutParamPattern, arg0: inst600000D9, arg1: call_param1, type: type(symbolic_constant6000007F)} +// CHECK:STDOUT: inst600000DB: {kind: ValueBindingPattern, arg0: entity_name60000024, type: type(symbolic_constant6000007F)} +// CHECK:STDOUT: inst600000DC: {kind: ValueParamPattern, arg0: inst600000DB, arg1: call_param0, type: type(symbolic_constant6000007F)} +// CHECK:STDOUT: inst600000DD: {kind: ImportRefLoaded, arg0: import_ir_inst72, arg1: entity_name, type: type(inst60000049)} +// CHECK:STDOUT: inst600000DE: {kind: ImportRefLoaded, arg0: import_ir_inst73, arg1: entity_name, type: type(inst60000049)} +// CHECK:STDOUT: inst600000DF: {kind: FunctionType, arg0: function60000004, arg1: specific6000000B, type: type(TypeType)} +// CHECK:STDOUT: inst600000E0: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant60000081)} +// CHECK:STDOUT: inst600000E1: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst60000049)} +// CHECK:STDOUT: inst600000E2: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst600000E1, type: type(TypeType)} +// CHECK:STDOUT: inst600000E3: {kind: SymbolicBinding, arg0: entity_name6000001A, arg1: inst, type: type(inst60000049)} +// CHECK:STDOUT: inst600000E4: {kind: SymbolicBindingType, arg0: entity_name6000001A, arg1: inst600000E3, type: type(TypeType)} +// CHECK:STDOUT: inst600000E5: {kind: TupleType, arg0: inst_block6000004A, type: type(TypeType)} +// CHECK:STDOUT: inst600000E6: {kind: PatternType, arg0: inst600000E5, type: type(TypeType)} +// CHECK:STDOUT: inst600000E7: {kind: RequireCompleteType, arg0: inst600000C2, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000E8: {kind: RequireCompleteType, arg0: inst600000C1, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000E9: {kind: LookupImplWitness, arg0: inst600000C0, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000EA: {kind: FunctionTypeWithSelfType, arg0: inst60000052, arg1: inst600000C0, type: type(TypeType)} +// CHECK:STDOUT: inst600000EB: {kind: ImplWitnessAccess, arg0: inst600000E9, arg1: element0, type: type(symbolic_constant60000099)} +// CHECK:STDOUT: inst600000EC: {kind: SpecificImplFunction, arg0: inst600000EB, arg1: specific6000000D, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst600000ED: {kind: RequireCompleteType, arg0: inst600000E5, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000EE: {kind: RequireCompleteType, arg0: inst600000E2, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000EF: {kind: LookupImplWitness, arg0: inst600000E1, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000F0: {kind: FunctionTypeWithSelfType, arg0: inst60000052, arg1: inst600000E1, type: type(TypeType)} +// CHECK:STDOUT: inst600000F1: {kind: ImplWitnessAccess, arg0: inst600000EF, arg1: element0, type: type(symbolic_constant600000A2)} +// CHECK:STDOUT: inst600000F2: {kind: SpecificImplFunction, arg0: inst600000F1, arg1: specific6000000E, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst600000F3: {kind: RequireCompleteType, arg0: inst600000E4, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000F4: {kind: LookupImplWitness, arg0: inst600000E3, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst600000F5: {kind: FunctionTypeWithSelfType, arg0: inst60000052, arg1: inst600000E3, type: type(TypeType)} +// CHECK:STDOUT: inst600000F6: {kind: ImplWitnessAccess, arg0: inst600000F4, arg1: element0, type: type(symbolic_constant600000A7)} +// CHECK:STDOUT: inst600000F7: {kind: SpecificImplFunction, arg0: inst600000F6, arg1: specific6000000F, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst600000F8: {kind: PatternType, arg0: inst600000C1, type: type(TypeType)} +// CHECK:STDOUT: inst600000F9: {kind: ImportRefUnloaded, arg0: import_ir_inst87, arg1: entity_name} +// CHECK:STDOUT: inst600000FA: {kind: ImplDecl, arg0: impl60000009, arg1: inst_block_empty} +// CHECK:STDOUT: inst600000FB: {kind: SymbolicBinding, arg0: entity_name60000029, arg1: inst, type: type(inst60000049)} +// CHECK:STDOUT: inst600000FC: {kind: SymbolicBindingType, arg0: entity_name60000029, arg1: inst600000FB, type: type(TypeType)} +// CHECK:STDOUT: inst600000FD: {kind: TupleType, arg0: inst_block60000053, type: type(TypeType)} +// CHECK:STDOUT: inst600000FE: {kind: SymbolicBindingPattern, arg0: entity_name6000002E, type: type(inst60000064)} +// CHECK:STDOUT: inst600000FF: {kind: SymbolicBindingPattern, arg0: entity_name6000002F, type: type(inst60000064)} +// CHECK:STDOUT: inst60000100: {kind: SymbolicBindingPattern, arg0: entity_name60000030, type: type(inst60000064)} +// CHECK:STDOUT: inst60000101: {kind: ImportRefLoaded, arg0: import_ir_inst8C, arg1: entity_name, type: type(inst60000049)} +// CHECK:STDOUT: inst60000102: {kind: ImportRefLoaded, arg0: import_ir_inst8D, arg1: entity_name, type: type(inst60000049)} +// CHECK:STDOUT: inst60000103: {kind: ImportRefLoaded, arg0: import_ir_inst8E, arg1: entity_name, type: type(inst60000049)} +// CHECK:STDOUT: inst60000104: {kind: ImportRefLoaded, arg0: import_ir_inst8F, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst60000105: {kind: ImportRefLoaded, arg0: import_ir_inst90, arg1: entity_name, type: type(TypeType)} +// CHECK:STDOUT: inst60000106: {kind: TupleType, arg0: inst_block60000056, type: type(TypeType)} +// CHECK:STDOUT: inst60000107: {kind: TupleValue, arg0: inst_block60000057, type: type(inst60000106)} +// CHECK:STDOUT: inst60000108: {kind: ImportRefUnloaded, arg0: import_ir_inst91, arg1: entity_name} +// CHECK:STDOUT: inst60000109: {kind: ImplWitnessTable, arg0: inst_block60000058, arg1: impl60000009} +// CHECK:STDOUT: inst6000010A: {kind: ImplWitness, arg0: inst60000109, arg1: specific60000010, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000010B: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst60000049)} +// CHECK:STDOUT: inst6000010C: {kind: SymbolicBinding, arg0: entity_name6000001A, arg1: inst, type: type(inst60000049)} +// CHECK:STDOUT: inst6000010D: {kind: SymbolicBinding, arg0: entity_name60000029, arg1: inst, type: type(inst60000049)} +// CHECK:STDOUT: inst6000010E: {kind: TupleValue, arg0: inst_block60000059, type: type(inst60000106)} +// CHECK:STDOUT: inst6000010F: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst6000010B, type: type(TypeType)} +// CHECK:STDOUT: inst60000110: {kind: SymbolicBindingType, arg0: entity_name6000001A, arg1: inst6000010C, type: type(TypeType)} +// CHECK:STDOUT: inst60000111: {kind: SymbolicBindingType, arg0: entity_name60000029, arg1: inst6000010D, type: type(TypeType)} +// CHECK:STDOUT: inst60000112: {kind: TupleType, arg0: inst_block6000005A, type: type(TypeType)} +// CHECK:STDOUT: inst60000113: {kind: ImplWitness, arg0: inst60000109, arg1: specific60000011, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000114: {kind: FunctionDecl, arg0: function60000005, arg1: inst_block_empty, type: type(symbolic_constant600000C6)} +// CHECK:STDOUT: inst60000115: {kind: FunctionType, arg0: function60000005, arg1: specific60000010, type: type(TypeType)} +// CHECK:STDOUT: inst60000116: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant600000C6)} +// CHECK:STDOUT: inst60000117: {kind: PatternType, arg0: inst600000FD, type: type(TypeType)} +// CHECK:STDOUT: inst60000118: {kind: ReturnSlotPattern, arg0: inst, type: type(symbolic_constant600000CB)} +// CHECK:STDOUT: inst60000119: {kind: OutParamPattern, arg0: inst60000118, arg1: call_param1, type: type(symbolic_constant600000CB)} +// CHECK:STDOUT: inst6000011A: {kind: ValueBindingPattern, arg0: entity_name60000037, type: type(symbolic_constant600000CB)} +// CHECK:STDOUT: inst6000011B: {kind: ValueParamPattern, arg0: inst6000011A, arg1: call_param0, type: type(symbolic_constant600000CB)} +// CHECK:STDOUT: inst6000011C: {kind: ImportRefLoaded, arg0: import_ir_instA1, arg1: entity_name, type: type(inst60000049)} +// CHECK:STDOUT: inst6000011D: {kind: ImportRefLoaded, arg0: import_ir_instA2, arg1: entity_name, type: type(inst60000049)} +// CHECK:STDOUT: inst6000011E: {kind: ImportRefLoaded, arg0: import_ir_instA3, arg1: entity_name, type: type(inst60000049)} +// CHECK:STDOUT: inst6000011F: {kind: FunctionType, arg0: function60000005, arg1: specific60000011, type: type(TypeType)} +// CHECK:STDOUT: inst60000120: {kind: StructValue, arg0: inst_block_empty, type: type(symbolic_constant600000CD)} +// CHECK:STDOUT: inst60000121: {kind: SymbolicBinding, arg0: entity_name60000001, arg1: inst, type: type(inst60000049)} +// CHECK:STDOUT: inst60000122: {kind: SymbolicBindingType, arg0: entity_name60000001, arg1: inst60000121, type: type(TypeType)} +// CHECK:STDOUT: inst60000123: {kind: SymbolicBinding, arg0: entity_name6000001A, arg1: inst, type: type(inst60000049)} +// CHECK:STDOUT: inst60000124: {kind: SymbolicBindingType, arg0: entity_name6000001A, arg1: inst60000123, type: type(TypeType)} +// CHECK:STDOUT: inst60000125: {kind: SymbolicBinding, arg0: entity_name60000029, arg1: inst, type: type(inst60000049)} +// CHECK:STDOUT: inst60000126: {kind: SymbolicBindingType, arg0: entity_name60000029, arg1: inst60000125, type: type(TypeType)} +// CHECK:STDOUT: inst60000127: {kind: TupleType, arg0: inst_block60000062, type: type(TypeType)} +// CHECK:STDOUT: inst60000128: {kind: PatternType, arg0: inst60000127, type: type(TypeType)} +// CHECK:STDOUT: inst60000129: {kind: RequireCompleteType, arg0: inst600000FD, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000012A: {kind: RequireCompleteType, arg0: inst600000FC, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000012B: {kind: LookupImplWitness, arg0: inst600000FB, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000012C: {kind: FunctionTypeWithSelfType, arg0: inst60000052, arg1: inst600000FB, type: type(TypeType)} +// CHECK:STDOUT: inst6000012D: {kind: ImplWitnessAccess, arg0: inst6000012B, arg1: element0, type: type(symbolic_constant600000EE)} +// CHECK:STDOUT: inst6000012E: {kind: SpecificImplFunction, arg0: inst6000012D, arg1: specific60000013, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst6000012F: {kind: RequireCompleteType, arg0: inst60000127, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000130: {kind: RequireCompleteType, arg0: inst60000122, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000131: {kind: LookupImplWitness, arg0: inst60000121, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000132: {kind: FunctionTypeWithSelfType, arg0: inst60000052, arg1: inst60000121, type: type(TypeType)} +// CHECK:STDOUT: inst60000133: {kind: ImplWitnessAccess, arg0: inst60000131, arg1: element0, type: type(symbolic_constant600000F7)} +// CHECK:STDOUT: inst60000134: {kind: SpecificImplFunction, arg0: inst60000133, arg1: specific60000014, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst60000135: {kind: RequireCompleteType, arg0: inst60000124, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000136: {kind: LookupImplWitness, arg0: inst60000123, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst60000137: {kind: FunctionTypeWithSelfType, arg0: inst60000052, arg1: inst60000123, type: type(TypeType)} +// CHECK:STDOUT: inst60000138: {kind: ImplWitnessAccess, arg0: inst60000136, arg1: element0, type: type(symbolic_constant600000FC)} +// CHECK:STDOUT: inst60000139: {kind: SpecificImplFunction, arg0: inst60000138, arg1: specific60000015, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst6000013A: {kind: RequireCompleteType, arg0: inst60000126, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000013B: {kind: LookupImplWitness, arg0: inst60000125, arg1: specific_interface60000000, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000013C: {kind: FunctionTypeWithSelfType, arg0: inst60000052, arg1: inst60000125, type: type(TypeType)} +// CHECK:STDOUT: inst6000013D: {kind: ImplWitnessAccess, arg0: inst6000013B, arg1: element0, type: type(symbolic_constant60000101)} +// CHECK:STDOUT: inst6000013E: {kind: SpecificImplFunction, arg0: inst6000013D, arg1: specific60000016, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst6000013F: {kind: PatternType, arg0: inst600000FC, type: type(TypeType)} +// CHECK:STDOUT: inst60000140: {kind: LookupImplWitness, arg0: inst6000001A, arg1: specific_interface60000000, type: type(inst(WitnessType))} // CHECK:STDOUT: inst60000141: {kind: LookupImplWitness, arg0: inst6000001B, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000142: {kind: LookupImplWitness, arg0: inst6000001C, arg1: specific_interface60000000, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000143: {kind: FacetValue, arg0: inst6000001B, arg1: inst_block6000006D, type: type(inst6000004A)} -// CHECK:STDOUT: inst60000144: {kind: FunctionTypeWithSelfType, arg0: inst60000053, arg1: inst60000143, type: type(TypeType)} -// CHECK:STDOUT: inst60000145: {kind: ImplWitnessAccess, arg0: inst60000141, arg1: element0, type: type(symbolic_constant6000010C)} -// CHECK:STDOUT: inst60000146: {kind: ImplWitnessAccess, arg0: inst60000141, arg1: element0, type: type(symbolic_constant60000109)} -// CHECK:STDOUT: inst60000147: {kind: FacetValue, arg0: inst6000001C, arg1: inst_block6000006E, type: type(inst6000004A)} -// CHECK:STDOUT: inst60000148: {kind: FunctionTypeWithSelfType, arg0: inst60000053, arg1: inst60000147, type: type(TypeType)} -// CHECK:STDOUT: inst60000149: {kind: ImplWitnessAccess, arg0: inst60000142, arg1: element0, type: type(symbolic_constant6000010C)} -// CHECK:STDOUT: inst6000014A: {kind: BoundMethod, arg0: inst60000042, arg1: inst60000145, type: type(inst(BoundMethodType))} +// CHECK:STDOUT: inst60000142: {kind: FacetValue, arg0: inst6000001A, arg1: inst_block6000006D, type: type(inst60000049)} +// CHECK:STDOUT: inst60000143: {kind: FunctionTypeWithSelfType, arg0: inst60000052, arg1: inst60000142, type: type(TypeType)} +// CHECK:STDOUT: inst60000144: {kind: ImplWitnessAccess, arg0: inst60000140, arg1: element0, type: type(symbolic_constant6000010C)} +// CHECK:STDOUT: inst60000145: {kind: ImplWitnessAccess, arg0: inst60000140, arg1: element0, type: type(symbolic_constant60000109)} +// CHECK:STDOUT: inst60000146: {kind: FacetValue, arg0: inst6000001B, arg1: inst_block6000006E, type: type(inst60000049)} +// CHECK:STDOUT: inst60000147: {kind: FunctionTypeWithSelfType, arg0: inst60000052, arg1: inst60000146, type: type(TypeType)} +// CHECK:STDOUT: inst60000148: {kind: ImplWitnessAccess, arg0: inst60000141, arg1: element0, type: type(symbolic_constant6000010C)} +// CHECK:STDOUT: inst60000149: {kind: BoundMethod, arg0: inst60000041, arg1: inst60000144, type: type(inst(BoundMethodType))} +// CHECK:STDOUT: inst6000014A: {kind: SpecificImplFunction, arg0: inst60000144, arg1: specific60000017, type: type(inst(SpecificFunctionType))} // CHECK:STDOUT: inst6000014B: {kind: SpecificImplFunction, arg0: inst60000145, arg1: specific60000017, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst6000014C: {kind: SpecificImplFunction, arg0: inst60000146, arg1: specific60000017, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst6000014D: {kind: SpecificImplFunction, arg0: inst60000149, arg1: specific60000018, type: type(inst(SpecificFunctionType))} -// CHECK:STDOUT: inst6000014E: {kind: BoundMethod, arg0: inst60000042, arg1: inst6000014B, type: type(inst(BoundMethodType))} -// CHECK:STDOUT: inst6000014F: {kind: RequireCompleteType, arg0: inst6000001B, type: type(inst(WitnessType))} -// CHECK:STDOUT: inst60000150: {kind: Call, arg0: inst6000014E, arg1: inst_block60000072, type: type(symbolic_constant4)} -// CHECK:STDOUT: inst60000151: {kind: InitializeFrom, arg0: inst60000150, arg1: inst60000046, type: type(symbolic_constant4)} -// CHECK:STDOUT: inst60000152: {kind: TupleAccess, arg0: inst60000037, arg1: element1, type: type(inst60000024)} -// CHECK:STDOUT: inst60000153: {kind: TupleInit, arg0: inst_block_empty, arg1: inst60000152, type: type(inst60000024)} -// CHECK:STDOUT: inst60000154: {kind: Converted, arg0: inst60000043, arg1: inst60000153, type: type(inst60000024)} -// CHECK:STDOUT: inst60000155: {kind: TupleInit, arg0: inst_block60000073, arg1: inst60000037, type: type(symbolic_constantA)} -// CHECK:STDOUT: inst60000156: {kind: Converted, arg0: inst60000044, arg1: inst60000155, type: type(symbolic_constantA)} -// CHECK:STDOUT: inst60000157: {kind: ReturnExpr, arg0: inst60000156, arg1: inst60000037} +// CHECK:STDOUT: inst6000014C: {kind: SpecificImplFunction, arg0: inst60000148, arg1: specific60000018, type: type(inst(SpecificFunctionType))} +// CHECK:STDOUT: inst6000014D: {kind: BoundMethod, arg0: inst60000041, arg1: inst6000014A, type: type(inst(BoundMethodType))} +// CHECK:STDOUT: inst6000014E: {kind: RequireCompleteType, arg0: inst6000001A, type: type(inst(WitnessType))} +// CHECK:STDOUT: inst6000014F: {kind: Call, arg0: inst6000014D, arg1: inst_block60000072, type: type(symbolic_constant4)} +// CHECK:STDOUT: inst60000150: {kind: InitializeFrom, arg0: inst6000014F, arg1: inst60000045, type: type(symbolic_constant4)} +// CHECK:STDOUT: inst60000151: {kind: TupleAccess, arg0: inst60000036, arg1: element1, type: type(inst60000023)} +// CHECK:STDOUT: inst60000152: {kind: TupleInit, arg0: inst_block_empty, arg1: inst60000151, type: type(inst60000023)} +// CHECK:STDOUT: inst60000153: {kind: Converted, arg0: inst60000042, arg1: inst60000152, type: type(inst60000023)} +// CHECK:STDOUT: inst60000154: {kind: TupleInit, arg0: inst_block60000073, arg1: inst60000036, type: type(symbolic_constantA)} +// CHECK:STDOUT: inst60000155: {kind: Converted, arg0: inst60000043, arg1: inst60000154, type: type(symbolic_constantA)} +// CHECK:STDOUT: inst60000156: {kind: ReturnExpr, arg0: inst60000155, arg1: inst60000036} // CHECK:STDOUT: constant_values: // CHECK:STDOUT: values: -// CHECK:STDOUT: instE: concrete_constant(instE) +// CHECK:STDOUT: instD: concrete_constant(instD) +// CHECK:STDOUT: inst6000000F: concrete_constant(inst6000000F) // CHECK:STDOUT: inst60000010: concrete_constant(inst60000010) -// CHECK:STDOUT: inst60000011: concrete_constant(inst60000011) +// CHECK:STDOUT: inst60000011: symbolic_constant0 // CHECK:STDOUT: inst60000012: symbolic_constant0 -// CHECK:STDOUT: inst60000013: symbolic_constant0 -// CHECK:STDOUT: inst60000014: symbolic_constant2 -// CHECK:STDOUT: inst60000015: symbolic_constant1 -// CHECK:STDOUT: inst60000016: symbolic_constant2 +// CHECK:STDOUT: inst60000013: symbolic_constant2 +// CHECK:STDOUT: inst60000014: symbolic_constant1 +// CHECK:STDOUT: inst60000015: symbolic_constant2 +// CHECK:STDOUT: inst60000016: concrete_constant(inst60000016) // CHECK:STDOUT: inst60000017: concrete_constant(inst60000017) -// CHECK:STDOUT: inst60000018: concrete_constant(inst60000018) -// CHECK:STDOUT: inst60000019: symbolic_constant2 -// CHECK:STDOUT: inst6000001A: symbolic_constant4 -// CHECK:STDOUT: inst6000001B: symbolic_constant3 -// CHECK:STDOUT: inst6000001C: symbolic_constant4 -// CHECK:STDOUT: inst6000001E: symbolic_constant5 -// CHECK:STDOUT: inst6000001F: concrete_constant(inst6000001F) -// CHECK:STDOUT: inst60000020: symbolic_constant6 -// CHECK:STDOUT: inst60000021: concrete_constant(inst60000021) -// CHECK:STDOUT: inst60000022: symbolic_constant2 -// CHECK:STDOUT: inst60000023: symbolic_constant4 -// CHECK:STDOUT: inst60000024: concrete_constant(inst60000024) -// CHECK:STDOUT: inst60000025: concrete_constant(inst60000026) +// CHECK:STDOUT: inst60000018: symbolic_constant2 +// CHECK:STDOUT: inst60000019: symbolic_constant4 +// CHECK:STDOUT: inst6000001A: symbolic_constant3 +// CHECK:STDOUT: inst6000001B: symbolic_constant4 +// CHECK:STDOUT: inst6000001D: symbolic_constant5 +// CHECK:STDOUT: inst6000001E: concrete_constant(inst6000001E) +// CHECK:STDOUT: inst6000001F: symbolic_constant6 +// CHECK:STDOUT: inst60000020: concrete_constant(inst60000020) +// CHECK:STDOUT: inst60000021: symbolic_constant2 +// CHECK:STDOUT: inst60000022: symbolic_constant4 +// CHECK:STDOUT: inst60000023: concrete_constant(inst60000023) +// CHECK:STDOUT: inst60000024: concrete_constant(inst60000025) +// CHECK:STDOUT: inst60000025: concrete_constant(inst60000025) // CHECK:STDOUT: inst60000026: concrete_constant(inst60000026) -// CHECK:STDOUT: inst60000027: concrete_constant(inst60000027) -// CHECK:STDOUT: inst60000028: symbolic_constant8 -// CHECK:STDOUT: inst60000029: symbolic_constant7 -// CHECK:STDOUT: inst6000002A: symbolic_constant8 -// CHECK:STDOUT: inst6000002B: concrete_constant(inst6000002B) -// CHECK:STDOUT: inst6000002C: concrete_constant(inst60000024) -// CHECK:STDOUT: inst6000002D: symbolic_constant9 +// CHECK:STDOUT: inst60000027: symbolic_constant8 +// CHECK:STDOUT: inst60000028: symbolic_constant7 +// CHECK:STDOUT: inst60000029: symbolic_constant8 +// CHECK:STDOUT: inst6000002A: concrete_constant(inst6000002A) +// CHECK:STDOUT: inst6000002B: concrete_constant(inst60000023) +// CHECK:STDOUT: inst6000002C: symbolic_constant9 +// CHECK:STDOUT: inst6000002D: symbolic_constantA // CHECK:STDOUT: inst6000002E: symbolic_constantA -// CHECK:STDOUT: inst6000002F: symbolic_constantA -// CHECK:STDOUT: inst60000030: symbolic_constantB -// CHECK:STDOUT: inst60000031: concrete_constant(inst60000031) -// CHECK:STDOUT: inst60000032: symbolic_constantC -// CHECK:STDOUT: inst60000033: concrete_constant(inst60000033) -// CHECK:STDOUT: inst60000035: symbolic_constant4 -// CHECK:STDOUT: inst60000038: concrete_constant(inst6000003A) +// CHECK:STDOUT: inst6000002F: symbolic_constantB +// CHECK:STDOUT: inst60000030: concrete_constant(inst60000030) +// CHECK:STDOUT: inst60000031: symbolic_constantC +// CHECK:STDOUT: inst60000032: concrete_constant(inst60000032) +// CHECK:STDOUT: inst60000034: symbolic_constant4 +// CHECK:STDOUT: inst60000037: concrete_constant(inst60000039) +// CHECK:STDOUT: inst60000038: concrete_constant(inst60000038) // CHECK:STDOUT: inst60000039: concrete_constant(inst60000039) -// CHECK:STDOUT: inst6000003A: concrete_constant(inst6000003A) -// CHECK:STDOUT: inst6000003B: symbolic_constantD -// CHECK:STDOUT: inst6000003C: symbolic_constant6000000F -// CHECK:STDOUT: inst6000003D: symbolic_constantE -// CHECK:STDOUT: inst6000003E: symbolic_constant6000000F -// CHECK:STDOUT: inst6000003F: symbolic_constant60000011 -// CHECK:STDOUT: inst60000040: symbolic_constant60000010 -// CHECK:STDOUT: inst60000041: symbolic_constant60000011 -// CHECK:STDOUT: inst60000043: concrete_constant(inst60000026) -// CHECK:STDOUT: inst60000045: symbolic_constant6000000F -// CHECK:STDOUT: inst60000047: symbolic_constant60000011 -// CHECK:STDOUT: inst60000048: concrete_constant(inst6000004A) -// CHECK:STDOUT: inst60000049: concrete_constant(inst6000004A) -// CHECK:STDOUT: inst6000004A: concrete_constant(inst6000004A) -// CHECK:STDOUT: inst6000004B: symbolic_constant60000012 -// CHECK:STDOUT: inst6000004C: constant -// CHECK:STDOUT: inst6000004D: concrete_constant(inst60000051) -// CHECK:STDOUT: inst6000004E: constant -// CHECK:STDOUT: inst6000004F: concrete_constant(inst6000004F) -// CHECK:STDOUT: inst60000050: concrete_constant(inst60000054) -// CHECK:STDOUT: inst60000051: concrete_constant(inst60000051) -// CHECK:STDOUT: inst60000052: concrete_constant(inst60000054) +// CHECK:STDOUT: inst6000003A: symbolic_constantD +// CHECK:STDOUT: inst6000003B: symbolic_constant6000000F +// CHECK:STDOUT: inst6000003C: symbolic_constant6000000E +// CHECK:STDOUT: inst6000003D: symbolic_constant6000000F +// CHECK:STDOUT: inst6000003E: symbolic_constant60000011 +// CHECK:STDOUT: inst6000003F: symbolic_constant60000010 +// CHECK:STDOUT: inst60000040: symbolic_constant60000011 +// CHECK:STDOUT: inst60000042: concrete_constant(inst60000025) +// CHECK:STDOUT: inst60000044: symbolic_constant6000000F +// CHECK:STDOUT: inst60000046: symbolic_constant60000011 +// CHECK:STDOUT: inst60000047: concrete_constant(inst60000049) +// CHECK:STDOUT: inst60000048: concrete_constant(inst60000049) +// CHECK:STDOUT: inst60000049: concrete_constant(inst60000049) +// CHECK:STDOUT: inst6000004A: symbolic_constant60000012 +// CHECK:STDOUT: inst6000004B: constant +// CHECK:STDOUT: inst6000004C: concrete_constant(inst60000050) +// CHECK:STDOUT: inst6000004D: constant +// CHECK:STDOUT: inst6000004E: concrete_constant(inst6000004E) +// CHECK:STDOUT: inst6000004F: concrete_constant(inst60000053) +// CHECK:STDOUT: inst60000050: concrete_constant(inst60000050) +// CHECK:STDOUT: inst60000051: concrete_constant(inst60000053) +// CHECK:STDOUT: inst60000052: concrete_constant(inst60000052) // CHECK:STDOUT: inst60000053: concrete_constant(inst60000053) -// CHECK:STDOUT: inst60000054: concrete_constant(inst60000054) -// CHECK:STDOUT: inst60000055: symbolic_constant60000013 -// CHECK:STDOUT: inst60000056: symbolic_constant60000014 +// CHECK:STDOUT: inst60000054: symbolic_constant60000013 +// CHECK:STDOUT: inst60000055: symbolic_constant60000014 +// CHECK:STDOUT: inst60000056: concrete_constant(inst60000056) // CHECK:STDOUT: inst60000057: concrete_constant(inst60000057) // CHECK:STDOUT: inst60000058: concrete_constant(inst60000058) // CHECK:STDOUT: inst60000059: concrete_constant(inst60000059) -// CHECK:STDOUT: inst6000005A: concrete_constant(inst6000005A) -// CHECK:STDOUT: inst6000005B: symbolic_constant60000012 -// CHECK:STDOUT: inst6000005C: symbolic_constant60000018 -// CHECK:STDOUT: inst6000005D: symbolic_constant60000019 -// CHECK:STDOUT: inst6000005E: symbolic_constant6000001A -// CHECK:STDOUT: inst6000005F: symbolic_constant60000107 -// CHECK:STDOUT: inst60000060: constant -// CHECK:STDOUT: inst60000061: concrete_constant(inst60000061) -// CHECK:STDOUT: inst60000062: symbolic_constant6000001B -// CHECK:STDOUT: inst60000063: symbolic_constant6000001C -// CHECK:STDOUT: inst60000064: symbolic_constant6000001D +// CHECK:STDOUT: inst6000005A: symbolic_constant60000012 +// CHECK:STDOUT: inst6000005B: symbolic_constant60000018 +// CHECK:STDOUT: inst6000005C: symbolic_constant60000019 +// CHECK:STDOUT: inst6000005D: symbolic_constant6000001A +// CHECK:STDOUT: inst6000005E: symbolic_constant60000107 +// CHECK:STDOUT: inst6000005F: constant +// CHECK:STDOUT: inst60000060: concrete_constant(inst60000060) +// CHECK:STDOUT: inst60000061: symbolic_constant6000001B +// CHECK:STDOUT: inst60000062: symbolic_constant6000001C +// CHECK:STDOUT: inst60000063: symbolic_constant6000001D +// CHECK:STDOUT: inst60000064: concrete_constant(inst60000064) // CHECK:STDOUT: inst60000065: concrete_constant(inst60000065) -// CHECK:STDOUT: inst60000066: concrete_constant(inst60000066) -// CHECK:STDOUT: inst60000067: symbolic_constant6000001F -// CHECK:STDOUT: inst60000068: symbolic_constant6000001E -// CHECK:STDOUT: inst60000069: concrete_constant(inst6000004A) -// CHECK:STDOUT: inst6000006A: constant -// CHECK:STDOUT: inst6000006B: concrete_constant(inst6000006B) -// CHECK:STDOUT: inst6000006C: symbolic_constant60000023 -// CHECK:STDOUT: inst6000006D: symbolic_constant60000025 -// CHECK:STDOUT: inst6000006E: symbolic_constant60000026 -// CHECK:STDOUT: inst6000006F: symbolic_constant60000027 -// CHECK:STDOUT: inst60000070: symbolic_constant60000028 -// CHECK:STDOUT: inst60000071: symbolic_constant6000002B -// CHECK:STDOUT: inst60000072: symbolic_constant60000029 -// CHECK:STDOUT: inst60000073: symbolic_constant6000002A -// CHECK:STDOUT: inst60000074: symbolic_constant6000002D +// CHECK:STDOUT: inst60000066: symbolic_constant6000001F +// CHECK:STDOUT: inst60000067: symbolic_constant6000001E +// CHECK:STDOUT: inst60000068: concrete_constant(inst60000049) +// CHECK:STDOUT: inst60000069: constant +// CHECK:STDOUT: inst6000006A: concrete_constant(inst6000006A) +// CHECK:STDOUT: inst6000006B: symbolic_constant60000023 +// CHECK:STDOUT: inst6000006C: symbolic_constant60000025 +// CHECK:STDOUT: inst6000006D: symbolic_constant60000026 +// CHECK:STDOUT: inst6000006E: symbolic_constant60000027 +// CHECK:STDOUT: inst6000006F: symbolic_constant60000028 +// CHECK:STDOUT: inst60000070: symbolic_constant6000002B +// CHECK:STDOUT: inst60000071: symbolic_constant60000029 +// CHECK:STDOUT: inst60000072: symbolic_constant6000002A +// CHECK:STDOUT: inst60000073: symbolic_constant6000002D +// CHECK:STDOUT: inst60000074: concrete_constant(inst60000074) // CHECK:STDOUT: inst60000075: concrete_constant(inst60000075) // CHECK:STDOUT: inst60000076: concrete_constant(inst60000076) // CHECK:STDOUT: inst60000077: concrete_constant(inst60000077) -// CHECK:STDOUT: inst60000078: concrete_constant(inst60000078) -// CHECK:STDOUT: inst60000079: symbolic_constant6000001F -// CHECK:STDOUT: inst6000007A: symbolic_constant60000030 -// CHECK:STDOUT: inst6000007B: symbolic_constant60000031 -// CHECK:STDOUT: inst6000007C: symbolic_constant60000035 -// CHECK:STDOUT: inst6000007D: symbolic_constant60000036 -// CHECK:STDOUT: inst6000007E: symbolic_constant60000037 -// CHECK:STDOUT: inst6000007F: symbolic_constant60000038 -// CHECK:STDOUT: inst60000080: symbolic_constant60000039 -// CHECK:STDOUT: inst60000081: symbolic_constant6000003B -// CHECK:STDOUT: inst60000082: symbolic_constant6000003D -// CHECK:STDOUT: inst60000083: symbolic_constant6000003F -// CHECK:STDOUT: inst60000084: symbolic_constant60000041 -// CHECK:STDOUT: inst60000085: symbolic_constant60000043 -// CHECK:STDOUT: inst60000086: symbolic_constant60000045 -// CHECK:STDOUT: inst60000087: symbolic_constant60000046 -// CHECK:STDOUT: inst60000088: symbolic_constant60000047 -// CHECK:STDOUT: inst60000089: symbolic_constant60000048 -// CHECK:STDOUT: inst6000008A: symbolic_constant60000049 -// CHECK:STDOUT: inst6000008B: symbolic_constant6000004A -// CHECK:STDOUT: inst6000008C: symbolic_constant6000004B -// CHECK:STDOUT: inst6000008D: constant -// CHECK:STDOUT: inst6000008E: concrete_constant(inst6000008E) -// CHECK:STDOUT: inst6000008F: concrete_constant(inst(BoolType)) -// CHECK:STDOUT: inst60000090: concrete_constant(inst6000004A) -// CHECK:STDOUT: inst60000091: constant -// CHECK:STDOUT: inst60000092: concrete_constant(inst60000092) -// CHECK:STDOUT: inst60000093: concrete_constant(inst(CharLiteralType)) -// CHECK:STDOUT: inst60000094: concrete_constant(inst6000004A) -// CHECK:STDOUT: inst60000095: constant -// CHECK:STDOUT: inst60000096: concrete_constant(inst60000096) -// CHECK:STDOUT: inst60000097: concrete_constant(inst(FloatLiteralType)) -// CHECK:STDOUT: inst60000098: concrete_constant(inst6000004A) -// CHECK:STDOUT: inst60000099: constant -// CHECK:STDOUT: inst6000009A: concrete_constant(inst6000009A) -// CHECK:STDOUT: inst6000009B: concrete_constant(inst(IntLiteralType)) -// CHECK:STDOUT: inst6000009C: concrete_constant(inst6000004A) -// CHECK:STDOUT: inst6000009D: symbolic_constant60000105 +// CHECK:STDOUT: inst60000078: symbolic_constant6000001F +// CHECK:STDOUT: inst60000079: symbolic_constant60000030 +// CHECK:STDOUT: inst6000007A: symbolic_constant60000031 +// CHECK:STDOUT: inst6000007B: symbolic_constant60000035 +// CHECK:STDOUT: inst6000007C: symbolic_constant60000036 +// CHECK:STDOUT: inst6000007D: symbolic_constant60000037 +// CHECK:STDOUT: inst6000007E: symbolic_constant60000038 +// CHECK:STDOUT: inst6000007F: symbolic_constant60000039 +// CHECK:STDOUT: inst60000080: symbolic_constant6000003B +// CHECK:STDOUT: inst60000081: symbolic_constant6000003D +// CHECK:STDOUT: inst60000082: symbolic_constant6000003F +// CHECK:STDOUT: inst60000083: symbolic_constant60000041 +// CHECK:STDOUT: inst60000084: symbolic_constant60000043 +// CHECK:STDOUT: inst60000085: symbolic_constant60000045 +// CHECK:STDOUT: inst60000086: symbolic_constant60000046 +// CHECK:STDOUT: inst60000087: symbolic_constant60000047 +// CHECK:STDOUT: inst60000088: symbolic_constant60000048 +// CHECK:STDOUT: inst60000089: symbolic_constant60000049 +// CHECK:STDOUT: inst6000008A: symbolic_constant6000004A +// CHECK:STDOUT: inst6000008B: symbolic_constant6000004B +// CHECK:STDOUT: inst6000008C: constant +// CHECK:STDOUT: inst6000008D: concrete_constant(inst6000008D) +// CHECK:STDOUT: inst6000008E: concrete_constant(inst(BoolType)) +// CHECK:STDOUT: inst6000008F: concrete_constant(inst60000049) +// CHECK:STDOUT: inst60000090: constant +// CHECK:STDOUT: inst60000091: concrete_constant(inst60000091) +// CHECK:STDOUT: inst60000092: concrete_constant(inst(CharLiteralType)) +// CHECK:STDOUT: inst60000093: concrete_constant(inst60000049) +// CHECK:STDOUT: inst60000094: constant +// CHECK:STDOUT: inst60000095: concrete_constant(inst60000095) +// CHECK:STDOUT: inst60000096: concrete_constant(inst(FloatLiteralType)) +// CHECK:STDOUT: inst60000097: concrete_constant(inst60000049) +// CHECK:STDOUT: inst60000098: constant +// CHECK:STDOUT: inst60000099: concrete_constant(inst60000099) +// CHECK:STDOUT: inst6000009A: concrete_constant(inst(IntLiteralType)) +// CHECK:STDOUT: inst6000009B: concrete_constant(inst60000049) +// CHECK:STDOUT: inst6000009C: symbolic_constant60000105 +// CHECK:STDOUT: inst6000009D: concrete_constant(inst6000009D) // CHECK:STDOUT: inst6000009E: concrete_constant(inst6000009E) -// CHECK:STDOUT: inst6000009F: concrete_constant(inst6000009F) -// CHECK:STDOUT: inst600000A0: symbolic_constant6000004D -// CHECK:STDOUT: inst600000A1: symbolic_constant6000004C -// CHECK:STDOUT: inst600000A2: concrete_constant(inst6000004A) -// CHECK:STDOUT: inst600000A3: constant -// CHECK:STDOUT: inst600000A4: concrete_constant(inst600000A4) -// CHECK:STDOUT: inst600000A5: symbolic_constant60000050 -// CHECK:STDOUT: inst600000A6: symbolic_constant60000052 -// CHECK:STDOUT: inst600000A7: symbolic_constant60000053 -// CHECK:STDOUT: inst600000A8: symbolic_constant60000054 -// CHECK:STDOUT: inst600000A9: symbolic_constant60000057 -// CHECK:STDOUT: inst600000AA: symbolic_constant60000055 -// CHECK:STDOUT: inst600000AB: symbolic_constant60000056 +// CHECK:STDOUT: inst6000009F: symbolic_constant6000004D +// CHECK:STDOUT: inst600000A0: symbolic_constant6000004C +// CHECK:STDOUT: inst600000A1: concrete_constant(inst60000049) +// CHECK:STDOUT: inst600000A2: constant +// CHECK:STDOUT: inst600000A3: concrete_constant(inst600000A3) +// CHECK:STDOUT: inst600000A4: symbolic_constant60000050 +// CHECK:STDOUT: inst600000A5: symbolic_constant60000052 +// CHECK:STDOUT: inst600000A6: symbolic_constant60000053 +// CHECK:STDOUT: inst600000A7: symbolic_constant60000054 +// CHECK:STDOUT: inst600000A8: symbolic_constant60000057 +// CHECK:STDOUT: inst600000A9: symbolic_constant60000055 +// CHECK:STDOUT: inst600000AA: symbolic_constant60000056 +// CHECK:STDOUT: inst600000AB: concrete_constant(inst600000AB) // CHECK:STDOUT: inst600000AC: concrete_constant(inst600000AC) // CHECK:STDOUT: inst600000AD: concrete_constant(inst600000AD) // CHECK:STDOUT: inst600000AE: concrete_constant(inst600000AE) -// CHECK:STDOUT: inst600000AF: concrete_constant(inst600000AF) -// CHECK:STDOUT: inst600000B0: symbolic_constant6000004D -// CHECK:STDOUT: inst600000B1: symbolic_constant6000005C -// CHECK:STDOUT: inst600000B2: symbolic_constant6000005D -// CHECK:STDOUT: inst600000B3: symbolic_constant6000005E -// CHECK:STDOUT: inst600000B4: symbolic_constant60000061 -// CHECK:STDOUT: inst600000B5: symbolic_constant60000062 -// CHECK:STDOUT: inst600000B6: symbolic_constant60000063 -// CHECK:STDOUT: inst600000B7: constant -// CHECK:STDOUT: inst600000B8: concrete_constant(inst600000B8) -// CHECK:STDOUT: inst600000B9: concrete_constant(inst(TypeType)) -// CHECK:STDOUT: inst600000BA: concrete_constant(inst6000004A) -// CHECK:STDOUT: inst600000BB: constant -// CHECK:STDOUT: inst600000BC: concrete_constant(inst600000BC) -// CHECK:STDOUT: inst600000BD: concrete_constant(inst60000024) -// CHECK:STDOUT: inst600000BE: concrete_constant(inst6000004A) -// CHECK:STDOUT: inst600000BF: constant -// CHECK:STDOUT: inst600000C0: concrete_constant(inst600000C0) -// CHECK:STDOUT: inst600000C1: symbolic_constant60000064 -// CHECK:STDOUT: inst600000C2: symbolic_constant60000065 -// CHECK:STDOUT: inst600000C3: symbolic_constant60000066 +// CHECK:STDOUT: inst600000AF: symbolic_constant6000004D +// CHECK:STDOUT: inst600000B0: symbolic_constant6000005C +// CHECK:STDOUT: inst600000B1: symbolic_constant6000005D +// CHECK:STDOUT: inst600000B2: symbolic_constant6000005E +// CHECK:STDOUT: inst600000B3: symbolic_constant60000061 +// CHECK:STDOUT: inst600000B4: symbolic_constant60000062 +// CHECK:STDOUT: inst600000B5: symbolic_constant60000063 +// CHECK:STDOUT: inst600000B6: constant +// CHECK:STDOUT: inst600000B7: concrete_constant(inst600000B7) +// CHECK:STDOUT: inst600000B8: concrete_constant(inst(TypeType)) +// CHECK:STDOUT: inst600000B9: concrete_constant(inst60000049) +// CHECK:STDOUT: inst600000BA: constant +// CHECK:STDOUT: inst600000BB: concrete_constant(inst600000BB) +// CHECK:STDOUT: inst600000BC: concrete_constant(inst60000023) +// CHECK:STDOUT: inst600000BD: concrete_constant(inst60000049) +// CHECK:STDOUT: inst600000BE: constant +// CHECK:STDOUT: inst600000BF: concrete_constant(inst600000BF) +// CHECK:STDOUT: inst600000C0: symbolic_constant60000064 +// CHECK:STDOUT: inst600000C1: symbolic_constant60000065 +// CHECK:STDOUT: inst600000C2: symbolic_constant60000066 +// CHECK:STDOUT: inst600000C3: concrete_constant(inst600000C3) // CHECK:STDOUT: inst600000C4: concrete_constant(inst600000C4) -// CHECK:STDOUT: inst600000C5: concrete_constant(inst600000C5) -// CHECK:STDOUT: inst600000C6: symbolic_constant60000069 -// CHECK:STDOUT: inst600000C7: symbolic_constant60000068 -// CHECK:STDOUT: inst600000C8: symbolic_constant60000067 -// CHECK:STDOUT: inst600000C9: concrete_constant(inst6000004A) -// CHECK:STDOUT: inst600000CA: concrete_constant(inst600000CA) -// CHECK:STDOUT: inst600000CB: symbolic_constant6000006C -// CHECK:STDOUT: inst600000CC: constant -// CHECK:STDOUT: inst600000CD: concrete_constant(inst600000CD) -// CHECK:STDOUT: inst600000CE: symbolic_constant60000071 -// CHECK:STDOUT: inst600000CF: symbolic_constant60000073 -// CHECK:STDOUT: inst600000D0: symbolic_constant60000074 -// CHECK:STDOUT: inst600000D1: symbolic_constant60000075 -// CHECK:STDOUT: inst600000D2: symbolic_constant60000076 -// CHECK:STDOUT: inst600000D3: symbolic_constant60000077 -// CHECK:STDOUT: inst600000D4: symbolic_constant60000078 -// CHECK:STDOUT: inst600000D5: symbolic_constant60000079 -// CHECK:STDOUT: inst600000D6: symbolic_constant6000007C -// CHECK:STDOUT: inst600000D7: symbolic_constant6000007A -// CHECK:STDOUT: inst600000D8: symbolic_constant6000007B -// CHECK:STDOUT: inst600000D9: symbolic_constant6000007E +// CHECK:STDOUT: inst600000C5: symbolic_constant60000069 +// CHECK:STDOUT: inst600000C6: symbolic_constant60000068 +// CHECK:STDOUT: inst600000C7: symbolic_constant60000067 +// CHECK:STDOUT: inst600000C8: concrete_constant(inst60000049) +// CHECK:STDOUT: inst600000C9: concrete_constant(inst600000C9) +// CHECK:STDOUT: inst600000CA: symbolic_constant6000006C +// CHECK:STDOUT: inst600000CB: constant +// CHECK:STDOUT: inst600000CC: concrete_constant(inst600000CC) +// CHECK:STDOUT: inst600000CD: symbolic_constant60000071 +// CHECK:STDOUT: inst600000CE: symbolic_constant60000073 +// CHECK:STDOUT: inst600000CF: symbolic_constant60000074 +// CHECK:STDOUT: inst600000D0: symbolic_constant60000075 +// CHECK:STDOUT: inst600000D1: symbolic_constant60000076 +// CHECK:STDOUT: inst600000D2: symbolic_constant60000077 +// CHECK:STDOUT: inst600000D3: symbolic_constant60000078 +// CHECK:STDOUT: inst600000D4: symbolic_constant60000079 +// CHECK:STDOUT: inst600000D5: symbolic_constant6000007C +// CHECK:STDOUT: inst600000D6: symbolic_constant6000007A +// CHECK:STDOUT: inst600000D7: symbolic_constant6000007B +// CHECK:STDOUT: inst600000D8: symbolic_constant6000007E +// CHECK:STDOUT: inst600000D9: concrete_constant(inst600000D9) // CHECK:STDOUT: inst600000DA: concrete_constant(inst600000DA) // CHECK:STDOUT: inst600000DB: concrete_constant(inst600000DB) // CHECK:STDOUT: inst600000DC: concrete_constant(inst600000DC) -// CHECK:STDOUT: inst600000DD: concrete_constant(inst600000DD) -// CHECK:STDOUT: inst600000DE: symbolic_constant60000069 -// CHECK:STDOUT: inst600000DF: symbolic_constant60000068 -// CHECK:STDOUT: inst600000E0: symbolic_constant60000081 -// CHECK:STDOUT: inst600000E1: symbolic_constant60000082 -// CHECK:STDOUT: inst600000E2: symbolic_constant60000088 -// CHECK:STDOUT: inst600000E3: symbolic_constant60000089 -// CHECK:STDOUT: inst600000E4: symbolic_constant6000008A -// CHECK:STDOUT: inst600000E5: symbolic_constant6000008B -// CHECK:STDOUT: inst600000E6: symbolic_constant6000008C -// CHECK:STDOUT: inst600000E7: symbolic_constant6000008D -// CHECK:STDOUT: inst600000E8: symbolic_constant6000008E -// CHECK:STDOUT: inst600000E9: symbolic_constant60000095 -// CHECK:STDOUT: inst600000EA: symbolic_constant60000097 -// CHECK:STDOUT: inst600000EB: symbolic_constant60000099 -// CHECK:STDOUT: inst600000EC: symbolic_constant6000009B -// CHECK:STDOUT: inst600000ED: symbolic_constant6000009D -// CHECK:STDOUT: inst600000EE: symbolic_constant6000009F -// CHECK:STDOUT: inst600000EF: symbolic_constant600000A0 -// CHECK:STDOUT: inst600000F0: symbolic_constant600000A1 -// CHECK:STDOUT: inst600000F1: symbolic_constant600000A2 -// CHECK:STDOUT: inst600000F2: symbolic_constant600000A3 -// CHECK:STDOUT: inst600000F3: symbolic_constant600000A4 -// CHECK:STDOUT: inst600000F4: symbolic_constant600000A5 -// CHECK:STDOUT: inst600000F5: symbolic_constant600000A6 -// CHECK:STDOUT: inst600000F6: symbolic_constant600000A7 -// CHECK:STDOUT: inst600000F7: symbolic_constant600000A8 -// CHECK:STDOUT: inst600000F8: symbolic_constant600000A9 -// CHECK:STDOUT: inst600000F9: symbolic_constant600000AA -// CHECK:STDOUT: inst600000FA: constant -// CHECK:STDOUT: inst600000FB: concrete_constant(inst600000FB) -// CHECK:STDOUT: inst600000FC: symbolic_constant600000AB -// CHECK:STDOUT: inst600000FD: symbolic_constant600000AC -// CHECK:STDOUT: inst600000FE: symbolic_constant600000AD +// CHECK:STDOUT: inst600000DD: symbolic_constant60000069 +// CHECK:STDOUT: inst600000DE: symbolic_constant60000068 +// CHECK:STDOUT: inst600000DF: symbolic_constant60000081 +// CHECK:STDOUT: inst600000E0: symbolic_constant60000082 +// CHECK:STDOUT: inst600000E1: symbolic_constant60000088 +// CHECK:STDOUT: inst600000E2: symbolic_constant60000089 +// CHECK:STDOUT: inst600000E3: symbolic_constant6000008A +// CHECK:STDOUT: inst600000E4: symbolic_constant6000008B +// CHECK:STDOUT: inst600000E5: symbolic_constant6000008C +// CHECK:STDOUT: inst600000E6: symbolic_constant6000008D +// CHECK:STDOUT: inst600000E7: symbolic_constant6000008E +// CHECK:STDOUT: inst600000E8: symbolic_constant60000095 +// CHECK:STDOUT: inst600000E9: symbolic_constant60000097 +// CHECK:STDOUT: inst600000EA: symbolic_constant60000099 +// CHECK:STDOUT: inst600000EB: symbolic_constant6000009B +// CHECK:STDOUT: inst600000EC: symbolic_constant6000009D +// CHECK:STDOUT: inst600000ED: symbolic_constant6000009F +// CHECK:STDOUT: inst600000EE: symbolic_constant600000A0 +// CHECK:STDOUT: inst600000EF: symbolic_constant600000A1 +// CHECK:STDOUT: inst600000F0: symbolic_constant600000A2 +// CHECK:STDOUT: inst600000F1: symbolic_constant600000A3 +// CHECK:STDOUT: inst600000F2: symbolic_constant600000A4 +// CHECK:STDOUT: inst600000F3: symbolic_constant600000A5 +// CHECK:STDOUT: inst600000F4: symbolic_constant600000A6 +// CHECK:STDOUT: inst600000F5: symbolic_constant600000A7 +// CHECK:STDOUT: inst600000F6: symbolic_constant600000A8 +// CHECK:STDOUT: inst600000F7: symbolic_constant600000A9 +// CHECK:STDOUT: inst600000F8: symbolic_constant600000AA +// CHECK:STDOUT: inst600000F9: constant +// CHECK:STDOUT: inst600000FA: concrete_constant(inst600000FA) +// CHECK:STDOUT: inst600000FB: symbolic_constant600000AB +// CHECK:STDOUT: inst600000FC: symbolic_constant600000AC +// CHECK:STDOUT: inst600000FD: symbolic_constant600000AD +// CHECK:STDOUT: inst600000FE: concrete_constant(inst600000FE) // CHECK:STDOUT: inst600000FF: concrete_constant(inst600000FF) // CHECK:STDOUT: inst60000100: concrete_constant(inst60000100) -// CHECK:STDOUT: inst60000101: concrete_constant(inst60000101) -// CHECK:STDOUT: inst60000102: symbolic_constant600000B1 -// CHECK:STDOUT: inst60000103: symbolic_constant600000B0 -// CHECK:STDOUT: inst60000104: symbolic_constant600000AF -// CHECK:STDOUT: inst60000105: symbolic_constant600000AE -// CHECK:STDOUT: inst60000106: concrete_constant(inst6000004A) -// CHECK:STDOUT: inst60000107: concrete_constant(inst60000107) -// CHECK:STDOUT: inst60000108: symbolic_constant600000B5 -// CHECK:STDOUT: inst60000109: constant -// CHECK:STDOUT: inst6000010A: concrete_constant(inst6000010A) -// CHECK:STDOUT: inst6000010B: symbolic_constant600000BB -// CHECK:STDOUT: inst6000010C: symbolic_constant600000BD -// CHECK:STDOUT: inst6000010D: symbolic_constant600000BE -// CHECK:STDOUT: inst6000010E: symbolic_constant600000BF -// CHECK:STDOUT: inst6000010F: symbolic_constant600000C0 -// CHECK:STDOUT: inst60000110: symbolic_constant600000C1 -// CHECK:STDOUT: inst60000111: symbolic_constant600000C2 -// CHECK:STDOUT: inst60000112: symbolic_constant600000C3 -// CHECK:STDOUT: inst60000113: symbolic_constant600000C4 -// CHECK:STDOUT: inst60000114: symbolic_constant600000C5 -// CHECK:STDOUT: inst60000115: symbolic_constant600000C8 -// CHECK:STDOUT: inst60000116: symbolic_constant600000C6 -// CHECK:STDOUT: inst60000117: symbolic_constant600000C7 -// CHECK:STDOUT: inst60000118: symbolic_constant600000CA +// CHECK:STDOUT: inst60000101: symbolic_constant600000B1 +// CHECK:STDOUT: inst60000102: symbolic_constant600000B0 +// CHECK:STDOUT: inst60000103: symbolic_constant600000AF +// CHECK:STDOUT: inst60000104: symbolic_constant600000AE +// CHECK:STDOUT: inst60000105: concrete_constant(inst60000049) +// CHECK:STDOUT: inst60000106: concrete_constant(inst60000106) +// CHECK:STDOUT: inst60000107: symbolic_constant600000B5 +// CHECK:STDOUT: inst60000108: constant +// CHECK:STDOUT: inst60000109: concrete_constant(inst60000109) +// CHECK:STDOUT: inst6000010A: symbolic_constant600000BB +// CHECK:STDOUT: inst6000010B: symbolic_constant600000BD +// CHECK:STDOUT: inst6000010C: symbolic_constant600000BE +// CHECK:STDOUT: inst6000010D: symbolic_constant600000BF +// CHECK:STDOUT: inst6000010E: symbolic_constant600000C0 +// CHECK:STDOUT: inst6000010F: symbolic_constant600000C1 +// CHECK:STDOUT: inst60000110: symbolic_constant600000C2 +// CHECK:STDOUT: inst60000111: symbolic_constant600000C3 +// CHECK:STDOUT: inst60000112: symbolic_constant600000C4 +// CHECK:STDOUT: inst60000113: symbolic_constant600000C5 +// CHECK:STDOUT: inst60000114: symbolic_constant600000C8 +// CHECK:STDOUT: inst60000115: symbolic_constant600000C6 +// CHECK:STDOUT: inst60000116: symbolic_constant600000C7 +// CHECK:STDOUT: inst60000117: symbolic_constant600000CA +// CHECK:STDOUT: inst60000118: concrete_constant(inst60000118) // CHECK:STDOUT: inst60000119: concrete_constant(inst60000119) // CHECK:STDOUT: inst6000011A: concrete_constant(inst6000011A) // CHECK:STDOUT: inst6000011B: concrete_constant(inst6000011B) -// CHECK:STDOUT: inst6000011C: concrete_constant(inst6000011C) -// CHECK:STDOUT: inst6000011D: symbolic_constant600000B1 -// CHECK:STDOUT: inst6000011E: symbolic_constant600000B0 -// CHECK:STDOUT: inst6000011F: symbolic_constant600000AF -// CHECK:STDOUT: inst60000120: symbolic_constant600000CD -// CHECK:STDOUT: inst60000121: symbolic_constant600000CE -// CHECK:STDOUT: inst60000122: symbolic_constant600000D6 -// CHECK:STDOUT: inst60000123: symbolic_constant600000D7 -// CHECK:STDOUT: inst60000124: symbolic_constant600000D8 -// CHECK:STDOUT: inst60000125: symbolic_constant600000D9 -// CHECK:STDOUT: inst60000126: symbolic_constant600000DA -// CHECK:STDOUT: inst60000127: symbolic_constant600000DB -// CHECK:STDOUT: inst60000128: symbolic_constant600000DC -// CHECK:STDOUT: inst60000129: symbolic_constant600000DD -// CHECK:STDOUT: inst6000012A: symbolic_constant600000DE -// CHECK:STDOUT: inst6000012B: symbolic_constant600000EA -// CHECK:STDOUT: inst6000012C: symbolic_constant600000EC -// CHECK:STDOUT: inst6000012D: symbolic_constant600000EE -// CHECK:STDOUT: inst6000012E: symbolic_constant600000F0 -// CHECK:STDOUT: inst6000012F: symbolic_constant600000F2 -// CHECK:STDOUT: inst60000130: symbolic_constant600000F4 -// CHECK:STDOUT: inst60000131: symbolic_constant600000F5 -// CHECK:STDOUT: inst60000132: symbolic_constant600000F6 -// CHECK:STDOUT: inst60000133: symbolic_constant600000F7 -// CHECK:STDOUT: inst60000134: symbolic_constant600000F8 -// CHECK:STDOUT: inst60000135: symbolic_constant600000F9 -// CHECK:STDOUT: inst60000136: symbolic_constant600000FA -// CHECK:STDOUT: inst60000137: symbolic_constant600000FB -// CHECK:STDOUT: inst60000138: symbolic_constant600000FC -// CHECK:STDOUT: inst60000139: symbolic_constant600000FD -// CHECK:STDOUT: inst6000013A: symbolic_constant600000FE -// CHECK:STDOUT: inst6000013B: symbolic_constant600000FF -// CHECK:STDOUT: inst6000013C: symbolic_constant60000100 -// CHECK:STDOUT: inst6000013D: symbolic_constant60000101 -// CHECK:STDOUT: inst6000013E: symbolic_constant60000102 -// CHECK:STDOUT: inst6000013F: symbolic_constant60000103 -// CHECK:STDOUT: inst60000140: symbolic_constant60000104 -// CHECK:STDOUT: inst60000141: symbolic_constant60000106 -// CHECK:STDOUT: inst60000142: symbolic_constant60000107 -// CHECK:STDOUT: inst60000143: symbolic_constant60000108 -// CHECK:STDOUT: inst60000144: symbolic_constant60000109 -// CHECK:STDOUT: inst60000145: symbolic_constant6000010D -// CHECK:STDOUT: inst60000146: symbolic_constant6000010A -// CHECK:STDOUT: inst60000147: symbolic_constant6000010B -// CHECK:STDOUT: inst60000148: symbolic_constant6000010C -// CHECK:STDOUT: inst60000149: symbolic_constant6000010D -// CHECK:STDOUT: inst6000014B: symbolic_constant6000010F -// CHECK:STDOUT: inst6000014C: symbolic_constant6000010E -// CHECK:STDOUT: inst6000014D: symbolic_constant6000010F -// CHECK:STDOUT: inst6000014F: symbolic_constant60000011 -// CHECK:STDOUT: inst60000153: concrete_constant(inst60000026) -// CHECK:STDOUT: inst60000154: concrete_constant(inst60000026) +// CHECK:STDOUT: inst6000011C: symbolic_constant600000B1 +// CHECK:STDOUT: inst6000011D: symbolic_constant600000B0 +// CHECK:STDOUT: inst6000011E: symbolic_constant600000AF +// CHECK:STDOUT: inst6000011F: symbolic_constant600000CD +// CHECK:STDOUT: inst60000120: symbolic_constant600000CE +// CHECK:STDOUT: inst60000121: symbolic_constant600000D6 +// CHECK:STDOUT: inst60000122: symbolic_constant600000D7 +// CHECK:STDOUT: inst60000123: symbolic_constant600000D8 +// CHECK:STDOUT: inst60000124: symbolic_constant600000D9 +// CHECK:STDOUT: inst60000125: symbolic_constant600000DA +// CHECK:STDOUT: inst60000126: symbolic_constant600000DB +// CHECK:STDOUT: inst60000127: symbolic_constant600000DC +// CHECK:STDOUT: inst60000128: symbolic_constant600000DD +// CHECK:STDOUT: inst60000129: symbolic_constant600000DE +// CHECK:STDOUT: inst6000012A: symbolic_constant600000EA +// CHECK:STDOUT: inst6000012B: symbolic_constant600000EC +// CHECK:STDOUT: inst6000012C: symbolic_constant600000EE +// CHECK:STDOUT: inst6000012D: symbolic_constant600000F0 +// CHECK:STDOUT: inst6000012E: symbolic_constant600000F2 +// CHECK:STDOUT: inst6000012F: symbolic_constant600000F4 +// CHECK:STDOUT: inst60000130: symbolic_constant600000F5 +// CHECK:STDOUT: inst60000131: symbolic_constant600000F6 +// CHECK:STDOUT: inst60000132: symbolic_constant600000F7 +// CHECK:STDOUT: inst60000133: symbolic_constant600000F8 +// CHECK:STDOUT: inst60000134: symbolic_constant600000F9 +// CHECK:STDOUT: inst60000135: symbolic_constant600000FA +// CHECK:STDOUT: inst60000136: symbolic_constant600000FB +// CHECK:STDOUT: inst60000137: symbolic_constant600000FC +// CHECK:STDOUT: inst60000138: symbolic_constant600000FD +// CHECK:STDOUT: inst60000139: symbolic_constant600000FE +// CHECK:STDOUT: inst6000013A: symbolic_constant600000FF +// CHECK:STDOUT: inst6000013B: symbolic_constant60000100 +// CHECK:STDOUT: inst6000013C: symbolic_constant60000101 +// CHECK:STDOUT: inst6000013D: symbolic_constant60000102 +// CHECK:STDOUT: inst6000013E: symbolic_constant60000103 +// CHECK:STDOUT: inst6000013F: symbolic_constant60000104 +// CHECK:STDOUT: inst60000140: symbolic_constant60000106 +// CHECK:STDOUT: inst60000141: symbolic_constant60000107 +// CHECK:STDOUT: inst60000142: symbolic_constant60000108 +// CHECK:STDOUT: inst60000143: symbolic_constant60000109 +// CHECK:STDOUT: inst60000144: symbolic_constant6000010D +// CHECK:STDOUT: inst60000145: symbolic_constant6000010A +// CHECK:STDOUT: inst60000146: symbolic_constant6000010B +// CHECK:STDOUT: inst60000147: symbolic_constant6000010C +// CHECK:STDOUT: inst60000148: symbolic_constant6000010D +// CHECK:STDOUT: inst6000014A: symbolic_constant6000010F +// CHECK:STDOUT: inst6000014B: symbolic_constant6000010E +// CHECK:STDOUT: inst6000014C: symbolic_constant6000010F +// CHECK:STDOUT: inst6000014E: symbolic_constant60000011 +// CHECK:STDOUT: inst60000152: concrete_constant(inst60000025) +// CHECK:STDOUT: inst60000153: concrete_constant(inst60000025) // CHECK:STDOUT: symbolic_constants: -// CHECK:STDOUT: symbolic_constant0: {inst: inst60000013, generic: generic, index: generic_inst, kind: self} -// CHECK:STDOUT: symbolic_constant1: {inst: inst60000015, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant2: {inst: inst60000015, generic: generic60000000, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant3: {inst: inst6000001B, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant4: {inst: inst6000001B, generic: generic60000000, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant5: {inst: inst6000001E, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6: {inst: inst6000001E, generic: generic60000000, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant7: {inst: inst60000029, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant8: {inst: inst60000029, generic: generic60000000, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant9: {inst: inst6000002D, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constantA: {inst: inst6000002D, generic: generic60000000, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constantB: {inst: inst60000030, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constantC: {inst: inst60000030, generic: generic60000000, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constantD: {inst: inst6000003B, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constantE: {inst: inst6000003D, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000000F: {inst: inst6000003D, generic: generic60000000, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000010: {inst: inst60000040, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000011: {inst: inst60000040, generic: generic60000000, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000012: {inst: inst6000004B, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000013: {inst: inst60000055, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000014: {inst: inst60000056, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000015: {inst: inst60000056, generic: generic60000001, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000016: {inst: inst6000004B, generic: generic60000001, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000017: {inst: inst60000055, generic: generic60000001, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000018: {inst: inst6000004B, generic: generic60000001, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000019: {inst: inst60000055, generic: generic60000001, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000001A: {inst: inst60000056, generic: generic60000001, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant6000001B: {inst: inst60000062, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000001C: {inst: inst60000063, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000001D: {inst: inst60000064, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000001E: {inst: inst60000064, generic: generic60000002, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant6000001F: {inst: inst60000062, generic: generic60000002, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000020: {inst: inst60000062, generic: generic60000002, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000021: {inst: inst60000063, generic: generic60000002, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000022: {inst: inst60000064, generic: generic60000002, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000023: {inst: inst6000006C, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000024: {inst: inst6000006C, generic: generic60000002, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant60000025: {inst: inst60000062, generic: generic60000002, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000026: {inst: inst60000063, generic: generic60000002, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000027: {inst: inst60000064, generic: generic60000002, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000028: {inst: inst6000006C, generic: generic60000002, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant60000029: {inst: inst60000072, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000002A: {inst: inst60000073, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000002B: {inst: inst60000073, generic: generic60000002, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000002C: {inst: inst60000072, generic: generic60000002, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant6000002D: {inst: inst60000074, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000002E: {inst: inst60000074, generic: generic60000003, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant6000002F: {inst: inst60000073, generic: generic60000002, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000030: {inst: inst60000072, generic: generic60000002, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000031: {inst: inst60000073, generic: generic60000002, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000032: {inst: inst60000062, generic: generic60000003, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000033: {inst: inst60000063, generic: generic60000003, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000034: {inst: inst60000064, generic: generic60000003, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000035: {inst: inst60000062, generic: generic60000003, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000036: {inst: inst60000063, generic: generic60000003, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000037: {inst: inst60000064, generic: generic60000003, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000038: {inst: inst60000074, generic: generic60000003, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant60000039: {inst: inst60000080, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000003A: {inst: inst60000080, generic: generic60000003, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant6000003B: {inst: inst60000081, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000003C: {inst: inst60000081, generic: generic60000003, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000003D: {inst: inst60000082, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000003E: {inst: inst60000082, generic: generic60000003, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant6000003F: {inst: inst60000083, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000040: {inst: inst60000083, generic: generic60000003, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant60000041: {inst: inst60000084, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000042: {inst: inst60000084, generic: generic60000003, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant60000043: {inst: inst60000085, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000044: {inst: inst60000085, generic: generic60000003, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant60000045: {inst: inst60000080, generic: generic60000003, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000046: {inst: inst60000081, generic: generic60000003, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000047: {inst: inst60000082, generic: generic60000003, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000048: {inst: inst60000083, generic: generic60000003, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant60000049: {inst: inst60000084, generic: generic60000003, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant6000004A: {inst: inst60000085, generic: generic60000003, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant6000004B: {inst: inst6000008C, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000004C: {inst: inst6000001B, generic: generic60000004, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000004D: {inst: inst60000015, generic: generic60000004, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant6000004E: {inst: inst60000015, generic: generic60000004, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant6000004F: {inst: inst6000001B, generic: generic60000004, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000050: {inst: inst600000A5, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000051: {inst: inst600000A5, generic: generic60000004, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000052: {inst: inst60000015, generic: generic60000004, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000053: {inst: inst6000001B, generic: generic60000004, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000054: {inst: inst600000A5, generic: generic60000004, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000055: {inst: inst600000AA, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000056: {inst: inst600000AB, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000057: {inst: inst600000AB, generic: generic60000004, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000058: {inst: inst600000AA, generic: generic60000004, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000059: {inst: inst6000001E, generic: generic60000005, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant6000005A: {inst: inst600000AB, generic: generic60000004, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000005B: {inst: inst60000040, generic: generic60000004, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant6000005C: {inst: inst600000AA, generic: generic60000004, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant6000005D: {inst: inst600000AB, generic: generic60000004, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000005E: {inst: inst60000040, generic: generic60000004, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant6000005F: {inst: inst60000015, generic: generic60000005, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000060: {inst: inst6000001B, generic: generic60000005, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000061: {inst: inst60000015, generic: generic60000005, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000062: {inst: inst6000001B, generic: generic60000005, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000063: {inst: inst6000001E, generic: generic60000005, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000064: {inst: inst600000C1, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000065: {inst: inst600000C2, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000066: {inst: inst600000C3, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000067: {inst: inst600000C3, generic: generic60000006, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant60000068: {inst: inst600000C1, generic: generic60000006, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000069: {inst: inst60000062, generic: generic60000006, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant6000006A: {inst: inst60000062, generic: generic60000006, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant6000006B: {inst: inst600000C1, generic: generic60000006, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000006C: {inst: inst600000CB, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000006D: {inst: inst600000CB, generic: generic60000006, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant6000006E: {inst: inst60000063, generic: generic60000006, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant6000006F: {inst: inst600000C2, generic: generic60000006, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant60000070: {inst: inst600000C3, generic: generic60000006, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant60000071: {inst: inst600000CE, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000072: {inst: inst600000CE, generic: generic60000006, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant60000073: {inst: inst60000062, generic: generic60000006, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000074: {inst: inst600000C1, generic: generic60000006, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000075: {inst: inst600000CB, generic: generic60000006, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000076: {inst: inst60000063, generic: generic60000006, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant60000077: {inst: inst600000C2, generic: generic60000006, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant60000078: {inst: inst600000C3, generic: generic60000006, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant60000079: {inst: inst600000CE, generic: generic60000006, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant6000007A: {inst: inst600000D7, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000007B: {inst: inst600000D8, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000007C: {inst: inst600000D8, generic: generic60000006, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000007D: {inst: inst600000D7, generic: generic60000006, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant6000007E: {inst: inst600000D9, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000007F: {inst: inst600000D9, generic: generic60000007, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant60000080: {inst: inst600000D8, generic: generic60000006, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000081: {inst: inst600000D7, generic: generic60000006, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000082: {inst: inst600000D8, generic: generic60000006, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000083: {inst: inst60000062, generic: generic60000007, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000084: {inst: inst60000063, generic: generic60000007, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000085: {inst: inst600000C1, generic: generic60000007, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000086: {inst: inst600000C2, generic: generic60000007, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant60000087: {inst: inst600000C3, generic: generic60000007, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant60000088: {inst: inst60000062, generic: generic60000007, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000089: {inst: inst60000063, generic: generic60000007, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant6000008A: {inst: inst600000C1, generic: generic60000007, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant6000008B: {inst: inst600000C2, generic: generic60000007, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant6000008C: {inst: inst600000C3, generic: generic60000007, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant6000008D: {inst: inst600000D9, generic: generic60000007, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant6000008E: {inst: inst600000E8, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000008F: {inst: inst600000E8, generic: generic60000007, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant60000090: {inst: inst60000081, generic: generic60000007, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant60000091: {inst: inst60000082, generic: generic60000007, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000092: {inst: inst60000083, generic: generic60000007, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant60000093: {inst: inst60000084, generic: generic60000007, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant60000094: {inst: inst60000085, generic: generic60000007, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant60000095: {inst: inst600000E9, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000096: {inst: inst600000E9, generic: generic60000007, index: generic_inst_in_def6, kind: checked} -// CHECK:STDOUT: symbolic_constant60000097: {inst: inst600000EA, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000098: {inst: inst600000EA, generic: generic60000007, index: generic_inst_in_def7, kind: checked} -// CHECK:STDOUT: symbolic_constant60000099: {inst: inst600000EB, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000009A: {inst: inst600000EB, generic: generic60000007, index: generic_inst_in_def8, kind: checked} -// CHECK:STDOUT: symbolic_constant6000009B: {inst: inst600000EC, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000009C: {inst: inst600000EC, generic: generic60000007, index: generic_inst_in_def9, kind: checked} -// CHECK:STDOUT: symbolic_constant6000009D: {inst: inst600000ED, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000009E: {inst: inst600000ED, generic: generic60000007, index: generic_inst_in_def10, kind: checked} -// CHECK:STDOUT: symbolic_constant6000009F: {inst: inst600000E8, generic: generic60000007, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A0: {inst: inst60000081, generic: generic60000007, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A1: {inst: inst60000082, generic: generic60000007, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A2: {inst: inst60000083, generic: generic60000007, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A3: {inst: inst60000084, generic: generic60000007, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A4: {inst: inst60000085, generic: generic60000007, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A5: {inst: inst600000E9, generic: generic60000007, index: generic_inst_in_def6, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A6: {inst: inst600000EA, generic: generic60000007, index: generic_inst_in_def7, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A7: {inst: inst600000EB, generic: generic60000007, index: generic_inst_in_def8, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A8: {inst: inst600000EC, generic: generic60000007, index: generic_inst_in_def9, kind: checked} -// CHECK:STDOUT: symbolic_constant600000A9: {inst: inst600000ED, generic: generic60000007, index: generic_inst_in_def10, kind: checked} -// CHECK:STDOUT: symbolic_constant600000AA: {inst: inst600000F9, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000AB: {inst: inst600000FC, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000AC: {inst: inst600000FD, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000AD: {inst: inst600000FE, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000AE: {inst: inst600000FE, generic: generic60000008, index: generic_inst_in_decl7, kind: checked} -// CHECK:STDOUT: symbolic_constant600000AF: {inst: inst600000FC, generic: generic60000008, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B0: {inst: inst600000C1, generic: generic60000008, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B1: {inst: inst60000062, generic: generic60000008, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B2: {inst: inst60000062, generic: generic60000008, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B3: {inst: inst600000C1, generic: generic60000008, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B4: {inst: inst600000FC, generic: generic60000008, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B5: {inst: inst60000108, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B6: {inst: inst60000108, generic: generic60000008, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B7: {inst: inst60000063, generic: generic60000008, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B8: {inst: inst600000C2, generic: generic60000008, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant600000B9: {inst: inst600000FD, generic: generic60000008, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant600000BA: {inst: inst600000FE, generic: generic60000008, index: generic_inst_in_decl7, kind: checked} -// CHECK:STDOUT: symbolic_constant600000BB: {inst: inst6000010B, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000BC: {inst: inst6000010B, generic: generic60000008, index: generic_inst_in_decl8, kind: checked} -// CHECK:STDOUT: symbolic_constant600000BD: {inst: inst60000062, generic: generic60000008, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000BE: {inst: inst600000C1, generic: generic60000008, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000BF: {inst: inst600000FC, generic: generic60000008, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C0: {inst: inst60000108, generic: generic60000008, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C1: {inst: inst60000063, generic: generic60000008, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C2: {inst: inst600000C2, generic: generic60000008, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C3: {inst: inst600000FD, generic: generic60000008, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C4: {inst: inst600000FE, generic: generic60000008, index: generic_inst_in_decl7, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C5: {inst: inst6000010B, generic: generic60000008, index: generic_inst_in_decl8, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C6: {inst: inst60000116, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C7: {inst: inst60000117, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C8: {inst: inst60000117, generic: generic60000008, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000C9: {inst: inst60000116, generic: generic60000008, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000CA: {inst: inst60000118, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000CB: {inst: inst60000118, generic: generic60000009, index: generic_inst_in_decl7, kind: checked} -// CHECK:STDOUT: symbolic_constant600000CC: {inst: inst60000117, generic: generic60000008, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000CD: {inst: inst60000116, generic: generic60000008, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000CE: {inst: inst60000117, generic: generic60000008, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000CF: {inst: inst60000062, generic: generic60000009, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D0: {inst: inst60000063, generic: generic60000009, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D1: {inst: inst600000C1, generic: generic60000009, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D2: {inst: inst600000C2, generic: generic60000009, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D3: {inst: inst600000FC, generic: generic60000009, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D4: {inst: inst600000FD, generic: generic60000009, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D5: {inst: inst600000FE, generic: generic60000009, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D6: {inst: inst60000062, generic: generic60000009, index: generic_inst_in_decl0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D7: {inst: inst60000063, generic: generic60000009, index: generic_inst_in_decl1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D8: {inst: inst600000C1, generic: generic60000009, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant600000D9: {inst: inst600000C2, generic: generic60000009, index: generic_inst_in_decl3, kind: checked} -// CHECK:STDOUT: symbolic_constant600000DA: {inst: inst600000FC, generic: generic60000009, index: generic_inst_in_decl4, kind: checked} -// CHECK:STDOUT: symbolic_constant600000DB: {inst: inst600000FD, generic: generic60000009, index: generic_inst_in_decl5, kind: checked} -// CHECK:STDOUT: symbolic_constant600000DC: {inst: inst600000FE, generic: generic60000009, index: generic_inst_in_decl6, kind: checked} -// CHECK:STDOUT: symbolic_constant600000DD: {inst: inst60000118, generic: generic60000009, index: generic_inst_in_decl7, kind: checked} -// CHECK:STDOUT: symbolic_constant600000DE: {inst: inst6000012A, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000DF: {inst: inst6000012A, generic: generic60000009, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E0: {inst: inst60000081, generic: generic60000009, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E1: {inst: inst60000082, generic: generic60000009, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E2: {inst: inst60000083, generic: generic60000009, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E3: {inst: inst60000084, generic: generic60000009, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E4: {inst: inst60000085, generic: generic60000009, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E5: {inst: inst600000E9, generic: generic60000009, index: generic_inst_in_def6, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E6: {inst: inst600000EA, generic: generic60000009, index: generic_inst_in_def7, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E7: {inst: inst600000EB, generic: generic60000009, index: generic_inst_in_def8, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E8: {inst: inst600000EC, generic: generic60000009, index: generic_inst_in_def9, kind: checked} -// CHECK:STDOUT: symbolic_constant600000E9: {inst: inst600000ED, generic: generic60000009, index: generic_inst_in_def10, kind: checked} -// CHECK:STDOUT: symbolic_constant600000EA: {inst: inst6000012B, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000EB: {inst: inst6000012B, generic: generic60000009, index: generic_inst_in_def11, kind: checked} -// CHECK:STDOUT: symbolic_constant600000EC: {inst: inst6000012C, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000ED: {inst: inst6000012C, generic: generic60000009, index: generic_inst_in_def12, kind: checked} -// CHECK:STDOUT: symbolic_constant600000EE: {inst: inst6000012D, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000EF: {inst: inst6000012D, generic: generic60000009, index: generic_inst_in_def13, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F0: {inst: inst6000012E, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F1: {inst: inst6000012E, generic: generic60000009, index: generic_inst_in_def14, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F2: {inst: inst6000012F, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F3: {inst: inst6000012F, generic: generic60000009, index: generic_inst_in_def15, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F4: {inst: inst6000012A, generic: generic60000009, index: generic_inst_in_def0, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F5: {inst: inst60000081, generic: generic60000009, index: generic_inst_in_def1, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F6: {inst: inst60000082, generic: generic60000009, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F7: {inst: inst60000083, generic: generic60000009, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F8: {inst: inst60000084, generic: generic60000009, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant600000F9: {inst: inst60000085, generic: generic60000009, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant600000FA: {inst: inst600000E9, generic: generic60000009, index: generic_inst_in_def6, kind: checked} -// CHECK:STDOUT: symbolic_constant600000FB: {inst: inst600000EA, generic: generic60000009, index: generic_inst_in_def7, kind: checked} -// CHECK:STDOUT: symbolic_constant600000FC: {inst: inst600000EB, generic: generic60000009, index: generic_inst_in_def8, kind: checked} -// CHECK:STDOUT: symbolic_constant600000FD: {inst: inst600000EC, generic: generic60000009, index: generic_inst_in_def9, kind: checked} -// CHECK:STDOUT: symbolic_constant600000FE: {inst: inst600000ED, generic: generic60000009, index: generic_inst_in_def10, kind: checked} -// CHECK:STDOUT: symbolic_constant600000FF: {inst: inst6000012B, generic: generic60000009, index: generic_inst_in_def11, kind: checked} -// CHECK:STDOUT: symbolic_constant60000100: {inst: inst6000012C, generic: generic60000009, index: generic_inst_in_def12, kind: checked} -// CHECK:STDOUT: symbolic_constant60000101: {inst: inst6000012D, generic: generic60000009, index: generic_inst_in_def13, kind: checked} -// CHECK:STDOUT: symbolic_constant60000102: {inst: inst6000012E, generic: generic60000009, index: generic_inst_in_def14, kind: checked} -// CHECK:STDOUT: symbolic_constant60000103: {inst: inst6000012F, generic: generic60000009, index: generic_inst_in_def15, kind: checked} -// CHECK:STDOUT: symbolic_constant60000104: {inst: inst60000140, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000105: {inst: inst600000A5, generic: generic60000004, index: generic_inst_in_decl2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000106: {inst: inst60000141, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000107: {inst: inst60000141, generic: generic60000000, index: generic_inst_in_def2, kind: checked} -// CHECK:STDOUT: symbolic_constant60000108: {inst: inst60000143, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant60000109: {inst: inst60000144, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000010A: {inst: inst60000146, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000010B: {inst: inst60000143, generic: generic60000000, index: generic_inst_in_def3, kind: checked} -// CHECK:STDOUT: symbolic_constant6000010C: {inst: inst60000144, generic: generic60000000, index: generic_inst_in_def4, kind: checked} -// CHECK:STDOUT: symbolic_constant6000010D: {inst: inst60000146, generic: generic60000000, index: generic_inst_in_def5, kind: checked} -// CHECK:STDOUT: symbolic_constant6000010E: {inst: inst6000014C, generic: generic, index: generic_inst, kind: checked} -// CHECK:STDOUT: symbolic_constant6000010F: {inst: inst6000014C, generic: generic60000000, index: generic_inst_in_def6, kind: checked} +// CHECK:STDOUT: symbolic_constant0: {inst: inst60000012, generic: generic, index: generic_inst, kind: self} +// CHECK:STDOUT: symbolic_constant1: {inst: inst60000014, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant2: {inst: inst60000014, generic: generic60000000, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant3: {inst: inst6000001A, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant4: {inst: inst6000001A, generic: generic60000000, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant5: {inst: inst6000001D, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6: {inst: inst6000001D, generic: generic60000000, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant7: {inst: inst60000028, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant8: {inst: inst60000028, generic: generic60000000, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant9: {inst: inst6000002C, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constantA: {inst: inst6000002C, generic: generic60000000, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constantB: {inst: inst6000002F, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constantC: {inst: inst6000002F, generic: generic60000000, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constantD: {inst: inst6000003A, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000000E: {inst: inst6000003C, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000000F: {inst: inst6000003C, generic: generic60000000, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000010: {inst: inst6000003F, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000011: {inst: inst6000003F, generic: generic60000000, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000012: {inst: inst6000004A, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000013: {inst: inst60000054, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000014: {inst: inst60000055, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000015: {inst: inst60000055, generic: generic60000001, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000016: {inst: inst6000004A, generic: generic60000001, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000017: {inst: inst60000054, generic: generic60000001, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000018: {inst: inst6000004A, generic: generic60000001, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000019: {inst: inst60000054, generic: generic60000001, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000001A: {inst: inst60000055, generic: generic60000001, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant6000001B: {inst: inst60000061, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000001C: {inst: inst60000062, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000001D: {inst: inst60000063, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000001E: {inst: inst60000063, generic: generic60000002, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant6000001F: {inst: inst60000061, generic: generic60000002, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000020: {inst: inst60000061, generic: generic60000002, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000021: {inst: inst60000062, generic: generic60000002, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000022: {inst: inst60000063, generic: generic60000002, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000023: {inst: inst6000006B, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000024: {inst: inst6000006B, generic: generic60000002, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant60000025: {inst: inst60000061, generic: generic60000002, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000026: {inst: inst60000062, generic: generic60000002, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000027: {inst: inst60000063, generic: generic60000002, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000028: {inst: inst6000006B, generic: generic60000002, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant60000029: {inst: inst60000071, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000002A: {inst: inst60000072, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000002B: {inst: inst60000072, generic: generic60000002, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000002C: {inst: inst60000071, generic: generic60000002, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000002D: {inst: inst60000073, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000002E: {inst: inst60000073, generic: generic60000003, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant6000002F: {inst: inst60000072, generic: generic60000002, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000030: {inst: inst60000071, generic: generic60000002, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000031: {inst: inst60000072, generic: generic60000002, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000032: {inst: inst60000061, generic: generic60000003, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000033: {inst: inst60000062, generic: generic60000003, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000034: {inst: inst60000063, generic: generic60000003, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000035: {inst: inst60000061, generic: generic60000003, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000036: {inst: inst60000062, generic: generic60000003, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000037: {inst: inst60000063, generic: generic60000003, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000038: {inst: inst60000073, generic: generic60000003, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant60000039: {inst: inst6000007F, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000003A: {inst: inst6000007F, generic: generic60000003, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000003B: {inst: inst60000080, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000003C: {inst: inst60000080, generic: generic60000003, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000003D: {inst: inst60000081, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000003E: {inst: inst60000081, generic: generic60000003, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant6000003F: {inst: inst60000082, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000040: {inst: inst60000082, generic: generic60000003, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant60000041: {inst: inst60000083, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000042: {inst: inst60000083, generic: generic60000003, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant60000043: {inst: inst60000084, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000044: {inst: inst60000084, generic: generic60000003, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant60000045: {inst: inst6000007F, generic: generic60000003, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000046: {inst: inst60000080, generic: generic60000003, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000047: {inst: inst60000081, generic: generic60000003, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000048: {inst: inst60000082, generic: generic60000003, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant60000049: {inst: inst60000083, generic: generic60000003, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant6000004A: {inst: inst60000084, generic: generic60000003, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant6000004B: {inst: inst6000008B, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000004C: {inst: inst6000001A, generic: generic60000004, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000004D: {inst: inst60000014, generic: generic60000004, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000004E: {inst: inst60000014, generic: generic60000004, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000004F: {inst: inst6000001A, generic: generic60000004, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000050: {inst: inst600000A4, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000051: {inst: inst600000A4, generic: generic60000004, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000052: {inst: inst60000014, generic: generic60000004, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000053: {inst: inst6000001A, generic: generic60000004, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000054: {inst: inst600000A4, generic: generic60000004, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000055: {inst: inst600000A9, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000056: {inst: inst600000AA, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000057: {inst: inst600000AA, generic: generic60000004, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000058: {inst: inst600000A9, generic: generic60000004, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000059: {inst: inst6000001D, generic: generic60000005, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant6000005A: {inst: inst600000AA, generic: generic60000004, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000005B: {inst: inst6000003F, generic: generic60000004, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant6000005C: {inst: inst600000A9, generic: generic60000004, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000005D: {inst: inst600000AA, generic: generic60000004, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000005E: {inst: inst6000003F, generic: generic60000004, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant6000005F: {inst: inst60000014, generic: generic60000005, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000060: {inst: inst6000001A, generic: generic60000005, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000061: {inst: inst60000014, generic: generic60000005, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000062: {inst: inst6000001A, generic: generic60000005, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000063: {inst: inst6000001D, generic: generic60000005, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000064: {inst: inst600000C0, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000065: {inst: inst600000C1, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000066: {inst: inst600000C2, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000067: {inst: inst600000C2, generic: generic60000006, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant60000068: {inst: inst600000C0, generic: generic60000006, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000069: {inst: inst60000061, generic: generic60000006, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000006A: {inst: inst60000061, generic: generic60000006, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000006B: {inst: inst600000C0, generic: generic60000006, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000006C: {inst: inst600000CA, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000006D: {inst: inst600000CA, generic: generic60000006, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant6000006E: {inst: inst60000062, generic: generic60000006, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant6000006F: {inst: inst600000C1, generic: generic60000006, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant60000070: {inst: inst600000C2, generic: generic60000006, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant60000071: {inst: inst600000CD, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000072: {inst: inst600000CD, generic: generic60000006, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant60000073: {inst: inst60000061, generic: generic60000006, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000074: {inst: inst600000C0, generic: generic60000006, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000075: {inst: inst600000CA, generic: generic60000006, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000076: {inst: inst60000062, generic: generic60000006, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant60000077: {inst: inst600000C1, generic: generic60000006, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant60000078: {inst: inst600000C2, generic: generic60000006, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant60000079: {inst: inst600000CD, generic: generic60000006, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant6000007A: {inst: inst600000D6, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000007B: {inst: inst600000D7, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000007C: {inst: inst600000D7, generic: generic60000006, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000007D: {inst: inst600000D6, generic: generic60000006, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant6000007E: {inst: inst600000D8, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000007F: {inst: inst600000D8, generic: generic60000007, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant60000080: {inst: inst600000D7, generic: generic60000006, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000081: {inst: inst600000D6, generic: generic60000006, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000082: {inst: inst600000D7, generic: generic60000006, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000083: {inst: inst60000061, generic: generic60000007, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000084: {inst: inst60000062, generic: generic60000007, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000085: {inst: inst600000C0, generic: generic60000007, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000086: {inst: inst600000C1, generic: generic60000007, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant60000087: {inst: inst600000C2, generic: generic60000007, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant60000088: {inst: inst60000061, generic: generic60000007, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000089: {inst: inst60000062, generic: generic60000007, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant6000008A: {inst: inst600000C0, generic: generic60000007, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant6000008B: {inst: inst600000C1, generic: generic60000007, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant6000008C: {inst: inst600000C2, generic: generic60000007, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant6000008D: {inst: inst600000D8, generic: generic60000007, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant6000008E: {inst: inst600000E7, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000008F: {inst: inst600000E7, generic: generic60000007, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant60000090: {inst: inst60000080, generic: generic60000007, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant60000091: {inst: inst60000081, generic: generic60000007, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000092: {inst: inst60000082, generic: generic60000007, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant60000093: {inst: inst60000083, generic: generic60000007, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant60000094: {inst: inst60000084, generic: generic60000007, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant60000095: {inst: inst600000E8, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000096: {inst: inst600000E8, generic: generic60000007, index: generic_inst_in_def6, kind: checked} +// CHECK:STDOUT: symbolic_constant60000097: {inst: inst600000E9, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000098: {inst: inst600000E9, generic: generic60000007, index: generic_inst_in_def7, kind: checked} +// CHECK:STDOUT: symbolic_constant60000099: {inst: inst600000EA, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000009A: {inst: inst600000EA, generic: generic60000007, index: generic_inst_in_def8, kind: checked} +// CHECK:STDOUT: symbolic_constant6000009B: {inst: inst600000EB, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000009C: {inst: inst600000EB, generic: generic60000007, index: generic_inst_in_def9, kind: checked} +// CHECK:STDOUT: symbolic_constant6000009D: {inst: inst600000EC, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000009E: {inst: inst600000EC, generic: generic60000007, index: generic_inst_in_def10, kind: checked} +// CHECK:STDOUT: symbolic_constant6000009F: {inst: inst600000E7, generic: generic60000007, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A0: {inst: inst60000080, generic: generic60000007, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A1: {inst: inst60000081, generic: generic60000007, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A2: {inst: inst60000082, generic: generic60000007, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A3: {inst: inst60000083, generic: generic60000007, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A4: {inst: inst60000084, generic: generic60000007, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A5: {inst: inst600000E8, generic: generic60000007, index: generic_inst_in_def6, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A6: {inst: inst600000E9, generic: generic60000007, index: generic_inst_in_def7, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A7: {inst: inst600000EA, generic: generic60000007, index: generic_inst_in_def8, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A8: {inst: inst600000EB, generic: generic60000007, index: generic_inst_in_def9, kind: checked} +// CHECK:STDOUT: symbolic_constant600000A9: {inst: inst600000EC, generic: generic60000007, index: generic_inst_in_def10, kind: checked} +// CHECK:STDOUT: symbolic_constant600000AA: {inst: inst600000F8, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000AB: {inst: inst600000FB, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000AC: {inst: inst600000FC, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000AD: {inst: inst600000FD, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000AE: {inst: inst600000FD, generic: generic60000008, index: generic_inst_in_decl7, kind: checked} +// CHECK:STDOUT: symbolic_constant600000AF: {inst: inst600000FB, generic: generic60000008, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B0: {inst: inst600000C0, generic: generic60000008, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B1: {inst: inst60000061, generic: generic60000008, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B2: {inst: inst60000061, generic: generic60000008, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B3: {inst: inst600000C0, generic: generic60000008, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B4: {inst: inst600000FB, generic: generic60000008, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B5: {inst: inst60000107, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B6: {inst: inst60000107, generic: generic60000008, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B7: {inst: inst60000062, generic: generic60000008, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B8: {inst: inst600000C1, generic: generic60000008, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant600000B9: {inst: inst600000FC, generic: generic60000008, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant600000BA: {inst: inst600000FD, generic: generic60000008, index: generic_inst_in_decl7, kind: checked} +// CHECK:STDOUT: symbolic_constant600000BB: {inst: inst6000010A, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000BC: {inst: inst6000010A, generic: generic60000008, index: generic_inst_in_decl8, kind: checked} +// CHECK:STDOUT: symbolic_constant600000BD: {inst: inst60000061, generic: generic60000008, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000BE: {inst: inst600000C0, generic: generic60000008, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000BF: {inst: inst600000FB, generic: generic60000008, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C0: {inst: inst60000107, generic: generic60000008, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C1: {inst: inst60000062, generic: generic60000008, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C2: {inst: inst600000C1, generic: generic60000008, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C3: {inst: inst600000FC, generic: generic60000008, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C4: {inst: inst600000FD, generic: generic60000008, index: generic_inst_in_decl7, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C5: {inst: inst6000010A, generic: generic60000008, index: generic_inst_in_decl8, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C6: {inst: inst60000115, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C7: {inst: inst60000116, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C8: {inst: inst60000116, generic: generic60000008, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000C9: {inst: inst60000115, generic: generic60000008, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000CA: {inst: inst60000117, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000CB: {inst: inst60000117, generic: generic60000009, index: generic_inst_in_decl7, kind: checked} +// CHECK:STDOUT: symbolic_constant600000CC: {inst: inst60000116, generic: generic60000008, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000CD: {inst: inst60000115, generic: generic60000008, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000CE: {inst: inst60000116, generic: generic60000008, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000CF: {inst: inst60000061, generic: generic60000009, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D0: {inst: inst60000062, generic: generic60000009, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D1: {inst: inst600000C0, generic: generic60000009, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D2: {inst: inst600000C1, generic: generic60000009, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D3: {inst: inst600000FB, generic: generic60000009, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D4: {inst: inst600000FC, generic: generic60000009, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D5: {inst: inst600000FD, generic: generic60000009, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D6: {inst: inst60000061, generic: generic60000009, index: generic_inst_in_decl0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D7: {inst: inst60000062, generic: generic60000009, index: generic_inst_in_decl1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D8: {inst: inst600000C0, generic: generic60000009, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant600000D9: {inst: inst600000C1, generic: generic60000009, index: generic_inst_in_decl3, kind: checked} +// CHECK:STDOUT: symbolic_constant600000DA: {inst: inst600000FB, generic: generic60000009, index: generic_inst_in_decl4, kind: checked} +// CHECK:STDOUT: symbolic_constant600000DB: {inst: inst600000FC, generic: generic60000009, index: generic_inst_in_decl5, kind: checked} +// CHECK:STDOUT: symbolic_constant600000DC: {inst: inst600000FD, generic: generic60000009, index: generic_inst_in_decl6, kind: checked} +// CHECK:STDOUT: symbolic_constant600000DD: {inst: inst60000117, generic: generic60000009, index: generic_inst_in_decl7, kind: checked} +// CHECK:STDOUT: symbolic_constant600000DE: {inst: inst60000129, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000DF: {inst: inst60000129, generic: generic60000009, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E0: {inst: inst60000080, generic: generic60000009, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E1: {inst: inst60000081, generic: generic60000009, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E2: {inst: inst60000082, generic: generic60000009, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E3: {inst: inst60000083, generic: generic60000009, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E4: {inst: inst60000084, generic: generic60000009, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E5: {inst: inst600000E8, generic: generic60000009, index: generic_inst_in_def6, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E6: {inst: inst600000E9, generic: generic60000009, index: generic_inst_in_def7, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E7: {inst: inst600000EA, generic: generic60000009, index: generic_inst_in_def8, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E8: {inst: inst600000EB, generic: generic60000009, index: generic_inst_in_def9, kind: checked} +// CHECK:STDOUT: symbolic_constant600000E9: {inst: inst600000EC, generic: generic60000009, index: generic_inst_in_def10, kind: checked} +// CHECK:STDOUT: symbolic_constant600000EA: {inst: inst6000012A, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000EB: {inst: inst6000012A, generic: generic60000009, index: generic_inst_in_def11, kind: checked} +// CHECK:STDOUT: symbolic_constant600000EC: {inst: inst6000012B, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000ED: {inst: inst6000012B, generic: generic60000009, index: generic_inst_in_def12, kind: checked} +// CHECK:STDOUT: symbolic_constant600000EE: {inst: inst6000012C, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000EF: {inst: inst6000012C, generic: generic60000009, index: generic_inst_in_def13, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F0: {inst: inst6000012D, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F1: {inst: inst6000012D, generic: generic60000009, index: generic_inst_in_def14, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F2: {inst: inst6000012E, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F3: {inst: inst6000012E, generic: generic60000009, index: generic_inst_in_def15, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F4: {inst: inst60000129, generic: generic60000009, index: generic_inst_in_def0, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F5: {inst: inst60000080, generic: generic60000009, index: generic_inst_in_def1, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F6: {inst: inst60000081, generic: generic60000009, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F7: {inst: inst60000082, generic: generic60000009, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F8: {inst: inst60000083, generic: generic60000009, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant600000F9: {inst: inst60000084, generic: generic60000009, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant600000FA: {inst: inst600000E8, generic: generic60000009, index: generic_inst_in_def6, kind: checked} +// CHECK:STDOUT: symbolic_constant600000FB: {inst: inst600000E9, generic: generic60000009, index: generic_inst_in_def7, kind: checked} +// CHECK:STDOUT: symbolic_constant600000FC: {inst: inst600000EA, generic: generic60000009, index: generic_inst_in_def8, kind: checked} +// CHECK:STDOUT: symbolic_constant600000FD: {inst: inst600000EB, generic: generic60000009, index: generic_inst_in_def9, kind: checked} +// CHECK:STDOUT: symbolic_constant600000FE: {inst: inst600000EC, generic: generic60000009, index: generic_inst_in_def10, kind: checked} +// CHECK:STDOUT: symbolic_constant600000FF: {inst: inst6000012A, generic: generic60000009, index: generic_inst_in_def11, kind: checked} +// CHECK:STDOUT: symbolic_constant60000100: {inst: inst6000012B, generic: generic60000009, index: generic_inst_in_def12, kind: checked} +// CHECK:STDOUT: symbolic_constant60000101: {inst: inst6000012C, generic: generic60000009, index: generic_inst_in_def13, kind: checked} +// CHECK:STDOUT: symbolic_constant60000102: {inst: inst6000012D, generic: generic60000009, index: generic_inst_in_def14, kind: checked} +// CHECK:STDOUT: symbolic_constant60000103: {inst: inst6000012E, generic: generic60000009, index: generic_inst_in_def15, kind: checked} +// CHECK:STDOUT: symbolic_constant60000104: {inst: inst6000013F, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000105: {inst: inst600000A4, generic: generic60000004, index: generic_inst_in_decl2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000106: {inst: inst60000140, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000107: {inst: inst60000140, generic: generic60000000, index: generic_inst_in_def2, kind: checked} +// CHECK:STDOUT: symbolic_constant60000108: {inst: inst60000142, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant60000109: {inst: inst60000143, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000010A: {inst: inst60000145, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000010B: {inst: inst60000142, generic: generic60000000, index: generic_inst_in_def3, kind: checked} +// CHECK:STDOUT: symbolic_constant6000010C: {inst: inst60000143, generic: generic60000000, index: generic_inst_in_def4, kind: checked} +// CHECK:STDOUT: symbolic_constant6000010D: {inst: inst60000145, generic: generic60000000, index: generic_inst_in_def5, kind: checked} +// CHECK:STDOUT: symbolic_constant6000010E: {inst: inst6000014B, generic: generic, index: generic_inst, kind: checked} +// CHECK:STDOUT: symbolic_constant6000010F: {inst: inst6000014B, generic: generic60000000, index: generic_inst_in_def6, kind: checked} // CHECK:STDOUT: inst_blocks: // CHECK:STDOUT: inst_block_empty: {} // CHECK:STDOUT: exports: -// CHECK:STDOUT: 0: inst60000038 +// CHECK:STDOUT: 0: inst60000037 // CHECK:STDOUT: imports: -// CHECK:STDOUT: 0: inst60000010 -// CHECK:STDOUT: 1: inst60000048 -// CHECK:STDOUT: 2: inst60000049 -// CHECK:STDOUT: 3: inst6000004C -// CHECK:STDOUT: 4: inst6000004D -// CHECK:STDOUT: 5: inst6000004E -// CHECK:STDOUT: 6: inst60000050 -// CHECK:STDOUT: 7: inst60000052 -// CHECK:STDOUT: 8: inst60000057 -// CHECK:STDOUT: 9: inst60000058 -// CHECK:STDOUT: 10: inst60000059 -// CHECK:STDOUT: 11: inst6000005A -// CHECK:STDOUT: 12: inst6000005B -// CHECK:STDOUT: 13: inst60000060 -// CHECK:STDOUT: 14: inst60000061 -// CHECK:STDOUT: 15: inst60000066 -// CHECK:STDOUT: 16: inst60000067 -// CHECK:STDOUT: 17: inst60000068 -// CHECK:STDOUT: 18: inst60000069 -// CHECK:STDOUT: 19: inst6000006A -// CHECK:STDOUT: 20: inst6000006B -// CHECK:STDOUT: 21: inst60000071 -// CHECK:STDOUT: 22: inst60000075 -// CHECK:STDOUT: 23: inst60000076 -// CHECK:STDOUT: 24: inst60000077 -// CHECK:STDOUT: 25: inst60000078 -// CHECK:STDOUT: 26: inst60000079 -// CHECK:STDOUT: 27: inst6000008D -// CHECK:STDOUT: 28: inst6000008E -// CHECK:STDOUT: 29: inst6000008F -// CHECK:STDOUT: 30: inst60000090 -// CHECK:STDOUT: 31: inst60000091 -// CHECK:STDOUT: 32: inst60000092 -// CHECK:STDOUT: 33: inst60000093 -// CHECK:STDOUT: 34: inst60000094 -// CHECK:STDOUT: 35: inst60000095 -// CHECK:STDOUT: 36: inst60000096 -// CHECK:STDOUT: 37: inst60000097 -// CHECK:STDOUT: 38: inst60000098 -// CHECK:STDOUT: 39: inst60000099 -// CHECK:STDOUT: 40: inst6000009A -// CHECK:STDOUT: 41: inst6000009B -// CHECK:STDOUT: 42: inst6000009C -// CHECK:STDOUT: 43: inst6000009D -// CHECK:STDOUT: 44: inst6000009E -// CHECK:STDOUT: 45: inst6000009F -// CHECK:STDOUT: 46: inst600000A0 -// CHECK:STDOUT: 47: inst600000A1 -// CHECK:STDOUT: 48: inst600000A2 -// CHECK:STDOUT: 49: inst600000A3 -// CHECK:STDOUT: 50: inst600000A4 -// CHECK:STDOUT: 51: inst600000A9 -// CHECK:STDOUT: 52: inst600000AC -// CHECK:STDOUT: 53: inst600000AD -// CHECK:STDOUT: 54: inst600000AE -// CHECK:STDOUT: 55: inst600000AF -// CHECK:STDOUT: 56: inst600000B0 -// CHECK:STDOUT: 57: inst600000B7 -// CHECK:STDOUT: 58: inst600000B8 -// CHECK:STDOUT: 59: inst600000B9 -// CHECK:STDOUT: 60: inst600000BA -// CHECK:STDOUT: 61: inst600000BB -// CHECK:STDOUT: 62: inst600000BC -// CHECK:STDOUT: 63: inst600000BD -// CHECK:STDOUT: 64: inst600000BE -// CHECK:STDOUT: 65: inst600000BF -// CHECK:STDOUT: 66: inst600000C0 -// CHECK:STDOUT: 67: inst600000C4 -// CHECK:STDOUT: 68: inst600000C5 -// CHECK:STDOUT: 69: inst600000C6 -// CHECK:STDOUT: 70: inst600000C7 -// CHECK:STDOUT: 71: inst600000C8 -// CHECK:STDOUT: 72: inst600000C9 -// CHECK:STDOUT: 73: inst600000CC -// CHECK:STDOUT: 74: inst600000CD -// CHECK:STDOUT: 75: inst600000D6 -// CHECK:STDOUT: 76: inst600000DA -// CHECK:STDOUT: 77: inst600000DB -// CHECK:STDOUT: 78: inst600000DC -// CHECK:STDOUT: 79: inst600000DD -// CHECK:STDOUT: 80: inst600000DE -// CHECK:STDOUT: 81: inst600000DF -// CHECK:STDOUT: 82: inst600000FA -// CHECK:STDOUT: 83: inst600000FB -// CHECK:STDOUT: 84: inst600000FF -// CHECK:STDOUT: 85: inst60000100 -// CHECK:STDOUT: 86: inst60000101 -// CHECK:STDOUT: 87: inst60000102 -// CHECK:STDOUT: 88: inst60000103 -// CHECK:STDOUT: 89: inst60000104 -// CHECK:STDOUT: 90: inst60000105 -// CHECK:STDOUT: 91: inst60000106 -// CHECK:STDOUT: 92: inst60000109 -// CHECK:STDOUT: 93: inst6000010A -// CHECK:STDOUT: 94: inst60000115 -// CHECK:STDOUT: 95: inst60000119 -// CHECK:STDOUT: 96: inst6000011A -// CHECK:STDOUT: 97: inst6000011B -// CHECK:STDOUT: 98: inst6000011C -// CHECK:STDOUT: 99: inst6000011D -// CHECK:STDOUT: 100: inst6000011E -// CHECK:STDOUT: 101: inst6000011F +// CHECK:STDOUT: 0: inst6000000F +// CHECK:STDOUT: 1: inst60000047 +// CHECK:STDOUT: 2: inst60000048 +// CHECK:STDOUT: 3: inst6000004B +// CHECK:STDOUT: 4: inst6000004C +// CHECK:STDOUT: 5: inst6000004D +// CHECK:STDOUT: 6: inst6000004F +// CHECK:STDOUT: 7: inst60000051 +// CHECK:STDOUT: 8: inst60000056 +// CHECK:STDOUT: 9: inst60000057 +// CHECK:STDOUT: 10: inst60000058 +// CHECK:STDOUT: 11: inst60000059 +// CHECK:STDOUT: 12: inst6000005A +// CHECK:STDOUT: 13: inst6000005F +// CHECK:STDOUT: 14: inst60000060 +// CHECK:STDOUT: 15: inst60000065 +// CHECK:STDOUT: 16: inst60000066 +// CHECK:STDOUT: 17: inst60000067 +// CHECK:STDOUT: 18: inst60000068 +// CHECK:STDOUT: 19: inst60000069 +// CHECK:STDOUT: 20: inst6000006A +// CHECK:STDOUT: 21: inst60000070 +// CHECK:STDOUT: 22: inst60000074 +// CHECK:STDOUT: 23: inst60000075 +// CHECK:STDOUT: 24: inst60000076 +// CHECK:STDOUT: 25: inst60000077 +// CHECK:STDOUT: 26: inst60000078 +// CHECK:STDOUT: 27: inst6000008C +// CHECK:STDOUT: 28: inst6000008D +// CHECK:STDOUT: 29: inst6000008E +// CHECK:STDOUT: 30: inst6000008F +// CHECK:STDOUT: 31: inst60000090 +// CHECK:STDOUT: 32: inst60000091 +// CHECK:STDOUT: 33: inst60000092 +// CHECK:STDOUT: 34: inst60000093 +// CHECK:STDOUT: 35: inst60000094 +// CHECK:STDOUT: 36: inst60000095 +// CHECK:STDOUT: 37: inst60000096 +// CHECK:STDOUT: 38: inst60000097 +// CHECK:STDOUT: 39: inst60000098 +// CHECK:STDOUT: 40: inst60000099 +// CHECK:STDOUT: 41: inst6000009A +// CHECK:STDOUT: 42: inst6000009B +// CHECK:STDOUT: 43: inst6000009C +// CHECK:STDOUT: 44: inst6000009D +// CHECK:STDOUT: 45: inst6000009E +// CHECK:STDOUT: 46: inst6000009F +// CHECK:STDOUT: 47: inst600000A0 +// CHECK:STDOUT: 48: inst600000A1 +// CHECK:STDOUT: 49: inst600000A2 +// CHECK:STDOUT: 50: inst600000A3 +// CHECK:STDOUT: 51: inst600000A8 +// CHECK:STDOUT: 52: inst600000AB +// CHECK:STDOUT: 53: inst600000AC +// CHECK:STDOUT: 54: inst600000AD +// CHECK:STDOUT: 55: inst600000AE +// CHECK:STDOUT: 56: inst600000AF +// CHECK:STDOUT: 57: inst600000B6 +// CHECK:STDOUT: 58: inst600000B7 +// CHECK:STDOUT: 59: inst600000B8 +// CHECK:STDOUT: 60: inst600000B9 +// CHECK:STDOUT: 61: inst600000BA +// CHECK:STDOUT: 62: inst600000BB +// CHECK:STDOUT: 63: inst600000BC +// CHECK:STDOUT: 64: inst600000BD +// CHECK:STDOUT: 65: inst600000BE +// CHECK:STDOUT: 66: inst600000BF +// CHECK:STDOUT: 67: inst600000C3 +// CHECK:STDOUT: 68: inst600000C4 +// CHECK:STDOUT: 69: inst600000C5 +// CHECK:STDOUT: 70: inst600000C6 +// CHECK:STDOUT: 71: inst600000C7 +// CHECK:STDOUT: 72: inst600000C8 +// CHECK:STDOUT: 73: inst600000CB +// CHECK:STDOUT: 74: inst600000CC +// CHECK:STDOUT: 75: inst600000D5 +// CHECK:STDOUT: 76: inst600000D9 +// CHECK:STDOUT: 77: inst600000DA +// CHECK:STDOUT: 78: inst600000DB +// CHECK:STDOUT: 79: inst600000DC +// CHECK:STDOUT: 80: inst600000DD +// CHECK:STDOUT: 81: inst600000DE +// CHECK:STDOUT: 82: inst600000F9 +// CHECK:STDOUT: 83: inst600000FA +// CHECK:STDOUT: 84: inst600000FE +// CHECK:STDOUT: 85: inst600000FF +// CHECK:STDOUT: 86: inst60000100 +// CHECK:STDOUT: 87: inst60000101 +// CHECK:STDOUT: 88: inst60000102 +// CHECK:STDOUT: 89: inst60000103 +// CHECK:STDOUT: 90: inst60000104 +// CHECK:STDOUT: 91: inst60000105 +// CHECK:STDOUT: 92: inst60000108 +// CHECK:STDOUT: 93: inst60000109 +// CHECK:STDOUT: 94: inst60000114 +// CHECK:STDOUT: 95: inst60000118 +// CHECK:STDOUT: 96: inst60000119 +// CHECK:STDOUT: 97: inst6000011A +// CHECK:STDOUT: 98: inst6000011B +// CHECK:STDOUT: 99: inst6000011C +// CHECK:STDOUT: 100: inst6000011D +// CHECK:STDOUT: 101: inst6000011E // CHECK:STDOUT: global_init: {} // CHECK:STDOUT: inst_block60000004: -// CHECK:STDOUT: 0: inst60000012 +// CHECK:STDOUT: 0: inst60000011 // CHECK:STDOUT: inst_block60000005: -// CHECK:STDOUT: 0: inst60000018 +// CHECK:STDOUT: 0: inst60000017 // CHECK:STDOUT: inst_block60000006: -// CHECK:STDOUT: 0: inst60000019 -// CHECK:STDOUT: 1: inst6000001A +// CHECK:STDOUT: 0: inst60000018 +// CHECK:STDOUT: 1: inst60000019 // CHECK:STDOUT: inst_block60000007: -// CHECK:STDOUT: 0: inst60000021 +// CHECK:STDOUT: 0: inst60000020 // CHECK:STDOUT: inst_block60000008: -// CHECK:STDOUT: 0: inst60000023 -// CHECK:STDOUT: 1: inst60000025 +// CHECK:STDOUT: 0: inst60000022 +// CHECK:STDOUT: 1: inst60000024 // CHECK:STDOUT: inst_block60000009: // CHECK:STDOUT: 0: inst(TypeType) -// CHECK:STDOUT: 1: inst60000024 -// CHECK:STDOUT: inst_block6000000A: -// CHECK:STDOUT: 0: inst6000001B -// CHECK:STDOUT: 1: inst60000026 -// CHECK:STDOUT: inst_block6000000B: -// CHECK:STDOUT: 0: inst6000001C -// CHECK:STDOUT: 1: inst60000026 -// CHECK:STDOUT: inst_block6000000C: -// CHECK:STDOUT: 0: inst6000001B -// CHECK:STDOUT: 1: inst6000002C -// CHECK:STDOUT: inst_block6000000D: -// CHECK:STDOUT: 0: inst6000001B -// CHECK:STDOUT: 1: inst60000024 -// CHECK:STDOUT: inst_block6000000E: -// CHECK:STDOUT: 0: inst6000001C -// CHECK:STDOUT: 1: inst60000024 -// CHECK:STDOUT: inst_block6000000F: -// CHECK:STDOUT: 0: inst60000034 -// CHECK:STDOUT: 1: inst60000036 -// CHECK:STDOUT: inst_block60000010: -// CHECK:STDOUT: 0: inst60000018 -// CHECK:STDOUT: 1: inst6000001F -// CHECK:STDOUT: 2: inst60000021 -// CHECK:STDOUT: 3: inst60000031 -// CHECK:STDOUT: 4: inst60000033 -// CHECK:STDOUT: inst_block60000011: -// CHECK:STDOUT: 0: inst60000022 // CHECK:STDOUT: 1: inst60000023 -// CHECK:STDOUT: 2: inst60000025 +// CHECK:STDOUT: inst_block6000000A: +// CHECK:STDOUT: 0: inst6000001A +// CHECK:STDOUT: 1: inst60000025 +// CHECK:STDOUT: inst_block6000000B: +// CHECK:STDOUT: 0: inst6000001B +// CHECK:STDOUT: 1: inst60000025 +// CHECK:STDOUT: inst_block6000000C: +// CHECK:STDOUT: 0: inst6000001A +// CHECK:STDOUT: 1: inst6000002B +// CHECK:STDOUT: inst_block6000000D: +// CHECK:STDOUT: 0: inst6000001A +// CHECK:STDOUT: 1: inst60000023 +// CHECK:STDOUT: inst_block6000000E: +// CHECK:STDOUT: 0: inst6000001B +// CHECK:STDOUT: 1: inst60000023 +// CHECK:STDOUT: inst_block6000000F: +// CHECK:STDOUT: 0: inst60000033 +// CHECK:STDOUT: 1: inst60000035 +// CHECK:STDOUT: inst_block60000010: +// CHECK:STDOUT: 0: inst60000017 +// CHECK:STDOUT: 1: inst6000001E +// CHECK:STDOUT: 2: inst60000020 +// CHECK:STDOUT: 3: inst60000030 +// CHECK:STDOUT: 4: inst60000032 +// CHECK:STDOUT: inst_block60000011: +// CHECK:STDOUT: 0: inst60000021 +// CHECK:STDOUT: 1: inst60000022 +// CHECK:STDOUT: 2: inst60000024 +// CHECK:STDOUT: 3: inst60000027 +// CHECK:STDOUT: 4: inst6000002B +// CHECK:STDOUT: 5: inst6000002D +// CHECK:STDOUT: 6: inst60000011 +// CHECK:STDOUT: 7: inst60000013 +// CHECK:STDOUT: 8: inst60000033 +// CHECK:STDOUT: 9: inst60000034 +// CHECK:STDOUT: 10: inst6000001C +// CHECK:STDOUT: 11: inst60000035 +// CHECK:STDOUT: 12: inst60000036 +// CHECK:STDOUT: inst_block60000012: +// CHECK:STDOUT: 0: inst60000013 +// CHECK:STDOUT: inst_block60000013: +// CHECK:STDOUT: 0: inst60000014 +// CHECK:STDOUT: inst_block60000014: +// CHECK:STDOUT: 0: inst60000015 +// CHECK:STDOUT: 1: inst6000001B +// CHECK:STDOUT: 2: inst6000001F +// CHECK:STDOUT: 3: inst60000029 +// CHECK:STDOUT: 4: inst6000002E +// CHECK:STDOUT: 5: inst60000031 +// CHECK:STDOUT: inst_block60000015: +// CHECK:STDOUT: 0: inst60000014 +// CHECK:STDOUT: 1: inst6000001A +// CHECK:STDOUT: 2: inst6000001D // CHECK:STDOUT: 3: inst60000028 // CHECK:STDOUT: 4: inst6000002C -// CHECK:STDOUT: 5: inst6000002E -// CHECK:STDOUT: 6: inst60000012 -// CHECK:STDOUT: 7: inst60000014 -// CHECK:STDOUT: 8: inst60000034 -// CHECK:STDOUT: 9: inst60000035 -// CHECK:STDOUT: 10: inst6000001D -// CHECK:STDOUT: 11: inst60000036 -// CHECK:STDOUT: 12: inst60000037 -// CHECK:STDOUT: inst_block60000012: -// CHECK:STDOUT: 0: inst60000014 -// CHECK:STDOUT: inst_block60000013: -// CHECK:STDOUT: 0: inst60000015 -// CHECK:STDOUT: inst_block60000014: -// CHECK:STDOUT: 0: inst60000016 -// CHECK:STDOUT: 1: inst6000001C -// CHECK:STDOUT: 2: inst60000020 -// CHECK:STDOUT: 3: inst6000002A -// CHECK:STDOUT: 4: inst6000002F -// CHECK:STDOUT: 5: inst60000032 -// CHECK:STDOUT: inst_block60000015: -// CHECK:STDOUT: 0: inst60000015 -// CHECK:STDOUT: 1: inst6000001B -// CHECK:STDOUT: 2: inst6000001E -// CHECK:STDOUT: 3: inst60000029 -// CHECK:STDOUT: 4: inst6000002D -// CHECK:STDOUT: 5: inst60000030 +// CHECK:STDOUT: 5: inst6000002F // CHECK:STDOUT: inst_block60000016: -// CHECK:STDOUT: 0: inst60000042 -// CHECK:STDOUT: 1: inst60000043 -// CHECK:STDOUT: 2: inst60000044 -// CHECK:STDOUT: 3: inst60000145 -// CHECK:STDOUT: 4: inst6000014A -// CHECK:STDOUT: 5: inst6000014B -// CHECK:STDOUT: 6: inst6000014E -// CHECK:STDOUT: 7: inst60000150 -// CHECK:STDOUT: 8: inst60000046 -// CHECK:STDOUT: 9: inst60000151 -// CHECK:STDOUT: 10: inst60000152 -// CHECK:STDOUT: 11: inst60000153 -// CHECK:STDOUT: 12: inst60000154 -// CHECK:STDOUT: 13: inst60000155 -// CHECK:STDOUT: 14: inst60000156 -// CHECK:STDOUT: 15: inst60000157 -// CHECK:STDOUT: inst_block60000017: -// CHECK:STDOUT: 0: inst60000042 -// CHECK:STDOUT: 1: inst60000043 -// CHECK:STDOUT: inst_block60000018: -// CHECK:STDOUT: 0: inst6000004E -// CHECK:STDOUT: inst_block60000019: -// CHECK:STDOUT: 0: inst6000005A -// CHECK:STDOUT: inst_block6000001A: -// CHECK:STDOUT: 0: inst6000005B -// CHECK:STDOUT: inst_block6000001B: -// CHECK:STDOUT: 0: inst6000005C -// CHECK:STDOUT: 1: inst6000005D -// CHECK:STDOUT: 2: inst6000005E -// CHECK:STDOUT: inst_block6000001C: -// CHECK:STDOUT: 0: inst6000004B -// CHECK:STDOUT: inst_block6000001D: -// CHECK:STDOUT: 0: inst6000004B -// CHECK:STDOUT: 1: inst60000055 -// CHECK:STDOUT: 2: inst60000056 -// CHECK:STDOUT: inst_block6000001E: -// CHECK:STDOUT: 0: inst60000066 -// CHECK:STDOUT: inst_block6000001F: -// CHECK:STDOUT: 0: inst60000067 -// CHECK:STDOUT: inst_block60000020: -// CHECK:STDOUT: 0: inst6000006A -// CHECK:STDOUT: inst_block60000021: -// CHECK:STDOUT: 0: inst60000062 -// CHECK:STDOUT: inst_block60000022: -// CHECK:STDOUT: 0: inst6000006D -// CHECK:STDOUT: inst_block60000023: -// CHECK:STDOUT: 0: inst6000006D -// CHECK:STDOUT: 1: inst6000006E -// CHECK:STDOUT: 2: inst6000006F -// CHECK:STDOUT: 3: inst60000070 -// CHECK:STDOUT: inst_block60000024: -// CHECK:STDOUT: 0: inst60000062 -// CHECK:STDOUT: 1: inst60000063 -// CHECK:STDOUT: 2: inst60000064 -// CHECK:STDOUT: 3: inst6000006C -// CHECK:STDOUT: inst_block60000025: -// CHECK:STDOUT: 0: inst60000078 -// CHECK:STDOUT: inst_block60000026: -// CHECK:STDOUT: 0: inst60000079 -// CHECK:STDOUT: inst_block60000027: -// CHECK:STDOUT: 0: inst6000006D -// CHECK:STDOUT: inst_block60000028: -// CHECK:STDOUT: 0: inst6000007A -// CHECK:STDOUT: 1: inst6000007B -// CHECK:STDOUT: inst_block60000029: -// CHECK:STDOUT: 0: inst6000007C -// CHECK:STDOUT: 1: inst6000007D -// CHECK:STDOUT: 2: inst6000007E -// CHECK:STDOUT: 3: inst6000007F -// CHECK:STDOUT: inst_block6000002A: -// CHECK:STDOUT: 0: inst60000062 -// CHECK:STDOUT: 1: inst60000063 -// CHECK:STDOUT: 2: inst60000064 -// CHECK:STDOUT: 3: inst60000074 -// CHECK:STDOUT: inst_block6000002B: -// CHECK:STDOUT: 0: inst6000007C -// CHECK:STDOUT: inst_block6000002C: -// CHECK:STDOUT: 0: inst60000086 -// CHECK:STDOUT: 1: inst60000087 -// CHECK:STDOUT: 2: inst60000088 -// CHECK:STDOUT: 3: inst60000089 -// CHECK:STDOUT: 4: inst6000008A -// CHECK:STDOUT: 5: inst6000008B -// CHECK:STDOUT: inst_block6000002D: -// CHECK:STDOUT: 0: inst60000062 -// CHECK:STDOUT: 1: inst60000063 -// CHECK:STDOUT: 2: inst6000008C -// CHECK:STDOUT: inst_block6000002E: -// CHECK:STDOUT: 0: inst60000072 -// CHECK:STDOUT: 1: inst60000073 -// CHECK:STDOUT: inst_block6000002F: -// CHECK:STDOUT: 0: inst6000009F -// CHECK:STDOUT: inst_block60000030: -// CHECK:STDOUT: 0: inst600000A0 -// CHECK:STDOUT: inst_block60000031: -// CHECK:STDOUT: 0: inst600000A3 -// CHECK:STDOUT: inst_block60000032: -// CHECK:STDOUT: 0: inst600000A6 -// CHECK:STDOUT: inst_block60000033: -// CHECK:STDOUT: 0: inst600000A6 -// CHECK:STDOUT: 1: inst600000A7 -// CHECK:STDOUT: 2: inst600000A8 -// CHECK:STDOUT: inst_block60000034: -// CHECK:STDOUT: 0: inst60000015 -// CHECK:STDOUT: 1: inst6000001B -// CHECK:STDOUT: 2: inst600000A5 -// CHECK:STDOUT: inst_block60000035: -// CHECK:STDOUT: 0: inst600000AF -// CHECK:STDOUT: inst_block60000036: -// CHECK:STDOUT: 0: inst600000B0 -// CHECK:STDOUT: inst_block60000037: -// CHECK:STDOUT: 0: inst600000A6 -// CHECK:STDOUT: inst_block60000038: -// CHECK:STDOUT: 0: inst600000B1 -// CHECK:STDOUT: 1: inst600000B2 -// CHECK:STDOUT: 2: inst600000B3 -// CHECK:STDOUT: inst_block60000039: -// CHECK:STDOUT: 0: inst600000B4 -// CHECK:STDOUT: 1: inst600000B5 -// CHECK:STDOUT: 2: inst600000B6 -// CHECK:STDOUT: inst_block6000003A: -// CHECK:STDOUT: 0: inst60000015 -// CHECK:STDOUT: 1: inst6000001B -// CHECK:STDOUT: 2: inst6000001E -// CHECK:STDOUT: inst_block6000003B: -// CHECK:STDOUT: 0: inst60000063 -// CHECK:STDOUT: 1: inst600000C2 -// CHECK:STDOUT: inst_block6000003C: -// CHECK:STDOUT: 0: inst600000C5 -// CHECK:STDOUT: 1: inst600000C4 -// CHECK:STDOUT: inst_block6000003D: -// CHECK:STDOUT: 0: inst600000C6 -// CHECK:STDOUT: 1: inst600000C7 -// CHECK:STDOUT: inst_block6000003E: -// CHECK:STDOUT: 0: inst6000004A -// CHECK:STDOUT: 1: inst6000004A -// CHECK:STDOUT: inst_block6000003F: -// CHECK:STDOUT: 0: inst60000062 -// CHECK:STDOUT: 1: inst600000C1 -// CHECK:STDOUT: inst_block60000040: -// CHECK:STDOUT: 0: inst600000CC -// CHECK:STDOUT: inst_block60000041: -// CHECK:STDOUT: 0: inst600000CF -// CHECK:STDOUT: 1: inst600000D0 -// CHECK:STDOUT: inst_block60000042: -// CHECK:STDOUT: 0: inst600000D2 -// CHECK:STDOUT: 1: inst600000D3 -// CHECK:STDOUT: inst_block60000043: -// CHECK:STDOUT: 0: inst600000CF -// CHECK:STDOUT: 1: inst600000D0 -// CHECK:STDOUT: inst_block60000044: -// CHECK:STDOUT: 0: inst600000CF -// CHECK:STDOUT: 1: inst600000D0 -// CHECK:STDOUT: 2: inst600000D1 -// CHECK:STDOUT: 3: inst600000D2 -// CHECK:STDOUT: 4: inst600000D3 -// CHECK:STDOUT: 5: inst600000D4 -// CHECK:STDOUT: 6: inst600000D5 -// CHECK:STDOUT: inst_block60000045: -// CHECK:STDOUT: 0: inst60000062 -// CHECK:STDOUT: 1: inst600000C1 -// CHECK:STDOUT: 2: inst600000CB -// CHECK:STDOUT: 3: inst60000063 -// CHECK:STDOUT: 4: inst600000C2 -// CHECK:STDOUT: 5: inst600000C3 -// CHECK:STDOUT: 6: inst600000CE -// CHECK:STDOUT: inst_block60000046: -// CHECK:STDOUT: 0: inst600000DD -// CHECK:STDOUT: inst_block60000047: -// CHECK:STDOUT: 0: inst600000DE -// CHECK:STDOUT: 1: inst600000DF -// CHECK:STDOUT: inst_block60000048: -// CHECK:STDOUT: 0: inst600000CF -// CHECK:STDOUT: 1: inst600000D0 -// CHECK:STDOUT: inst_block60000049: -// CHECK:STDOUT: 0: inst600000E0 -// CHECK:STDOUT: 1: inst600000E1 -// CHECK:STDOUT: inst_block6000004A: -// CHECK:STDOUT: 0: inst600000E3 -// CHECK:STDOUT: 1: inst600000E5 -// CHECK:STDOUT: inst_block6000004B: -// CHECK:STDOUT: 0: inst600000E2 -// CHECK:STDOUT: 1: inst600000E3 -// CHECK:STDOUT: 2: inst600000E4 -// CHECK:STDOUT: 3: inst600000E5 -// CHECK:STDOUT: 4: inst600000E6 -// CHECK:STDOUT: 5: inst600000E7 -// CHECK:STDOUT: inst_block6000004C: -// CHECK:STDOUT: 0: inst60000062 -// CHECK:STDOUT: 1: inst60000063 -// CHECK:STDOUT: 2: inst600000C1 -// CHECK:STDOUT: 3: inst600000C2 -// CHECK:STDOUT: 4: inst600000C3 -// CHECK:STDOUT: 5: inst600000D9 -// CHECK:STDOUT: inst_block6000004D: -// CHECK:STDOUT: 0: inst600000C1 -// CHECK:STDOUT: inst_block6000004E: -// CHECK:STDOUT: 0: inst600000E2 -// CHECK:STDOUT: inst_block6000004F: -// CHECK:STDOUT: 0: inst600000E4 -// CHECK:STDOUT: inst_block60000050: -// CHECK:STDOUT: 0: inst600000EE -// CHECK:STDOUT: 1: inst600000EF -// CHECK:STDOUT: 2: inst600000F0 -// CHECK:STDOUT: 3: inst600000F1 -// CHECK:STDOUT: 4: inst600000F2 -// CHECK:STDOUT: 5: inst600000F3 -// CHECK:STDOUT: 6: inst600000F4 -// CHECK:STDOUT: 7: inst600000F5 -// CHECK:STDOUT: 8: inst600000F6 -// CHECK:STDOUT: 9: inst600000F7 -// CHECK:STDOUT: 10: inst600000F8 -// CHECK:STDOUT: inst_block60000051: -// CHECK:STDOUT: 0: inst600000C1 -// CHECK:STDOUT: 1: inst600000C2 -// CHECK:STDOUT: 2: inst600000F9 -// CHECK:STDOUT: inst_block60000052: -// CHECK:STDOUT: 0: inst600000D7 -// CHECK:STDOUT: 1: inst600000D8 -// CHECK:STDOUT: inst_block60000053: -// CHECK:STDOUT: 0: inst60000063 -// CHECK:STDOUT: 1: inst600000C2 -// CHECK:STDOUT: 2: inst600000FD -// CHECK:STDOUT: inst_block60000054: -// CHECK:STDOUT: 0: inst60000101 -// CHECK:STDOUT: 1: inst60000100 -// CHECK:STDOUT: 2: inst600000FF -// CHECK:STDOUT: inst_block60000055: -// CHECK:STDOUT: 0: inst60000102 -// CHECK:STDOUT: 1: inst60000103 -// CHECK:STDOUT: 2: inst60000104 -// CHECK:STDOUT: inst_block60000056: -// CHECK:STDOUT: 0: inst6000004A -// CHECK:STDOUT: 1: inst6000004A -// CHECK:STDOUT: 2: inst6000004A -// CHECK:STDOUT: inst_block60000057: -// CHECK:STDOUT: 0: inst60000062 -// CHECK:STDOUT: 1: inst600000C1 -// CHECK:STDOUT: 2: inst600000FC -// CHECK:STDOUT: inst_block60000058: -// CHECK:STDOUT: 0: inst60000109 -// CHECK:STDOUT: inst_block60000059: -// CHECK:STDOUT: 0: inst6000010C -// CHECK:STDOUT: 1: inst6000010D -// CHECK:STDOUT: 2: inst6000010E -// CHECK:STDOUT: inst_block6000005A: -// CHECK:STDOUT: 0: inst60000110 -// CHECK:STDOUT: 1: inst60000111 -// CHECK:STDOUT: 2: inst60000112 -// CHECK:STDOUT: inst_block6000005B: -// CHECK:STDOUT: 0: inst6000010C -// CHECK:STDOUT: 1: inst6000010D -// CHECK:STDOUT: 2: inst6000010E -// CHECK:STDOUT: inst_block6000005C: -// CHECK:STDOUT: 0: inst6000010C -// CHECK:STDOUT: 1: inst6000010D -// CHECK:STDOUT: 2: inst6000010E -// CHECK:STDOUT: 3: inst6000010F -// CHECK:STDOUT: 4: inst60000110 -// CHECK:STDOUT: 5: inst60000111 -// CHECK:STDOUT: 6: inst60000112 -// CHECK:STDOUT: 7: inst60000113 -// CHECK:STDOUT: 8: inst60000114 -// CHECK:STDOUT: inst_block6000005D: -// CHECK:STDOUT: 0: inst60000062 -// CHECK:STDOUT: 1: inst600000C1 -// CHECK:STDOUT: 2: inst600000FC -// CHECK:STDOUT: 3: inst60000108 -// CHECK:STDOUT: 4: inst60000063 -// CHECK:STDOUT: 5: inst600000C2 -// CHECK:STDOUT: 6: inst600000FD -// CHECK:STDOUT: 7: inst600000FE -// CHECK:STDOUT: 8: inst6000010B -// CHECK:STDOUT: inst_block6000005E: -// CHECK:STDOUT: 0: inst6000011C -// CHECK:STDOUT: inst_block6000005F: -// CHECK:STDOUT: 0: inst6000011D -// CHECK:STDOUT: 1: inst6000011E -// CHECK:STDOUT: 2: inst6000011F -// CHECK:STDOUT: inst_block60000060: -// CHECK:STDOUT: 0: inst6000010C -// CHECK:STDOUT: 1: inst6000010D -// CHECK:STDOUT: 2: inst6000010E -// CHECK:STDOUT: inst_block60000061: -// CHECK:STDOUT: 0: inst60000120 -// CHECK:STDOUT: 1: inst60000121 -// CHECK:STDOUT: inst_block60000062: -// CHECK:STDOUT: 0: inst60000123 -// CHECK:STDOUT: 1: inst60000125 -// CHECK:STDOUT: 2: inst60000127 -// CHECK:STDOUT: inst_block60000063: -// CHECK:STDOUT: 0: inst60000122 -// CHECK:STDOUT: 1: inst60000123 -// CHECK:STDOUT: 2: inst60000124 -// CHECK:STDOUT: 3: inst60000125 -// CHECK:STDOUT: 4: inst60000126 -// CHECK:STDOUT: 5: inst60000127 -// CHECK:STDOUT: 6: inst60000128 -// CHECK:STDOUT: 7: inst60000129 -// CHECK:STDOUT: inst_block60000064: -// CHECK:STDOUT: 0: inst60000062 -// CHECK:STDOUT: 1: inst60000063 -// CHECK:STDOUT: 2: inst600000C1 -// CHECK:STDOUT: 3: inst600000C2 -// CHECK:STDOUT: 4: inst600000FC -// CHECK:STDOUT: 5: inst600000FD -// CHECK:STDOUT: 6: inst600000FE -// CHECK:STDOUT: 7: inst60000118 -// CHECK:STDOUT: inst_block60000065: -// CHECK:STDOUT: 0: inst600000FC -// CHECK:STDOUT: inst_block60000066: -// CHECK:STDOUT: 0: inst60000122 -// CHECK:STDOUT: inst_block60000067: -// CHECK:STDOUT: 0: inst60000124 -// CHECK:STDOUT: inst_block60000068: -// CHECK:STDOUT: 0: inst60000126 -// CHECK:STDOUT: inst_block60000069: -// CHECK:STDOUT: 0: inst60000130 -// CHECK:STDOUT: 1: inst60000131 -// CHECK:STDOUT: 2: inst60000132 -// CHECK:STDOUT: 3: inst60000133 -// CHECK:STDOUT: 4: inst60000134 -// CHECK:STDOUT: 5: inst60000135 -// CHECK:STDOUT: 6: inst60000136 -// CHECK:STDOUT: 7: inst60000137 -// CHECK:STDOUT: 8: inst60000138 -// CHECK:STDOUT: 9: inst60000139 -// CHECK:STDOUT: 10: inst6000013A -// CHECK:STDOUT: 11: inst6000013B -// CHECK:STDOUT: 12: inst6000013C -// CHECK:STDOUT: 13: inst6000013D -// CHECK:STDOUT: 14: inst6000013E -// CHECK:STDOUT: 15: inst6000013F -// CHECK:STDOUT: inst_block6000006A: -// CHECK:STDOUT: 0: inst600000FC -// CHECK:STDOUT: 1: inst600000FD -// CHECK:STDOUT: 2: inst60000140 -// CHECK:STDOUT: inst_block6000006B: -// CHECK:STDOUT: 0: inst60000116 -// CHECK:STDOUT: 1: inst60000117 -// CHECK:STDOUT: inst_block6000006C: -// CHECK:STDOUT: 0: inst600000AA -// CHECK:STDOUT: 1: inst600000AB -// CHECK:STDOUT: 2: inst60000040 -// CHECK:STDOUT: inst_block6000006D: -// CHECK:STDOUT: 0: inst60000141 -// CHECK:STDOUT: inst_block6000006E: -// CHECK:STDOUT: 0: inst60000142 -// CHECK:STDOUT: inst_block6000006F: -// CHECK:STDOUT: 0: inst60000143 -// CHECK:STDOUT: inst_block60000070: -// CHECK:STDOUT: 0: inst60000143 -// CHECK:STDOUT: 1: inst6000001B -// CHECK:STDOUT: 2: inst6000001E -// CHECK:STDOUT: inst_block60000071: -// CHECK:STDOUT: 0: inst60000147 -// CHECK:STDOUT: inst_block60000072: -// CHECK:STDOUT: 0: inst60000042 -// CHECK:STDOUT: inst_block60000073: -// CHECK:STDOUT: 0: inst60000151 -// CHECK:STDOUT: 1: inst60000154 -// CHECK:STDOUT: inst_block60000074: -// CHECK:STDOUT: 0: inst6000003E -// CHECK:STDOUT: 1: inst60000041 -// CHECK:STDOUT: 2: inst60000142 -// CHECK:STDOUT: 3: inst60000147 -// CHECK:STDOUT: 4: inst60000148 -// CHECK:STDOUT: 5: inst60000149 +// CHECK:STDOUT: 0: inst60000041 +// CHECK:STDOUT: 1: inst60000042 +// CHECK:STDOUT: 2: inst60000043 +// CHECK:STDOUT: 3: inst60000144 +// CHECK:STDOUT: 4: inst60000149 +// CHECK:STDOUT: 5: inst6000014A // CHECK:STDOUT: 6: inst6000014D +// CHECK:STDOUT: 7: inst6000014F +// CHECK:STDOUT: 8: inst60000045 +// CHECK:STDOUT: 9: inst60000150 +// CHECK:STDOUT: 10: inst60000151 +// CHECK:STDOUT: 11: inst60000152 +// CHECK:STDOUT: 12: inst60000153 +// CHECK:STDOUT: 13: inst60000154 +// CHECK:STDOUT: 14: inst60000155 +// CHECK:STDOUT: 15: inst60000156 +// CHECK:STDOUT: inst_block60000017: +// CHECK:STDOUT: 0: inst60000041 +// CHECK:STDOUT: 1: inst60000042 +// CHECK:STDOUT: inst_block60000018: +// CHECK:STDOUT: 0: inst6000004D +// CHECK:STDOUT: inst_block60000019: +// CHECK:STDOUT: 0: inst60000059 +// CHECK:STDOUT: inst_block6000001A: +// CHECK:STDOUT: 0: inst6000005A +// CHECK:STDOUT: inst_block6000001B: +// CHECK:STDOUT: 0: inst6000005B +// CHECK:STDOUT: 1: inst6000005C +// CHECK:STDOUT: 2: inst6000005D +// CHECK:STDOUT: inst_block6000001C: +// CHECK:STDOUT: 0: inst6000004A +// CHECK:STDOUT: inst_block6000001D: +// CHECK:STDOUT: 0: inst6000004A +// CHECK:STDOUT: 1: inst60000054 +// CHECK:STDOUT: 2: inst60000055 +// CHECK:STDOUT: inst_block6000001E: +// CHECK:STDOUT: 0: inst60000065 +// CHECK:STDOUT: inst_block6000001F: +// CHECK:STDOUT: 0: inst60000066 +// CHECK:STDOUT: inst_block60000020: +// CHECK:STDOUT: 0: inst60000069 +// CHECK:STDOUT: inst_block60000021: +// CHECK:STDOUT: 0: inst60000061 +// CHECK:STDOUT: inst_block60000022: +// CHECK:STDOUT: 0: inst6000006C +// CHECK:STDOUT: inst_block60000023: +// CHECK:STDOUT: 0: inst6000006C +// CHECK:STDOUT: 1: inst6000006D +// CHECK:STDOUT: 2: inst6000006E +// CHECK:STDOUT: 3: inst6000006F +// CHECK:STDOUT: inst_block60000024: +// CHECK:STDOUT: 0: inst60000061 +// CHECK:STDOUT: 1: inst60000062 +// CHECK:STDOUT: 2: inst60000063 +// CHECK:STDOUT: 3: inst6000006B +// CHECK:STDOUT: inst_block60000025: +// CHECK:STDOUT: 0: inst60000077 +// CHECK:STDOUT: inst_block60000026: +// CHECK:STDOUT: 0: inst60000078 +// CHECK:STDOUT: inst_block60000027: +// CHECK:STDOUT: 0: inst6000006C +// CHECK:STDOUT: inst_block60000028: +// CHECK:STDOUT: 0: inst60000079 +// CHECK:STDOUT: 1: inst6000007A +// CHECK:STDOUT: inst_block60000029: +// CHECK:STDOUT: 0: inst6000007B +// CHECK:STDOUT: 1: inst6000007C +// CHECK:STDOUT: 2: inst6000007D +// CHECK:STDOUT: 3: inst6000007E +// CHECK:STDOUT: inst_block6000002A: +// CHECK:STDOUT: 0: inst60000061 +// CHECK:STDOUT: 1: inst60000062 +// CHECK:STDOUT: 2: inst60000063 +// CHECK:STDOUT: 3: inst60000073 +// CHECK:STDOUT: inst_block6000002B: +// CHECK:STDOUT: 0: inst6000007B +// CHECK:STDOUT: inst_block6000002C: +// CHECK:STDOUT: 0: inst60000085 +// CHECK:STDOUT: 1: inst60000086 +// CHECK:STDOUT: 2: inst60000087 +// CHECK:STDOUT: 3: inst60000088 +// CHECK:STDOUT: 4: inst60000089 +// CHECK:STDOUT: 5: inst6000008A +// CHECK:STDOUT: inst_block6000002D: +// CHECK:STDOUT: 0: inst60000061 +// CHECK:STDOUT: 1: inst60000062 +// CHECK:STDOUT: 2: inst6000008B +// CHECK:STDOUT: inst_block6000002E: +// CHECK:STDOUT: 0: inst60000071 +// CHECK:STDOUT: 1: inst60000072 +// CHECK:STDOUT: inst_block6000002F: +// CHECK:STDOUT: 0: inst6000009E +// CHECK:STDOUT: inst_block60000030: +// CHECK:STDOUT: 0: inst6000009F +// CHECK:STDOUT: inst_block60000031: +// CHECK:STDOUT: 0: inst600000A2 +// CHECK:STDOUT: inst_block60000032: +// CHECK:STDOUT: 0: inst600000A5 +// CHECK:STDOUT: inst_block60000033: +// CHECK:STDOUT: 0: inst600000A5 +// CHECK:STDOUT: 1: inst600000A6 +// CHECK:STDOUT: 2: inst600000A7 +// CHECK:STDOUT: inst_block60000034: +// CHECK:STDOUT: 0: inst60000014 +// CHECK:STDOUT: 1: inst6000001A +// CHECK:STDOUT: 2: inst600000A4 +// CHECK:STDOUT: inst_block60000035: +// CHECK:STDOUT: 0: inst600000AE +// CHECK:STDOUT: inst_block60000036: +// CHECK:STDOUT: 0: inst600000AF +// CHECK:STDOUT: inst_block60000037: +// CHECK:STDOUT: 0: inst600000A5 +// CHECK:STDOUT: inst_block60000038: +// CHECK:STDOUT: 0: inst600000B0 +// CHECK:STDOUT: 1: inst600000B1 +// CHECK:STDOUT: 2: inst600000B2 +// CHECK:STDOUT: inst_block60000039: +// CHECK:STDOUT: 0: inst600000B3 +// CHECK:STDOUT: 1: inst600000B4 +// CHECK:STDOUT: 2: inst600000B5 +// CHECK:STDOUT: inst_block6000003A: +// CHECK:STDOUT: 0: inst60000014 +// CHECK:STDOUT: 1: inst6000001A +// CHECK:STDOUT: 2: inst6000001D +// CHECK:STDOUT: inst_block6000003B: +// CHECK:STDOUT: 0: inst60000062 +// CHECK:STDOUT: 1: inst600000C1 +// CHECK:STDOUT: inst_block6000003C: +// CHECK:STDOUT: 0: inst600000C4 +// CHECK:STDOUT: 1: inst600000C3 +// CHECK:STDOUT: inst_block6000003D: +// CHECK:STDOUT: 0: inst600000C5 +// CHECK:STDOUT: 1: inst600000C6 +// CHECK:STDOUT: inst_block6000003E: +// CHECK:STDOUT: 0: inst60000049 +// CHECK:STDOUT: 1: inst60000049 +// CHECK:STDOUT: inst_block6000003F: +// CHECK:STDOUT: 0: inst60000061 +// CHECK:STDOUT: 1: inst600000C0 +// CHECK:STDOUT: inst_block60000040: +// CHECK:STDOUT: 0: inst600000CB +// CHECK:STDOUT: inst_block60000041: +// CHECK:STDOUT: 0: inst600000CE +// CHECK:STDOUT: 1: inst600000CF +// CHECK:STDOUT: inst_block60000042: +// CHECK:STDOUT: 0: inst600000D1 +// CHECK:STDOUT: 1: inst600000D2 +// CHECK:STDOUT: inst_block60000043: +// CHECK:STDOUT: 0: inst600000CE +// CHECK:STDOUT: 1: inst600000CF +// CHECK:STDOUT: inst_block60000044: +// CHECK:STDOUT: 0: inst600000CE +// CHECK:STDOUT: 1: inst600000CF +// CHECK:STDOUT: 2: inst600000D0 +// CHECK:STDOUT: 3: inst600000D1 +// CHECK:STDOUT: 4: inst600000D2 +// CHECK:STDOUT: 5: inst600000D3 +// CHECK:STDOUT: 6: inst600000D4 +// CHECK:STDOUT: inst_block60000045: +// CHECK:STDOUT: 0: inst60000061 +// CHECK:STDOUT: 1: inst600000C0 +// CHECK:STDOUT: 2: inst600000CA +// CHECK:STDOUT: 3: inst60000062 +// CHECK:STDOUT: 4: inst600000C1 +// CHECK:STDOUT: 5: inst600000C2 +// CHECK:STDOUT: 6: inst600000CD +// CHECK:STDOUT: inst_block60000046: +// CHECK:STDOUT: 0: inst600000DC +// CHECK:STDOUT: inst_block60000047: +// CHECK:STDOUT: 0: inst600000DD +// CHECK:STDOUT: 1: inst600000DE +// CHECK:STDOUT: inst_block60000048: +// CHECK:STDOUT: 0: inst600000CE +// CHECK:STDOUT: 1: inst600000CF +// CHECK:STDOUT: inst_block60000049: +// CHECK:STDOUT: 0: inst600000DF +// CHECK:STDOUT: 1: inst600000E0 +// CHECK:STDOUT: inst_block6000004A: +// CHECK:STDOUT: 0: inst600000E2 +// CHECK:STDOUT: 1: inst600000E4 +// CHECK:STDOUT: inst_block6000004B: +// CHECK:STDOUT: 0: inst600000E1 +// CHECK:STDOUT: 1: inst600000E2 +// CHECK:STDOUT: 2: inst600000E3 +// CHECK:STDOUT: 3: inst600000E4 +// CHECK:STDOUT: 4: inst600000E5 +// CHECK:STDOUT: 5: inst600000E6 +// CHECK:STDOUT: inst_block6000004C: +// CHECK:STDOUT: 0: inst60000061 +// CHECK:STDOUT: 1: inst60000062 +// CHECK:STDOUT: 2: inst600000C0 +// CHECK:STDOUT: 3: inst600000C1 +// CHECK:STDOUT: 4: inst600000C2 +// CHECK:STDOUT: 5: inst600000D8 +// CHECK:STDOUT: inst_block6000004D: +// CHECK:STDOUT: 0: inst600000C0 +// CHECK:STDOUT: inst_block6000004E: +// CHECK:STDOUT: 0: inst600000E1 +// CHECK:STDOUT: inst_block6000004F: +// CHECK:STDOUT: 0: inst600000E3 +// CHECK:STDOUT: inst_block60000050: +// CHECK:STDOUT: 0: inst600000ED +// CHECK:STDOUT: 1: inst600000EE +// CHECK:STDOUT: 2: inst600000EF +// CHECK:STDOUT: 3: inst600000F0 +// CHECK:STDOUT: 4: inst600000F1 +// CHECK:STDOUT: 5: inst600000F2 +// CHECK:STDOUT: 6: inst600000F3 +// CHECK:STDOUT: 7: inst600000F4 +// CHECK:STDOUT: 8: inst600000F5 +// CHECK:STDOUT: 9: inst600000F6 +// CHECK:STDOUT: 10: inst600000F7 +// CHECK:STDOUT: inst_block60000051: +// CHECK:STDOUT: 0: inst600000C0 +// CHECK:STDOUT: 1: inst600000C1 +// CHECK:STDOUT: 2: inst600000F8 +// CHECK:STDOUT: inst_block60000052: +// CHECK:STDOUT: 0: inst600000D6 +// CHECK:STDOUT: 1: inst600000D7 +// CHECK:STDOUT: inst_block60000053: +// CHECK:STDOUT: 0: inst60000062 +// CHECK:STDOUT: 1: inst600000C1 +// CHECK:STDOUT: 2: inst600000FC +// CHECK:STDOUT: inst_block60000054: +// CHECK:STDOUT: 0: inst60000100 +// CHECK:STDOUT: 1: inst600000FF +// CHECK:STDOUT: 2: inst600000FE +// CHECK:STDOUT: inst_block60000055: +// CHECK:STDOUT: 0: inst60000101 +// CHECK:STDOUT: 1: inst60000102 +// CHECK:STDOUT: 2: inst60000103 +// CHECK:STDOUT: inst_block60000056: +// CHECK:STDOUT: 0: inst60000049 +// CHECK:STDOUT: 1: inst60000049 +// CHECK:STDOUT: 2: inst60000049 +// CHECK:STDOUT: inst_block60000057: +// CHECK:STDOUT: 0: inst60000061 +// CHECK:STDOUT: 1: inst600000C0 +// CHECK:STDOUT: 2: inst600000FB +// CHECK:STDOUT: inst_block60000058: +// CHECK:STDOUT: 0: inst60000108 +// CHECK:STDOUT: inst_block60000059: +// CHECK:STDOUT: 0: inst6000010B +// CHECK:STDOUT: 1: inst6000010C +// CHECK:STDOUT: 2: inst6000010D +// CHECK:STDOUT: inst_block6000005A: +// CHECK:STDOUT: 0: inst6000010F +// CHECK:STDOUT: 1: inst60000110 +// CHECK:STDOUT: 2: inst60000111 +// CHECK:STDOUT: inst_block6000005B: +// CHECK:STDOUT: 0: inst6000010B +// CHECK:STDOUT: 1: inst6000010C +// CHECK:STDOUT: 2: inst6000010D +// CHECK:STDOUT: inst_block6000005C: +// CHECK:STDOUT: 0: inst6000010B +// CHECK:STDOUT: 1: inst6000010C +// CHECK:STDOUT: 2: inst6000010D +// CHECK:STDOUT: 3: inst6000010E +// CHECK:STDOUT: 4: inst6000010F +// CHECK:STDOUT: 5: inst60000110 +// CHECK:STDOUT: 6: inst60000111 +// CHECK:STDOUT: 7: inst60000112 +// CHECK:STDOUT: 8: inst60000113 +// CHECK:STDOUT: inst_block6000005D: +// CHECK:STDOUT: 0: inst60000061 +// CHECK:STDOUT: 1: inst600000C0 +// CHECK:STDOUT: 2: inst600000FB +// CHECK:STDOUT: 3: inst60000107 +// CHECK:STDOUT: 4: inst60000062 +// CHECK:STDOUT: 5: inst600000C1 +// CHECK:STDOUT: 6: inst600000FC +// CHECK:STDOUT: 7: inst600000FD +// CHECK:STDOUT: 8: inst6000010A +// CHECK:STDOUT: inst_block6000005E: +// CHECK:STDOUT: 0: inst6000011B +// CHECK:STDOUT: inst_block6000005F: +// CHECK:STDOUT: 0: inst6000011C +// CHECK:STDOUT: 1: inst6000011D +// CHECK:STDOUT: 2: inst6000011E +// CHECK:STDOUT: inst_block60000060: +// CHECK:STDOUT: 0: inst6000010B +// CHECK:STDOUT: 1: inst6000010C +// CHECK:STDOUT: 2: inst6000010D +// CHECK:STDOUT: inst_block60000061: +// CHECK:STDOUT: 0: inst6000011F +// CHECK:STDOUT: 1: inst60000120 +// CHECK:STDOUT: inst_block60000062: +// CHECK:STDOUT: 0: inst60000122 +// CHECK:STDOUT: 1: inst60000124 +// CHECK:STDOUT: 2: inst60000126 +// CHECK:STDOUT: inst_block60000063: +// CHECK:STDOUT: 0: inst60000121 +// CHECK:STDOUT: 1: inst60000122 +// CHECK:STDOUT: 2: inst60000123 +// CHECK:STDOUT: 3: inst60000124 +// CHECK:STDOUT: 4: inst60000125 +// CHECK:STDOUT: 5: inst60000126 +// CHECK:STDOUT: 6: inst60000127 +// CHECK:STDOUT: 7: inst60000128 +// CHECK:STDOUT: inst_block60000064: +// CHECK:STDOUT: 0: inst60000061 +// CHECK:STDOUT: 1: inst60000062 +// CHECK:STDOUT: 2: inst600000C0 +// CHECK:STDOUT: 3: inst600000C1 +// CHECK:STDOUT: 4: inst600000FB +// CHECK:STDOUT: 5: inst600000FC +// CHECK:STDOUT: 6: inst600000FD +// CHECK:STDOUT: 7: inst60000117 +// CHECK:STDOUT: inst_block60000065: +// CHECK:STDOUT: 0: inst600000FB +// CHECK:STDOUT: inst_block60000066: +// CHECK:STDOUT: 0: inst60000121 +// CHECK:STDOUT: inst_block60000067: +// CHECK:STDOUT: 0: inst60000123 +// CHECK:STDOUT: inst_block60000068: +// CHECK:STDOUT: 0: inst60000125 +// CHECK:STDOUT: inst_block60000069: +// CHECK:STDOUT: 0: inst6000012F +// CHECK:STDOUT: 1: inst60000130 +// CHECK:STDOUT: 2: inst60000131 +// CHECK:STDOUT: 3: inst60000132 +// CHECK:STDOUT: 4: inst60000133 +// CHECK:STDOUT: 5: inst60000134 +// CHECK:STDOUT: 6: inst60000135 +// CHECK:STDOUT: 7: inst60000136 +// CHECK:STDOUT: 8: inst60000137 +// CHECK:STDOUT: 9: inst60000138 +// CHECK:STDOUT: 10: inst60000139 +// CHECK:STDOUT: 11: inst6000013A +// CHECK:STDOUT: 12: inst6000013B +// CHECK:STDOUT: 13: inst6000013C +// CHECK:STDOUT: 14: inst6000013D +// CHECK:STDOUT: 15: inst6000013E +// CHECK:STDOUT: inst_block6000006A: +// CHECK:STDOUT: 0: inst600000FB +// CHECK:STDOUT: 1: inst600000FC +// CHECK:STDOUT: 2: inst6000013F +// CHECK:STDOUT: inst_block6000006B: +// CHECK:STDOUT: 0: inst60000115 +// CHECK:STDOUT: 1: inst60000116 +// CHECK:STDOUT: inst_block6000006C: +// CHECK:STDOUT: 0: inst600000A9 +// CHECK:STDOUT: 1: inst600000AA +// CHECK:STDOUT: 2: inst6000003F +// CHECK:STDOUT: inst_block6000006D: +// CHECK:STDOUT: 0: inst60000140 +// CHECK:STDOUT: inst_block6000006E: +// CHECK:STDOUT: 0: inst60000141 +// CHECK:STDOUT: inst_block6000006F: +// CHECK:STDOUT: 0: inst60000142 +// CHECK:STDOUT: inst_block60000070: +// CHECK:STDOUT: 0: inst60000142 +// CHECK:STDOUT: 1: inst6000001A +// CHECK:STDOUT: 2: inst6000001D +// CHECK:STDOUT: inst_block60000071: +// CHECK:STDOUT: 0: inst60000146 +// CHECK:STDOUT: inst_block60000072: +// CHECK:STDOUT: 0: inst60000041 +// CHECK:STDOUT: inst_block60000073: +// CHECK:STDOUT: 0: inst60000150 +// CHECK:STDOUT: 1: inst60000153 +// CHECK:STDOUT: inst_block60000074: +// CHECK:STDOUT: 0: inst6000003D +// CHECK:STDOUT: 1: inst60000040 +// CHECK:STDOUT: 2: inst60000141 +// CHECK:STDOUT: 3: inst60000146 +// CHECK:STDOUT: 4: inst60000147 +// CHECK:STDOUT: 5: inst60000148 +// CHECK:STDOUT: 6: inst6000014C // CHECK:STDOUT: inst_block60000075: -// CHECK:STDOUT: 0: instE -// CHECK:STDOUT: 1: inst6000000F -// CHECK:STDOUT: 2: inst60000038 +// CHECK:STDOUT: 0: instD +// CHECK:STDOUT: 1: inst6000000E +// CHECK:STDOUT: 2: inst60000037 // 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 986e3d43e35a..313e84c1587e 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,12 +26,12 @@ fn Foo(n: ()) -> ((), ()) { // CHECK:STDOUT: import_ir_insts: {} // CHECK:STDOUT: clang_decls: {} // CHECK:STDOUT: name_scopes: -// CHECK:STDOUT: name_scope0: {inst: instE, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name0: inst60000027}} +// CHECK:STDOUT: name_scope0: {inst: instD, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {name0: inst60000026}} // CHECK:STDOUT: entity_names: // CHECK:STDOUT: entity_name60000000: {name: name1, parent_scope: name_scope, index: -1, is_template: 0} // CHECK:STDOUT: cpp_global_vars: {} // CHECK:STDOUT: functions: -// CHECK:STDOUT: function60000000: {name: name0, parent_scope: name_scope0, call_params_id: inst_block6000000A, return_slot_pattern: inst60000022, body: [inst_block6000000D]} +// CHECK:STDOUT: function60000000: {name: name0, parent_scope: name_scope0, call_params_id: inst_block6000000A, return_slot_pattern: inst60000021, body: [inst_block6000000D]} // CHECK:STDOUT: classes: {} // CHECK:STDOUT: generics: {} // CHECK:STDOUT: specifics: {} @@ -44,155 +44,155 @@ 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(inst6000000F)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst6000000F)} -// CHECK:STDOUT: 'type(inst6000001C)': -// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst6000001C)} -// CHECK:STDOUT: 'type(inst60000019)': -// CHECK:STDOUT: value_repr: {kind: pointer, type: type(inst6000001C)} -// CHECK:STDOUT: 'type(inst60000028)': -// CHECK:STDOUT: value_repr: {kind: none, type: type(inst6000000F)} +// CHECK:STDOUT: 'type(inst6000000E)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst6000000E)} +// CHECK:STDOUT: 'type(inst6000001B)': +// CHECK:STDOUT: value_repr: {kind: copy, type: type(inst6000001B)} +// CHECK:STDOUT: 'type(inst60000018)': +// CHECK:STDOUT: value_repr: {kind: pointer, type: type(inst6000001B)} +// CHECK:STDOUT: 'type(inst60000027)': +// CHECK:STDOUT: value_repr: {kind: none, type: type(inst6000000E)} // CHECK:STDOUT: insts: -// CHECK:STDOUT: instE: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} -// CHECK:STDOUT: inst6000000F: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)} -// CHECK:STDOUT: inst60000010: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst6000000F)} -// CHECK:STDOUT: inst60000011: {kind: TupleValue, arg0: inst_block_empty, type: type(inst6000000F)} -// CHECK:STDOUT: inst60000012: {kind: Converted, arg0: inst60000010, arg1: inst6000000F, type: type(TypeType)} -// CHECK:STDOUT: inst60000013: {kind: ValueBinding, arg0: entity_name60000000, arg1: inst60000023, type: type(inst6000000F)} -// CHECK:STDOUT: inst60000014: {kind: PatternType, arg0: inst6000000F, type: type(TypeType)} -// CHECK:STDOUT: inst60000015: {kind: ValueBindingPattern, arg0: entity_name60000000, type: type(inst60000014)} -// CHECK:STDOUT: inst60000016: {kind: ValueParamPattern, arg0: inst60000015, arg1: call_param0, type: type(inst60000014)} -// CHECK:STDOUT: inst60000017: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst6000000F)} -// CHECK:STDOUT: inst60000018: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst6000000F)} -// CHECK:STDOUT: inst60000019: {kind: TupleType, arg0: inst_block60000007, type: type(TypeType)} -// CHECK:STDOUT: inst6000001A: {kind: TupleLiteral, arg0: inst_block60000006, type: type(inst60000019)} -// CHECK:STDOUT: inst6000001B: {kind: TupleValue, arg0: inst_block60000008, type: type(inst60000019)} -// CHECK:STDOUT: inst6000001C: {kind: PointerType, arg0: inst60000019, type: type(TypeType)} -// CHECK:STDOUT: inst6000001D: {kind: Converted, arg0: inst60000011, arg1: inst6000000F, type: type(TypeType)} -// CHECK:STDOUT: inst6000001E: {kind: Converted, arg0: inst60000011, arg1: inst6000000F, type: type(TypeType)} -// CHECK:STDOUT: inst6000001F: {kind: Converted, arg0: inst6000001A, arg1: inst60000019, type: type(TypeType)} -// CHECK:STDOUT: inst60000020: {kind: PatternType, arg0: inst60000019, type: type(TypeType)} -// CHECK:STDOUT: inst60000021: {kind: ReturnSlotPattern, arg0: inst6000001F, type: type(inst60000020)} -// CHECK:STDOUT: inst60000022: {kind: OutParamPattern, arg0: inst60000021, arg1: call_param1, type: type(inst60000020)} -// CHECK:STDOUT: inst60000023: {kind: ValueParam, arg0: call_param0, arg1: name1, type: type(inst6000000F)} -// CHECK:STDOUT: inst60000024: {kind: SpliceBlock, arg0: inst_block60000004, arg1: inst60000012, type: type(TypeType)} -// CHECK:STDOUT: inst60000025: {kind: OutParam, arg0: call_param1, arg1: name(ReturnSlot), type: type(inst60000019)} -// CHECK:STDOUT: inst60000026: {kind: ReturnSlot, arg0: inst60000019, arg1: inst60000025, type: type(inst60000019)} -// CHECK:STDOUT: inst60000027: {kind: FunctionDecl, arg0: function60000000, arg1: inst_block6000000C, type: type(inst60000028)} -// CHECK:STDOUT: inst60000028: {kind: FunctionType, arg0: function60000000, arg1: specific, type: type(TypeType)} -// CHECK:STDOUT: inst60000029: {kind: StructValue, arg0: inst_block_empty, type: type(inst60000028)} -// CHECK:STDOUT: inst6000002A: {kind: NameRef, arg0: name1, arg1: inst60000013, type: type(inst6000000F)} -// CHECK:STDOUT: inst6000002B: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst6000000F)} -// CHECK:STDOUT: inst6000002C: {kind: TupleLiteral, arg0: inst_block6000000E, type: type(inst60000019)} -// CHECK:STDOUT: inst6000002D: {kind: TupleAccess, arg0: inst60000026, arg1: element0, type: type(inst6000000F)} -// CHECK:STDOUT: inst6000002E: {kind: TupleInit, arg0: inst_block6000000F, arg1: inst6000002D, type: type(inst6000000F)} -// CHECK:STDOUT: inst6000002F: {kind: Converted, arg0: inst6000002A, arg1: inst6000002E, type: type(inst6000000F)} -// CHECK:STDOUT: inst60000030: {kind: TupleAccess, arg0: inst60000026, arg1: element1, type: type(inst6000000F)} -// CHECK:STDOUT: inst60000031: {kind: TupleInit, arg0: inst_block_empty, arg1: inst60000030, type: type(inst6000000F)} -// CHECK:STDOUT: inst60000032: {kind: Converted, arg0: inst6000002B, arg1: inst60000031, type: type(inst6000000F)} -// CHECK:STDOUT: inst60000033: {kind: TupleInit, arg0: inst_block60000010, arg1: inst60000026, type: type(inst60000019)} -// CHECK:STDOUT: inst60000034: {kind: Converted, arg0: inst6000002C, arg1: inst60000033, type: type(inst60000019)} -// CHECK:STDOUT: inst60000035: {kind: ReturnExpr, arg0: inst60000034, arg1: inst60000026} +// CHECK:STDOUT: instD: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} +// CHECK:STDOUT: inst6000000E: {kind: TupleType, arg0: inst_block_empty, type: type(TypeType)} +// CHECK:STDOUT: inst6000000F: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst6000000E)} +// CHECK:STDOUT: inst60000010: {kind: TupleValue, arg0: inst_block_empty, type: type(inst6000000E)} +// CHECK:STDOUT: inst60000011: {kind: Converted, arg0: inst6000000F, arg1: inst6000000E, type: type(TypeType)} +// CHECK:STDOUT: inst60000012: {kind: ValueBinding, arg0: entity_name60000000, arg1: inst60000022, type: type(inst6000000E)} +// CHECK:STDOUT: inst60000013: {kind: PatternType, arg0: inst6000000E, type: type(TypeType)} +// CHECK:STDOUT: inst60000014: {kind: ValueBindingPattern, arg0: entity_name60000000, type: type(inst60000013)} +// CHECK:STDOUT: inst60000015: {kind: ValueParamPattern, arg0: inst60000014, arg1: call_param0, type: type(inst60000013)} +// CHECK:STDOUT: inst60000016: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst6000000E)} +// CHECK:STDOUT: inst60000017: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst6000000E)} +// CHECK:STDOUT: inst60000018: {kind: TupleType, arg0: inst_block60000007, type: type(TypeType)} +// CHECK:STDOUT: inst60000019: {kind: TupleLiteral, arg0: inst_block60000006, type: type(inst60000018)} +// CHECK:STDOUT: inst6000001A: {kind: TupleValue, arg0: inst_block60000008, type: type(inst60000018)} +// CHECK:STDOUT: inst6000001B: {kind: PointerType, arg0: inst60000018, type: type(TypeType)} +// CHECK:STDOUT: inst6000001C: {kind: Converted, arg0: inst60000010, arg1: inst6000000E, type: type(TypeType)} +// CHECK:STDOUT: inst6000001D: {kind: Converted, arg0: inst60000010, arg1: inst6000000E, type: type(TypeType)} +// CHECK:STDOUT: inst6000001E: {kind: Converted, arg0: inst60000019, arg1: inst60000018, type: type(TypeType)} +// CHECK:STDOUT: inst6000001F: {kind: PatternType, arg0: inst60000018, type: type(TypeType)} +// CHECK:STDOUT: inst60000020: {kind: ReturnSlotPattern, arg0: inst6000001E, type: type(inst6000001F)} +// CHECK:STDOUT: inst60000021: {kind: OutParamPattern, arg0: inst60000020, arg1: call_param1, type: type(inst6000001F)} +// CHECK:STDOUT: inst60000022: {kind: ValueParam, arg0: call_param0, arg1: name1, type: type(inst6000000E)} +// CHECK:STDOUT: inst60000023: {kind: SpliceBlock, arg0: inst_block60000004, arg1: inst60000011, type: type(TypeType)} +// CHECK:STDOUT: inst60000024: {kind: OutParam, arg0: call_param1, arg1: name(ReturnSlot), type: type(inst60000018)} +// CHECK:STDOUT: inst60000025: {kind: ReturnSlot, arg0: inst60000018, arg1: inst60000024, type: type(inst60000018)} +// CHECK:STDOUT: inst60000026: {kind: FunctionDecl, arg0: function60000000, arg1: inst_block6000000C, type: type(inst60000027)} +// CHECK:STDOUT: inst60000027: {kind: FunctionType, arg0: function60000000, arg1: specific, type: type(TypeType)} +// CHECK:STDOUT: inst60000028: {kind: StructValue, arg0: inst_block_empty, type: type(inst60000027)} +// CHECK:STDOUT: inst60000029: {kind: NameRef, arg0: name1, arg1: inst60000012, type: type(inst6000000E)} +// CHECK:STDOUT: inst6000002A: {kind: TupleLiteral, arg0: inst_block_empty, type: type(inst6000000E)} +// CHECK:STDOUT: inst6000002B: {kind: TupleLiteral, arg0: inst_block6000000E, type: type(inst60000018)} +// CHECK:STDOUT: inst6000002C: {kind: TupleAccess, arg0: inst60000025, arg1: element0, type: type(inst6000000E)} +// CHECK:STDOUT: inst6000002D: {kind: TupleInit, arg0: inst_block6000000F, arg1: inst6000002C, type: type(inst6000000E)} +// CHECK:STDOUT: inst6000002E: {kind: Converted, arg0: inst60000029, arg1: inst6000002D, type: type(inst6000000E)} +// CHECK:STDOUT: inst6000002F: {kind: TupleAccess, arg0: inst60000025, arg1: element1, type: type(inst6000000E)} +// CHECK:STDOUT: inst60000030: {kind: TupleInit, arg0: inst_block_empty, arg1: inst6000002F, type: type(inst6000000E)} +// CHECK:STDOUT: inst60000031: {kind: Converted, arg0: inst6000002A, arg1: inst60000030, type: type(inst6000000E)} +// CHECK:STDOUT: inst60000032: {kind: TupleInit, arg0: inst_block60000010, arg1: inst60000025, type: type(inst60000018)} +// CHECK:STDOUT: inst60000033: {kind: Converted, arg0: inst6000002B, arg1: inst60000032, type: type(inst60000018)} +// CHECK:STDOUT: inst60000034: {kind: ReturnExpr, arg0: inst60000033, arg1: inst60000025} // CHECK:STDOUT: constant_values: // CHECK:STDOUT: values: -// CHECK:STDOUT: instE: concrete_constant(instE) -// CHECK:STDOUT: inst6000000F: concrete_constant(inst6000000F) -// CHECK:STDOUT: inst60000010: concrete_constant(inst60000011) -// CHECK:STDOUT: inst60000011: concrete_constant(inst60000011) -// CHECK:STDOUT: inst60000012: concrete_constant(inst6000000F) +// CHECK:STDOUT: instD: concrete_constant(instD) +// CHECK:STDOUT: inst6000000E: concrete_constant(inst6000000E) +// CHECK:STDOUT: inst6000000F: concrete_constant(inst60000010) +// CHECK:STDOUT: inst60000010: concrete_constant(inst60000010) +// CHECK:STDOUT: inst60000011: concrete_constant(inst6000000E) +// CHECK:STDOUT: inst60000013: concrete_constant(inst60000013) // CHECK:STDOUT: inst60000014: concrete_constant(inst60000014) // CHECK:STDOUT: inst60000015: concrete_constant(inst60000015) -// CHECK:STDOUT: inst60000016: concrete_constant(inst60000016) -// CHECK:STDOUT: inst60000017: concrete_constant(inst60000011) -// CHECK:STDOUT: inst60000018: concrete_constant(inst60000011) -// CHECK:STDOUT: inst60000019: concrete_constant(inst60000019) -// CHECK:STDOUT: inst6000001A: concrete_constant(inst6000001B) +// CHECK:STDOUT: inst60000016: concrete_constant(inst60000010) +// CHECK:STDOUT: inst60000017: concrete_constant(inst60000010) +// CHECK:STDOUT: inst60000018: concrete_constant(inst60000018) +// CHECK:STDOUT: inst60000019: concrete_constant(inst6000001A) +// CHECK:STDOUT: inst6000001A: concrete_constant(inst6000001A) // CHECK:STDOUT: inst6000001B: concrete_constant(inst6000001B) -// CHECK:STDOUT: inst6000001C: concrete_constant(inst6000001C) -// CHECK:STDOUT: inst6000001D: concrete_constant(inst6000000F) -// CHECK:STDOUT: inst6000001E: concrete_constant(inst6000000F) -// CHECK:STDOUT: inst6000001F: concrete_constant(inst60000019) +// CHECK:STDOUT: inst6000001C: concrete_constant(inst6000000E) +// CHECK:STDOUT: inst6000001D: concrete_constant(inst6000000E) +// CHECK:STDOUT: inst6000001E: concrete_constant(inst60000018) +// CHECK:STDOUT: inst6000001F: concrete_constant(inst6000001F) // CHECK:STDOUT: inst60000020: concrete_constant(inst60000020) // CHECK:STDOUT: inst60000021: concrete_constant(inst60000021) -// CHECK:STDOUT: inst60000022: concrete_constant(inst60000022) -// CHECK:STDOUT: inst60000024: concrete_constant(inst6000000F) -// CHECK:STDOUT: inst60000027: concrete_constant(inst60000029) +// CHECK:STDOUT: inst60000023: concrete_constant(inst6000000E) +// CHECK:STDOUT: inst60000026: concrete_constant(inst60000028) +// CHECK:STDOUT: inst60000027: concrete_constant(inst60000027) // CHECK:STDOUT: inst60000028: concrete_constant(inst60000028) -// CHECK:STDOUT: inst60000029: concrete_constant(inst60000029) -// CHECK:STDOUT: inst6000002B: concrete_constant(inst60000011) -// CHECK:STDOUT: inst6000002E: concrete_constant(inst60000011) -// CHECK:STDOUT: inst6000002F: concrete_constant(inst60000011) -// CHECK:STDOUT: inst60000031: concrete_constant(inst60000011) -// CHECK:STDOUT: inst60000032: concrete_constant(inst60000011) -// CHECK:STDOUT: inst60000033: concrete_constant(inst6000001B) -// CHECK:STDOUT: inst60000034: concrete_constant(inst6000001B) +// CHECK:STDOUT: inst6000002A: concrete_constant(inst60000010) +// CHECK:STDOUT: inst6000002D: concrete_constant(inst60000010) +// CHECK:STDOUT: inst6000002E: concrete_constant(inst60000010) +// CHECK:STDOUT: inst60000030: concrete_constant(inst60000010) +// CHECK:STDOUT: inst60000031: concrete_constant(inst60000010) +// CHECK:STDOUT: inst60000032: concrete_constant(inst6000001A) +// CHECK:STDOUT: inst60000033: concrete_constant(inst6000001A) // CHECK:STDOUT: symbolic_constants: {} // CHECK:STDOUT: inst_blocks: // CHECK:STDOUT: inst_block_empty: {} // CHECK:STDOUT: exports: -// CHECK:STDOUT: 0: inst60000027 +// CHECK:STDOUT: 0: inst60000026 // CHECK:STDOUT: imports: {} // CHECK:STDOUT: global_init: {} // CHECK:STDOUT: inst_block60000004: -// CHECK:STDOUT: 0: inst60000010 -// CHECK:STDOUT: 1: inst60000012 -// CHECK:STDOUT: inst_block60000005: -// CHECK:STDOUT: 0: inst60000016 -// CHECK:STDOUT: inst_block60000006: -// CHECK:STDOUT: 0: inst60000017 -// CHECK:STDOUT: 1: inst60000018 -// CHECK:STDOUT: inst_block60000007: // CHECK:STDOUT: 0: inst6000000F -// CHECK:STDOUT: 1: inst6000000F -// CHECK:STDOUT: inst_block60000008: -// CHECK:STDOUT: 0: inst60000011 // CHECK:STDOUT: 1: inst60000011 -// CHECK:STDOUT: inst_block60000009: -// CHECK:STDOUT: 0: inst6000001D -// CHECK:STDOUT: 1: inst6000001E -// CHECK:STDOUT: inst_block6000000A: -// CHECK:STDOUT: 0: inst60000023 -// CHECK:STDOUT: 1: inst60000025 -// CHECK:STDOUT: inst_block6000000B: +// CHECK:STDOUT: inst_block60000005: // CHECK:STDOUT: 0: inst60000015 -// CHECK:STDOUT: 1: inst60000016 -// CHECK:STDOUT: 2: inst60000021 -// CHECK:STDOUT: 3: inst60000022 +// CHECK:STDOUT: inst_block60000006: +// CHECK:STDOUT: 0: inst60000016 +// CHECK:STDOUT: 1: inst60000017 +// CHECK:STDOUT: inst_block60000007: +// CHECK:STDOUT: 0: inst6000000E +// CHECK:STDOUT: 1: inst6000000E +// CHECK:STDOUT: inst_block60000008: +// CHECK:STDOUT: 0: inst60000010 +// CHECK:STDOUT: 1: inst60000010 +// CHECK:STDOUT: inst_block60000009: +// CHECK:STDOUT: 0: inst6000001C +// CHECK:STDOUT: 1: inst6000001D +// CHECK:STDOUT: inst_block6000000A: +// CHECK:STDOUT: 0: inst60000022 +// CHECK:STDOUT: 1: inst60000024 +// CHECK:STDOUT: inst_block6000000B: +// CHECK:STDOUT: 0: inst60000014 +// CHECK:STDOUT: 1: inst60000015 +// CHECK:STDOUT: 2: inst60000020 +// CHECK:STDOUT: 3: inst60000021 // CHECK:STDOUT: inst_block6000000C: -// CHECK:STDOUT: 0: inst60000017 -// CHECK:STDOUT: 1: inst60000018 -// CHECK:STDOUT: 2: inst6000001A -// CHECK:STDOUT: 3: inst6000001D -// CHECK:STDOUT: 4: inst6000001E -// CHECK:STDOUT: 5: inst6000001F -// CHECK:STDOUT: 6: inst60000023 -// CHECK:STDOUT: 7: inst60000024 -// CHECK:STDOUT: 8: inst60000013 -// CHECK:STDOUT: 9: inst60000025 -// CHECK:STDOUT: 10: inst60000026 +// CHECK:STDOUT: 0: inst60000016 +// CHECK:STDOUT: 1: inst60000017 +// CHECK:STDOUT: 2: inst60000019 +// CHECK:STDOUT: 3: inst6000001C +// CHECK:STDOUT: 4: inst6000001D +// CHECK:STDOUT: 5: inst6000001E +// CHECK:STDOUT: 6: inst60000022 +// CHECK:STDOUT: 7: inst60000023 +// CHECK:STDOUT: 8: inst60000012 +// CHECK:STDOUT: 9: inst60000024 +// CHECK:STDOUT: 10: inst60000025 // CHECK:STDOUT: inst_block6000000D: -// CHECK:STDOUT: 0: inst6000002A -// CHECK:STDOUT: 1: inst6000002B -// CHECK:STDOUT: 2: inst6000002C -// CHECK:STDOUT: 3: inst6000002D -// CHECK:STDOUT: 4: inst6000002E -// CHECK:STDOUT: 5: inst6000002F -// CHECK:STDOUT: 6: inst60000030 -// CHECK:STDOUT: 7: inst60000031 -// CHECK:STDOUT: 8: inst60000032 -// CHECK:STDOUT: 9: inst60000033 -// CHECK:STDOUT: 10: inst60000034 -// CHECK:STDOUT: 11: inst60000035 +// CHECK:STDOUT: 0: inst60000029 +// CHECK:STDOUT: 1: inst6000002A +// CHECK:STDOUT: 2: inst6000002B +// CHECK:STDOUT: 3: inst6000002C +// CHECK:STDOUT: 4: inst6000002D +// CHECK:STDOUT: 5: inst6000002E +// CHECK:STDOUT: 6: inst6000002F +// CHECK:STDOUT: 7: inst60000030 +// CHECK:STDOUT: 8: inst60000031 +// CHECK:STDOUT: 9: inst60000032 +// CHECK:STDOUT: 10: inst60000033 +// CHECK:STDOUT: 11: inst60000034 // CHECK:STDOUT: inst_block6000000E: -// CHECK:STDOUT: 0: inst6000002A -// CHECK:STDOUT: 1: inst6000002B +// CHECK:STDOUT: 0: inst60000029 +// CHECK:STDOUT: 1: inst6000002A // CHECK:STDOUT: inst_block6000000F: {} // CHECK:STDOUT: inst_block60000010: -// CHECK:STDOUT: 0: inst6000002F -// CHECK:STDOUT: 1: inst60000032 +// CHECK:STDOUT: 0: inst6000002E +// CHECK:STDOUT: 1: inst60000031 // CHECK:STDOUT: inst_block60000011: -// CHECK:STDOUT: 0: instE -// CHECK:STDOUT: 1: inst60000027 +// CHECK:STDOUT: 0: instD +// CHECK:STDOUT: 1: inst60000026 // CHECK:STDOUT: ... // CHECK:STDOUT: --- one_file_with_textual_ir.carbon // CHECK:STDOUT: diff --git a/toolchain/check/testdata/interop/cpp/function/decayed_param.carbon b/toolchain/check/testdata/interop/cpp/function/decayed_param.carbon index 628e9f096c58..26672d36c4cc 100644 --- a/toolchain/check/testdata/interop/cpp/function/decayed_param.carbon +++ b/toolchain/check/testdata/interop/cpp/function/decayed_param.carbon @@ -138,11 +138,11 @@ fn F() { // CHECK:STDOUT: %uninit: %Cpp.nullptr_t = uninitialized_value [concrete] // CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type.d80: type = fn_type @Cpp.nullptr_t.as.ImplicitAs.impl.Convert, @Cpp.nullptr_t.as.ImplicitAs.impl(%T.d9f) [symbolic] // CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.2ce: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type.d80 = struct_value () [symbolic] -// CHECK:STDOUT: %ImplicitAs.impl_witness.213: = impl_witness imports.%ImplicitAs.impl_witness_table.87f, @Cpp.nullptr_t.as.ImplicitAs.impl(%i32) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.eae: = impl_witness imports.%ImplicitAs.impl_witness_table.126, @Cpp.nullptr_t.as.ImplicitAs.impl(%i32) [concrete] // CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type.87f: type = fn_type @Cpp.nullptr_t.as.ImplicitAs.impl.Convert, @Cpp.nullptr_t.as.ImplicitAs.impl(%i32) [concrete] // CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.83e: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type.87f = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet.5e9: %ImplicitAs.type.534 = facet_value %Cpp.nullptr_t, (%ImplicitAs.impl_witness.213) [concrete] -// CHECK:STDOUT: %.28d: type = fn_type_with_self_type %ImplicitAs.Convert.type.8fe, %ImplicitAs.facet.5e9 [concrete] +// CHECK:STDOUT: %ImplicitAs.facet.4bf: %ImplicitAs.type.534 = facet_value %Cpp.nullptr_t, (%ImplicitAs.impl_witness.eae) [concrete] +// CHECK:STDOUT: %.164: type = fn_type_with_self_type %ImplicitAs.Convert.type.8fe, %ImplicitAs.facet.4bf [concrete] // CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.bound: = bound_method %uninit, %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.83e [concrete] // CHECK:STDOUT: %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.83e, @Cpp.nullptr_t.as.ImplicitAs.impl.Convert(%i32) [concrete] // CHECK:STDOUT: %bound_method.ed9: = bound_method %uninit, %Cpp.nullptr_t.as.ImplicitAs.impl.Convert.specific_fn [concrete] @@ -185,8 +185,8 @@ fn F() { // CHECK:STDOUT: %ImplicitAs.impl_witness_table.da6 = impl_witness_table (%Core.import_ref.ec9), @U.binding.as_type.as.ImplicitAs.impl.ea7 [concrete] // CHECK:STDOUT: %Core.import_ref.7fb: @T.binding.as_type.as.OptionalAs.impl.%T.binding.as_type.as.OptionalAs.impl.Convert.type (%T.binding.as_type.as.OptionalAs.impl.Convert.type.8c6) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @T.binding.as_type.as.OptionalAs.impl.%T.binding.as_type.as.OptionalAs.impl.Convert (constants.%T.binding.as_type.as.OptionalAs.impl.Convert.180)] // CHECK:STDOUT: %OptionalAs.impl_witness_table.8ee = impl_witness_table (%Core.import_ref.7fb), @T.binding.as_type.as.OptionalAs.impl [concrete] -// CHECK:STDOUT: %Core.import_ref.54b: @Cpp.nullptr_t.as.ImplicitAs.impl.%Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type (%Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type.d80) = import_ref Core//prelude/types/cpp/nullptr, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.nullptr_t.as.ImplicitAs.impl.%Cpp.nullptr_t.as.ImplicitAs.impl.Convert (constants.%Cpp.nullptr_t.as.ImplicitAs.impl.Convert.2ce)] -// CHECK:STDOUT: %ImplicitAs.impl_witness_table.87f = impl_witness_table (%Core.import_ref.54b), @Cpp.nullptr_t.as.ImplicitAs.impl [concrete] +// CHECK:STDOUT: %Core.import_ref.9b7: @Cpp.nullptr_t.as.ImplicitAs.impl.%Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type (%Cpp.nullptr_t.as.ImplicitAs.impl.Convert.type.d80) = import_ref Core//prelude/types/cpp/nullptr, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.nullptr_t.as.ImplicitAs.impl.%Cpp.nullptr_t.as.ImplicitAs.impl.Convert (constants.%Cpp.nullptr_t.as.ImplicitAs.impl.Convert.2ce)] +// CHECK:STDOUT: %ImplicitAs.impl_witness_table.126 = impl_witness_table (%Core.import_ref.9b7), @Cpp.nullptr_t.as.ImplicitAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @F() { @@ -233,7 +233,7 @@ fn F() { // CHECK:STDOUT: %Cpp.ref.loc13_18: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: // CHECK:STDOUT: %nullptr.ref: %Cpp.nullptr_t = name_ref nullptr, %uninit [concrete = constants.%uninit] -// CHECK:STDOUT: %impl.elem0.loc13: %.28d = impl_witness_access constants.%ImplicitAs.impl_witness.213, element0 [concrete = constants.%Cpp.nullptr_t.as.ImplicitAs.impl.Convert.83e] +// CHECK:STDOUT: %impl.elem0.loc13: %.164 = impl_witness_access constants.%ImplicitAs.impl_witness.eae, element0 [concrete = constants.%Cpp.nullptr_t.as.ImplicitAs.impl.Convert.83e] // CHECK:STDOUT: %bound_method.loc13_21.1: = bound_method %nullptr.ref, %impl.elem0.loc13 [concrete = constants.%Cpp.nullptr_t.as.ImplicitAs.impl.Convert.bound] // CHECK:STDOUT: %specific_fn.loc13: = specific_function %impl.elem0.loc13, @Cpp.nullptr_t.as.ImplicitAs.impl.Convert(constants.%i32) [concrete = constants.%Cpp.nullptr_t.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc13_21.2: = bound_method %nullptr.ref, %specific_fn.loc13 [concrete = constants.%bound_method.ed9] diff --git a/toolchain/check/testdata/interop/cpp/function/void_pointer.carbon b/toolchain/check/testdata/interop/cpp/function/void_pointer.carbon index b770d5dc7810..63c58ef2453c 100644 --- a/toolchain/check/testdata/interop/cpp/function/void_pointer.carbon +++ b/toolchain/check/testdata/interop/cpp/function/void_pointer.carbon @@ -84,19 +84,6 @@ fn F() { //@dump-sem-ir-end } -// --- fail_void.carbon - -library "[[@TEST_NAME]]"; - -import Cpp; - -// CHECK:STDERR: fail_void.carbon:[[@LINE+5]]:6: error: parameter has incomplete type `Cpp.void` in function definition [IncompleteTypeInFunctionParam] -// CHECK:STDERR: fn F(x: Cpp.void) {} -// CHECK:STDERR: ^~~~~~~~~~~ -// CHECK:STDERR: fail_void.carbon: note: `Cpp.void` is always-incomplete [CppVoidIncomplete] -// CHECK:STDERR: -fn F(x: Cpp.void) {} - // --- non_nullable_pointer.carbon library "[[@TEST_NAME]]"; @@ -133,7 +120,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %ptr: type = ptr_type Cpp.void [concrete] +// CHECK:STDOUT: %Cpp.void: type = class_type @VoidBase [concrete] +// CHECK:STDOUT: %ptr: type = ptr_type %Cpp.void [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] @@ -142,7 +130,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Cpp: = namespace file.%Cpp.import_cpp, [concrete] { -// CHECK:STDOUT: .void = Cpp.void +// CHECK:STDOUT: .void = constants.%Cpp.void // CHECK:STDOUT: .foo = %foo.cpp_overload_set.value // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } @@ -166,7 +154,8 @@ fn F() { // CHECK:STDOUT: --- non_nullable_return_value.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %ptr: type = ptr_type Cpp.void [concrete] +// CHECK:STDOUT: %Cpp.void: type = class_type @VoidBase [concrete] +// CHECK:STDOUT: %ptr: type = ptr_type %Cpp.void [concrete] // CHECK:STDOUT: %pattern_type: type = pattern_type %ptr [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] @@ -176,7 +165,7 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Cpp: = namespace file.%Cpp.import_cpp, [concrete] { -// CHECK:STDOUT: .void = Cpp.void +// CHECK:STDOUT: .void = constants.%Cpp.void // CHECK:STDOUT: .foo = %foo.cpp_overload_set.value // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } @@ -198,7 +187,7 @@ fn F() { // CHECK:STDOUT: %foo.call: init %ptr = call imports.%foo.decl() // CHECK:STDOUT: %.loc10_23: type = splice_block %ptr [concrete = constants.%ptr] { // CHECK:STDOUT: %Cpp.ref.loc10_15: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %void.ref: type = name_ref void, Cpp.void [concrete = Cpp.void] +// CHECK:STDOUT: %void.ref: type = name_ref void, constants.%Cpp.void [concrete = constants.%Cpp.void] // CHECK:STDOUT: %ptr: type = ptr_type %void.ref [concrete = constants.%ptr] // CHECK:STDOUT: } // CHECK:STDOUT: %.loc10_35.1: %ptr = value_of_initializer %foo.call @@ -211,7 +200,8 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %ptr.03c: type = ptr_type Cpp.void [concrete] +// CHECK:STDOUT: %Cpp.void: type = class_type @VoidBase [concrete] +// CHECK:STDOUT: %ptr.874: type = ptr_type %Cpp.void [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %OptionalStorage.type: type = facet_type <@OptionalStorage> [concrete] @@ -222,36 +212,36 @@ fn F() { // CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.type.911: type = fn_type @ptr.as.OptionalStorage.impl.Some, @ptr.as.OptionalStorage.impl(%T.d9f) [symbolic] // CHECK:STDOUT: %ptr.as.OptionalStorage.impl.Some.2a0: %ptr.as.OptionalStorage.impl.Some.type.911 = struct_value () [symbolic] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] -// CHECK:STDOUT: %OptionalStorage.impl_witness.a64: = impl_witness imports.%OptionalStorage.impl_witness_table.236, @ptr.as.OptionalStorage.impl(Cpp.void) [concrete] -// CHECK:STDOUT: %OptionalStorage.facet.e2a: %OptionalStorage.type = facet_value %ptr.03c, (%OptionalStorage.impl_witness.a64) [concrete] -// CHECK:STDOUT: %Optional.75d: type = class_type @Optional, @Optional(%OptionalStorage.facet.e2a) [concrete] +// CHECK:STDOUT: %OptionalStorage.impl_witness.cc2: = impl_witness imports.%OptionalStorage.impl_witness_table.236, @ptr.as.OptionalStorage.impl(%Cpp.void) [concrete] +// CHECK:STDOUT: %OptionalStorage.facet.2f5: %OptionalStorage.type = facet_value %ptr.874, (%OptionalStorage.impl_witness.cc2) [concrete] +// CHECK:STDOUT: %Optional.eca: type = class_type @Optional, @Optional(%OptionalStorage.facet.2f5) [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.type.707: type = facet_type <@ImplicitAs, @ImplicitAs(%Optional.75d)> [concrete] -// CHECK:STDOUT: %ImplicitAs.Convert.type.465: type = fn_type @ImplicitAs.Convert, @ImplicitAs(%Optional.75d) [concrete] +// CHECK:STDOUT: %ImplicitAs.type.ab3: type = facet_type <@ImplicitAs, @ImplicitAs(%Optional.eca)> [concrete] +// CHECK:STDOUT: %ImplicitAs.Convert.type.142: type = fn_type @ImplicitAs.Convert, @ImplicitAs(%Optional.eca) [concrete] // CHECK:STDOUT: %OptionalAs.type.593: type = facet_type <@OptionalAs, @OptionalAs(%T.3fe)> [symbolic] // CHECK:STDOUT: %U.ec3: %OptionalAs.type.593 = symbolic_binding U, 1 [symbolic] // CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.type.855: type = fn_type @U.binding.as_type.as.ImplicitAs.impl.Convert.2, @U.binding.as_type.as.ImplicitAs.impl.ea7(%T.3fe, %U.ec3) [symbolic] // CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.337: %U.binding.as_type.as.ImplicitAs.impl.Convert.type.855 = struct_value () [symbolic] -// CHECK:STDOUT: %OptionalAs.type.a25: type = facet_type <@OptionalAs, @OptionalAs(%OptionalStorage.facet.e2a)> [concrete] +// CHECK:STDOUT: %OptionalAs.type.716: type = facet_type <@OptionalAs, @OptionalAs(%OptionalStorage.facet.2f5)> [concrete] // CHECK:STDOUT: %T.binding.as_type.as.OptionalAs.impl.Convert.type.8c6: type = fn_type @T.binding.as_type.as.OptionalAs.impl.Convert, @T.binding.as_type.as.OptionalAs.impl(%T.3fe) [symbolic] // CHECK:STDOUT: %T.binding.as_type.as.OptionalAs.impl.Convert.180: %T.binding.as_type.as.OptionalAs.impl.Convert.type.8c6 = struct_value () [symbolic] -// CHECK:STDOUT: %OptionalAs.impl_witness.c4d: = impl_witness imports.%OptionalAs.impl_witness_table.8ee, @T.binding.as_type.as.OptionalAs.impl(%OptionalStorage.facet.e2a) [concrete] -// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.a25 = facet_value %ptr.03c, (%OptionalAs.impl_witness.c4d) [concrete] -// CHECK:STDOUT: %ImplicitAs.impl_witness.354: = impl_witness imports.%ImplicitAs.impl_witness_table.da6, @U.binding.as_type.as.ImplicitAs.impl.ea7(%OptionalStorage.facet.e2a, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.type.efe: type = fn_type @U.binding.as_type.as.ImplicitAs.impl.Convert.2, @U.binding.as_type.as.ImplicitAs.impl.ea7(%OptionalStorage.facet.e2a, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.aa4: %U.binding.as_type.as.ImplicitAs.impl.Convert.type.efe = struct_value () [concrete] -// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.707 = facet_value %ptr.03c, (%ImplicitAs.impl_witness.354) [concrete] -// CHECK:STDOUT: %.120: type = fn_type_with_self_type %ImplicitAs.Convert.type.465, %ImplicitAs.facet [concrete] -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %U.binding.as_type.as.ImplicitAs.impl.Convert.aa4, @U.binding.as_type.as.ImplicitAs.impl.Convert.2(%OptionalStorage.facet.e2a, %OptionalAs.facet) [concrete] -// CHECK:STDOUT: %facet_value.9af: %type_where = facet_value %Optional.75d, () [concrete] -// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.773: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.9af) [concrete] -// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.9de: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.773 = struct_value () [concrete] +// CHECK:STDOUT: %OptionalAs.impl_witness.049: = impl_witness imports.%OptionalAs.impl_witness_table.8ee, @T.binding.as_type.as.OptionalAs.impl(%OptionalStorage.facet.2f5) [concrete] +// CHECK:STDOUT: %OptionalAs.facet: %OptionalAs.type.716 = facet_value %ptr.874, (%OptionalAs.impl_witness.049) [concrete] +// CHECK:STDOUT: %ImplicitAs.impl_witness.53b: = impl_witness imports.%ImplicitAs.impl_witness_table.da6, @U.binding.as_type.as.ImplicitAs.impl.ea7(%OptionalStorage.facet.2f5, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.type.92a: type = fn_type @U.binding.as_type.as.ImplicitAs.impl.Convert.2, @U.binding.as_type.as.ImplicitAs.impl.ea7(%OptionalStorage.facet.2f5, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.2ca: %U.binding.as_type.as.ImplicitAs.impl.Convert.type.92a = struct_value () [concrete] +// CHECK:STDOUT: %ImplicitAs.facet: %ImplicitAs.type.ab3 = facet_value %ptr.874, (%ImplicitAs.impl_witness.53b) [concrete] +// CHECK:STDOUT: %.1ad: type = fn_type_with_self_type %ImplicitAs.Convert.type.142, %ImplicitAs.facet [concrete] +// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.specific_fn: = specific_function %U.binding.as_type.as.ImplicitAs.impl.Convert.2ca, @U.binding.as_type.as.ImplicitAs.impl.Convert.2(%OptionalStorage.facet.2f5, %OptionalAs.facet) [concrete] +// CHECK:STDOUT: %facet_value.87a: %type_where = facet_value %Optional.eca, () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.f05: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.87a) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.afe: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.f05 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Cpp: = namespace file.%Cpp.import_cpp, [concrete] { -// CHECK:STDOUT: .void = Cpp.void +// CHECK:STDOUT: .void = constants.%Cpp.void // CHECK:STDOUT: .foo = %foo.cpp_overload_set.value // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } @@ -266,10 +256,10 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: } { // CHECK:STDOUT: -// CHECK:STDOUT: %.loc10_16.1: type = splice_block %Optional [concrete = constants.%Optional.75d] { -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.03c, (constants.%OptionalStorage.impl_witness.a64) [concrete = constants.%OptionalStorage.facet.e2a] -// CHECK:STDOUT: %.loc10_16.2: %OptionalStorage.type = converted constants.%ptr.03c, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet.e2a] -// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.e2a) [concrete = constants.%Optional.75d] +// CHECK:STDOUT: %.loc10_16.1: type = splice_block %Optional [concrete = constants.%Optional.eca] { +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.874, (constants.%OptionalStorage.impl_witness.cc2) [concrete = constants.%OptionalStorage.facet.2f5] +// CHECK:STDOUT: %.loc10_16.2: %OptionalStorage.type = converted constants.%ptr.874, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet.2f5] +// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet.2f5) [concrete = constants.%Optional.eca] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: } @@ -279,22 +269,22 @@ fn F() { // CHECK:STDOUT: %OptionalAs.impl_witness_table.8ee = impl_witness_table (%Core.import_ref.7fb), @T.binding.as_type.as.OptionalAs.impl [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%input.param: %ptr.03c) { +// CHECK:STDOUT: fn @F(%input.param: %ptr.874) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %Cpp.ref.loc10: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] -// CHECK:STDOUT: %input.ref: %ptr.03c = name_ref input, %input -// CHECK:STDOUT: %impl.elem0: %.120 = impl_witness_access constants.%ImplicitAs.impl_witness.354, element0 [concrete = constants.%U.binding.as_type.as.ImplicitAs.impl.Convert.aa4] +// CHECK:STDOUT: %input.ref: %ptr.874 = name_ref input, %input +// CHECK:STDOUT: %impl.elem0: %.1ad = impl_witness_access constants.%ImplicitAs.impl_witness.53b, element0 [concrete = constants.%U.binding.as_type.as.ImplicitAs.impl.Convert.2ca] // CHECK:STDOUT: %bound_method.loc10_11.1: = bound_method %input.ref, %impl.elem0 -// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @U.binding.as_type.as.ImplicitAs.impl.Convert.2(constants.%OptionalStorage.facet.e2a, constants.%OptionalAs.facet) [concrete = constants.%U.binding.as_type.as.ImplicitAs.impl.Convert.specific_fn] +// CHECK:STDOUT: %specific_fn: = specific_function %impl.elem0, @U.binding.as_type.as.ImplicitAs.impl.Convert.2(constants.%OptionalStorage.facet.2f5, constants.%OptionalAs.facet) [concrete = constants.%U.binding.as_type.as.ImplicitAs.impl.Convert.specific_fn] // CHECK:STDOUT: %bound_method.loc10_11.2: = bound_method %input.ref, %specific_fn -// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.call: init %Optional.75d = call %bound_method.loc10_11.2(%input.ref) -// CHECK:STDOUT: %.loc10_11.1: init %Optional.75d = converted %input.ref, %U.binding.as_type.as.ImplicitAs.impl.Convert.call -// CHECK:STDOUT: %.loc10_11.2: ref %Optional.75d = temporary_storage -// CHECK:STDOUT: %.loc10_11.3: ref %Optional.75d = temporary %.loc10_11.2, %.loc10_11.1 -// CHECK:STDOUT: %.loc10_11.4: %Optional.75d = acquire_value %.loc10_11.3 +// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.call: init %Optional.eca = call %bound_method.loc10_11.2(%input.ref) +// CHECK:STDOUT: %.loc10_11.1: init %Optional.eca = converted %input.ref, %U.binding.as_type.as.ImplicitAs.impl.Convert.call +// CHECK:STDOUT: %.loc10_11.2: ref %Optional.eca = temporary_storage +// CHECK:STDOUT: %.loc10_11.3: ref %Optional.eca = temporary %.loc10_11.2, %.loc10_11.1 +// CHECK:STDOUT: %.loc10_11.4: %Optional.eca = acquire_value %.loc10_11.3 // CHECK:STDOUT: %foo.call: init %empty_tuple.type = call imports.%foo.decl(%.loc10_11.4) -// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc10_11.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.9de +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc10_11.3, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.afe // CHECK:STDOUT: // CHECK:STDOUT: %bound_method.loc10_11.3: = bound_method %.loc10_11.3, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method.loc10_11.3(%.loc10_11.3) @@ -312,34 +302,43 @@ fn F() { // CHECK:STDOUT: %T.3fe: %OptionalStorage.type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %Optional.None.type.193: type = fn_type @Optional.None, @Optional(%T.3fe) [symbolic] // CHECK:STDOUT: %Optional.None.dc7: %Optional.None.type.193 = struct_value () [symbolic] -// CHECK:STDOUT: %ptr.03c: type = ptr_type Cpp.void [concrete] +// CHECK:STDOUT: %Cpp.void: type = class_type @VoidBase [concrete] +// CHECK:STDOUT: %ptr.874: type = ptr_type %Cpp.void [concrete] // CHECK:STDOUT: %T.d9f: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %ptr.4f0: type = ptr_type %T.d9f [symbolic] // CHECK:STDOUT: %MaybeUnformed.cff: type = class_type @MaybeUnformed, @MaybeUnformed(%ptr.4f0) [symbolic] // CHECK:STDOUT: %ptr.as.OptionalStorage.impl.None.type.8ed: type = fn_type @ptr.as.OptionalStorage.impl.None, @ptr.as.OptionalStorage.impl(%T.d9f) [symbolic] // CHECK:STDOUT: %ptr.as.OptionalStorage.impl.None.41a: %ptr.as.OptionalStorage.impl.None.type.8ed = struct_value () [symbolic] -// CHECK:STDOUT: %OptionalStorage.impl_witness.328: = impl_witness imports.%OptionalStorage.impl_witness_table.f52, @ptr.as.OptionalStorage.impl(Cpp.void) [concrete] -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr.03c, (%OptionalStorage.impl_witness.328) [concrete] -// CHECK:STDOUT: %Optional.db3: type = class_type @Optional, @Optional(%OptionalStorage.facet) [concrete] -// CHECK:STDOUT: %Optional.None.type.623: type = fn_type @Optional.None, @Optional(%OptionalStorage.facet) [concrete] -// CHECK:STDOUT: %Optional.None.97f: %Optional.None.type.623 = struct_value () [concrete] -// CHECK:STDOUT: %Optional.None.specific_fn: = specific_function %Optional.None.97f, @Optional.None(%OptionalStorage.facet) [concrete] +// CHECK:STDOUT: %OptionalStorage.impl_witness.ab6: = impl_witness imports.%OptionalStorage.impl_witness_table.f52, @ptr.as.OptionalStorage.impl(%Cpp.void) [concrete] +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr.874, (%OptionalStorage.impl_witness.ab6) [concrete] +// CHECK:STDOUT: %Optional.082: type = class_type @Optional, @Optional(%OptionalStorage.facet) [concrete] +// CHECK:STDOUT: %Optional.None.type.fe0: type = fn_type @Optional.None, @Optional(%OptionalStorage.facet) [concrete] +// CHECK:STDOUT: %Optional.None.a64: %Optional.None.type.fe0 = struct_value () [concrete] +// CHECK:STDOUT: %Optional.None.specific_fn: = specific_function %Optional.None.a64, @Optional.None(%OptionalStorage.facet) [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [concrete] { // CHECK:STDOUT: .Optional = %Core.Optional +// CHECK:STDOUT: .CppCompat = %CppCompat.c59 // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp: = namespace file.%Cpp.import_cpp, [concrete] { // CHECK:STDOUT: .foo = %foo.cpp_overload_set.value -// CHECK:STDOUT: .void = Cpp.void +// CHECK:STDOUT: .void = constants.%Cpp.void // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete = constants.%foo.cpp_overload_set.value] // CHECK:STDOUT: %Core.Optional: %Optional.type = import_ref Core//prelude/types/optional, Optional, loaded [concrete = constants.%Optional.generic] // CHECK:STDOUT: %Core.import_ref.f1d: @Optional.%Optional.None.type (%Optional.None.type.193) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @Optional.%Optional.None (constants.%Optional.None.dc7)] +// CHECK:STDOUT: %Core.CppCompat: = import_ref Core//prelude, CppCompat, loaded +// CHECK:STDOUT: %CppCompat.c59: = namespace %Core.CppCompat, [concrete] { +// CHECK:STDOUT: .VoidBase = %Core.VoidBase +// CHECK:STDOUT: import Core//prelude +// CHECK:STDOUT: import Core//prelude/... +// CHECK:STDOUT: } +// CHECK:STDOUT: %Core.VoidBase: type = import_ref Core//prelude/types/cpp/void, VoidBase, loaded [concrete = constants.%Cpp.void] // CHECK:STDOUT: %Core.import_ref.2fb: type = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.OptionalStorage.impl.%MaybeUnformed (constants.%MaybeUnformed.cff)] // CHECK:STDOUT: %Core.import_ref.1d4: @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.None.type (%ptr.as.OptionalStorage.impl.None.type.8ed) = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.OptionalStorage.impl.%ptr.as.OptionalStorage.impl.None (constants.%ptr.as.OptionalStorage.impl.None.41a)] // CHECK:STDOUT: %Core.import_ref.720 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded @@ -355,15 +354,15 @@ fn F() { // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Optional.ref: %Optional.type = name_ref Optional, imports.%Core.Optional [concrete = constants.%Optional.generic] // CHECK:STDOUT: %Cpp.ref.loc14_25: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %void.ref: type = name_ref void, Cpp.void [concrete = Cpp.void] -// CHECK:STDOUT: %ptr: type = ptr_type %void.ref [concrete = constants.%ptr.03c] -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr, (constants.%OptionalStorage.impl_witness.328) [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %void.ref: type = name_ref void, constants.%Cpp.void [concrete = constants.%Cpp.void] +// CHECK:STDOUT: %ptr: type = ptr_type %void.ref [concrete = constants.%ptr.874] +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr, (constants.%OptionalStorage.impl_witness.ab6) [concrete = constants.%OptionalStorage.facet] // CHECK:STDOUT: %.loc14_34: %OptionalStorage.type = converted %ptr, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet] -// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.db3] -// CHECK:STDOUT: %.loc14_35: %Optional.None.type.623 = specific_constant imports.%Core.import_ref.f1d, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.None.97f] -// CHECK:STDOUT: %None.ref: %Optional.None.type.623 = name_ref None, %.loc14_35 [concrete = constants.%Optional.None.97f] +// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.082] +// CHECK:STDOUT: %.loc14_35: %Optional.None.type.fe0 = specific_constant imports.%Core.import_ref.f1d, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.None.a64] +// CHECK:STDOUT: %None.ref: %Optional.None.type.fe0 = name_ref None, %.loc14_35 [concrete = constants.%Optional.None.a64] // CHECK:STDOUT: %Optional.None.specific_fn: = specific_function %None.ref, @Optional.None(constants.%OptionalStorage.facet) [concrete = constants.%Optional.None.specific_fn] -// CHECK:STDOUT: %Optional.None.call: init %Optional.db3 = call %Optional.None.specific_fn() +// CHECK:STDOUT: %Optional.None.call: init %Optional.082 = call %Optional.None.specific_fn() // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -374,38 +373,47 @@ fn F() { // CHECK:STDOUT: %Optional.type: type = generic_class_type @Optional [concrete] // CHECK:STDOUT: %Optional.generic: %Optional.type = struct_value () [concrete] // CHECK:STDOUT: %OptionalStorage.type: type = facet_type <@OptionalStorage> [concrete] -// CHECK:STDOUT: %ptr.03c: type = ptr_type Cpp.void [concrete] +// CHECK:STDOUT: %Cpp.void: type = class_type @VoidBase [concrete] +// CHECK:STDOUT: %ptr.874: type = ptr_type %Cpp.void [concrete] // CHECK:STDOUT: %T.d9f: type = symbolic_binding T, 0 [symbolic] // CHECK:STDOUT: %ptr.4f0: type = ptr_type %T.d9f [symbolic] // CHECK:STDOUT: %MaybeUnformed.cff: type = class_type @MaybeUnformed, @MaybeUnformed(%ptr.4f0) [symbolic] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %Destroy.type: type = facet_type <@Destroy> [concrete] -// CHECK:STDOUT: %OptionalStorage.impl_witness.e1a: = impl_witness imports.%OptionalStorage.impl_witness_table.2f8, @ptr.as.OptionalStorage.impl(Cpp.void) [concrete] -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr.03c, (%OptionalStorage.impl_witness.e1a) [concrete] -// CHECK:STDOUT: %Optional.af8: type = class_type @Optional, @Optional(%OptionalStorage.facet) [concrete] -// CHECK:STDOUT: %pattern_type.f90: type = pattern_type %Optional.af8 [concrete] +// CHECK:STDOUT: %OptionalStorage.impl_witness.0b2: = impl_witness imports.%OptionalStorage.impl_witness_table.2f8, @ptr.as.OptionalStorage.impl(%Cpp.void) [concrete] +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr.874, (%OptionalStorage.impl_witness.0b2) [concrete] +// CHECK:STDOUT: %Optional.158: type = class_type @Optional, @Optional(%OptionalStorage.facet) [concrete] +// CHECK:STDOUT: %pattern_type.005: type = pattern_type %Optional.158 [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.type: type = cpp_overload_set_type @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.cpp_overload_set.value: %foo.cpp_overload_set.type = cpp_overload_set_value @foo.cpp_overload_set [concrete] // CHECK:STDOUT: %foo.type: type = fn_type @foo [concrete] // CHECK:STDOUT: %foo: %foo.type = struct_value () [concrete] -// CHECK:STDOUT: %facet_value.2d8: %type_where = facet_value %Optional.af8, () [concrete] -// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.d7f: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.2d8) [concrete] -// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.7ff: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.d7f = struct_value () [concrete] +// CHECK:STDOUT: %facet_value.911: %type_where = facet_value %Optional.158, () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.99d: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value.911) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.df1: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.99d = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Core: = namespace file.%Core.import, [concrete] { // CHECK:STDOUT: .Optional = %Core.Optional +// CHECK:STDOUT: .CppCompat = %CppCompat.c59 // CHECK:STDOUT: .Destroy = %Core.Destroy // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp: = namespace file.%Cpp.import_cpp, [concrete] { -// CHECK:STDOUT: .void = Cpp.void +// CHECK:STDOUT: .void = constants.%Cpp.void // CHECK:STDOUT: .foo = %foo.cpp_overload_set.value // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Optional: %Optional.type = import_ref Core//prelude/types/optional, Optional, loaded [concrete = constants.%Optional.generic] +// CHECK:STDOUT: %Core.CppCompat: = import_ref Core//prelude, CppCompat, loaded +// CHECK:STDOUT: %CppCompat.c59: = namespace %Core.CppCompat, [concrete] { +// CHECK:STDOUT: .VoidBase = %Core.VoidBase +// CHECK:STDOUT: import Core//prelude +// CHECK:STDOUT: import Core//prelude/... +// CHECK:STDOUT: } +// CHECK:STDOUT: %Core.VoidBase: type = import_ref Core//prelude/types/cpp/void, VoidBase, loaded [concrete = constants.%Cpp.void] // CHECK:STDOUT: %Core.import_ref.2fb: type = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, loaded [symbolic = @ptr.as.OptionalStorage.impl.%MaybeUnformed (constants.%MaybeUnformed.cff)] // CHECK:STDOUT: %Core.import_ref.a7c = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded // CHECK:STDOUT: %Core.import_ref.720 = import_ref Core//prelude/types/optional, loc{{\d+_\d+}}, unloaded @@ -416,9 +424,9 @@ fn F() { // CHECK:STDOUT: %foo.decl: %foo.type = fn_decl @foo [concrete = constants.%foo] { // CHECK:STDOUT: // CHECK:STDOUT: } { -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.03c, (constants.%OptionalStorage.impl_witness.e1a) [concrete = constants.%OptionalStorage.facet] -// CHECK:STDOUT: %.loc10: %OptionalStorage.type = converted constants.%ptr.03c, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet] -// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.af8] +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value constants.%ptr.874, (constants.%OptionalStorage.impl_witness.0b2) [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %.loc10: %OptionalStorage.type = converted constants.%ptr.874, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.158] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/destroy, Destroy, loaded [concrete = constants.%Destroy.type] @@ -427,26 +435,26 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %output.patt: %pattern_type.f90 = value_binding_pattern output [concrete] +// CHECK:STDOUT: %output.patt: %pattern_type.005 = value_binding_pattern output [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %Cpp.ref.loc10_42: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %foo.ref: %foo.cpp_overload_set.type = name_ref foo, imports.%foo.cpp_overload_set.value [concrete = constants.%foo.cpp_overload_set.value] -// CHECK:STDOUT: %foo.call: init %Optional.af8 = call imports.%foo.decl() -// CHECK:STDOUT: %.loc10_38.1: type = splice_block %Optional [concrete = constants.%Optional.af8] { +// CHECK:STDOUT: %foo.call: init %Optional.158 = call imports.%foo.decl() +// CHECK:STDOUT: %.loc10_38.1: type = splice_block %Optional [concrete = constants.%Optional.158] { // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %Optional.ref: %Optional.type = name_ref Optional, imports.%Core.Optional [concrete = constants.%Optional.generic] // CHECK:STDOUT: %Cpp.ref.loc10_29: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %void.ref: type = name_ref void, Cpp.void [concrete = Cpp.void] -// CHECK:STDOUT: %ptr: type = ptr_type %void.ref [concrete = constants.%ptr.03c] -// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr, (constants.%OptionalStorage.impl_witness.e1a) [concrete = constants.%OptionalStorage.facet] +// CHECK:STDOUT: %void.ref: type = name_ref void, constants.%Cpp.void [concrete = constants.%Cpp.void] +// CHECK:STDOUT: %ptr: type = ptr_type %void.ref [concrete = constants.%ptr.874] +// CHECK:STDOUT: %OptionalStorage.facet: %OptionalStorage.type = facet_value %ptr, (constants.%OptionalStorage.impl_witness.0b2) [concrete = constants.%OptionalStorage.facet] // CHECK:STDOUT: %.loc10_38.2: %OptionalStorage.type = converted %ptr, %OptionalStorage.facet [concrete = constants.%OptionalStorage.facet] -// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.af8] +// CHECK:STDOUT: %Optional: type = class_type @Optional, @Optional(constants.%OptionalStorage.facet) [concrete = constants.%Optional.158] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc10_50.1: ref %Optional.af8 = temporary_storage -// CHECK:STDOUT: %.loc10_50.2: ref %Optional.af8 = temporary %.loc10_50.1, %foo.call -// CHECK:STDOUT: %.loc10_50.3: %Optional.af8 = acquire_value %.loc10_50.2 -// CHECK:STDOUT: %output: %Optional.af8 = value_binding output, %.loc10_50.3 -// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc10_50.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.7ff +// CHECK:STDOUT: %.loc10_50.1: ref %Optional.158 = temporary_storage +// CHECK:STDOUT: %.loc10_50.2: ref %Optional.158 = temporary %.loc10_50.1, %foo.call +// CHECK:STDOUT: %.loc10_50.3: %Optional.158 = acquire_value %.loc10_50.2 +// CHECK:STDOUT: %output: %Optional.158 = value_binding output, %.loc10_50.3 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %.loc10_50.2, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.df1 // CHECK:STDOUT: // CHECK:STDOUT: %bound_method: = bound_method %.loc10_50.2, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%.loc10_50.2) @@ -457,9 +465,10 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %ptr.03c: type = ptr_type Cpp.void [concrete] -// CHECK:STDOUT: %ptr.730: type = ptr_type %ptr.03c [concrete] -// CHECK:STDOUT: %pattern_type.283: type = pattern_type %ptr.730 [concrete] +// CHECK:STDOUT: %Cpp.void: type = class_type @VoidBase [concrete] +// CHECK:STDOUT: %ptr.874: type = ptr_type %Cpp.void [concrete] +// CHECK:STDOUT: %ptr.e0b: type = ptr_type %ptr.874 [concrete] +// CHECK:STDOUT: %pattern_type.21b: type = pattern_type %ptr.e0b [concrete] // CHECK:STDOUT: %Return.cpp_overload_set.type: type = cpp_overload_set_type @Return.cpp_overload_set [concrete] // CHECK:STDOUT: %Return.cpp_overload_set.value: %Return.cpp_overload_set.type = cpp_overload_set_value @Return.cpp_overload_set [concrete] // CHECK:STDOUT: %Return.type: type = fn_type @Return [concrete] @@ -469,14 +478,14 @@ fn F() { // CHECK:STDOUT: %Invoke.type: type = fn_type @Invoke [concrete] // CHECK:STDOUT: %Invoke: %Invoke.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] -// CHECK:STDOUT: %facet_value: %type_where = facet_value %ptr.730, () [concrete] -// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.7d6: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.62a: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.7d6 = struct_value () [concrete] +// CHECK:STDOUT: %facet_value: %type_where = facet_value %ptr.e0b, () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.40b: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.554: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.40b = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Cpp: = namespace file.%Cpp.import_cpp, [concrete] { -// CHECK:STDOUT: .void = Cpp.void +// CHECK:STDOUT: .void = constants.%Cpp.void // CHECK:STDOUT: .Return = %Return.cpp_overload_set.value // CHECK:STDOUT: .Invoke = %Invoke.cpp_overload_set.value // CHECK:STDOUT: import Cpp//... @@ -498,27 +507,27 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %non_nullable_pointer.patt: %pattern_type.283 = ref_binding_pattern non_nullable_pointer [concrete] -// CHECK:STDOUT: %non_nullable_pointer.var_patt: %pattern_type.283 = var_pattern %non_nullable_pointer.patt [concrete] +// CHECK:STDOUT: %non_nullable_pointer.patt: %pattern_type.21b = ref_binding_pattern non_nullable_pointer [concrete] +// CHECK:STDOUT: %non_nullable_pointer.var_patt: %pattern_type.21b = var_pattern %non_nullable_pointer.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %non_nullable_pointer.var: ref %ptr.730 = var %non_nullable_pointer.var_patt +// CHECK:STDOUT: %non_nullable_pointer.var: ref %ptr.e0b = var %non_nullable_pointer.var_patt // CHECK:STDOUT: %Cpp.ref.loc11_42: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Return.ref: %Return.cpp_overload_set.type = name_ref Return, imports.%Return.cpp_overload_set.value [concrete = constants.%Return.cpp_overload_set.value] -// CHECK:STDOUT: %Return.call: init %ptr.730 = call imports.%Return.decl() +// CHECK:STDOUT: %Return.call: init %ptr.e0b = call imports.%Return.decl() // CHECK:STDOUT: assign %non_nullable_pointer.var, %Return.call -// CHECK:STDOUT: %.loc11: type = splice_block %ptr.loc11_38 [concrete = constants.%ptr.730] { +// CHECK:STDOUT: %.loc11: type = splice_block %ptr.loc11_38 [concrete = constants.%ptr.e0b] { // CHECK:STDOUT: %Cpp.ref.loc11_29: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %void.ref: type = name_ref void, Cpp.void [concrete = Cpp.void] -// CHECK:STDOUT: %ptr.loc11_37: type = ptr_type %void.ref [concrete = constants.%ptr.03c] -// CHECK:STDOUT: %ptr.loc11_38: type = ptr_type %ptr.loc11_37 [concrete = constants.%ptr.730] +// CHECK:STDOUT: %void.ref: type = name_ref void, constants.%Cpp.void [concrete = constants.%Cpp.void] +// CHECK:STDOUT: %ptr.loc11_37: type = ptr_type %void.ref [concrete = constants.%ptr.874] +// CHECK:STDOUT: %ptr.loc11_38: type = ptr_type %ptr.loc11_37 [concrete = constants.%ptr.e0b] // CHECK:STDOUT: } -// CHECK:STDOUT: %non_nullable_pointer: ref %ptr.730 = ref_binding non_nullable_pointer, %non_nullable_pointer.var +// CHECK:STDOUT: %non_nullable_pointer: ref %ptr.e0b = ref_binding non_nullable_pointer, %non_nullable_pointer.var // CHECK:STDOUT: %Cpp.ref.loc12: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %Invoke.ref: %Invoke.cpp_overload_set.type = name_ref Invoke, imports.%Invoke.cpp_overload_set.value [concrete = constants.%Invoke.cpp_overload_set.value] -// CHECK:STDOUT: %non_nullable_pointer.ref: ref %ptr.730 = name_ref non_nullable_pointer, %non_nullable_pointer -// CHECK:STDOUT: %.loc12: %ptr.730 = acquire_value %non_nullable_pointer.ref +// CHECK:STDOUT: %non_nullable_pointer.ref: ref %ptr.e0b = name_ref non_nullable_pointer, %non_nullable_pointer +// CHECK:STDOUT: %.loc12: %ptr.e0b = acquire_value %non_nullable_pointer.ref // CHECK:STDOUT: %Invoke.call: init %empty_tuple.type = call imports.%Invoke.decl(%.loc12) -// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %non_nullable_pointer.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.62a +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %non_nullable_pointer.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.554 // CHECK:STDOUT: // CHECK:STDOUT: %bound_method: = bound_method %non_nullable_pointer.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%non_nullable_pointer.var) @@ -529,9 +538,10 @@ fn F() { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] -// CHECK:STDOUT: %const: type = const_type Cpp.void [concrete] +// CHECK:STDOUT: %Cpp.void: type = class_type @VoidBase [concrete] +// CHECK:STDOUT: %const: type = const_type %Cpp.void [concrete] // CHECK:STDOUT: %ptr: type = ptr_type %const [concrete] -// CHECK:STDOUT: %pattern_type.39c: type = pattern_type %ptr [concrete] +// CHECK:STDOUT: %pattern_type.972: type = pattern_type %ptr [concrete] // CHECK:STDOUT: %Return.cpp_overload_set.type: type = cpp_overload_set_type @Return.cpp_overload_set [concrete] // CHECK:STDOUT: %Return.cpp_overload_set.value: %Return.cpp_overload_set.type = cpp_overload_set_value @Return.cpp_overload_set [concrete] // CHECK:STDOUT: %Return.type: type = fn_type @Return [concrete] @@ -542,13 +552,13 @@ fn F() { // CHECK:STDOUT: %Invoke: %Invoke.type = struct_value () [concrete] // CHECK:STDOUT: %type_where: type = facet_type > [concrete] // CHECK:STDOUT: %facet_value: %type_where = facet_value %ptr, () [concrete] -// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.db8: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] -// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.a82: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.db8 = struct_value () [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.755: type = fn_type @DestroyT.binding.as_type.as.Destroy.impl.Op, @DestroyT.binding.as_type.as.Destroy.impl(%facet_value) [concrete] +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.565: %DestroyT.binding.as_type.as.Destroy.impl.Op.type.755 = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Cpp: = namespace file.%Cpp.import_cpp, [concrete] { -// CHECK:STDOUT: .void = Cpp.void +// CHECK:STDOUT: .void = constants.%Cpp.void // CHECK:STDOUT: .Return = %Return.cpp_overload_set.value // CHECK:STDOUT: .Invoke = %Invoke.cpp_overload_set.value // CHECK:STDOUT: import Cpp//... @@ -570,8 +580,8 @@ fn F() { // CHECK:STDOUT: fn @F() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %const_void_pointer.patt: %pattern_type.39c = ref_binding_pattern const_void_pointer [concrete] -// CHECK:STDOUT: %const_void_pointer.var_patt: %pattern_type.39c = var_pattern %const_void_pointer.patt [concrete] +// CHECK:STDOUT: %const_void_pointer.patt: %pattern_type.972 = ref_binding_pattern const_void_pointer [concrete] +// CHECK:STDOUT: %const_void_pointer.var_patt: %pattern_type.972 = var_pattern %const_void_pointer.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %const_void_pointer.var: ref %ptr = var %const_void_pointer.var_patt // CHECK:STDOUT: %Cpp.ref.loc11_45: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] @@ -580,7 +590,7 @@ fn F() { // CHECK:STDOUT: assign %const_void_pointer.var, %Return.call // CHECK:STDOUT: %.loc11: type = splice_block %ptr [concrete = constants.%ptr] { // CHECK:STDOUT: %Cpp.ref.loc11_33: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %void.ref: type = name_ref void, Cpp.void [concrete = Cpp.void] +// CHECK:STDOUT: %void.ref: type = name_ref void, constants.%Cpp.void [concrete = constants.%Cpp.void] // CHECK:STDOUT: %const: type = const_type %void.ref [concrete = constants.%const] // CHECK:STDOUT: %ptr: type = ptr_type %const [concrete = constants.%ptr] // CHECK:STDOUT: } @@ -590,7 +600,7 @@ fn F() { // CHECK:STDOUT: %const_void_pointer.ref: ref %ptr = name_ref const_void_pointer, %const_void_pointer // CHECK:STDOUT: %.loc12: %ptr = acquire_value %const_void_pointer.ref // CHECK:STDOUT: %Invoke.call: init %empty_tuple.type = call imports.%Invoke.decl(%.loc12) -// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %const_void_pointer.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.a82 +// CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.bound: = bound_method %const_void_pointer.var, constants.%DestroyT.binding.as_type.as.Destroy.impl.Op.565 // CHECK:STDOUT: // CHECK:STDOUT: %bound_method: = bound_method %const_void_pointer.var, %DestroyT.binding.as_type.as.Destroy.impl.Op.specific_fn // CHECK:STDOUT: %DestroyT.binding.as_type.as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%const_void_pointer.var) diff --git a/toolchain/check/testdata/interop/cpp/void.carbon b/toolchain/check/testdata/interop/cpp/void.carbon new file mode 100644 index 000000000000..7b3b98e3ba8d --- /dev/null +++ b/toolchain/check/testdata/interop/cpp/void.carbon @@ -0,0 +1,66 @@ +// Part of the Carbon Language project, under the Apache License v2.0 with LLVM +// Exceptions. See /LICENSE for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon +// +// AUTOUPDATE +// TIP: To test this file alone, run: +// TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/check/testdata/interop/cpp/void.carbon +// TIP: To dump output, run: +// TIP: bazel run //toolchain/testing:file_test -- --dump_output --file_tests=toolchain/check/testdata/interop/cpp/void.carbon + +// --- void_not_incomplete.carbon + +library "[[@TEST_NAME]]"; + +import Cpp; + +// This is valid, unlike in C++, because `Cpp.void` is complete but abstract in +// Carbon. Values of type `Cpp.void` exist, but objects of that type do not. +fn F(x: Cpp.void) {} + +// --- fail_void_abstract.carbon + +library "[[@TEST_NAME]]"; + +import Cpp; + +fn G() { + // CHECK:STDERR: fail_void_abstract.carbon:[[@LINE+7]]:10: error: binding pattern has abstract type `Cpp.void` in `var` pattern [AbstractTypeInVarPattern] + // CHECK:STDERR: var x: Cpp.void; + // CHECK:STDERR: ^~~~~~~~ + // CHECK:STDERR: {{.*}}/prelude/types/cpp/void.carbon:22:1: note: class was declared abstract here [ClassAbstractHere] + // CHECK:STDERR: abstract class CppCompat.VoidBase { + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // CHECK:STDERR: + var x: Cpp.void; +} + +// --- fail_void_argument.carbon + +library "[[@TEST_NAME]]"; + +import Cpp inline "void F(int);"; + +fn G(v: Cpp.void) { + // CHECK:STDERR: fail_void_argument.carbon:[[@LINE+7]]:10: error: no matching function for call to 'F' [CppInteropParseError] + // CHECK:STDERR: 14 | Cpp.F(v); + // CHECK:STDERR: | ^ + // CHECK:STDERR: fail_void_argument.carbon:[[@LINE-6]]:6: note: candidate function not viable: cannot convert argument of incomplete type 'void' to 'int' for 1st argument [CppInteropParseNote] + // CHECK:STDERR: 4 | void F(int); + // CHECK:STDERR: | ^ ~~~ + // CHECK:STDERR: + Cpp.F(v); +} + +fn H(p: Cpp.void*) { + // CHECK:STDERR: fail_void_argument.carbon:[[@LINE+7]]:11: error: no matching function for call to 'F' [CppInteropParseError] + // CHECK:STDERR: 25 | Cpp.F(*p); + // CHECK:STDERR: | ^ + // CHECK:STDERR: fail_void_argument.carbon:[[@LINE-17]]:6: note: candidate function not viable: cannot convert argument of incomplete type 'void' to 'int' for 1st argument [CppInteropParseNote] + // CHECK:STDERR: 4 | void F(int); + // CHECK:STDERR: | ^ ~~~ + // CHECK:STDERR: + Cpp.F(*p); +} diff --git a/toolchain/check/testdata/interop/cpp/void_pointer.carbon b/toolchain/check/testdata/interop/cpp/void_pointer.carbon index 85bcdf970581..80b2a4bd5b63 100644 --- a/toolchain/check/testdata/interop/cpp/void_pointer.carbon +++ b/toolchain/check/testdata/interop/cpp/void_pointer.carbon @@ -99,14 +99,15 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %ptr.5c7: type = ptr_type %S [concrete] -// CHECK:STDOUT: %ptr.03c: type = ptr_type Cpp.void [concrete] -// CHECK:STDOUT: %pattern_type.1f6: type = pattern_type %ptr.03c [concrete] +// CHECK:STDOUT: %Cpp.void: type = class_type @VoidBase [concrete] +// CHECK:STDOUT: %ptr.874: type = ptr_type %Cpp.void [concrete] +// CHECK:STDOUT: %pattern_type.9fb: type = pattern_type %ptr.874 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Cpp: = namespace file.%Cpp.import_cpp, [concrete] { // CHECK:STDOUT: .S = %S.decl -// CHECK:STDOUT: .void = Cpp.void +// CHECK:STDOUT: .void = constants.%Cpp.void // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %S.decl: type = class_decl @S [concrete = constants.%S] {} {} @@ -115,16 +116,16 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: fn @F(%input.param: %ptr.5c7) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %p.patt: %pattern_type.1f6 = value_binding_pattern p [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.9fb = value_binding_pattern p [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %input.ref: %ptr.5c7 = name_ref input, %input -// CHECK:STDOUT: %.loc17_18: type = splice_block %ptr.loc17 [concrete = constants.%ptr.03c] { +// CHECK:STDOUT: %.loc17_18: type = splice_block %ptr.loc17 [concrete = constants.%ptr.874] { // CHECK:STDOUT: %Cpp.ref.loc17: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %void.ref: type = name_ref void, Cpp.void [concrete = Cpp.void] -// CHECK:STDOUT: %ptr.loc17: type = ptr_type %void.ref [concrete = constants.%ptr.03c] +// CHECK:STDOUT: %void.ref: type = name_ref void, constants.%Cpp.void [concrete = constants.%Cpp.void] +// CHECK:STDOUT: %ptr.loc17: type = ptr_type %void.ref [concrete = constants.%ptr.874] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc17_22: %ptr.03c = converted %input.ref, [concrete = ] -// CHECK:STDOUT: %p: %ptr.03c = value_binding p, [concrete = ] +// CHECK:STDOUT: %.loc17_22: %ptr.874 = converted %input.ref, [concrete = ] +// CHECK:STDOUT: %p: %ptr.874 = value_binding p, [concrete = ] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: @@ -133,13 +134,14 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %ptr.03c: type = ptr_type Cpp.void [concrete] -// CHECK:STDOUT: %pattern_type.1f6: type = pattern_type %ptr.03c [concrete] +// CHECK:STDOUT: %Cpp.void: type = class_type @VoidBase [concrete] +// CHECK:STDOUT: %ptr.874: type = ptr_type %Cpp.void [concrete] +// CHECK:STDOUT: %pattern_type.9fb: type = pattern_type %ptr.874 [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Cpp: = namespace file.%Cpp.import_cpp, [concrete] { -// CHECK:STDOUT: .void = Cpp.void +// CHECK:STDOUT: .void = constants.%Cpp.void // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -147,23 +149,24 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: fn @F(%input.param: %ptr.019) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %p.patt: %pattern_type.1f6 = value_binding_pattern p [concrete] +// CHECK:STDOUT: %p.patt: %pattern_type.9fb = value_binding_pattern p [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %input.ref: %ptr.019 = name_ref input, %input -// CHECK:STDOUT: %.loc17_18: type = splice_block %ptr.loc17 [concrete = constants.%ptr.03c] { +// CHECK:STDOUT: %.loc17_18: type = splice_block %ptr.loc17 [concrete = constants.%ptr.874] { // CHECK:STDOUT: %Cpp.ref: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] -// CHECK:STDOUT: %void.ref: type = name_ref void, Cpp.void [concrete = Cpp.void] -// CHECK:STDOUT: %ptr.loc17: type = ptr_type %void.ref [concrete = constants.%ptr.03c] +// CHECK:STDOUT: %void.ref: type = name_ref void, constants.%Cpp.void [concrete = constants.%Cpp.void] +// CHECK:STDOUT: %ptr.loc17: type = ptr_type %void.ref [concrete = constants.%ptr.874] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc17_22: %ptr.03c = converted %input.ref, [concrete = ] -// CHECK:STDOUT: %p: %ptr.03c = value_binding p, [concrete = ] +// CHECK:STDOUT: %.loc17_22: %ptr.874 = converted %input.ref, [concrete = ] +// CHECK:STDOUT: %p: %ptr.874 = value_binding p, [concrete = ] // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: --- fail_todo_explicit_as_from_void_pointer_to_cpp_class_pointer.carbon // CHECK:STDOUT: // CHECK:STDOUT: constants { -// CHECK:STDOUT: %ptr.03c: type = ptr_type Cpp.void [concrete] +// CHECK:STDOUT: %Cpp.void: type = class_type @VoidBase [concrete] +// CHECK:STDOUT: %ptr.874: type = ptr_type %Cpp.void [concrete] // CHECK:STDOUT: %S: type = class_type @S [concrete] // CHECK:STDOUT: %ptr.5c7: type = ptr_type %S [concrete] // CHECK:STDOUT: %pattern_type.259: type = pattern_type %ptr.5c7 [concrete] @@ -171,19 +174,19 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Cpp: = namespace file.%Cpp.import_cpp, [concrete] { -// CHECK:STDOUT: .void = Cpp.void +// CHECK:STDOUT: .void = constants.%Cpp.void // CHECK:STDOUT: .S = %S.decl // CHECK:STDOUT: import Cpp//... // CHECK:STDOUT: } // CHECK:STDOUT: %S.decl: type = class_decl @S [concrete = constants.%S] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%input.param: %ptr.03c) { +// CHECK:STDOUT: fn @F(%input.param: %ptr.874) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %p.patt: %pattern_type.259 = value_binding_pattern p [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %input.ref: %ptr.03c = name_ref input, %input +// CHECK:STDOUT: %input.ref: %ptr.874 = name_ref input, %input // CHECK:STDOUT: %Cpp.ref.loc17_28: = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp] // CHECK:STDOUT: %S.ref.loc17_31: type = name_ref S, imports.%S.decl [concrete = constants.%S] // CHECK:STDOUT: %ptr.loc17_33: type = ptr_type %S.ref.loc17_31 [concrete = constants.%ptr.5c7] @@ -201,7 +204,8 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: // CHECK:STDOUT: constants { // CHECK:STDOUT: %C: type = class_type @C [concrete] -// CHECK:STDOUT: %ptr.03c: type = ptr_type Cpp.void [concrete] +// CHECK:STDOUT: %Cpp.void: type = class_type @VoidBase [concrete] +// CHECK:STDOUT: %ptr.874: type = ptr_type %Cpp.void [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] // CHECK:STDOUT: %pattern_type.44a: type = pattern_type %ptr.019 [concrete] // CHECK:STDOUT: } @@ -209,12 +213,12 @@ fn F(input: Cpp.void*) { // CHECK:STDOUT: imports { // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @F(%input.param: %ptr.03c) { +// CHECK:STDOUT: fn @F(%input.param: %ptr.874) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %p.patt: %pattern_type.44a = value_binding_pattern p [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %input.ref: %ptr.03c = name_ref input, %input +// CHECK:STDOUT: %input.ref: %ptr.874 = name_ref input, %input // CHECK:STDOUT: %C.ref.loc17_24: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %ptr.loc17_25: type = ptr_type %C.ref.loc17_24 [concrete = constants.%ptr.019] // CHECK:STDOUT: %.loc17_21: %ptr.019 = converted %input.ref, [concrete = ] diff --git a/toolchain/check/type_completion.cpp b/toolchain/check/type_completion.cpp index 1293c5dfd143..4cf75ce9d63e 100644 --- a/toolchain/check/type_completion.cpp +++ b/toolchain/check/type_completion.cpp @@ -208,12 +208,6 @@ class TypeCompleter { auto BuildInfoForInst(SemIR::TypeId /*type_id*/, SemIR::ConstType inst) const -> SemIR::CompleteTypeInfo; - auto BuildInfoForInst(SemIR::TypeId /*type_id*/, - SemIR::CppVoidType /*inst*/) const - -> SemIR::CompleteTypeInfo { - CARBON_FATAL("`CppVoidType` is always-incomplete"); - } - auto BuildInfoForInst(SemIR::TypeId type_id, SemIR::CustomLayoutType inst) const -> SemIR::CompleteTypeInfo; @@ -387,14 +381,6 @@ auto TypeCompleter::AddNestedIncompleteTypes(SemIR::Inst type_inst) -> bool { Push(context_->types().GetTypeIdForTypeInstId(inst.inner_id)); break; } - case SemIR::CppVoidType::Kind: { - if (diagnoser_) { - CARBON_DIAGNOSTIC(CppVoidIncomplete, Note, - "`Cpp.void` is always-incomplete"); - diagnoser_().Note(SemIR::LocId::None, CppVoidIncomplete).Emit(); - } - return false; - } case CARBON_KIND(SemIR::CustomLayoutType inst): { for (auto field : context_->struct_type_fields().Get(inst.fields_id)) { Push(context_->types().GetTypeIdForTypeInstId(field.type_inst_id)); diff --git a/toolchain/diagnostics/diagnostic_kind.def b/toolchain/diagnostics/diagnostic_kind.def index e0a4284ef3a3..753dfcc7d6a2 100644 --- a/toolchain/diagnostics/diagnostic_kind.def +++ b/toolchain/diagnostics/diagnostic_kind.def @@ -291,7 +291,6 @@ CARBON_DIAGNOSTIC_KIND(ClassForwardDeclaredHere) CARBON_DIAGNOSTIC_KIND(ClassSpecificDeclOutsideClass) CARBON_DIAGNOSTIC_KIND(ClassSpecificDeclPrevious) CARBON_DIAGNOSTIC_KIND(ClassIncompleteWithinDefinition) -CARBON_DIAGNOSTIC_KIND(CppVoidIncomplete) CARBON_DIAGNOSTIC_KIND(GenericVirtual) CARBON_DIAGNOSTIC_KIND(OverrideWithoutBase) CARBON_DIAGNOSTIC_KIND(OverrideWithoutVirtualInBase) diff --git a/toolchain/driver/testdata/stdin.carbon b/toolchain/driver/testdata/stdin.carbon index 29780d700d3c..d9ce279c874f 100644 --- a/toolchain/driver/testdata/stdin.carbon +++ b/toolchain/driver/testdata/stdin.carbon @@ -32,7 +32,7 @@ // CHECK:STDOUT: import_ir_insts: {} // CHECK:STDOUT: clang_decls: {} // CHECK:STDOUT: name_scopes: -// CHECK:STDOUT: name_scope0: {inst: instE, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {}} +// CHECK:STDOUT: name_scope0: {inst: instD, parent_scope: name_scope, has_error: false, extended_scopes: [], names: {}} // CHECK:STDOUT: entity_names: {} // CHECK:STDOUT: cpp_global_vars: {} // CHECK:STDOUT: functions: {} @@ -49,10 +49,10 @@ // CHECK:STDOUT: 'type(inst(NamespaceType))': // CHECK:STDOUT: value_repr: {kind: copy, type: type(inst(NamespaceType))} // CHECK:STDOUT: insts: -// CHECK:STDOUT: instE: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} +// CHECK:STDOUT: instD: {kind: Namespace, arg0: name_scope0, arg1: inst, type: type(inst(NamespaceType))} // CHECK:STDOUT: constant_values: // CHECK:STDOUT: values: -// CHECK:STDOUT: instE: concrete_constant(instE) +// CHECK:STDOUT: instD: concrete_constant(instD) // CHECK:STDOUT: symbolic_constants: {} // CHECK:STDOUT: inst_blocks: // CHECK:STDOUT: inst_block_empty: {} @@ -60,7 +60,7 @@ // CHECK:STDOUT: imports: {} // CHECK:STDOUT: global_init: {} // CHECK:STDOUT: inst_block60000004: -// CHECK:STDOUT: 0: instE +// CHECK:STDOUT: 0: instD // CHECK:STDOUT: ... // CHECK:STDOUT: --- - // CHECK:STDOUT: diff --git a/toolchain/lower/file_context.cpp b/toolchain/lower/file_context.cpp index 92473c8ac286..6b4cb8317fec 100644 --- a/toolchain/lower/file_context.cpp +++ b/toolchain/lower/file_context.cpp @@ -927,15 +927,14 @@ static auto BuildTypeForInst(FileContext& context, } template - requires( - InstT::Kind.template IsAnyOf< - SemIR::AssociatedEntityType, SemIR::AutoType, SemIR::BoundMethodType, - SemIR::CharLiteralType, SemIR::CppOverloadSetType, SemIR::CppVoidType, - SemIR::FacetType, SemIR::FloatLiteralType, SemIR::FunctionType, - SemIR::FunctionTypeWithSelfType, SemIR::GenericClassType, - SemIR::GenericInterfaceType, SemIR::GenericNamedConstraintType, - SemIR::InstType, SemIR::IntLiteralType, SemIR::NamespaceType, - SemIR::WhereExpr, SemIR::WitnessType, SemIR::UnboundElementType>()) + requires(InstT::Kind.template IsAnyOf< + SemIR::AssociatedEntityType, SemIR::AutoType, SemIR::BoundMethodType, + SemIR::CharLiteralType, SemIR::CppOverloadSetType, SemIR::FacetType, + SemIR::FloatLiteralType, SemIR::FunctionType, + SemIR::FunctionTypeWithSelfType, SemIR::GenericClassType, + SemIR::GenericInterfaceType, SemIR::GenericNamedConstraintType, + SemIR::InstType, SemIR::IntLiteralType, SemIR::NamespaceType, + SemIR::WhereExpr, SemIR::WitnessType, SemIR::UnboundElementType>()) static auto BuildTypeForInst(FileContext& context, InstT /*inst*/) -> llvm::Type* { // Return an empty struct as a placeholder. diff --git a/toolchain/lower/testdata/interop/cpp/nullptr.carbon b/toolchain/lower/testdata/interop/cpp/nullptr.carbon index e82b944b1a09..ce87f68c7afe 100644 --- a/toolchain/lower/testdata/interop/cpp/nullptr.carbon +++ b/toolchain/lower/testdata/interop/cpp/nullptr.carbon @@ -213,10 +213,10 @@ fn ConvertNullptrConstant() -> Core.Optional(i32*) { // CHECK:STDOUT: !30 = !DILocation(line: 32, column: 3, scope: !28) // CHECK:STDOUT: !31 = distinct !DISubprogram(name: "ConvertNullptrConstant", linkageName: "_CConvertNullptrConstant.Main", scope: null, file: !6, line: 35, type: !8, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !32 = !DILocation(line: 36, column: 3, scope: !31) -// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.NullptrT.CppCompat.Core:ImplicitAs.Core.b88d1103f417c6d4", scope: null, file: !34, line: 45, type: !8, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !33 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.NullptrT.CppCompat.Core:ImplicitAs.Core.b88d1103f417c6d4", scope: null, file: !34, line: 46, type: !8, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !34 = !DIFile(filename: "{{.*}}/prelude/types/cpp/nullptr.carbon", directory: "") -// CHECK:STDOUT: !35 = !DILocation(line: 46, column: 14, scope: !33) -// CHECK:STDOUT: !36 = !DILocation(line: 46, column: 7, scope: !33) +// CHECK:STDOUT: !35 = !DILocation(line: 47, column: 14, scope: !33) +// CHECK:STDOUT: !36 = !DILocation(line: 47, column: 7, scope: !33) // CHECK:STDOUT: !37 = distinct !DISubprogram(name: "None", linkageName: "_CNone.Optional.Core.e49c05a5c9dc9c86", scope: null, file: !38, line: 26, type: !8, spFlags: DISPFlagDefinition, unit: !5) // CHECK:STDOUT: !38 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") // CHECK:STDOUT: !39 = !DILocation(line: 27, column: 5, scope: !37) diff --git a/toolchain/lower/testdata/interop/cpp/return.carbon b/toolchain/lower/testdata/interop/cpp/return.carbon index 65d0d8a185de..52f079d803fc 100644 --- a/toolchain/lower/testdata/interop/cpp/return.carbon +++ b/toolchain/lower/testdata/interop/cpp/return.carbon @@ -2,7 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // -// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/primitives.carbon +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon // EXTRA-ARGS: --target=x86_64-linux-gnu // // AUTOUPDATE diff --git a/toolchain/lower/testdata/interop/cpp/void.carbon b/toolchain/lower/testdata/interop/cpp/void.carbon new file mode 100644 index 000000000000..5abc4afe1262 --- /dev/null +++ b/toolchain/lower/testdata/interop/cpp/void.carbon @@ -0,0 +1,109 @@ +// Part of the Carbon Language project, under the Apache License v2.0 with LLVM +// Exceptions. See /LICENSE for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon +// +// AUTOUPDATE +// TIP: To test this file alone, run: +// TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/lower/testdata/interop/cpp/void.carbon +// TIP: To dump output, run: +// TIP: bazel run //toolchain/testing:file_test -- --dump_output --file_tests=toolchain/lower/testdata/interop/cpp/void.carbon + +// --- take_void_ptr.h + +void take_void_ptr(void *p); + +// --- call.carbon + +library "[[@TEST_NAME]]"; + +import Cpp library "take_void_ptr.h"; + +fn PassVoidPtr(a: Cpp.void*) { + Cpp.take_void_ptr(a); +} + +// CHECK:STDOUT: ; ModuleID = 'call.carbon' +// CHECK:STDOUT: source_filename = "call.carbon" +// CHECK:STDOUT: target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128" +// CHECK:STDOUT: target triple = "x86_64-unknown-linux-gnu" +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define void @_CPassVoidPtr.Main(ptr %a) #0 !dbg !7 { +// CHECK:STDOUT: entry: +// CHECK:STDOUT: %.loc7_21.2.temp = alloca ptr, align 8, !dbg !10 +// CHECK:STDOUT: %U.binding.as_type.as.ImplicitAs.impl.Convert.call = call ptr @"_CConvert.f82b7327366b1770:ImplicitAs.Core.1bbd3eba7f2908d7"(ptr %a), !dbg !10 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %.loc7_21.2.temp), !dbg !10 +// CHECK:STDOUT: store ptr %U.binding.as_type.as.ImplicitAs.impl.Convert.call, ptr %.loc7_21.2.temp, align 8, !dbg !10 +// CHECK:STDOUT: %.loc7_21.4 = load ptr, ptr %.loc7_21.2.temp, align 8, !dbg !10 +// CHECK:STDOUT: call void @_Z13take_void_ptrPv(ptr %.loc7_21.4), !dbg !11 +// CHECK:STDOUT: ret void, !dbg !12 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: declare void @_Z13take_void_ptrPv(ptr) +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.f82b7327366b1770:ImplicitAs.Core.1bbd3eba7f2908d7"(ptr %self) #0 !dbg !13 { +// CHECK:STDOUT: %1 = call ptr @"_CConvert.8d16edc1dfe20a7c:OptionalAs.Core.b95abfcde220df97"(ptr %self), !dbg !15 +// CHECK:STDOUT: ret ptr %1, !dbg !16 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) +// CHECK:STDOUT: declare void @llvm.lifetime.start.p0(ptr captures(none)) #1 +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr ptr @"_CConvert.8d16edc1dfe20a7c:OptionalAs.Core.b95abfcde220df97"(ptr %self) #0 !dbg !17 { +// CHECK:STDOUT: %1 = call ptr @_CSome.Optional.Core.b95abfcde220df97(ptr %self), !dbg !18 +// CHECK:STDOUT: ret ptr %1, !dbg !19 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr ptr @_CSome.Optional.Core.b95abfcde220df97(ptr %value) #0 !dbg !20 { +// CHECK:STDOUT: %1 = call ptr @"_CSome.4f0b5cc38af595d2:OptionalStorage.Core.a3238f3d1f6ba299"(ptr %value), !dbg !21 +// CHECK:STDOUT: ret ptr %1, !dbg !22 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: ; Function Attrs: nounwind +// CHECK:STDOUT: define linkonce_odr ptr @"_CSome.4f0b5cc38af595d2:OptionalStorage.Core.a3238f3d1f6ba299"(ptr %self) #0 !dbg !23 { +// CHECK:STDOUT: %1 = alloca ptr, align 8, !dbg !24 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(ptr %1), !dbg !24 +// CHECK:STDOUT: store ptr %self, ptr %1, align 8, !dbg !25 +// CHECK:STDOUT: %2 = load ptr, ptr %1, align 8, !dbg !26 +// CHECK:STDOUT: ret ptr %2, !dbg !27 +// CHECK:STDOUT: } +// CHECK:STDOUT: +// CHECK:STDOUT: attributes #0 = { nounwind } +// CHECK:STDOUT: attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } +// CHECK:STDOUT: +// CHECK:STDOUT: !llvm.module.flags = !{!0, !1, !2, !3, !4} +// CHECK:STDOUT: !llvm.dbg.cu = !{!5} +// CHECK:STDOUT: +// CHECK:STDOUT: !0 = !{i32 7, !"Dwarf Version", i32 5} +// CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} +// CHECK:STDOUT: !2 = !{i32 1, !"wchar_size", i32 4} +// CHECK:STDOUT: !3 = !{i32 8, !"PIC Level", i32 0} +// CHECK:STDOUT: !4 = !{i32 7, !"PIE Level", i32 2} +// CHECK:STDOUT: !5 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !6, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) +// CHECK:STDOUT: !6 = !DIFile(filename: "call.carbon", directory: "") +// CHECK:STDOUT: !7 = distinct !DISubprogram(name: "PassVoidPtr", linkageName: "_CPassVoidPtr.Main", scope: null, file: !6, line: 6, type: !8, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !8 = !DISubroutineType(types: !9) +// CHECK:STDOUT: !9 = !{} +// CHECK:STDOUT: !10 = !DILocation(line: 7, column: 21, scope: !7) +// CHECK:STDOUT: !11 = !DILocation(line: 7, column: 3, scope: !7) +// CHECK:STDOUT: !12 = !DILocation(line: 6, column: 1, scope: !7) +// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.f82b7327366b1770:ImplicitAs.Core.1bbd3eba7f2908d7", scope: null, file: !14, line: 82, type: !8, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !14 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") +// CHECK:STDOUT: !15 = !DILocation(line: 83, column: 12, scope: !13) +// CHECK:STDOUT: !16 = !DILocation(line: 83, column: 5, scope: !13) +// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "Convert", linkageName: "_CConvert.8d16edc1dfe20a7c:OptionalAs.Core.b95abfcde220df97", scope: null, file: !14, line: 68, type: !8, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !18 = !DILocation(line: 69, column: 12, scope: !17) +// CHECK:STDOUT: !19 = !DILocation(line: 69, column: 5, scope: !17) +// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.Optional.Core.b95abfcde220df97", scope: null, file: !14, line: 29, type: !8, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !21 = !DILocation(line: 30, column: 12, scope: !20) +// CHECK:STDOUT: !22 = !DILocation(line: 30, column: 5, scope: !20) +// CHECK:STDOUT: !23 = distinct !DISubprogram(name: "Some", linkageName: "_CSome.4f0b5cc38af595d2:OptionalStorage.Core.a3238f3d1f6ba299", scope: null, file: !14, line: 125, type: !8, spFlags: DISPFlagDefinition, unit: !5) +// CHECK:STDOUT: !24 = !DILocation(line: 126, column: 14, scope: !23) +// CHECK:STDOUT: !25 = !DILocation(line: 127, column: 5, scope: !23) +// CHECK:STDOUT: !26 = !DILocation(line: 126, column: 18, scope: !23) +// CHECK:STDOUT: !27 = !DILocation(line: 128, column: 5, scope: !23) diff --git a/toolchain/sem_ir/expr_info.cpp b/toolchain/sem_ir/expr_info.cpp index da9f9a507680..286460eeebd4 100644 --- a/toolchain/sem_ir/expr_info.cpp +++ b/toolchain/sem_ir/expr_info.cpp @@ -117,7 +117,6 @@ auto GetExprCategory(const File& file, InstId inst_id) -> ExprCategory { case ConvertToValueAction::Kind: case CppOverloadSetType::Kind: case CppOverloadSetValue::Kind: - case CppVoidType::Kind: case CustomLayoutType::Kind: case FacetAccessType::Kind: case FacetType::Kind: diff --git a/toolchain/sem_ir/inst_kind.def b/toolchain/sem_ir/inst_kind.def index 03a1b3bbcf1e..7d9741e5afb3 100644 --- a/toolchain/sem_ir/inst_kind.def +++ b/toolchain/sem_ir/inst_kind.def @@ -55,7 +55,6 @@ CARBON_SEM_IR_INST_KIND(ConvertToValueAction) CARBON_SEM_IR_INST_KIND(Converted) CARBON_SEM_IR_INST_KIND(CppOverloadSetType) CARBON_SEM_IR_INST_KIND(CppOverloadSetValue) -CARBON_SEM_IR_INST_KIND(CppVoidType) CARBON_SEM_IR_INST_KIND(CustomLayoutType) CARBON_SEM_IR_INST_KIND(Deref) CARBON_SEM_IR_INST_KIND(ErrorInst) diff --git a/toolchain/sem_ir/singleton_insts.h b/toolchain/sem_ir/singleton_insts.h index d3d8a76c22c5..fc1ec93f10b3 100644 --- a/toolchain/sem_ir/singleton_insts.h +++ b/toolchain/sem_ir/singleton_insts.h @@ -13,13 +13,19 @@ namespace Carbon::SemIR { // The canonical list of singleton kinds. The order of `TypeType` is // significant because other singletons use it as a type. static constexpr std::array SingletonInstKinds = { - InstKind::TypeType, InstKind::AutoType, - InstKind::BoolType, InstKind::BoundMethodType, - InstKind::CharLiteralType, InstKind::CppVoidType, - InstKind::ErrorInst, InstKind::FloatLiteralType, - InstKind::InstType, InstKind::IntLiteralType, - InstKind::NamespaceType, InstKind::SpecificFunctionType, - InstKind::VtableType, InstKind::WitnessType, + InstKind::TypeType, + InstKind::AutoType, + InstKind::BoolType, + InstKind::BoundMethodType, + InstKind::CharLiteralType, + InstKind::ErrorInst, + InstKind::FloatLiteralType, + InstKind::InstType, + InstKind::IntLiteralType, + InstKind::NamespaceType, + InstKind::SpecificFunctionType, + InstKind::VtableType, + InstKind::WitnessType, }; // Returns true if the InstKind is a singleton. diff --git a/toolchain/sem_ir/type_info.cpp b/toolchain/sem_ir/type_info.cpp index 07edfefee9a0..777d7f0c6557 100644 --- a/toolchain/sem_ir/type_info.cpp +++ b/toolchain/sem_ir/type_info.cpp @@ -178,6 +178,7 @@ auto RecognizedTypeInfo::ForType(const File& file, ClassType class_type) Kind kind = llvm::StringSwitch(*name_ident) .Case("Long32", CppLong32) .Case("NullptrT", CppNullptrT) + .Case("VoidBase", CppVoidBase) .Default(None); return {.kind = kind}; } @@ -210,6 +211,9 @@ auto RecognizedTypeInfo::PrintLiteral(const File& file, case CppNullptrT: out << "Cpp.nullptr_t"; break; + case CppVoidBase: + out << "Cpp.void"; + break; case Str: out << "str"; break; diff --git a/toolchain/sem_ir/type_info.h b/toolchain/sem_ir/type_info.h index 658fb24cc8be..7179167cf2b5 100644 --- a/toolchain/sem_ir/type_info.h +++ b/toolchain/sem_ir/type_info.h @@ -240,6 +240,8 @@ struct RecognizedTypeInfo { CppLong32, // `Cpp.nullptr_t` / `Core.CppCompat.NullptrT`. CppNullptrT, + // `Cpp.void` / `Core.CppCompat.VoidBase`. + CppVoidBase, // `str` / `Core.String`. // TODO: Rename `Core.String` to `Core.Str`. Str, diff --git a/toolchain/sem_ir/type_iterator.cpp b/toolchain/sem_ir/type_iterator.cpp index 32b039815f0b..1ec305041f30 100644 --- a/toolchain/sem_ir/type_iterator.cpp +++ b/toolchain/sem_ir/type_iterator.cpp @@ -90,7 +90,6 @@ auto TypeIterator::ProcessTypeId(TypeId type_id) -> std::optional { case BoolType::Kind: case CharLiteralType::Kind: case CppOverloadSetType::Kind: - case CppVoidType::Kind: case FacetType::Kind: case FloatLiteralType::Kind: case FloatType::Kind: diff --git a/toolchain/sem_ir/typed_insts.h b/toolchain/sem_ir/typed_insts.h index f41542d00b0c..b0319064375c 100644 --- a/toolchain/sem_ir/typed_insts.h +++ b/toolchain/sem_ir/typed_insts.h @@ -506,14 +506,6 @@ struct ConvertToValueAction { TypeInstId target_type_inst_id; }; -// A type for C++ `void`. Should only be used for pointers (`void*`). -struct CppVoidType - : public SingletonTypeInst { - // `Cpp.void` is never complete, so `GetSingletonType` won't work. - static constexpr auto TypeId = - TypeId::ForTypeConstant(ConstantId::ForConcreteConstant(TypeInstId)); -}; - // A type whose layout is determined externally. This is used as the object // representation of class types imported from C++. struct CustomLayoutType {