Support LP64 platforms such as Darwin where int64_t is long long. (#7596)

Add `Core.CppCompat.[U]Long64` to represent a 64-bit long that is not
`i64`. Treat it as being "just slightly smaller than" `i64`, like we
treat `Core.CppCompat.LongLong64` as being "just slightly larger than"
`i64`, so that we get implicit conversions `Cpp.long` -> `i64` ->
`Cpp.long_long` on all targets.

This follows the direction of proposal #5448, and seems like the obvious
extension of the `[U]Long32` and `[U]LongLong64` types added in #6275
for targets of this "shape".

Assisted-by: Gemini via Antigravity
This commit is contained in:
Richard Smith
2026-08-07 16:10:01 +00:00
committed by GitHub
parent ee2b3888ef
commit c278bea3c5
16 changed files with 4904 additions and 3492 deletions
@@ -19,8 +19,8 @@ template<typename T> struct A : Base {
T n;
};
using Aint = A<int>;
using Along = A<long>;
using Ai32 = A<int>;
using Ai16 = A<short>;
// --- use_class_template.carbon
@@ -28,7 +28,7 @@ library "[[@TEST_NAME]]";
import Cpp library "class_template.h";
fn F(x: Cpp.Aint) -> i32 {
fn F(x: Cpp.Ai32) -> i32 {
// Trigger instantiation through name lookup.
//@dump-sem-ir-begin
x.f();
@@ -36,7 +36,7 @@ fn F(x: Cpp.Aint) -> i32 {
//@dump-sem-ir-end
}
fn G(p: Cpp.Along*) -> Cpp.Base* {
fn G(p: Cpp.Ai16*) -> Cpp.Base* {
// Trigger instantiation through type completion.
//@dump-sem-ir-begin
return p;
@@ -125,8 +125,8 @@ fn F() {
// CHECK:STDOUT: %Copy.WithSelf.Op.type.d09: type = fn_type @Copy.WithSelf.Op, @Copy.WithSelf(%Copy.facet.987) [concrete]
// CHECK:STDOUT: %.7a6: type = fn_type_with_self_type %Copy.WithSelf.Op.type.d09, %Copy.facet.987 [concrete]
// CHECK:STDOUT: %Int.as.Copy.impl.Op.specific_fn: <specific function> = specific_function %Int.as.Copy.impl.Op.4f6, @Int.as.Copy.impl.Op(%int_32) [concrete]
// CHECK:STDOUT: %A.26b: type = class_type @A.2 [concrete]
// CHECK:STDOUT: %ptr.f2d: type = ptr_type %A.26b [concrete]
// CHECK:STDOUT: %A.e3f: type = class_type @A.2 [concrete]
// CHECK:STDOUT: %ptr.bc0: type = ptr_type %A.e3f [concrete]
// CHECK:STDOUT: %ptr.0e0: type = ptr_type %Base [concrete]
// CHECK:STDOUT: %Copy.impl_witness.428: <witness> = impl_witness imports.%Copy.impl_witness_table.4f1, @ptr.as.Copy.impl(%Base) [concrete]
// CHECK:STDOUT: %ptr.as.Copy.impl.Op.type.136: type = fn_type @ptr.as.Copy.impl.Op, @ptr.as.Copy.impl(%Base) [concrete]
@@ -168,10 +168,10 @@ fn F() {
// CHECK:STDOUT: return %Int.as.Copy.impl.Op.call
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @G(%p.param: %ptr.f2d) -> out %return.param: %ptr.0e0 {
// CHECK:STDOUT: fn @G(%p.param: %ptr.bc0) -> out %return.param: %ptr.0e0 {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: %p.ref: %ptr.f2d = name_ref p, %p
// CHECK:STDOUT: %.loc17_11.1: ref %A.26b = deref %p.ref
// CHECK:STDOUT: %p.ref: %ptr.bc0 = name_ref p, %p
// CHECK:STDOUT: %.loc17_11.1: ref %A.e3f = deref %p.ref
// CHECK:STDOUT: %.loc17_11.2: ref %Base = class_element_access %.loc17_11.1, element0
// CHECK:STDOUT: %addr: %ptr.0e0 = addr_of %.loc17_11.2
// CHECK:STDOUT: %.loc17_11.3: %ptr.0e0 = converted %p.ref, %addr
@@ -3,6 +3,7 @@
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/primitives.carbon
// EXTRA-ARGS: --target=x86_64-linux-gnu
//
// AUTOUPDATE
// TIP: To test this file alone, run:
File diff suppressed because it is too large Load Diff
@@ -3,6 +3,7 @@
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon
// EXTRA-ARGS: --target=x86_64-linux-gnu
//
// AUTOUPDATE
// TIP: To test this file alone, run:
File diff suppressed because it is too large Load Diff
@@ -1101,7 +1101,7 @@ fn CopyUnsignedLong() {
// CHECK:STDOUT: %As.impl_witness.d97: <witness> = impl_witness imports.%As.impl_witness_table.a2e [concrete]
// CHECK:STDOUT: %As.facet: %As.type.cbc = facet_value Core.IntLiteral, (%As.impl_witness.d97) [concrete]
// CHECK:STDOUT: %As.WithSelf.Convert.type.d45: type = fn_type @As.WithSelf.Convert, @As.WithSelf(%Cpp.long, %As.facet) [concrete]
// CHECK:STDOUT: %.d2f: type = fn_type_with_self_type %As.WithSelf.Convert.type.d45, %As.facet [concrete]
// CHECK:STDOUT: %.d2f4: type = fn_type_with_self_type %As.WithSelf.Convert.type.d45, %As.facet [concrete]
// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.type: type = fn_type @Core.IntLiteral.as.As.impl.Convert [concrete]
// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert: %Core.IntLiteral.as.As.impl.Convert.type = struct_value () [concrete]
// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.bound: <bound method> = bound_method %int_1.5b8, %Core.IntLiteral.as.As.impl.Convert [concrete]
@@ -1316,7 +1316,7 @@ fn CopyUnsignedLong() {
// CHECK:STDOUT: %int_1.loc26: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8]
// CHECK:STDOUT: %Cpp.ref.loc26: <namespace> = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp]
// CHECK:STDOUT: %long.ref.loc26: type = name_ref long, constants.%Cpp.long [concrete = constants.%Cpp.long]
// CHECK:STDOUT: %impl.elem0.loc26_30.1: %.d2f = impl_witness_access constants.%As.impl_witness.d97, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert]
// CHECK:STDOUT: %impl.elem0.loc26_30.1: %.d2f4 = impl_witness_access constants.%As.impl_witness.d97, element0 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert]
// CHECK:STDOUT: %bound_method.loc26_30.1: <bound method> = bound_method %int_1.loc26, %impl.elem0.loc26_30.1 [concrete = constants.%Core.IntLiteral.as.As.impl.Convert.bound]
// CHECK:STDOUT: %Core.IntLiteral.as.As.impl.Convert.call: init %Cpp.long = call %bound_method.loc26_30.1(%int_1.loc26) [concrete = constants.%int_1.9ce]
// CHECK:STDOUT: %.loc26_30.1: %Cpp.long = value_of_initializer %Core.IntLiteral.as.As.impl.Convert.call [concrete = constants.%int_1.9ce]
@@ -1514,10 +1514,10 @@ fn CopyUnsignedLong() {
// CHECK:STDOUT: %Core.import_ref.adc9b: %Cpp.long.as.EqWith.impl.NotEqual.type.8e5 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.EqWith.impl.NotEqual.a6a]
// CHECK:STDOUT: %EqWith.impl_witness_table.48e = impl_witness_table (%Core.import_ref.a87, %Core.import_ref.adc9b), @Cpp.long.as.EqWith.impl.96d [concrete]
// CHECK:STDOUT: %Core.import_ref.0e8: %Cpp.long.as.OrderedWith.impl.Less.type.335 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.OrderedWith.impl.Less.606]
// CHECK:STDOUT: %Core.import_ref.757: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.42c = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.0c8]
// CHECK:STDOUT: %Core.import_ref.757ec: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.42c = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.0c8]
// CHECK:STDOUT: %Core.import_ref.c32c: %Cpp.long.as.OrderedWith.impl.Greater.type.725 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.OrderedWith.impl.Greater.7c8]
// CHECK:STDOUT: %Core.import_ref.381: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.2d9 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.a09]
// CHECK:STDOUT: %OrderedWith.impl_witness_table.5d0 = impl_witness_table (%Core.import_ref.0e8, %Core.import_ref.757, %Core.import_ref.c32c, %Core.import_ref.381), @Cpp.long.as.OrderedWith.impl.894 [concrete]
// CHECK:STDOUT: %OrderedWith.impl_witness_table.5d0 = impl_witness_table (%Core.import_ref.0e8, %Core.import_ref.757ec, %Core.import_ref.c32c, %Core.import_ref.381), @Cpp.long.as.OrderedWith.impl.894 [concrete]
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @ComparisonsHomogeneousLong() {
@@ -1755,12 +1755,12 @@ fn CopyUnsignedLong() {
// CHECK:STDOUT: %Core.Equal.025: @Cpp.long.as.EqWith.impl.5b1.%Cpp.long.as.EqWith.impl.Equal.type.1 (%Cpp.long.as.EqWith.impl.Equal.type.814973.2) = import_ref Core//prelude/types/cpp/int, Equal, loaded [symbolic = @Cpp.long.as.EqWith.impl.5b1.%Cpp.long.as.EqWith.impl.Equal.1 (constants.%Cpp.long.as.EqWith.impl.Equal.4a8971.2)]
// CHECK:STDOUT: %Core.NotEqual.db5: @Cpp.long.as.EqWith.impl.5b1.%Cpp.long.as.EqWith.impl.NotEqual.type.1 (%Cpp.long.as.EqWith.impl.NotEqual.type.21e369.2) = import_ref Core//prelude/types/cpp/int, NotEqual, loaded [symbolic = @Cpp.long.as.EqWith.impl.5b1.%Cpp.long.as.EqWith.impl.NotEqual.1 (constants.%Cpp.long.as.EqWith.impl.NotEqual.385432.2)]
// CHECK:STDOUT: %Core.import_ref.06c923.2: %i32.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%i32.as.ImplicitAs.impl.Convert]
// CHECK:STDOUT: %ImplicitAs.impl_witness_table.a75 = impl_witness_table (%Core.import_ref.06c923.2), @i32.as.ImplicitAs.impl [concrete]
// CHECK:STDOUT: %ImplicitAs.impl_witness_table.a75 = impl_witness_table (%Core.import_ref.06c923.2), @i32.as.ImplicitAs.impl.133 [concrete]
// CHECK:STDOUT: %Core.import_ref.d32f: @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.Less.type.2 (%Cpp.long.as.OrderedWith.impl.Less.type.3ff9ca.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.Less.2 (constants.%Cpp.long.as.OrderedWith.impl.Less.76c9f3.1)]
// CHECK:STDOUT: %Core.import_ref.4be: @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.2 (%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.35cecb.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2 (constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.351d50.1)]
// CHECK:STDOUT: %Core.import_ref.b5f: @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.Greater.type.2 (%Cpp.long.as.OrderedWith.impl.Greater.type.e2eef7.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.Greater.2 (constants.%Cpp.long.as.OrderedWith.impl.Greater.37f70d.1)]
// CHECK:STDOUT: %Core.import_ref.b5f6: @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.Greater.type.2 (%Cpp.long.as.OrderedWith.impl.Greater.type.e2eef7.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.Greater.2 (constants.%Cpp.long.as.OrderedWith.impl.Greater.37f70d.1)]
// CHECK:STDOUT: %Core.import_ref.a8b: @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.2 (%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.154997.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2 (constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.e4afa3.1)]
// CHECK:STDOUT: %OrderedWith.impl_witness_table.41e = impl_witness_table (%Core.import_ref.d32f, %Core.import_ref.4be, %Core.import_ref.b5f, %Core.import_ref.a8b), @Cpp.long.as.OrderedWith.impl.3fc [concrete]
// CHECK:STDOUT: %OrderedWith.impl_witness_table.41e = impl_witness_table (%Core.import_ref.d32f, %Core.import_ref.4be, %Core.import_ref.b5f6, %Core.import_ref.a8b), @Cpp.long.as.OrderedWith.impl.3fc [concrete]
// CHECK:STDOUT: %Core.Less.a91: @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.Less.type.1 (%Cpp.long.as.OrderedWith.impl.Less.type.3ff9ca.2) = import_ref Core//prelude/types/cpp/int, Less, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.Less.1 (constants.%Cpp.long.as.OrderedWith.impl.Less.76c9f3.2)]
// CHECK:STDOUT: %Core.LessOrEquivalent.a62: @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.1 (%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.35cecb.2) = import_ref Core//prelude/types/cpp/int, LessOrEquivalent, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1 (constants.%Cpp.long.as.OrderedWith.impl.LessOrEquivalent.351d50.2)]
// CHECK:STDOUT: %Core.Greater.ac9: @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.Greater.type.1 (%Cpp.long.as.OrderedWith.impl.Greater.type.e2eef7.2) = import_ref Core//prelude/types/cpp/int, Greater, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.Greater.1 (constants.%Cpp.long.as.OrderedWith.impl.Greater.37f70d.2)]
@@ -2233,7 +2233,7 @@ fn CopyUnsignedLong() {
// CHECK:STDOUT: %Core.Equal.d4c: @T.as_type.as.EqWith.impl.673.%T.as_type.as.EqWith.impl.Equal.type.1 (%T.as_type.as.EqWith.impl.Equal.type.94a46e.2) = import_ref Core//prelude/types/cpp/int, Equal, loaded [symbolic = @T.as_type.as.EqWith.impl.673.%T.as_type.as.EqWith.impl.Equal.1 (constants.%T.as_type.as.EqWith.impl.Equal.3fb574.2)]
// CHECK:STDOUT: %Core.NotEqual.d11: @T.as_type.as.EqWith.impl.673.%T.as_type.as.EqWith.impl.NotEqual.type.1 (%T.as_type.as.EqWith.impl.NotEqual.type.92df03.2) = import_ref Core//prelude/types/cpp/int, NotEqual, loaded [symbolic = @T.as_type.as.EqWith.impl.673.%T.as_type.as.EqWith.impl.NotEqual.1 (constants.%T.as_type.as.EqWith.impl.NotEqual.a7a615.2)]
// CHECK:STDOUT: %Core.import_ref.06c923.2: %i32.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%i32.as.ImplicitAs.impl.Convert]
// CHECK:STDOUT: %ImplicitAs.impl_witness_table.a75 = impl_witness_table (%Core.import_ref.06c923.2), @i32.as.ImplicitAs.impl [concrete]
// CHECK:STDOUT: %ImplicitAs.impl_witness_table.a75 = impl_witness_table (%Core.import_ref.06c923.2), @i32.as.ImplicitAs.impl.133 [concrete]
// CHECK:STDOUT: %Core.import_ref.0c1: @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.Less.type.2 (%T.as_type.as.OrderedWith.impl.Less.type.62945a.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.Less.2 (constants.%T.as_type.as.OrderedWith.impl.Less.2ef721.1)]
// CHECK:STDOUT: %Core.import_ref.f03: @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.2 (%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.accc59.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.2 (constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.e8206a.1)]
// CHECK:STDOUT: %Core.import_ref.dc8: @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.Greater.type.2 (%T.as_type.as.OrderedWith.impl.Greater.type.4af657.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.Greater.2 (constants.%T.as_type.as.OrderedWith.impl.Greater.00ebff.1)]
@@ -3380,7 +3380,7 @@ fn CopyUnsignedLong() {
// CHECK:STDOUT: %AddAssignWith.impl_witness_table.864 = impl_witness_table (%Core.import_ref.3ce), @Cpp.long.as.AddAssignWith.impl [concrete]
// CHECK:STDOUT: %Core.Op.7fd: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long.as.AddAssignWith.impl.Op.type.3959e4.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long.as.AddAssignWith.impl.Op.d1bf47.2)]
// CHECK:STDOUT: %Core.import_ref.06c923.2: %i32.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%i32.as.ImplicitAs.impl.Convert]
// CHECK:STDOUT: %ImplicitAs.impl_witness_table.a75 = impl_witness_table (%Core.import_ref.06c923.2), @i32.as.ImplicitAs.impl [concrete]
// CHECK:STDOUT: %ImplicitAs.impl_witness_table.a75 = impl_witness_table (%Core.import_ref.06c923.2), @i32.as.ImplicitAs.impl.133 [concrete]
// CHECK:STDOUT: %Core.import_ref.720: @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.type.2 (%Cpp.long.as.SubAssignWith.impl.Op.type.f4b2d1.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.2 (constants.%Cpp.long.as.SubAssignWith.impl.Op.5a5f49.1)]
// CHECK:STDOUT: %SubAssignWith.impl_witness_table.b60 = impl_witness_table (%Core.import_ref.720), @Cpp.long.as.SubAssignWith.impl [concrete]
// CHECK:STDOUT: %Core.Op.3ae: @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.type.1 (%Cpp.long.as.SubAssignWith.impl.Op.type.f4b2d1.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.SubAssignWith.impl.%Cpp.long.as.SubAssignWith.impl.Op.1 (constants.%Cpp.long.as.SubAssignWith.impl.Op.5a5f49.2)]
@@ -3841,7 +3841,7 @@ fn CopyUnsignedLong() {
// CHECK:STDOUT: %AddAssignWith.impl_witness_table.864 = impl_witness_table (%Core.import_ref.3ce), @Cpp.long.as.AddAssignWith.impl [concrete]
// CHECK:STDOUT: %Core.Op.7fd: @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.type.1 (%Cpp.long.as.AddAssignWith.impl.Op.type.3959e4.2) = import_ref Core//prelude/types/cpp/int, Op, loaded [symbolic = @Cpp.long.as.AddAssignWith.impl.%Cpp.long.as.AddAssignWith.impl.Op.1 (constants.%Cpp.long.as.AddAssignWith.impl.Op.d1bf47.2)]
// CHECK:STDOUT: %Core.import_ref.06c923.2: %i32.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%i32.as.ImplicitAs.impl.Convert]
// CHECK:STDOUT: %ImplicitAs.impl_witness_table.a75 = impl_witness_table (%Core.import_ref.06c923.2), @i32.as.ImplicitAs.impl [concrete]
// CHECK:STDOUT: %ImplicitAs.impl_witness_table.a75 = impl_witness_table (%Core.import_ref.06c923.2), @i32.as.ImplicitAs.impl.133 [concrete]
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @CompoundAssignmentLongAndRuntimeI32() {
@@ -1439,10 +1439,10 @@ fn CopyUnsignedLongLong() {
// CHECK:STDOUT: %Core.import_ref.adc9b: %Cpp.long_long.as.EqWith.impl.NotEqual.type.8e5 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long_long.as.EqWith.impl.NotEqual.a6a]
// CHECK:STDOUT: %EqWith.impl_witness_table.ed1 = impl_witness_table (%Core.import_ref.a87, %Core.import_ref.adc9b), @Cpp.long_long.as.EqWith.impl.eaa [concrete]
// CHECK:STDOUT: %Core.import_ref.0e8: %Cpp.long_long.as.OrderedWith.impl.Less.type.335 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Less.606]
// CHECK:STDOUT: %Core.import_ref.757: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.42c = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.0c8]
// CHECK:STDOUT: %Core.import_ref.757ec: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.42c = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.0c8]
// CHECK:STDOUT: %Core.import_ref.c32c: %Cpp.long_long.as.OrderedWith.impl.Greater.type.725 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.Greater.7c8]
// CHECK:STDOUT: %Core.import_ref.381: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.2d9 = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.a09]
// CHECK:STDOUT: %OrderedWith.impl_witness_table.cc0 = impl_witness_table (%Core.import_ref.0e8, %Core.import_ref.757, %Core.import_ref.c32c, %Core.import_ref.381), @Cpp.long_long.as.OrderedWith.impl.278 [concrete]
// CHECK:STDOUT: %OrderedWith.impl_witness_table.cc0 = impl_witness_table (%Core.import_ref.0e8, %Core.import_ref.757ec, %Core.import_ref.c32c, %Core.import_ref.381), @Cpp.long_long.as.OrderedWith.impl.278 [concrete]
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @ComparisonsHomogeneousLongLong() {
@@ -1984,71 +1984,71 @@ fn CopyUnsignedLongLong() {
// CHECK:STDOUT: %int_1.b19: %Cpp.long_long = int_value 1 [concrete]
// CHECK:STDOUT: %EqWith.type.9fc: type = facet_type <@EqWith, @EqWith(%Cpp.long_long)> [concrete]
// CHECK:STDOUT: %T.bf2: %ImplicitAs.type.0ec = symbolic_binding T, 0 [symbolic]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.925fdb.1: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.3, @T.as_type.as.EqWith.impl.6d3(%T.bf2) [symbolic]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.925fdb.1: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.5, @T.as_type.as.EqWith.impl.6d3(%T.bf2) [symbolic]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.b16a99.1: %T.as_type.as.EqWith.impl.NotEqual.type.925fdb.1 = struct_value () [symbolic]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.3cb0e1.1: type = fn_type @T.as_type.as.EqWith.impl.Equal.3, @T.as_type.as.EqWith.impl.6d3(%T.bf2) [symbolic]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.3cb0e1.1: type = fn_type @T.as_type.as.EqWith.impl.Equal.5, @T.as_type.as.EqWith.impl.6d3(%T.bf2) [symbolic]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.a1333e.1: %T.as_type.as.EqWith.impl.Equal.type.3cb0e1.1 = struct_value () [symbolic]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.925fdb.2: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.4, @T.as_type.as.EqWith.impl.6d3(%T.bf2) [symbolic]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.925fdb.2: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.6, @T.as_type.as.EqWith.impl.6d3(%T.bf2) [symbolic]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.b16a99.2: %T.as_type.as.EqWith.impl.NotEqual.type.925fdb.2 = struct_value () [symbolic]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.3cb0e1.2: type = fn_type @T.as_type.as.EqWith.impl.Equal.4, @T.as_type.as.EqWith.impl.6d3(%T.bf2) [symbolic]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.3cb0e1.2: type = fn_type @T.as_type.as.EqWith.impl.Equal.6, @T.as_type.as.EqWith.impl.6d3(%T.bf2) [symbolic]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.a1333e.2: %T.as_type.as.EqWith.impl.Equal.type.3cb0e1.2 = struct_value () [symbolic]
// CHECK:STDOUT: %ImplicitAs.impl_witness.305: <witness> = impl_witness imports.%ImplicitAs.impl_witness_table.a87 [concrete]
// CHECK:STDOUT: %ImplicitAs.facet.7a4: %ImplicitAs.type.0ec = facet_value %i64, (%ImplicitAs.impl_witness.305) [concrete]
// CHECK:STDOUT: %EqWith.impl_witness.084: <witness> = impl_witness imports.%EqWith.impl_witness_table.db1, @T.as_type.as.EqWith.impl.6d3(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.6d33d6.1: type = fn_type @T.as_type.as.EqWith.impl.Equal.4, @T.as_type.as.EqWith.impl.6d3(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.6d33d6.1: type = fn_type @T.as_type.as.EqWith.impl.Equal.6, @T.as_type.as.EqWith.impl.6d3(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.817082.1: %T.as_type.as.EqWith.impl.Equal.type.6d33d6.1 = struct_value () [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.2c42f8.1: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.4, @T.as_type.as.EqWith.impl.6d3(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.2c42f8.1: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.6, @T.as_type.as.EqWith.impl.6d3(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.de7c60.1: %T.as_type.as.EqWith.impl.NotEqual.type.2c42f8.1 = struct_value () [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.6d33d6.2: type = fn_type @T.as_type.as.EqWith.impl.Equal.3, @T.as_type.as.EqWith.impl.6d3(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.6d33d6.2: type = fn_type @T.as_type.as.EqWith.impl.Equal.5, @T.as_type.as.EqWith.impl.6d3(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.817082.2: %T.as_type.as.EqWith.impl.Equal.type.6d33d6.2 = struct_value () [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.2c42f8.2: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.3, @T.as_type.as.EqWith.impl.6d3(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.2c42f8.2: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.5, @T.as_type.as.EqWith.impl.6d3(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.de7c60.2: %T.as_type.as.EqWith.impl.NotEqual.type.2c42f8.2 = struct_value () [concrete]
// CHECK:STDOUT: %EqWith.facet.306: %EqWith.type.9fc = facet_value %i64, (%EqWith.impl_witness.084) [concrete]
// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.5b2: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%Cpp.long_long, %EqWith.facet.306) [concrete]
// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.86d: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%Cpp.long_long, %EqWith.facet.306) [concrete]
// CHECK:STDOUT: %.183: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.5b2, %EqWith.facet.306 [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.044d32.1: <specific function> = specific_function %T.as_type.as.EqWith.impl.Equal.817082.2, @T.as_type.as.EqWith.impl.Equal.3(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.044d32.2: <specific function> = specific_function %T.as_type.as.EqWith.impl.Equal.817082.1, @T.as_type.as.EqWith.impl.Equal.4(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.044d32.1: <specific function> = specific_function %T.as_type.as.EqWith.impl.Equal.817082.2, @T.as_type.as.EqWith.impl.Equal.5(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.044d32.2: <specific function> = specific_function %T.as_type.as.EqWith.impl.Equal.817082.1, @T.as_type.as.EqWith.impl.Equal.6(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %ImplicitAs.WithSelf.Convert.type.3ae: type = fn_type @ImplicitAs.WithSelf.Convert, @ImplicitAs.WithSelf(%Cpp.long_long, %ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %.25e: type = fn_type_with_self_type %ImplicitAs.WithSelf.Convert.type.3ae, %ImplicitAs.facet.7a4 [concrete]
// CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert.type: type = fn_type @i64.as.ImplicitAs.impl.Convert [concrete]
// CHECK:STDOUT: %i64.as.ImplicitAs.impl.Convert: %i64.as.ImplicitAs.impl.Convert.type = struct_value () [concrete]
// CHECK:STDOUT: %.eca: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.86d, %EqWith.facet.306 [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.b44c79.1: <specific function> = specific_function %T.as_type.as.EqWith.impl.NotEqual.de7c60.2, @T.as_type.as.EqWith.impl.NotEqual.3(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.b44c79.2: <specific function> = specific_function %T.as_type.as.EqWith.impl.NotEqual.de7c60.1, @T.as_type.as.EqWith.impl.NotEqual.4(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.b44c79.1: <specific function> = specific_function %T.as_type.as.EqWith.impl.NotEqual.de7c60.2, @T.as_type.as.EqWith.impl.NotEqual.5(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.b44c79.2: <specific function> = specific_function %T.as_type.as.EqWith.impl.NotEqual.de7c60.1, @T.as_type.as.EqWith.impl.NotEqual.6(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %OrderedWith.type.456: type = facet_type <@OrderedWith, @OrderedWith(%Cpp.long_long)> [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.d6724c.1: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3, @T.as_type.as.OrderedWith.impl.df2(%T.bf2) [symbolic]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.d6724c.1: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.5, @T.as_type.as.OrderedWith.impl.df2(%T.bf2) [symbolic]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.df5290.1: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.d6724c.1 = struct_value () [symbolic]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.4fb98a.1: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.3, @T.as_type.as.OrderedWith.impl.df2(%T.bf2) [symbolic]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.4fb98a.1: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.5, @T.as_type.as.OrderedWith.impl.df2(%T.bf2) [symbolic]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.878ae3.1: %T.as_type.as.OrderedWith.impl.Greater.type.4fb98a.1 = struct_value () [symbolic]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.3d985f.1: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.3, @T.as_type.as.OrderedWith.impl.df2(%T.bf2) [symbolic]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.3d985f.1: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.5, @T.as_type.as.OrderedWith.impl.df2(%T.bf2) [symbolic]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.2cb445.1: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.3d985f.1 = struct_value () [symbolic]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.2daa9a.1: type = fn_type @T.as_type.as.OrderedWith.impl.Less.3, @T.as_type.as.OrderedWith.impl.df2(%T.bf2) [symbolic]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.2daa9a.1: type = fn_type @T.as_type.as.OrderedWith.impl.Less.5, @T.as_type.as.OrderedWith.impl.df2(%T.bf2) [symbolic]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.c37ef5.1: %T.as_type.as.OrderedWith.impl.Less.type.2daa9a.1 = struct_value () [symbolic]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.d6724c.2: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4, @T.as_type.as.OrderedWith.impl.df2(%T.bf2) [symbolic]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.d6724c.2: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.6, @T.as_type.as.OrderedWith.impl.df2(%T.bf2) [symbolic]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.df5290.2: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.d6724c.2 = struct_value () [symbolic]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.4fb98a.2: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.4, @T.as_type.as.OrderedWith.impl.df2(%T.bf2) [symbolic]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.4fb98a.2: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.6, @T.as_type.as.OrderedWith.impl.df2(%T.bf2) [symbolic]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.878ae3.2: %T.as_type.as.OrderedWith.impl.Greater.type.4fb98a.2 = struct_value () [symbolic]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.3d985f.2: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.4, @T.as_type.as.OrderedWith.impl.df2(%T.bf2) [symbolic]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.3d985f.2: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.6, @T.as_type.as.OrderedWith.impl.df2(%T.bf2) [symbolic]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.2cb445.2: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.3d985f.2 = struct_value () [symbolic]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.2daa9a.2: type = fn_type @T.as_type.as.OrderedWith.impl.Less.4, @T.as_type.as.OrderedWith.impl.df2(%T.bf2) [symbolic]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.2daa9a.2: type = fn_type @T.as_type.as.OrderedWith.impl.Less.6, @T.as_type.as.OrderedWith.impl.df2(%T.bf2) [symbolic]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.c37ef5.2: %T.as_type.as.OrderedWith.impl.Less.type.2daa9a.2 = struct_value () [symbolic]
// CHECK:STDOUT: %OrderedWith.impl_witness.7e3: <witness> = impl_witness imports.%OrderedWith.impl_witness_table.8b4, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.7b405f.1: type = fn_type @T.as_type.as.OrderedWith.impl.Less.4, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.7b405f.1: type = fn_type @T.as_type.as.OrderedWith.impl.Less.6, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.c5f236.1: %T.as_type.as.OrderedWith.impl.Less.type.7b405f.1 = struct_value () [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.577251.1: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.4, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.577251.1: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.6, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.e5cfba.1: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.577251.1 = struct_value () [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.085dd9.1: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.4, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.085dd9.1: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.6, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.749015.1: %T.as_type.as.OrderedWith.impl.Greater.type.085dd9.1 = struct_value () [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.0f0b65.1: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.0f0b65.1: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.6, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.f86b3e.1: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.0f0b65.1 = struct_value () [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.7b405f.2: type = fn_type @T.as_type.as.OrderedWith.impl.Less.3, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.7b405f.2: type = fn_type @T.as_type.as.OrderedWith.impl.Less.5, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.c5f236.2: %T.as_type.as.OrderedWith.impl.Less.type.7b405f.2 = struct_value () [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.577251.2: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.3, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.577251.2: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.5, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.e5cfba.2: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.577251.2 = struct_value () [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.085dd9.2: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.3, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.085dd9.2: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.5, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.749015.2: %T.as_type.as.OrderedWith.impl.Greater.type.085dd9.2 = struct_value () [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.0f0b65.2: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.0f0b65.2: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.5, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.f86b3e.2: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.0f0b65.2 = struct_value () [concrete]
// CHECK:STDOUT: %OrderedWith.facet.72a: %OrderedWith.type.456 = facet_value %i64, (%OrderedWith.impl_witness.7e3) [concrete]
// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.606: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.72a) [concrete]
@@ -2056,59 +2056,59 @@ fn CopyUnsignedLongLong() {
// CHECK:STDOUT: %OrderedWith.WithSelf.Greater.type.f32: type = fn_type @OrderedWith.WithSelf.Greater, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.72a) [concrete]
// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.15d: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.72a) [concrete]
// CHECK:STDOUT: %.af0: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.f32, %OrderedWith.facet.72a [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.cbc6c2.1: <specific function> = specific_function %T.as_type.as.OrderedWith.impl.Greater.749015.2, @T.as_type.as.OrderedWith.impl.Greater.3(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.cbc6c2.2: <specific function> = specific_function %T.as_type.as.OrderedWith.impl.Greater.749015.1, @T.as_type.as.OrderedWith.impl.Greater.4(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.cbc6c2.1: <specific function> = specific_function %T.as_type.as.OrderedWith.impl.Greater.749015.2, @T.as_type.as.OrderedWith.impl.Greater.5(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.cbc6c2.2: <specific function> = specific_function %T.as_type.as.OrderedWith.impl.Greater.749015.1, @T.as_type.as.OrderedWith.impl.Greater.6(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %.901: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.606, %OrderedWith.facet.72a [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.a8a2ad.1: <specific function> = specific_function %T.as_type.as.OrderedWith.impl.Less.c5f236.2, @T.as_type.as.OrderedWith.impl.Less.3(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.a8a2ad.2: <specific function> = specific_function %T.as_type.as.OrderedWith.impl.Less.c5f236.1, @T.as_type.as.OrderedWith.impl.Less.4(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.a8a2ad.1: <specific function> = specific_function %T.as_type.as.OrderedWith.impl.Less.c5f236.2, @T.as_type.as.OrderedWith.impl.Less.5(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.a8a2ad.2: <specific function> = specific_function %T.as_type.as.OrderedWith.impl.Less.c5f236.1, @T.as_type.as.OrderedWith.impl.Less.6(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %.96b: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.15d, %OrderedWith.facet.72a [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.8a93e9.1: <specific function> = specific_function %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.f86b3e.2, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.8a93e9.2: <specific function> = specific_function %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.f86b3e.1, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.8a93e9.1: <specific function> = specific_function %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.f86b3e.2, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.5(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.8a93e9.2: <specific function> = specific_function %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.f86b3e.1, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.6(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %.829: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.2a1, %OrderedWith.facet.72a [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.ab9ff7.1: <specific function> = specific_function %T.as_type.as.OrderedWith.impl.LessOrEquivalent.e5cfba.2, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.3(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.ab9ff7.2: <specific function> = specific_function %T.as_type.as.OrderedWith.impl.LessOrEquivalent.e5cfba.1, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.4(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.ab9ff7.1: <specific function> = specific_function %T.as_type.as.OrderedWith.impl.LessOrEquivalent.e5cfba.2, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.5(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.ab9ff7.2: <specific function> = specific_function %T.as_type.as.OrderedWith.impl.LessOrEquivalent.e5cfba.1, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.6(%ImplicitAs.facet.7a4) [concrete]
// CHECK:STDOUT: %EqWith.impl_witness.cb6: <witness> = impl_witness imports.%EqWith.impl_witness_table.db1, @T.as_type.as.EqWith.impl.6d3(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.8e6244.1: type = fn_type @T.as_type.as.EqWith.impl.Equal.4, @T.as_type.as.EqWith.impl.6d3(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.8e6244.1: type = fn_type @T.as_type.as.EqWith.impl.Equal.6, @T.as_type.as.EqWith.impl.6d3(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.66756b.1: %T.as_type.as.EqWith.impl.Equal.type.8e6244.1 = struct_value () [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.fb7a86.1: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.4, @T.as_type.as.EqWith.impl.6d3(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.fb7a86.1: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.6, @T.as_type.as.EqWith.impl.6d3(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.672038.1: %T.as_type.as.EqWith.impl.NotEqual.type.fb7a86.1 = struct_value () [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.8e6244.2: type = fn_type @T.as_type.as.EqWith.impl.Equal.3, @T.as_type.as.EqWith.impl.6d3(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.8e6244.2: type = fn_type @T.as_type.as.EqWith.impl.Equal.5, @T.as_type.as.EqWith.impl.6d3(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.66756b.2: %T.as_type.as.EqWith.impl.Equal.type.8e6244.2 = struct_value () [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.fb7a86.2: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.3, @T.as_type.as.EqWith.impl.6d3(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.fb7a86.2: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.5, @T.as_type.as.EqWith.impl.6d3(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.672038.2: %T.as_type.as.EqWith.impl.NotEqual.type.fb7a86.2 = struct_value () [concrete]
// CHECK:STDOUT: %EqWith.facet.83c: %EqWith.type.9fc = facet_value Core.IntLiteral, (%EqWith.impl_witness.cb6) [concrete]
// CHECK:STDOUT: %EqWith.WithSelf.Equal.type.5b1: type = fn_type @EqWith.WithSelf.Equal, @EqWith.WithSelf(%Cpp.long_long, %EqWith.facet.83c) [concrete]
// CHECK:STDOUT: %EqWith.WithSelf.NotEqual.type.a9f: type = fn_type @EqWith.WithSelf.NotEqual, @EqWith.WithSelf(%Cpp.long_long, %EqWith.facet.83c) [concrete]
// CHECK:STDOUT: %.658: type = fn_type_with_self_type %EqWith.WithSelf.Equal.type.5b1, %EqWith.facet.83c [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.bound.2fcdd5.1: <bound method> = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.Equal.66756b.2 [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.7834c5.1: <specific function> = specific_function %T.as_type.as.EqWith.impl.Equal.66756b.2, @T.as_type.as.EqWith.impl.Equal.3(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.7834c5.1: <specific function> = specific_function %T.as_type.as.EqWith.impl.Equal.66756b.2, @T.as_type.as.EqWith.impl.Equal.5(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %bound_method.7c9d36.1: <bound method> = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.Equal.specific_fn.7834c5.1 [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.bound.2fcdd5.2: <bound method> = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.Equal.66756b.1 [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.7834c5.2: <specific function> = specific_function %T.as_type.as.EqWith.impl.Equal.66756b.1, @T.as_type.as.EqWith.impl.Equal.4(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.7834c5.2: <specific function> = specific_function %T.as_type.as.EqWith.impl.Equal.66756b.1, @T.as_type.as.EqWith.impl.Equal.6(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %bound_method.7c9d36.2: <bound method> = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.Equal.specific_fn.7834c5.2 [concrete]
// CHECK:STDOUT: %.1f9: type = fn_type_with_self_type %EqWith.WithSelf.NotEqual.type.a9f, %EqWith.facet.83c [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.bound.a9911b.1: <bound method> = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.NotEqual.672038.2 [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.598adf.1: <specific function> = specific_function %T.as_type.as.EqWith.impl.NotEqual.672038.2, @T.as_type.as.EqWith.impl.NotEqual.3(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.598adf.1: <specific function> = specific_function %T.as_type.as.EqWith.impl.NotEqual.672038.2, @T.as_type.as.EqWith.impl.NotEqual.5(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %bound_method.1f073e.1: <bound method> = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.NotEqual.specific_fn.598adf.1 [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.bound.a9911b.2: <bound method> = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.NotEqual.672038.1 [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.598adf.2: <specific function> = specific_function %T.as_type.as.EqWith.impl.NotEqual.672038.1, @T.as_type.as.EqWith.impl.NotEqual.4(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.598adf.2: <specific function> = specific_function %T.as_type.as.EqWith.impl.NotEqual.672038.1, @T.as_type.as.EqWith.impl.NotEqual.6(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %bound_method.1f073e.2: <bound method> = bound_method %int_1.5b8, %T.as_type.as.EqWith.impl.NotEqual.specific_fn.598adf.2 [concrete]
// CHECK:STDOUT: %OrderedWith.impl_witness.ccd: <witness> = impl_witness imports.%OrderedWith.impl_witness_table.8b4, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.28a50f.1: type = fn_type @T.as_type.as.OrderedWith.impl.Less.4, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.28a50f.1: type = fn_type @T.as_type.as.OrderedWith.impl.Less.6, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.09733d.1: %T.as_type.as.OrderedWith.impl.Less.type.28a50f.1 = struct_value () [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.1522a4.1: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.4, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.1522a4.1: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.6, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.b7cd44.1: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.1522a4.1 = struct_value () [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.e2356e.1: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.4, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.e2356e.1: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.6, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.a80774.1: %T.as_type.as.OrderedWith.impl.Greater.type.e2356e.1 = struct_value () [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.09194f.1: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.09194f.1: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.6, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.ae8de7.1: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.09194f.1 = struct_value () [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.28a50f.2: type = fn_type @T.as_type.as.OrderedWith.impl.Less.3, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.28a50f.2: type = fn_type @T.as_type.as.OrderedWith.impl.Less.5, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.09733d.2: %T.as_type.as.OrderedWith.impl.Less.type.28a50f.2 = struct_value () [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.1522a4.2: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.3, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.1522a4.2: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.5, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.b7cd44.2: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.1522a4.2 = struct_value () [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.e2356e.2: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.3, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.e2356e.2: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.5, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.a80774.2: %T.as_type.as.OrderedWith.impl.Greater.type.e2356e.2 = struct_value () [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.09194f.2: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.09194f.2: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.5, @T.as_type.as.OrderedWith.impl.df2(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.ae8de7.2: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.09194f.2 = struct_value () [concrete]
// CHECK:STDOUT: %OrderedWith.facet.54d: %OrderedWith.type.456 = facet_value Core.IntLiteral, (%OrderedWith.impl_witness.ccd) [concrete]
// CHECK:STDOUT: %OrderedWith.WithSelf.Less.type.a56: type = fn_type @OrderedWith.WithSelf.Less, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.54d) [concrete]
@@ -2117,31 +2117,31 @@ fn CopyUnsignedLongLong() {
// CHECK:STDOUT: %OrderedWith.WithSelf.GreaterOrEquivalent.type.6ad: type = fn_type @OrderedWith.WithSelf.GreaterOrEquivalent, @OrderedWith.WithSelf(%Cpp.long_long, %OrderedWith.facet.54d) [concrete]
// CHECK:STDOUT: %.1e0: type = fn_type_with_self_type %OrderedWith.WithSelf.Greater.type.22c, %OrderedWith.facet.54d [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.bound.ba4552.1: <bound method> = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Greater.a80774.2 [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.3eccd1.1: <specific function> = specific_function %T.as_type.as.OrderedWith.impl.Greater.a80774.2, @T.as_type.as.OrderedWith.impl.Greater.3(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.3eccd1.1: <specific function> = specific_function %T.as_type.as.OrderedWith.impl.Greater.a80774.2, @T.as_type.as.OrderedWith.impl.Greater.5(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %bound_method.560bca.1: <bound method> = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Greater.specific_fn.3eccd1.1 [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.bound.ba4552.2: <bound method> = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Greater.a80774.1 [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.3eccd1.2: <specific function> = specific_function %T.as_type.as.OrderedWith.impl.Greater.a80774.1, @T.as_type.as.OrderedWith.impl.Greater.4(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.3eccd1.2: <specific function> = specific_function %T.as_type.as.OrderedWith.impl.Greater.a80774.1, @T.as_type.as.OrderedWith.impl.Greater.6(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %bound_method.560bca.2: <bound method> = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Greater.specific_fn.3eccd1.2 [concrete]
// CHECK:STDOUT: %.4c9: type = fn_type_with_self_type %OrderedWith.WithSelf.Less.type.a56, %OrderedWith.facet.54d [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.bound.069497.1: <bound method> = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Less.09733d.2 [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.0beaf8.1: <specific function> = specific_function %T.as_type.as.OrderedWith.impl.Less.09733d.2, @T.as_type.as.OrderedWith.impl.Less.3(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.0beaf8.1: <specific function> = specific_function %T.as_type.as.OrderedWith.impl.Less.09733d.2, @T.as_type.as.OrderedWith.impl.Less.5(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %bound_method.103f49.1: <bound method> = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Less.specific_fn.0beaf8.1 [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.bound.069497.2: <bound method> = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Less.09733d.1 [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.0beaf8.2: <specific function> = specific_function %T.as_type.as.OrderedWith.impl.Less.09733d.1, @T.as_type.as.OrderedWith.impl.Less.4(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.0beaf8.2: <specific function> = specific_function %T.as_type.as.OrderedWith.impl.Less.09733d.1, @T.as_type.as.OrderedWith.impl.Less.6(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %bound_method.103f49.2: <bound method> = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.Less.specific_fn.0beaf8.2 [concrete]
// CHECK:STDOUT: %.b09: type = fn_type_with_self_type %OrderedWith.WithSelf.GreaterOrEquivalent.type.6ad, %OrderedWith.facet.54d [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.22317d.1: <bound method> = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.ae8de7.2 [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.371f57.1: <specific function> = specific_function %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.ae8de7.2, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.371f57.1: <specific function> = specific_function %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.ae8de7.2, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.5(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %bound_method.ffa540.1: <bound method> = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.371f57.1 [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.22317d.2: <bound method> = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.ae8de7.1 [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.371f57.2: <specific function> = specific_function %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.ae8de7.1, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.371f57.2: <specific function> = specific_function %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.ae8de7.1, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.6(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %bound_method.ffa540.2: <bound method> = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.371f57.2 [concrete]
// CHECK:STDOUT: %.cab: type = fn_type_with_self_type %OrderedWith.WithSelf.LessOrEquivalent.type.21f, %OrderedWith.facet.54d [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.2eaa72.1: <bound method> = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.b7cd44.2 [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.05fce2.1: <specific function> = specific_function %T.as_type.as.OrderedWith.impl.LessOrEquivalent.b7cd44.2, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.3(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.05fce2.1: <specific function> = specific_function %T.as_type.as.OrderedWith.impl.LessOrEquivalent.b7cd44.2, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.5(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %bound_method.83e687.1: <bound method> = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.05fce2.1 [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.2eaa72.2: <bound method> = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.b7cd44.1 [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.05fce2.2: <specific function> = specific_function %T.as_type.as.OrderedWith.impl.LessOrEquivalent.b7cd44.1, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.4(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.05fce2.2: <specific function> = specific_function %T.as_type.as.OrderedWith.impl.LessOrEquivalent.b7cd44.1, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.6(%ImplicitAs.facet.2ed) [concrete]
// CHECK:STDOUT: %bound_method.83e687.2: <bound method> = bound_method %int_1.5b8, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.05fce2.2 [concrete]
// CHECK:STDOUT: }
// CHECK:STDOUT:
@@ -2195,12 +2195,12 @@ fn CopyUnsignedLongLong() {
// CHECK:STDOUT: %.loc10_5.1: %ImplicitAs.type.0ec = converted constants.%i64, %ImplicitAs.facet.loc10_5.1 [concrete = constants.%ImplicitAs.facet.7a4]
// CHECK:STDOUT: %ImplicitAs.facet.loc10_5.2: %ImplicitAs.type.0ec = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.305) [concrete = constants.%ImplicitAs.facet.7a4]
// CHECK:STDOUT: %.loc10_5.2: %ImplicitAs.type.0ec = converted constants.%i64, %ImplicitAs.facet.loc10_5.2 [concrete = constants.%ImplicitAs.facet.7a4]
// CHECK:STDOUT: %specific_fn.loc10: <specific function> = specific_function %impl.elem0.loc10_5, @T.as_type.as.EqWith.impl.Equal.3(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.specific_fn.044d32.1]
// CHECK:STDOUT: %specific_fn.loc10: <specific function> = specific_function %impl.elem0.loc10_5, @T.as_type.as.EqWith.impl.Equal.5(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.specific_fn.044d32.1]
// CHECK:STDOUT: %bound_method.loc10_5.2: <bound method> = bound_method %b.ref.loc10, %specific_fn.loc10
// CHECK:STDOUT: %.loc10_5.3: %T.as_type.as.EqWith.impl.Equal.type.6d33d6.1 = specific_constant imports.%Core.Equal.4f5, @T.as_type.as.EqWith.impl.6d3(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.817082.1]
// CHECK:STDOUT: %Equal.ref.loc10: %T.as_type.as.EqWith.impl.Equal.type.6d33d6.1 = name_ref Equal, %.loc10_5.3 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.817082.1]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.bound.loc10: <bound method> = bound_method %b.ref.loc10, %Equal.ref.loc10
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.loc10: <specific function> = specific_function %Equal.ref.loc10, @T.as_type.as.EqWith.impl.Equal.4(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.specific_fn.044d32.2]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.loc10: <specific function> = specific_function %Equal.ref.loc10, @T.as_type.as.EqWith.impl.Equal.6(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.specific_fn.044d32.2]
// CHECK:STDOUT: %bound_method.loc10_5.3: <bound method> = bound_method %b.ref.loc10, %T.as_type.as.EqWith.impl.Equal.specific_fn.loc10
// CHECK:STDOUT: %impl.elem0.loc10_3: %.25e = impl_witness_access constants.%ImplicitAs.impl_witness.305, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert]
// CHECK:STDOUT: %bound_method.loc10_3: <bound method> = bound_method %b.ref.loc10, %impl.elem0.loc10_3
@@ -2216,12 +2216,12 @@ fn CopyUnsignedLongLong() {
// CHECK:STDOUT: %.loc11_5.1: %ImplicitAs.type.0ec = converted constants.%i64, %ImplicitAs.facet.loc11_5.1 [concrete = constants.%ImplicitAs.facet.7a4]
// CHECK:STDOUT: %ImplicitAs.facet.loc11_5.2: %ImplicitAs.type.0ec = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.305) [concrete = constants.%ImplicitAs.facet.7a4]
// CHECK:STDOUT: %.loc11_5.2: %ImplicitAs.type.0ec = converted constants.%i64, %ImplicitAs.facet.loc11_5.2 [concrete = constants.%ImplicitAs.facet.7a4]
// CHECK:STDOUT: %specific_fn.loc11: <specific function> = specific_function %impl.elem1.loc11, @T.as_type.as.EqWith.impl.NotEqual.3(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.specific_fn.b44c79.1]
// CHECK:STDOUT: %specific_fn.loc11: <specific function> = specific_function %impl.elem1.loc11, @T.as_type.as.EqWith.impl.NotEqual.5(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.specific_fn.b44c79.1]
// CHECK:STDOUT: %bound_method.loc11_5.2: <bound method> = bound_method %b.ref.loc11, %specific_fn.loc11
// CHECK:STDOUT: %.loc11_5.3: %T.as_type.as.EqWith.impl.NotEqual.type.2c42f8.1 = specific_constant imports.%Core.NotEqual.0b2, @T.as_type.as.EqWith.impl.6d3(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.de7c60.1]
// CHECK:STDOUT: %NotEqual.ref.loc11: %T.as_type.as.EqWith.impl.NotEqual.type.2c42f8.1 = name_ref NotEqual, %.loc11_5.3 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.de7c60.1]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.bound.loc11: <bound method> = bound_method %b.ref.loc11, %NotEqual.ref.loc11
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.loc11: <specific function> = specific_function %NotEqual.ref.loc11, @T.as_type.as.EqWith.impl.NotEqual.4(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.specific_fn.b44c79.2]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.loc11: <specific function> = specific_function %NotEqual.ref.loc11, @T.as_type.as.EqWith.impl.NotEqual.6(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.specific_fn.b44c79.2]
// CHECK:STDOUT: %bound_method.loc11_5.3: <bound method> = bound_method %b.ref.loc11, %T.as_type.as.EqWith.impl.NotEqual.specific_fn.loc11
// CHECK:STDOUT: %impl.elem0.loc11: %.25e = impl_witness_access constants.%ImplicitAs.impl_witness.305, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert]
// CHECK:STDOUT: %bound_method.loc11_3: <bound method> = bound_method %b.ref.loc11, %impl.elem0.loc11
@@ -2237,12 +2237,12 @@ fn CopyUnsignedLongLong() {
// CHECK:STDOUT: %.loc12_5.1: %ImplicitAs.type.0ec = converted constants.%i64, %ImplicitAs.facet.loc12_5.1 [concrete = constants.%ImplicitAs.facet.7a4]
// CHECK:STDOUT: %ImplicitAs.facet.loc12_5.2: %ImplicitAs.type.0ec = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.305) [concrete = constants.%ImplicitAs.facet.7a4]
// CHECK:STDOUT: %.loc12_5.2: %ImplicitAs.type.0ec = converted constants.%i64, %ImplicitAs.facet.loc12_5.2 [concrete = constants.%ImplicitAs.facet.7a4]
// CHECK:STDOUT: %specific_fn.loc12: <specific function> = specific_function %impl.elem2.loc12, @T.as_type.as.OrderedWith.impl.Greater.3(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.specific_fn.cbc6c2.1]
// CHECK:STDOUT: %specific_fn.loc12: <specific function> = specific_function %impl.elem2.loc12, @T.as_type.as.OrderedWith.impl.Greater.5(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.specific_fn.cbc6c2.1]
// CHECK:STDOUT: %bound_method.loc12_5.2: <bound method> = bound_method %b.ref.loc12, %specific_fn.loc12
// CHECK:STDOUT: %.loc12_5.3: %T.as_type.as.OrderedWith.impl.Greater.type.085dd9.1 = specific_constant imports.%Core.Greater.c24, @T.as_type.as.OrderedWith.impl.df2(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.749015.1]
// CHECK:STDOUT: %Greater.ref.loc12: %T.as_type.as.OrderedWith.impl.Greater.type.085dd9.1 = name_ref Greater, %.loc12_5.3 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.749015.1]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.bound.loc12: <bound method> = bound_method %b.ref.loc12, %Greater.ref.loc12
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.loc12: <specific function> = specific_function %Greater.ref.loc12, @T.as_type.as.OrderedWith.impl.Greater.4(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.specific_fn.cbc6c2.2]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.loc12: <specific function> = specific_function %Greater.ref.loc12, @T.as_type.as.OrderedWith.impl.Greater.6(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.specific_fn.cbc6c2.2]
// CHECK:STDOUT: %bound_method.loc12_5.3: <bound method> = bound_method %b.ref.loc12, %T.as_type.as.OrderedWith.impl.Greater.specific_fn.loc12
// CHECK:STDOUT: %impl.elem0.loc12: %.25e = impl_witness_access constants.%ImplicitAs.impl_witness.305, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert]
// CHECK:STDOUT: %bound_method.loc12_3: <bound method> = bound_method %b.ref.loc12, %impl.elem0.loc12
@@ -2258,12 +2258,12 @@ fn CopyUnsignedLongLong() {
// CHECK:STDOUT: %.loc13_5.1: %ImplicitAs.type.0ec = converted constants.%i64, %ImplicitAs.facet.loc13_5.1 [concrete = constants.%ImplicitAs.facet.7a4]
// CHECK:STDOUT: %ImplicitAs.facet.loc13_5.2: %ImplicitAs.type.0ec = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.305) [concrete = constants.%ImplicitAs.facet.7a4]
// CHECK:STDOUT: %.loc13_5.2: %ImplicitAs.type.0ec = converted constants.%i64, %ImplicitAs.facet.loc13_5.2 [concrete = constants.%ImplicitAs.facet.7a4]
// CHECK:STDOUT: %specific_fn.loc13: <specific function> = specific_function %impl.elem0.loc13_5, @T.as_type.as.OrderedWith.impl.Less.3(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.specific_fn.a8a2ad.1]
// CHECK:STDOUT: %specific_fn.loc13: <specific function> = specific_function %impl.elem0.loc13_5, @T.as_type.as.OrderedWith.impl.Less.5(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.specific_fn.a8a2ad.1]
// CHECK:STDOUT: %bound_method.loc13_5.2: <bound method> = bound_method %b.ref.loc13, %specific_fn.loc13
// CHECK:STDOUT: %.loc13_5.3: %T.as_type.as.OrderedWith.impl.Less.type.7b405f.1 = specific_constant imports.%Core.Less.2d9, @T.as_type.as.OrderedWith.impl.df2(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.c5f236.1]
// CHECK:STDOUT: %Less.ref.loc13: %T.as_type.as.OrderedWith.impl.Less.type.7b405f.1 = name_ref Less, %.loc13_5.3 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.c5f236.1]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.bound.loc13: <bound method> = bound_method %b.ref.loc13, %Less.ref.loc13
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.loc13: <specific function> = specific_function %Less.ref.loc13, @T.as_type.as.OrderedWith.impl.Less.4(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.specific_fn.a8a2ad.2]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.loc13: <specific function> = specific_function %Less.ref.loc13, @T.as_type.as.OrderedWith.impl.Less.6(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.specific_fn.a8a2ad.2]
// CHECK:STDOUT: %bound_method.loc13_5.3: <bound method> = bound_method %b.ref.loc13, %T.as_type.as.OrderedWith.impl.Less.specific_fn.loc13
// CHECK:STDOUT: %impl.elem0.loc13_3: %.25e = impl_witness_access constants.%ImplicitAs.impl_witness.305, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert]
// CHECK:STDOUT: %bound_method.loc13_3: <bound method> = bound_method %b.ref.loc13, %impl.elem0.loc13_3
@@ -2279,12 +2279,12 @@ fn CopyUnsignedLongLong() {
// CHECK:STDOUT: %.loc14_5.1: %ImplicitAs.type.0ec = converted constants.%i64, %ImplicitAs.facet.loc14_5.1 [concrete = constants.%ImplicitAs.facet.7a4]
// CHECK:STDOUT: %ImplicitAs.facet.loc14_5.2: %ImplicitAs.type.0ec = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.305) [concrete = constants.%ImplicitAs.facet.7a4]
// CHECK:STDOUT: %.loc14_5.2: %ImplicitAs.type.0ec = converted constants.%i64, %ImplicitAs.facet.loc14_5.2 [concrete = constants.%ImplicitAs.facet.7a4]
// CHECK:STDOUT: %specific_fn.loc14: <specific function> = specific_function %impl.elem3.loc14, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.8a93e9.1]
// CHECK:STDOUT: %specific_fn.loc14: <specific function> = specific_function %impl.elem3.loc14, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.5(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.8a93e9.1]
// CHECK:STDOUT: %bound_method.loc14_5.2: <bound method> = bound_method %b.ref.loc14, %specific_fn.loc14
// CHECK:STDOUT: %.loc14_5.3: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.0f0b65.1 = specific_constant imports.%Core.GreaterOrEquivalent.8e2, @T.as_type.as.OrderedWith.impl.df2(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.f86b3e.1]
// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc14: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.0f0b65.1 = name_ref GreaterOrEquivalent, %.loc14_5.3 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.f86b3e.1]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.loc14: <bound method> = bound_method %b.ref.loc14, %GreaterOrEquivalent.ref.loc14
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc14: <specific function> = specific_function %GreaterOrEquivalent.ref.loc14, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.8a93e9.2]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc14: <specific function> = specific_function %GreaterOrEquivalent.ref.loc14, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.6(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.8a93e9.2]
// CHECK:STDOUT: %bound_method.loc14_5.3: <bound method> = bound_method %b.ref.loc14, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc14
// CHECK:STDOUT: %impl.elem0.loc14: %.25e = impl_witness_access constants.%ImplicitAs.impl_witness.305, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert]
// CHECK:STDOUT: %bound_method.loc14_3: <bound method> = bound_method %b.ref.loc14, %impl.elem0.loc14
@@ -2300,12 +2300,12 @@ fn CopyUnsignedLongLong() {
// CHECK:STDOUT: %.loc15_5.1: %ImplicitAs.type.0ec = converted constants.%i64, %ImplicitAs.facet.loc15_5.1 [concrete = constants.%ImplicitAs.facet.7a4]
// CHECK:STDOUT: %ImplicitAs.facet.loc15_5.2: %ImplicitAs.type.0ec = facet_value constants.%i64, (constants.%ImplicitAs.impl_witness.305) [concrete = constants.%ImplicitAs.facet.7a4]
// CHECK:STDOUT: %.loc15_5.2: %ImplicitAs.type.0ec = converted constants.%i64, %ImplicitAs.facet.loc15_5.2 [concrete = constants.%ImplicitAs.facet.7a4]
// CHECK:STDOUT: %specific_fn.loc15: <specific function> = specific_function %impl.elem1.loc15, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.3(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.ab9ff7.1]
// CHECK:STDOUT: %specific_fn.loc15: <specific function> = specific_function %impl.elem1.loc15, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.5(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.ab9ff7.1]
// CHECK:STDOUT: %bound_method.loc15_5.2: <bound method> = bound_method %b.ref.loc15, %specific_fn.loc15
// CHECK:STDOUT: %.loc15_5.3: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.577251.1 = specific_constant imports.%Core.LessOrEquivalent.d90, @T.as_type.as.OrderedWith.impl.df2(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.e5cfba.1]
// CHECK:STDOUT: %LessOrEquivalent.ref.loc15: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.577251.1 = name_ref LessOrEquivalent, %.loc15_5.3 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.e5cfba.1]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.loc15: <bound method> = bound_method %b.ref.loc15, %LessOrEquivalent.ref.loc15
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc15: <specific function> = specific_function %LessOrEquivalent.ref.loc15, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.4(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.ab9ff7.2]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc15: <specific function> = specific_function %LessOrEquivalent.ref.loc15, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.6(constants.%ImplicitAs.facet.7a4) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.ab9ff7.2]
// CHECK:STDOUT: %bound_method.loc15_5.3: <bound method> = bound_method %b.ref.loc15, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc15
// CHECK:STDOUT: %impl.elem0.loc15: %.25e = impl_witness_access constants.%ImplicitAs.impl_witness.305, element0 [concrete = constants.%i64.as.ImplicitAs.impl.Convert]
// CHECK:STDOUT: %bound_method.loc15_3: <bound method> = bound_method %b.ref.loc15, %impl.elem0.loc15
@@ -2321,12 +2321,12 @@ fn CopyUnsignedLongLong() {
// CHECK:STDOUT: %.loc17_5.1: %ImplicitAs.type.0ec = converted Core.IntLiteral, %ImplicitAs.facet.loc17_5.1 [concrete = constants.%ImplicitAs.facet.2ed]
// CHECK:STDOUT: %ImplicitAs.facet.loc17_5.2: %ImplicitAs.type.0ec = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.660) [concrete = constants.%ImplicitAs.facet.2ed]
// CHECK:STDOUT: %.loc17_5.2: %ImplicitAs.type.0ec = converted Core.IntLiteral, %ImplicitAs.facet.loc17_5.2 [concrete = constants.%ImplicitAs.facet.2ed]
// CHECK:STDOUT: %specific_fn.loc17: <specific function> = specific_function %impl.elem0.loc17_5, @T.as_type.as.EqWith.impl.Equal.3(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.specific_fn.7834c5.1]
// CHECK:STDOUT: %specific_fn.loc17: <specific function> = specific_function %impl.elem0.loc17_5, @T.as_type.as.EqWith.impl.Equal.5(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.specific_fn.7834c5.1]
// CHECK:STDOUT: %bound_method.loc17_5.2: <bound method> = bound_method %int_1.loc17, %specific_fn.loc17 [concrete = constants.%bound_method.7c9d36.1]
// CHECK:STDOUT: %.loc17_5.3: %T.as_type.as.EqWith.impl.Equal.type.8e6244.1 = specific_constant imports.%Core.Equal.4f5, @T.as_type.as.EqWith.impl.6d3(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.66756b.1]
// CHECK:STDOUT: %Equal.ref.loc17: %T.as_type.as.EqWith.impl.Equal.type.8e6244.1 = name_ref Equal, %.loc17_5.3 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.66756b.1]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.bound.loc17: <bound method> = bound_method %int_1.loc17, %Equal.ref.loc17 [concrete = constants.%T.as_type.as.EqWith.impl.Equal.bound.2fcdd5.2]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.loc17: <specific function> = specific_function %Equal.ref.loc17, @T.as_type.as.EqWith.impl.Equal.4(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.specific_fn.7834c5.2]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.specific_fn.loc17: <specific function> = specific_function %Equal.ref.loc17, @T.as_type.as.EqWith.impl.Equal.6(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.EqWith.impl.Equal.specific_fn.7834c5.2]
// CHECK:STDOUT: %bound_method.loc17_5.3: <bound method> = bound_method %int_1.loc17, %T.as_type.as.EqWith.impl.Equal.specific_fn.loc17 [concrete = constants.%bound_method.7c9d36.2]
// CHECK:STDOUT: %impl.elem0.loc17_3: %.ca2 = impl_witness_access constants.%ImplicitAs.impl_witness.660, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce]
// CHECK:STDOUT: %bound_method.loc17_3: <bound method> = bound_method %int_1.loc17, %impl.elem0.loc17_3 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7]
@@ -2342,12 +2342,12 @@ fn CopyUnsignedLongLong() {
// CHECK:STDOUT: %.loc18_5.1: %ImplicitAs.type.0ec = converted Core.IntLiteral, %ImplicitAs.facet.loc18_5.1 [concrete = constants.%ImplicitAs.facet.2ed]
// CHECK:STDOUT: %ImplicitAs.facet.loc18_5.2: %ImplicitAs.type.0ec = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.660) [concrete = constants.%ImplicitAs.facet.2ed]
// CHECK:STDOUT: %.loc18_5.2: %ImplicitAs.type.0ec = converted Core.IntLiteral, %ImplicitAs.facet.loc18_5.2 [concrete = constants.%ImplicitAs.facet.2ed]
// CHECK:STDOUT: %specific_fn.loc18: <specific function> = specific_function %impl.elem1.loc18, @T.as_type.as.EqWith.impl.NotEqual.3(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.specific_fn.598adf.1]
// CHECK:STDOUT: %specific_fn.loc18: <specific function> = specific_function %impl.elem1.loc18, @T.as_type.as.EqWith.impl.NotEqual.5(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.specific_fn.598adf.1]
// CHECK:STDOUT: %bound_method.loc18_5.2: <bound method> = bound_method %int_1.loc18, %specific_fn.loc18 [concrete = constants.%bound_method.1f073e.1]
// CHECK:STDOUT: %.loc18_5.3: %T.as_type.as.EqWith.impl.NotEqual.type.fb7a86.1 = specific_constant imports.%Core.NotEqual.0b2, @T.as_type.as.EqWith.impl.6d3(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.672038.1]
// CHECK:STDOUT: %NotEqual.ref.loc18: %T.as_type.as.EqWith.impl.NotEqual.type.fb7a86.1 = name_ref NotEqual, %.loc18_5.3 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.672038.1]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.bound.loc18: <bound method> = bound_method %int_1.loc18, %NotEqual.ref.loc18 [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.bound.a9911b.2]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.loc18: <specific function> = specific_function %NotEqual.ref.loc18, @T.as_type.as.EqWith.impl.NotEqual.4(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.specific_fn.598adf.2]
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.specific_fn.loc18: <specific function> = specific_function %NotEqual.ref.loc18, @T.as_type.as.EqWith.impl.NotEqual.6(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.EqWith.impl.NotEqual.specific_fn.598adf.2]
// CHECK:STDOUT: %bound_method.loc18_5.3: <bound method> = bound_method %int_1.loc18, %T.as_type.as.EqWith.impl.NotEqual.specific_fn.loc18 [concrete = constants.%bound_method.1f073e.2]
// CHECK:STDOUT: %impl.elem0.loc18: %.ca2 = impl_witness_access constants.%ImplicitAs.impl_witness.660, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce]
// CHECK:STDOUT: %bound_method.loc18_3: <bound method> = bound_method %int_1.loc18, %impl.elem0.loc18 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7]
@@ -2363,12 +2363,12 @@ fn CopyUnsignedLongLong() {
// CHECK:STDOUT: %.loc19_5.1: %ImplicitAs.type.0ec = converted Core.IntLiteral, %ImplicitAs.facet.loc19_5.1 [concrete = constants.%ImplicitAs.facet.2ed]
// CHECK:STDOUT: %ImplicitAs.facet.loc19_5.2: %ImplicitAs.type.0ec = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.660) [concrete = constants.%ImplicitAs.facet.2ed]
// CHECK:STDOUT: %.loc19_5.2: %ImplicitAs.type.0ec = converted Core.IntLiteral, %ImplicitAs.facet.loc19_5.2 [concrete = constants.%ImplicitAs.facet.2ed]
// CHECK:STDOUT: %specific_fn.loc19: <specific function> = specific_function %impl.elem2.loc19, @T.as_type.as.OrderedWith.impl.Greater.3(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.specific_fn.3eccd1.1]
// CHECK:STDOUT: %specific_fn.loc19: <specific function> = specific_function %impl.elem2.loc19, @T.as_type.as.OrderedWith.impl.Greater.5(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.specific_fn.3eccd1.1]
// CHECK:STDOUT: %bound_method.loc19_5.2: <bound method> = bound_method %int_1.loc19, %specific_fn.loc19 [concrete = constants.%bound_method.560bca.1]
// CHECK:STDOUT: %.loc19_5.3: %T.as_type.as.OrderedWith.impl.Greater.type.e2356e.1 = specific_constant imports.%Core.Greater.c24, @T.as_type.as.OrderedWith.impl.df2(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.a80774.1]
// CHECK:STDOUT: %Greater.ref.loc19: %T.as_type.as.OrderedWith.impl.Greater.type.e2356e.1 = name_ref Greater, %.loc19_5.3 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.a80774.1]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.bound.loc19: <bound method> = bound_method %int_1.loc19, %Greater.ref.loc19 [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.bound.ba4552.2]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.loc19: <specific function> = specific_function %Greater.ref.loc19, @T.as_type.as.OrderedWith.impl.Greater.4(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.specific_fn.3eccd1.2]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.specific_fn.loc19: <specific function> = specific_function %Greater.ref.loc19, @T.as_type.as.OrderedWith.impl.Greater.6(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.OrderedWith.impl.Greater.specific_fn.3eccd1.2]
// CHECK:STDOUT: %bound_method.loc19_5.3: <bound method> = bound_method %int_1.loc19, %T.as_type.as.OrderedWith.impl.Greater.specific_fn.loc19 [concrete = constants.%bound_method.560bca.2]
// CHECK:STDOUT: %impl.elem0.loc19: %.ca2 = impl_witness_access constants.%ImplicitAs.impl_witness.660, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce]
// CHECK:STDOUT: %bound_method.loc19_3: <bound method> = bound_method %int_1.loc19, %impl.elem0.loc19 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7]
@@ -2384,12 +2384,12 @@ fn CopyUnsignedLongLong() {
// CHECK:STDOUT: %.loc20_5.1: %ImplicitAs.type.0ec = converted Core.IntLiteral, %ImplicitAs.facet.loc20_5.1 [concrete = constants.%ImplicitAs.facet.2ed]
// CHECK:STDOUT: %ImplicitAs.facet.loc20_5.2: %ImplicitAs.type.0ec = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.660) [concrete = constants.%ImplicitAs.facet.2ed]
// CHECK:STDOUT: %.loc20_5.2: %ImplicitAs.type.0ec = converted Core.IntLiteral, %ImplicitAs.facet.loc20_5.2 [concrete = constants.%ImplicitAs.facet.2ed]
// CHECK:STDOUT: %specific_fn.loc20: <specific function> = specific_function %impl.elem0.loc20_5, @T.as_type.as.OrderedWith.impl.Less.3(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.specific_fn.0beaf8.1]
// CHECK:STDOUT: %specific_fn.loc20: <specific function> = specific_function %impl.elem0.loc20_5, @T.as_type.as.OrderedWith.impl.Less.5(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.specific_fn.0beaf8.1]
// CHECK:STDOUT: %bound_method.loc20_5.2: <bound method> = bound_method %int_1.loc20, %specific_fn.loc20 [concrete = constants.%bound_method.103f49.1]
// CHECK:STDOUT: %.loc20_5.3: %T.as_type.as.OrderedWith.impl.Less.type.28a50f.1 = specific_constant imports.%Core.Less.2d9, @T.as_type.as.OrderedWith.impl.df2(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.09733d.1]
// CHECK:STDOUT: %Less.ref.loc20: %T.as_type.as.OrderedWith.impl.Less.type.28a50f.1 = name_ref Less, %.loc20_5.3 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.09733d.1]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.bound.loc20: <bound method> = bound_method %int_1.loc20, %Less.ref.loc20 [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.bound.069497.2]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.loc20: <specific function> = specific_function %Less.ref.loc20, @T.as_type.as.OrderedWith.impl.Less.4(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.specific_fn.0beaf8.2]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.specific_fn.loc20: <specific function> = specific_function %Less.ref.loc20, @T.as_type.as.OrderedWith.impl.Less.6(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.OrderedWith.impl.Less.specific_fn.0beaf8.2]
// CHECK:STDOUT: %bound_method.loc20_5.3: <bound method> = bound_method %int_1.loc20, %T.as_type.as.OrderedWith.impl.Less.specific_fn.loc20 [concrete = constants.%bound_method.103f49.2]
// CHECK:STDOUT: %impl.elem0.loc20_3: %.ca2 = impl_witness_access constants.%ImplicitAs.impl_witness.660, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce]
// CHECK:STDOUT: %bound_method.loc20_3: <bound method> = bound_method %int_1.loc20, %impl.elem0.loc20_3 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7]
@@ -2405,12 +2405,12 @@ fn CopyUnsignedLongLong() {
// CHECK:STDOUT: %.loc21_5.1: %ImplicitAs.type.0ec = converted Core.IntLiteral, %ImplicitAs.facet.loc21_5.1 [concrete = constants.%ImplicitAs.facet.2ed]
// CHECK:STDOUT: %ImplicitAs.facet.loc21_5.2: %ImplicitAs.type.0ec = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.660) [concrete = constants.%ImplicitAs.facet.2ed]
// CHECK:STDOUT: %.loc21_5.2: %ImplicitAs.type.0ec = converted Core.IntLiteral, %ImplicitAs.facet.loc21_5.2 [concrete = constants.%ImplicitAs.facet.2ed]
// CHECK:STDOUT: %specific_fn.loc21: <specific function> = specific_function %impl.elem3.loc21, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.3(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.371f57.1]
// CHECK:STDOUT: %specific_fn.loc21: <specific function> = specific_function %impl.elem3.loc21, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.5(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.371f57.1]
// CHECK:STDOUT: %bound_method.loc21_5.2: <bound method> = bound_method %int_1.loc21, %specific_fn.loc21 [concrete = constants.%bound_method.ffa540.1]
// CHECK:STDOUT: %.loc21_5.3: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.09194f.1 = specific_constant imports.%Core.GreaterOrEquivalent.8e2, @T.as_type.as.OrderedWith.impl.df2(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.ae8de7.1]
// CHECK:STDOUT: %GreaterOrEquivalent.ref.loc21: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.09194f.1 = name_ref GreaterOrEquivalent, %.loc21_5.3 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.ae8de7.1]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.loc21: <bound method> = bound_method %int_1.loc21, %GreaterOrEquivalent.ref.loc21 [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.bound.22317d.2]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc21: <specific function> = specific_function %GreaterOrEquivalent.ref.loc21, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.4(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.371f57.2]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc21: <specific function> = specific_function %GreaterOrEquivalent.ref.loc21, @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.6(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.371f57.2]
// CHECK:STDOUT: %bound_method.loc21_5.3: <bound method> = bound_method %int_1.loc21, %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.specific_fn.loc21 [concrete = constants.%bound_method.ffa540.2]
// CHECK:STDOUT: %impl.elem0.loc21: %.ca2 = impl_witness_access constants.%ImplicitAs.impl_witness.660, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce]
// CHECK:STDOUT: %bound_method.loc21_3: <bound method> = bound_method %int_1.loc21, %impl.elem0.loc21 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7]
@@ -2426,12 +2426,12 @@ fn CopyUnsignedLongLong() {
// CHECK:STDOUT: %.loc22_5.1: %ImplicitAs.type.0ec = converted Core.IntLiteral, %ImplicitAs.facet.loc22_5.1 [concrete = constants.%ImplicitAs.facet.2ed]
// CHECK:STDOUT: %ImplicitAs.facet.loc22_5.2: %ImplicitAs.type.0ec = facet_value Core.IntLiteral, (constants.%ImplicitAs.impl_witness.660) [concrete = constants.%ImplicitAs.facet.2ed]
// CHECK:STDOUT: %.loc22_5.2: %ImplicitAs.type.0ec = converted Core.IntLiteral, %ImplicitAs.facet.loc22_5.2 [concrete = constants.%ImplicitAs.facet.2ed]
// CHECK:STDOUT: %specific_fn.loc22: <specific function> = specific_function %impl.elem1.loc22, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.3(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.05fce2.1]
// CHECK:STDOUT: %specific_fn.loc22: <specific function> = specific_function %impl.elem1.loc22, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.5(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.05fce2.1]
// CHECK:STDOUT: %bound_method.loc22_5.2: <bound method> = bound_method %int_1.loc22, %specific_fn.loc22 [concrete = constants.%bound_method.83e687.1]
// CHECK:STDOUT: %.loc22_5.3: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.1522a4.1 = specific_constant imports.%Core.LessOrEquivalent.d90, @T.as_type.as.OrderedWith.impl.df2(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.b7cd44.1]
// CHECK:STDOUT: %LessOrEquivalent.ref.loc22: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.1522a4.1 = name_ref LessOrEquivalent, %.loc22_5.3 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.b7cd44.1]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.loc22: <bound method> = bound_method %int_1.loc22, %LessOrEquivalent.ref.loc22 [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.bound.2eaa72.2]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc22: <specific function> = specific_function %LessOrEquivalent.ref.loc22, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.4(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.05fce2.2]
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc22: <specific function> = specific_function %LessOrEquivalent.ref.loc22, @T.as_type.as.OrderedWith.impl.LessOrEquivalent.6(constants.%ImplicitAs.facet.2ed) [concrete = constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.05fce2.2]
// CHECK:STDOUT: %bound_method.loc22_5.3: <bound method> = bound_method %int_1.loc22, %T.as_type.as.OrderedWith.impl.LessOrEquivalent.specific_fn.loc22 [concrete = constants.%bound_method.83e687.2]
// CHECK:STDOUT: %impl.elem0.loc22: %.ca2 = impl_witness_access constants.%ImplicitAs.impl_witness.660, element0 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.3ce]
// CHECK:STDOUT: %bound_method.loc22_3: <bound method> = bound_method %int_1.loc22, %impl.elem0.loc22 [concrete = constants.%Core.IntLiteral.as.ImplicitAs.impl.Convert.bound.5d7]