mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-05 22:02:55 +01:00
Refactor CppRange interface and fix a crash exposed by doing so. (#7515)
Split up the CppRange interface into smaller parts, with the intent of improving the diagnostic quality and making the implementation easier to understand. This also makes the implementation details of the CppRange machinery private, which breaks one of the existing tests; that test is split into two files, one which tests the low-level machinery works, and another that tests the resulting prelude behavior. This change exposes a crash in `where` expression handling, where we would perform a substitution that creates a new `SpecificConstant` that refers into a region of a generic that has never been resolved. Fix that by resolving the definition region of a generic if eval sees a `SpecificConstant` that refers into it. This is usually not necessary because something else should have resolved that region first, but that doesn't happen here. --------- Co-authored-by: Dana Jansens <danakj@orodu.net>
This commit is contained in:
co-authored by
Dana Jansens
parent
31cc20f6e3
commit
643ab57f5a
@@ -0,0 +1,406 @@
|
||||
// Part of the Carbon Language project, under the Apache License v2.0 with LLVM
|
||||
// Exceptions. See /LICENSE for license information.
|
||||
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
//
|
||||
// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/primitives.carbon
|
||||
//
|
||||
// EXTRA-ARGS: --clang-arg=-std=c++20
|
||||
//
|
||||
// AUTOUPDATE
|
||||
// TIP: To test this file alone, run:
|
||||
// TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/check/testdata/interop/cpp/impls/cpp_range_for_iterate.carbon
|
||||
// TIP: To dump output, run:
|
||||
// TIP: bazel run //toolchain/testing:file_test -- --dump_output --file_tests=toolchain/check/testdata/interop/cpp/impls/cpp_range_for_iterate.carbon
|
||||
|
||||
// --- cpp_range_for_iterate.carbon
|
||||
package Core library "cpp_range_for_iterate";
|
||||
|
||||
import library "prelude/parts/bool";
|
||||
|
||||
interface CppRangeForIterate {
|
||||
let Iterator: type;
|
||||
let Sentinel: type;
|
||||
|
||||
// TODO: self must be ref-qualified
|
||||
fn Begin(self) -> Iterator;
|
||||
fn End(self) -> Sentinel;
|
||||
}
|
||||
|
||||
interface IsRange {
|
||||
let Result: bool;
|
||||
}
|
||||
|
||||
final impl forall [T: CppRangeForIterate] T as IsRange where .Result = true {}
|
||||
impl forall [T: type] T as IsRange where .Result = false {}
|
||||
|
||||
fn AssertIsRange(unused generic R: IsRange where .Result = true) {}
|
||||
fn AssertIsNotRange(unused generic S: IsRange where .Result = false) {}
|
||||
|
||||
// --- methods_return_same_type.carbon
|
||||
library "[[@TEST_NAME]]";
|
||||
|
||||
import Core library "cpp_range_for_iterate";
|
||||
|
||||
import Cpp inline '''c++
|
||||
class MutableRange {
|
||||
struct Iterator {};
|
||||
public:
|
||||
auto begin() -> Iterator;
|
||||
auto end() -> Iterator;
|
||||
};
|
||||
|
||||
class ConstRange {
|
||||
struct Iterator {};
|
||||
public:
|
||||
auto begin() const -> Iterator;
|
||||
auto end() const -> Iterator;
|
||||
};
|
||||
''';
|
||||
|
||||
fn Test() {
|
||||
Core.AssertIsRange(Cpp.MutableRange);
|
||||
Core.AssertIsRange(Cpp.ConstRange);
|
||||
}
|
||||
|
||||
// --- methods_return_different_types.carbon
|
||||
library "[[@TEST_NAME]]";
|
||||
|
||||
import Core library "cpp_range_for_iterate";
|
||||
|
||||
import Cpp inline '''c++
|
||||
class MutableRangeWithSentinel {
|
||||
struct Iterator {};
|
||||
struct Sentinel {};
|
||||
public:
|
||||
auto begin() -> Iterator;
|
||||
auto end() -> Sentinel;
|
||||
};
|
||||
|
||||
class ConstRangeWithSentinel {
|
||||
struct Iterator {};
|
||||
struct Sentinel {};
|
||||
public:
|
||||
auto begin() const -> Iterator;
|
||||
auto end() const -> Sentinel;
|
||||
};
|
||||
''';
|
||||
|
||||
fn Test() {
|
||||
Core.AssertIsRange(Cpp.MutableRangeWithSentinel);
|
||||
Core.AssertIsRange(Cpp.ConstRangeWithSentinel);
|
||||
}
|
||||
|
||||
// --- adl_return_same_types.carbon
|
||||
library "[[@TEST_NAME]]";
|
||||
|
||||
import Core library "cpp_range_for_iterate";
|
||||
|
||||
import Cpp inline '''c++
|
||||
namespace N {
|
||||
class ConstRange {
|
||||
struct Iterator {};
|
||||
public:
|
||||
friend auto begin(const ConstRange&) -> Iterator;
|
||||
friend auto end(const ConstRange&) -> Iterator;
|
||||
};
|
||||
} // namespace N
|
||||
''';
|
||||
|
||||
fn Test() {
|
||||
Core.AssertIsRange(Cpp.N.ConstRange);
|
||||
}
|
||||
|
||||
// --- fail_todo_adl_returns_same_types_mutable.carbon
|
||||
// CHECK:STDERR: fail_todo_adl_returns_same_types_mutable.carbon: error: value expression passed to reference parameter [ValueForRefParam]
|
||||
// TODO: merge with adl_returns_same_types.carbon when passing.
|
||||
library "[[@TEST_NAME]]";
|
||||
|
||||
import Core library "cpp_range_for_iterate";
|
||||
|
||||
import Cpp inline '''c++
|
||||
namespace N {
|
||||
class MutableRange {
|
||||
struct Iterator {};
|
||||
public:
|
||||
// CHECK:STDERR: fail_todo_adl_returns_same_types_mutable.carbon:[[@LINE+11]]:34: note: initializing function parameter [InCallToFunctionParam]
|
||||
// CHECK:STDERR: friend auto begin(MutableRange&) -> Iterator;
|
||||
// CHECK:STDERR: ^
|
||||
// CHECK:STDERR: cpp_range_for_iterate.carbon:10:3: note: while building thunk to match the signature of this function [ThunkSignature]
|
||||
// CHECK:STDERR: fn Begin(self) -> Iterator;
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: cpp_range_for_iterate.carbon:21:33: note: initializing generic parameter `R` declared here [InitializingGenericParam]
|
||||
// CHECK:STDERR: fn AssertIsRange(unused generic R: IsRange where .Result = true) {}
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
// CHECK:STDERR: fail_todo_adl_returns_same_types_mutable.carbon: error: value expression passed to reference parameter [ValueForRefParam]
|
||||
friend auto begin(MutableRange&) -> Iterator;
|
||||
// CHECK:STDERR: fail_todo_adl_returns_same_types_mutable.carbon:[[@LINE+10]]:32: note: initializing function parameter [InCallToFunctionParam]
|
||||
// CHECK:STDERR: friend auto end(MutableRange&) -> Iterator;
|
||||
// CHECK:STDERR: ^
|
||||
// CHECK:STDERR: cpp_range_for_iterate.carbon:11:3: note: while building thunk to match the signature of this function [ThunkSignature]
|
||||
// CHECK:STDERR: fn End(self) -> Sentinel;
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: cpp_range_for_iterate.carbon:21:33: note: initializing generic parameter `R` declared here [InitializingGenericParam]
|
||||
// CHECK:STDERR: fn AssertIsRange(unused generic R: IsRange where .Result = true) {}
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
friend auto end(MutableRange&) -> Iterator;
|
||||
};
|
||||
} // namespace N
|
||||
''';
|
||||
|
||||
fn Test() {
|
||||
Core.AssertIsRange(Cpp.N.MutableRange);
|
||||
}
|
||||
|
||||
// --- adl_returns_different_types.carbon
|
||||
library "[[@TEST_NAME]]";
|
||||
|
||||
import Core library "cpp_range_for_iterate";
|
||||
|
||||
import Cpp inline '''c++
|
||||
namespace N {
|
||||
class ConstRangeWithSentinel {
|
||||
struct Iterator {};
|
||||
struct Sentinel {};
|
||||
public:
|
||||
friend auto begin(const ConstRangeWithSentinel&) -> Iterator;
|
||||
friend auto end(const ConstRangeWithSentinel&) -> Sentinel;
|
||||
};
|
||||
} // namespace N
|
||||
''';
|
||||
|
||||
fn Test() {
|
||||
Core.AssertIsRange(Cpp.N.ConstRangeWithSentinel);
|
||||
}
|
||||
|
||||
// --- fail_todo_adl_returns_different_types_mutable.carbon
|
||||
library "[[@TEST_NAME]]";
|
||||
|
||||
import Core library "cpp_range_for_iterate";
|
||||
|
||||
import Cpp inline '''c++
|
||||
namespace N {
|
||||
class MutableRangeWithSentinel {
|
||||
struct Iterator {
|
||||
// CHECK:STDERR: fail_todo_adl_returns_different_types_mutable.carbon:[[@LINE+5]]:31: error: unknown type name 'ValueType' [CppInteropParseError]
|
||||
// CHECK:STDERR: 14 | auto operator*() const -> ValueType&;
|
||||
// CHECK:STDERR: | ^
|
||||
// CHECK:STDERR:
|
||||
// CHECK:STDERR: fail_todo_adl_returns_different_types_mutable.carbon: error: value expression passed to reference parameter [ValueForRefParam]
|
||||
auto operator*() const -> ValueType&;
|
||||
auto operator++() -> Iterator&;
|
||||
};
|
||||
|
||||
struct Sentinel {
|
||||
friend auto operator==(Sentinel, Iterator) -> bool;
|
||||
friend auto operator!=(Sentinel, Iterator) -> bool;
|
||||
};
|
||||
public:
|
||||
// CHECK:STDERR: fail_todo_adl_returns_different_types_mutable.carbon:[[@LINE+11]]:46: note: initializing function parameter [InCallToFunctionParam]
|
||||
// CHECK:STDERR: friend auto begin(MutableRangeWithSentinel&) -> Iterator;
|
||||
// CHECK:STDERR: ^
|
||||
// CHECK:STDERR: cpp_range_for_iterate.carbon:10:3: note: while building thunk to match the signature of this function [ThunkSignature]
|
||||
// CHECK:STDERR: fn Begin(self) -> Iterator;
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: cpp_range_for_iterate.carbon:21:33: note: initializing generic parameter `R` declared here [InitializingGenericParam]
|
||||
// CHECK:STDERR: fn AssertIsRange(unused generic R: IsRange where .Result = true) {}
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
// CHECK:STDERR: fail_todo_adl_returns_different_types_mutable.carbon: error: value expression passed to reference parameter [ValueForRefParam]
|
||||
friend auto begin(MutableRangeWithSentinel&) -> Iterator;
|
||||
// CHECK:STDERR: fail_todo_adl_returns_different_types_mutable.carbon:[[@LINE+10]]:44: note: initializing function parameter [InCallToFunctionParam]
|
||||
// CHECK:STDERR: friend auto end(MutableRangeWithSentinel&) -> Sentinel;
|
||||
// CHECK:STDERR: ^
|
||||
// CHECK:STDERR: cpp_range_for_iterate.carbon:11:3: note: while building thunk to match the signature of this function [ThunkSignature]
|
||||
// CHECK:STDERR: fn End(self) -> Sentinel;
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: cpp_range_for_iterate.carbon:21:33: note: initializing generic parameter `R` declared here [InitializingGenericParam]
|
||||
// CHECK:STDERR: fn AssertIsRange(unused generic R: IsRange where .Result = true) {}
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
friend auto end(MutableRangeWithSentinel&) -> Sentinel;
|
||||
};
|
||||
}
|
||||
''';
|
||||
|
||||
fn Test() {
|
||||
Core.AssertIsRange(Cpp.N.MutableRangeWithSentinel);
|
||||
}
|
||||
|
||||
// --- fail_todo_adl_overloads.carbon
|
||||
// CHECK:STDERR: fail_todo_adl_overloads.carbon: error: value expression passed to reference parameter [ValueForRefParam]
|
||||
library "[[@TEST_NAME]]";
|
||||
|
||||
import Core library "cpp_range_for_iterate";
|
||||
|
||||
import Cpp inline '''c++
|
||||
namespace N {
|
||||
class MutableAndConstRange {
|
||||
struct Iterator {};
|
||||
struct ConstIterator {};
|
||||
public:
|
||||
// CHECK:STDERR: fail_todo_adl_overloads.carbon:[[@LINE+11]]:42: note: initializing function parameter [InCallToFunctionParam]
|
||||
// CHECK:STDERR: friend auto begin(MutableAndConstRange&) -> Iterator;
|
||||
// CHECK:STDERR: ^
|
||||
// CHECK:STDERR: cpp_range_for_iterate.carbon:10:3: note: while building thunk to match the signature of this function [ThunkSignature]
|
||||
// CHECK:STDERR: fn Begin(self) -> Iterator;
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: cpp_range_for_iterate.carbon:21:33: note: initializing generic parameter `R` declared here [InitializingGenericParam]
|
||||
// CHECK:STDERR: fn AssertIsRange(unused generic R: IsRange where .Result = true) {}
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
// CHECK:STDERR: fail_todo_adl_overloads.carbon: error: value expression passed to reference parameter [ValueForRefParam]
|
||||
friend auto begin(MutableAndConstRange&) -> Iterator;
|
||||
// CHECK:STDERR: fail_todo_adl_overloads.carbon:[[@LINE+10]]:40: note: initializing function parameter [InCallToFunctionParam]
|
||||
// CHECK:STDERR: friend auto end(MutableAndConstRange&) -> Iterator;
|
||||
// CHECK:STDERR: ^
|
||||
// CHECK:STDERR: cpp_range_for_iterate.carbon:11:3: note: while building thunk to match the signature of this function [ThunkSignature]
|
||||
// CHECK:STDERR: fn End(self) -> Sentinel;
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: cpp_range_for_iterate.carbon:21:33: note: initializing generic parameter `R` declared here [InitializingGenericParam]
|
||||
// CHECK:STDERR: fn AssertIsRange(unused generic R: IsRange where .Result = true) {}
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
friend auto end(MutableAndConstRange&) -> Iterator;
|
||||
|
||||
friend auto begin(const MutableAndConstRange&) -> ConstIterator;
|
||||
friend auto end(const MutableAndConstRange&) -> ConstIterator;
|
||||
};
|
||||
}
|
||||
''';
|
||||
|
||||
fn Test() {
|
||||
Core.AssertIsRange(Cpp.N.MutableAndConstRange);
|
||||
}
|
||||
|
||||
// --- not_ranges.carbon
|
||||
library "[[@TEST_NAME]]";
|
||||
|
||||
import Core library "cpp_range_for_iterate";
|
||||
|
||||
import Cpp inline '''c++
|
||||
class NoBeginEnd {};
|
||||
|
||||
struct NoBeginMethod {
|
||||
auto end() -> int;
|
||||
};
|
||||
|
||||
struct NoEndMethod {
|
||||
auto begin() -> int;
|
||||
};
|
||||
|
||||
struct NoBeginADL {
|
||||
friend auto end(NoBeginADL) -> int;
|
||||
};
|
||||
|
||||
struct NoEndADL {
|
||||
friend auto begin(NoEndADL) -> int;
|
||||
};
|
||||
|
||||
struct BeginMethodEndADL {
|
||||
auto begin() -> int;
|
||||
friend auto end(BeginMethodEndADL) -> int;
|
||||
};
|
||||
|
||||
struct BeginADLEndMethod {
|
||||
friend auto begin(BeginADLEndMethod) -> int;
|
||||
auto end() -> int;
|
||||
};
|
||||
|
||||
struct BeginFieldEndMethod {
|
||||
int begin;
|
||||
auto end() -> int;
|
||||
};
|
||||
|
||||
struct BeginMethodEndField {
|
||||
auto begin() -> int;
|
||||
int end;
|
||||
};
|
||||
''';
|
||||
|
||||
fn Test() {
|
||||
Core.AssertIsNotRange(Cpp.NoBeginEnd);
|
||||
Core.AssertIsNotRange(Cpp.NoBeginMethod);
|
||||
Core.AssertIsNotRange(Cpp.NoEndMethod);
|
||||
Core.AssertIsNotRange(Cpp.NoBeginADL);
|
||||
Core.AssertIsNotRange(Cpp.NoEndADL);
|
||||
Core.AssertIsNotRange(Cpp.BeginMethodEndADL);
|
||||
Core.AssertIsNotRange(Cpp.BeginADLEndMethod);
|
||||
Core.AssertIsNotRange(Cpp.BeginFieldEndMethod);
|
||||
Core.AssertIsNotRange(Cpp.BeginMethodEndField);
|
||||
}
|
||||
|
||||
// --- fail_deleted.carbon
|
||||
library "[[@TEST_NAME]]";
|
||||
|
||||
import Core library "cpp_range_for_iterate";
|
||||
|
||||
import Cpp inline '''c++
|
||||
struct BeginMethodDeleted {
|
||||
auto begin() = delete;
|
||||
auto end() -> int;
|
||||
};
|
||||
|
||||
struct EndMethodDeleted {
|
||||
auto begin() -> int;
|
||||
auto end() = delete;
|
||||
};
|
||||
|
||||
struct BeginFunctionDeleted {
|
||||
friend auto begin(const BeginFunctionDeleted&) = delete;
|
||||
friend auto end(const BeginFunctionDeleted&) -> int;
|
||||
};
|
||||
|
||||
struct EndFunctionDeleted {
|
||||
friend auto begin(const EndFunctionDeleted&) -> int;
|
||||
friend auto end(const EndFunctionDeleted&) = delete;
|
||||
};
|
||||
''';
|
||||
|
||||
fn Test() {
|
||||
// CHECK:STDERR: fail_deleted.carbon:[[@LINE+10]]:47: error: attempt to use a deleted function [CppInteropParseError]
|
||||
// CHECK:STDERR: 38 | Core.AssertIsNotRange(Cpp.BeginMethodDeleted);
|
||||
// CHECK:STDERR: | ^
|
||||
// CHECK:STDERR: fail_deleted.carbon:[[@LINE-24]]:8: note: 'begin' has been explicitly marked deleted here [CppInteropParseNote]
|
||||
// CHECK:STDERR: 7 | auto begin() = delete;
|
||||
// CHECK:STDERR: | ^
|
||||
// CHECK:STDERR: cpp_range_for_iterate.carbon:22:36: note: initializing generic parameter `S` declared here [InitializingGenericParam]
|
||||
// CHECK:STDERR: fn AssertIsNotRange(unused generic S: IsRange where .Result = false) {}
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
Core.AssertIsNotRange(Cpp.BeginMethodDeleted);
|
||||
// CHECK:STDERR: fail_deleted.carbon:[[@LINE+10]]:45: error: attempt to use a deleted function [CppInteropParseError]
|
||||
// CHECK:STDERR: 49 | Core.AssertIsNotRange(Cpp.EndMethodDeleted);
|
||||
// CHECK:STDERR: | ^
|
||||
// CHECK:STDERR: fail_deleted.carbon:[[@LINE-29]]:8: note: 'end' has been explicitly marked deleted here [CppInteropParseNote]
|
||||
// CHECK:STDERR: 13 | auto end() = delete;
|
||||
// CHECK:STDERR: | ^
|
||||
// CHECK:STDERR: cpp_range_for_iterate.carbon:22:36: note: initializing generic parameter `S` declared here [InitializingGenericParam]
|
||||
// CHECK:STDERR: fn AssertIsNotRange(unused generic S: IsRange where .Result = false) {}
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
Core.AssertIsNotRange(Cpp.EndMethodDeleted);
|
||||
// CHECK:STDERR: fail_deleted.carbon:[[@LINE+10]]:49: error: call to deleted function 'begin' [CppInteropParseError]
|
||||
// CHECK:STDERR: 60 | Core.AssertIsNotRange(Cpp.BeginFunctionDeleted);
|
||||
// CHECK:STDERR: | ^
|
||||
// CHECK:STDERR: fail_deleted.carbon:[[@LINE-36]]:15: note: candidate function has been explicitly deleted [CppInteropParseNote]
|
||||
// CHECK:STDERR: 17 | friend auto begin(const BeginFunctionDeleted&) = delete;
|
||||
// CHECK:STDERR: | ^
|
||||
// CHECK:STDERR: cpp_range_for_iterate.carbon:22:36: note: initializing generic parameter `S` declared here [InitializingGenericParam]
|
||||
// CHECK:STDERR: fn AssertIsNotRange(unused generic S: IsRange where .Result = false) {}
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
Core.AssertIsNotRange(Cpp.BeginFunctionDeleted);
|
||||
// CHECK:STDERR: fail_deleted.carbon:[[@LINE+10]]:47: error: call to deleted function 'end' [CppInteropParseError]
|
||||
// CHECK:STDERR: 71 | Core.AssertIsNotRange(Cpp.EndFunctionDeleted);
|
||||
// CHECK:STDERR: | ^
|
||||
// CHECK:STDERR: fail_deleted.carbon:[[@LINE-41]]:15: note: candidate function has been explicitly deleted [CppInteropParseNote]
|
||||
// CHECK:STDERR: 23 | friend auto end(const EndFunctionDeleted&) = delete;
|
||||
// CHECK:STDERR: | ^
|
||||
// CHECK:STDERR: cpp_range_for_iterate.carbon:22:36: note: initializing generic parameter `S` declared here [InitializingGenericParam]
|
||||
// CHECK:STDERR: fn AssertIsNotRange(unused generic S: IsRange where .Result = false) {}
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
Core.AssertIsNotRange(Cpp.EndFunctionDeleted);
|
||||
}
|
||||
+24
-24
@@ -1605,10 +1605,10 @@ fn CopyUnsignedLong() {
|
||||
// CHECK:STDOUT: %T.315: %ImplicitAs.type.7eb = symbolic_binding T, 0 [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.type.21e369.1: type = fn_type @Cpp.long.as.EqWith.impl.NotEqual.1, @Cpp.long.as.EqWith.impl.5b1(%T.315) [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.385432.1: %Cpp.long.as.EqWith.impl.NotEqual.type.21e369.1 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.type.21e369.2: type = fn_type @Cpp.long.as.EqWith.impl.NotEqual.2, @Cpp.long.as.EqWith.impl.5b1(%T.315) [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.385432.2: %Cpp.long.as.EqWith.impl.NotEqual.type.21e369.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.type.814973.1: type = fn_type @Cpp.long.as.EqWith.impl.Equal.1, @Cpp.long.as.EqWith.impl.5b1(%T.315) [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.4a8971.1: %Cpp.long.as.EqWith.impl.Equal.type.814973.1 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.type.21e369.2: type = fn_type @Cpp.long.as.EqWith.impl.NotEqual.2, @Cpp.long.as.EqWith.impl.5b1(%T.315) [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.NotEqual.385432.2: %Cpp.long.as.EqWith.impl.NotEqual.type.21e369.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.type.814973.2: type = fn_type @Cpp.long.as.EqWith.impl.Equal.2, @Cpp.long.as.EqWith.impl.5b1(%T.315) [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long.as.EqWith.impl.Equal.4a8971.2: %Cpp.long.as.EqWith.impl.Equal.type.814973.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %EqWith.type.aee: type = facet_type <@EqWith, @EqWith(Core.IntLiteral)> [concrete]
|
||||
@@ -1639,18 +1639,18 @@ fn CopyUnsignedLong() {
|
||||
// CHECK:STDOUT: %OrderedWith.type.7dc: type = facet_type <@OrderedWith, @OrderedWith(%i32)> [concrete]
|
||||
// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.154997.1: type = fn_type @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1, @Cpp.long.as.OrderedWith.impl.3fc(%T.315) [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.e4afa3.1: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.154997.1 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.154997.2: type = fn_type @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2, @Cpp.long.as.OrderedWith.impl.3fc(%T.315) [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.e4afa3.2: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.154997.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.type.e2eef7.1: type = fn_type @Cpp.long.as.OrderedWith.impl.Greater.1, @Cpp.long.as.OrderedWith.impl.3fc(%T.315) [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.37f70d.1: %Cpp.long.as.OrderedWith.impl.Greater.type.e2eef7.1 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.type.e2eef7.2: type = fn_type @Cpp.long.as.OrderedWith.impl.Greater.2, @Cpp.long.as.OrderedWith.impl.3fc(%T.315) [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.37f70d.2: %Cpp.long.as.OrderedWith.impl.Greater.type.e2eef7.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.35cecb.1: type = fn_type @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.1, @Cpp.long.as.OrderedWith.impl.3fc(%T.315) [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.351d50.1: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.35cecb.1 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.35cecb.2: type = fn_type @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2, @Cpp.long.as.OrderedWith.impl.3fc(%T.315) [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.351d50.2: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.35cecb.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.type.3ff9ca.1: type = fn_type @Cpp.long.as.OrderedWith.impl.Less.1, @Cpp.long.as.OrderedWith.impl.3fc(%T.315) [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.76c9f3.1: %Cpp.long.as.OrderedWith.impl.Less.type.3ff9ca.1 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.154997.2: type = fn_type @Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.2, @Cpp.long.as.OrderedWith.impl.3fc(%T.315) [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.e4afa3.2: %Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.154997.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.type.e2eef7.2: type = fn_type @Cpp.long.as.OrderedWith.impl.Greater.2, @Cpp.long.as.OrderedWith.impl.3fc(%T.315) [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Greater.37f70d.2: %Cpp.long.as.OrderedWith.impl.Greater.type.e2eef7.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.35cecb.2: type = fn_type @Cpp.long.as.OrderedWith.impl.LessOrEquivalent.2, @Cpp.long.as.OrderedWith.impl.3fc(%T.315) [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.351d50.2: %Cpp.long.as.OrderedWith.impl.LessOrEquivalent.type.35cecb.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.type.3ff9ca.2: type = fn_type @Cpp.long.as.OrderedWith.impl.Less.2, @Cpp.long.as.OrderedWith.impl.3fc(%T.315) [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long.as.OrderedWith.impl.Less.76c9f3.2: %Cpp.long.as.OrderedWith.impl.Less.type.3ff9ca.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %OrderedWith.type.975: type = facet_type <@OrderedWith, @OrderedWith(Core.IntLiteral)> [concrete]
|
||||
@@ -1752,8 +1752,8 @@ fn CopyUnsignedLong() {
|
||||
// CHECK:STDOUT: %Core.import_ref.cd6: @Cpp.long.as.EqWith.impl.5b1.%Cpp.long.as.EqWith.impl.Equal.type.2 (%Cpp.long.as.EqWith.impl.Equal.type.814973.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.EqWith.impl.5b1.%Cpp.long.as.EqWith.impl.Equal.2 (constants.%Cpp.long.as.EqWith.impl.Equal.4a8971.1)]
|
||||
// CHECK:STDOUT: %Core.import_ref.40e: @Cpp.long.as.EqWith.impl.5b1.%Cpp.long.as.EqWith.impl.NotEqual.type.2 (%Cpp.long.as.EqWith.impl.NotEqual.type.21e369.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long.as.EqWith.impl.5b1.%Cpp.long.as.EqWith.impl.NotEqual.2 (constants.%Cpp.long.as.EqWith.impl.NotEqual.385432.1)]
|
||||
// CHECK:STDOUT: %EqWith.impl_witness_table.fc9 = impl_witness_table (%Core.import_ref.cd6, %Core.import_ref.40e), @Cpp.long.as.EqWith.impl.5b1 [concrete]
|
||||
// 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.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: %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)]
|
||||
@@ -1761,10 +1761,10 @@ fn CopyUnsignedLong() {
|
||||
// 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.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: %Core.GreaterOrEquivalent.839: @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.1 (%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.154997.2) = import_ref Core//prelude/types/cpp/int, GreaterOrEquivalent, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1 (constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.e4afa3.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)]
|
||||
// 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.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)]
|
||||
// CHECK:STDOUT: %Core.GreaterOrEquivalent.839: @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.1 (%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.type.154997.2) = import_ref Core//prelude/types/cpp/int, GreaterOrEquivalent, loaded [symbolic = @Cpp.long.as.OrderedWith.impl.3fc.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.1 (constants.%Cpp.long.as.OrderedWith.impl.GreaterOrEquivalent.e4afa3.2)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @ComparisonsHeterogeneousLongLeftSide() {
|
||||
@@ -2061,10 +2061,10 @@ fn CopyUnsignedLong() {
|
||||
// CHECK:STDOUT: %T.315: %ImplicitAs.type.7eb = symbolic_binding T, 0 [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.92df03.1: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.1, @T.as_type.as.EqWith.impl.673(%T.315) [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.a7a615.1: %T.as_type.as.EqWith.impl.NotEqual.type.92df03.1 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.92df03.2: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.2, @T.as_type.as.EqWith.impl.673(%T.315) [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.a7a615.2: %T.as_type.as.EqWith.impl.NotEqual.type.92df03.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.94a46e.1: type = fn_type @T.as_type.as.EqWith.impl.Equal.1, @T.as_type.as.EqWith.impl.673(%T.315) [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.3fb574.1: %T.as_type.as.EqWith.impl.Equal.type.94a46e.1 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.type.92df03.2: type = fn_type @T.as_type.as.EqWith.impl.NotEqual.2, @T.as_type.as.EqWith.impl.673(%T.315) [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.NotEqual.a7a615.2: %T.as_type.as.EqWith.impl.NotEqual.type.92df03.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.type.94a46e.2: type = fn_type @T.as_type.as.EqWith.impl.Equal.2, @T.as_type.as.EqWith.impl.673(%T.315) [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.as.EqWith.impl.Equal.3fb574.2: %T.as_type.as.EqWith.impl.Equal.type.94a46e.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %ImplicitAs.impl_witness.f82: <witness> = impl_witness imports.%ImplicitAs.impl_witness_table.a75 [concrete]
|
||||
@@ -2094,18 +2094,18 @@ fn CopyUnsignedLong() {
|
||||
// CHECK:STDOUT: %OrderedWith.type.a48: type = facet_type <@OrderedWith, @OrderedWith(%Cpp.long)> [concrete]
|
||||
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.2225a2.1: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1, @T.as_type.as.OrderedWith.impl.821(%T.315) [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.56ba82.1: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.2225a2.1 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.2225a2.2: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2, @T.as_type.as.OrderedWith.impl.821(%T.315) [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.56ba82.2: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.2225a2.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.4af657.1: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.1, @T.as_type.as.OrderedWith.impl.821(%T.315) [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.00ebff.1: %T.as_type.as.OrderedWith.impl.Greater.type.4af657.1 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.4af657.2: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.2, @T.as_type.as.OrderedWith.impl.821(%T.315) [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.00ebff.2: %T.as_type.as.OrderedWith.impl.Greater.type.4af657.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.accc59.1: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.1, @T.as_type.as.OrderedWith.impl.821(%T.315) [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.e8206a.1: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.accc59.1 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.accc59.2: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.2, @T.as_type.as.OrderedWith.impl.821(%T.315) [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.e8206a.2: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.accc59.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.62945a.1: type = fn_type @T.as_type.as.OrderedWith.impl.Less.1, @T.as_type.as.OrderedWith.impl.821(%T.315) [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.2ef721.1: %T.as_type.as.OrderedWith.impl.Less.type.62945a.1 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.2225a2.2: type = fn_type @T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2, @T.as_type.as.OrderedWith.impl.821(%T.315) [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.56ba82.2: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.2225a2.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.type.4af657.2: type = fn_type @T.as_type.as.OrderedWith.impl.Greater.2, @T.as_type.as.OrderedWith.impl.821(%T.315) [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Greater.00ebff.2: %T.as_type.as.OrderedWith.impl.Greater.type.4af657.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.accc59.2: type = fn_type @T.as_type.as.OrderedWith.impl.LessOrEquivalent.2, @T.as_type.as.OrderedWith.impl.821(%T.315) [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.e8206a.2: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.accc59.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.type.62945a.2: type = fn_type @T.as_type.as.OrderedWith.impl.Less.2, @T.as_type.as.OrderedWith.impl.821(%T.315) [symbolic]
|
||||
// CHECK:STDOUT: %T.as_type.as.OrderedWith.impl.Less.2ef721.2: %T.as_type.as.OrderedWith.impl.Less.type.62945a.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %OrderedWith.impl_witness.029: <witness> = impl_witness imports.%OrderedWith.impl_witness_table.969, @T.as_type.as.OrderedWith.impl.821(%ImplicitAs.facet.ce4) [concrete]
|
||||
@@ -2230,8 +2230,8 @@ fn CopyUnsignedLong() {
|
||||
// CHECK:STDOUT: %Core.import_ref.a8d8: @T.as_type.as.EqWith.impl.673.%T.as_type.as.EqWith.impl.Equal.type.2 (%T.as_type.as.EqWith.impl.Equal.type.94a46e.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.EqWith.impl.673.%T.as_type.as.EqWith.impl.Equal.2 (constants.%T.as_type.as.EqWith.impl.Equal.3fb574.1)]
|
||||
// CHECK:STDOUT: %Core.import_ref.81b: @T.as_type.as.EqWith.impl.673.%T.as_type.as.EqWith.impl.NotEqual.type.2 (%T.as_type.as.EqWith.impl.NotEqual.type.92df03.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.EqWith.impl.673.%T.as_type.as.EqWith.impl.NotEqual.2 (constants.%T.as_type.as.EqWith.impl.NotEqual.a7a615.1)]
|
||||
// CHECK:STDOUT: %EqWith.impl_witness_table.9cc = impl_witness_table (%Core.import_ref.a8d8, %Core.import_ref.81b), @T.as_type.as.EqWith.impl.673 [concrete]
|
||||
// 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.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: %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)]
|
||||
@@ -2239,10 +2239,10 @@ fn CopyUnsignedLong() {
|
||||
// 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)]
|
||||
// CHECK:STDOUT: %Core.import_ref.fbeb: @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.2 (%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.2225a2.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.GreaterOrEquivalent.2 (constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.56ba82.1)]
|
||||
// CHECK:STDOUT: %OrderedWith.impl_witness_table.969 = impl_witness_table (%Core.import_ref.0c1, %Core.import_ref.f03, %Core.import_ref.dc8, %Core.import_ref.fbeb), @T.as_type.as.OrderedWith.impl.821 [concrete]
|
||||
// CHECK:STDOUT: %Core.GreaterOrEquivalent.e06: @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.1 (%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.2225a2.2) = import_ref Core//prelude/types/cpp/int, GreaterOrEquivalent, loaded [symbolic = @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1 (constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.56ba82.2)]
|
||||
// CHECK:STDOUT: %Core.Greater.0b3: @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.Greater.type.1 (%T.as_type.as.OrderedWith.impl.Greater.type.4af657.2) = import_ref Core//prelude/types/cpp/int, Greater, loaded [symbolic = @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.Greater.1 (constants.%T.as_type.as.OrderedWith.impl.Greater.00ebff.2)]
|
||||
// CHECK:STDOUT: %Core.LessOrEquivalent.27e: @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.1 (%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.accc59.2) = import_ref Core//prelude/types/cpp/int, LessOrEquivalent, loaded [symbolic = @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.1 (constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.e8206a.2)]
|
||||
// CHECK:STDOUT: %Core.Less.2f9: @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.Less.type.1 (%T.as_type.as.OrderedWith.impl.Less.type.62945a.2) = import_ref Core//prelude/types/cpp/int, Less, loaded [symbolic = @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.Less.1 (constants.%T.as_type.as.OrderedWith.impl.Less.2ef721.2)]
|
||||
// CHECK:STDOUT: %Core.LessOrEquivalent.27e: @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.1 (%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.accc59.2) = import_ref Core//prelude/types/cpp/int, LessOrEquivalent, loaded [symbolic = @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.1 (constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.e8206a.2)]
|
||||
// CHECK:STDOUT: %Core.Greater.0b3: @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.Greater.type.1 (%T.as_type.as.OrderedWith.impl.Greater.type.4af657.2) = import_ref Core//prelude/types/cpp/int, Greater, loaded [symbolic = @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.Greater.1 (constants.%T.as_type.as.OrderedWith.impl.Greater.00ebff.2)]
|
||||
// CHECK:STDOUT: %Core.GreaterOrEquivalent.e06: @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.1 (%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.2225a2.2) = import_ref Core//prelude/types/cpp/int, GreaterOrEquivalent, loaded [symbolic = @T.as_type.as.OrderedWith.impl.821.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1 (constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.56ba82.2)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @ComparisonsHeterogeneousLongRightSide() {
|
||||
|
||||
+24
-24
@@ -1530,10 +1530,10 @@ fn CopyUnsignedLongLong() {
|
||||
// CHECK:STDOUT: %T.bf2: %ImplicitAs.type.0ec = symbolic_binding T, 0 [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.type.b639b1.1: type = fn_type @Cpp.long_long.as.EqWith.impl.NotEqual.1, @Cpp.long_long.as.EqWith.impl.600(%T.bf2) [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.4b5f60.1: %Cpp.long_long.as.EqWith.impl.NotEqual.type.b639b1.1 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.type.b639b1.2: type = fn_type @Cpp.long_long.as.EqWith.impl.NotEqual.2, @Cpp.long_long.as.EqWith.impl.600(%T.bf2) [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.4b5f60.2: %Cpp.long_long.as.EqWith.impl.NotEqual.type.b639b1.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.type.f2c091.1: type = fn_type @Cpp.long_long.as.EqWith.impl.Equal.1, @Cpp.long_long.as.EqWith.impl.600(%T.bf2) [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.ec6d64.1: %Cpp.long_long.as.EqWith.impl.Equal.type.f2c091.1 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.type.b639b1.2: type = fn_type @Cpp.long_long.as.EqWith.impl.NotEqual.2, @Cpp.long_long.as.EqWith.impl.600(%T.bf2) [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.NotEqual.4b5f60.2: %Cpp.long_long.as.EqWith.impl.NotEqual.type.b639b1.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.type.f2c091.2: type = fn_type @Cpp.long_long.as.EqWith.impl.Equal.2, @Cpp.long_long.as.EqWith.impl.600(%T.bf2) [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long_long.as.EqWith.impl.Equal.ec6d64.2: %Cpp.long_long.as.EqWith.impl.Equal.type.f2c091.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %EqWith.type.aee: type = facet_type <@EqWith, @EqWith(Core.IntLiteral)> [concrete]
|
||||
@@ -1564,18 +1564,18 @@ fn CopyUnsignedLongLong() {
|
||||
// CHECK:STDOUT: %OrderedWith.type.af1: type = facet_type <@OrderedWith, @OrderedWith(%i64)> [concrete]
|
||||
// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.362d6d.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1, @Cpp.long_long.as.OrderedWith.impl.deb(%T.bf2) [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.c812d5.1: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.362d6d.1 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.362d6d.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2, @Cpp.long_long.as.OrderedWith.impl.deb(%T.bf2) [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.c812d5.2: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.362d6d.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.type.9c33c6.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Greater.1, @Cpp.long_long.as.OrderedWith.impl.deb(%T.bf2) [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.692f01.1: %Cpp.long_long.as.OrderedWith.impl.Greater.type.9c33c6.1 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.type.9c33c6.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Greater.2, @Cpp.long_long.as.OrderedWith.impl.deb(%T.bf2) [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.692f01.2: %Cpp.long_long.as.OrderedWith.impl.Greater.type.9c33c6.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.7ff5fb.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1, @Cpp.long_long.as.OrderedWith.impl.deb(%T.bf2) [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.33bdbc.1: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.7ff5fb.1 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.7ff5fb.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2, @Cpp.long_long.as.OrderedWith.impl.deb(%T.bf2) [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.33bdbc.2: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.7ff5fb.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.type.a2518e.1: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Less.1, @Cpp.long_long.as.OrderedWith.impl.deb(%T.bf2) [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.0057df.1: %Cpp.long_long.as.OrderedWith.impl.Less.type.a2518e.1 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.362d6d.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2, @Cpp.long_long.as.OrderedWith.impl.deb(%T.bf2) [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.c812d5.2: %Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.362d6d.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.type.9c33c6.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Greater.2, @Cpp.long_long.as.OrderedWith.impl.deb(%T.bf2) [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Greater.692f01.2: %Cpp.long_long.as.OrderedWith.impl.Greater.type.9c33c6.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.7ff5fb.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.2, @Cpp.long_long.as.OrderedWith.impl.deb(%T.bf2) [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.33bdbc.2: %Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.7ff5fb.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.type.a2518e.2: type = fn_type @Cpp.long_long.as.OrderedWith.impl.Less.2, @Cpp.long_long.as.OrderedWith.impl.deb(%T.bf2) [symbolic]
|
||||
// CHECK:STDOUT: %Cpp.long_long.as.OrderedWith.impl.Less.0057df.2: %Cpp.long_long.as.OrderedWith.impl.Less.type.a2518e.2 = struct_value () [symbolic]
|
||||
// CHECK:STDOUT: %OrderedWith.type.975: type = facet_type <@OrderedWith, @OrderedWith(Core.IntLiteral)> [concrete]
|
||||
@@ -1677,8 +1677,8 @@ fn CopyUnsignedLongLong() {
|
||||
// CHECK:STDOUT: %Core.import_ref.7e1: @Cpp.long_long.as.EqWith.impl.600.%Cpp.long_long.as.EqWith.impl.Equal.type.2 (%Cpp.long_long.as.EqWith.impl.Equal.type.f2c091.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.EqWith.impl.600.%Cpp.long_long.as.EqWith.impl.Equal.2 (constants.%Cpp.long_long.as.EqWith.impl.Equal.ec6d64.1)]
|
||||
// CHECK:STDOUT: %Core.import_ref.ba2: @Cpp.long_long.as.EqWith.impl.600.%Cpp.long_long.as.EqWith.impl.NotEqual.type.2 (%Cpp.long_long.as.EqWith.impl.NotEqual.type.b639b1.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.EqWith.impl.600.%Cpp.long_long.as.EqWith.impl.NotEqual.2 (constants.%Cpp.long_long.as.EqWith.impl.NotEqual.4b5f60.1)]
|
||||
// CHECK:STDOUT: %EqWith.impl_witness_table.efb = impl_witness_table (%Core.import_ref.7e1, %Core.import_ref.ba2), @Cpp.long_long.as.EqWith.impl.600 [concrete]
|
||||
// CHECK:STDOUT: %Core.NotEqual.422: @Cpp.long_long.as.EqWith.impl.600.%Cpp.long_long.as.EqWith.impl.NotEqual.type.1 (%Cpp.long_long.as.EqWith.impl.NotEqual.type.b639b1.2) = import_ref Core//prelude/types/cpp/int, NotEqual, loaded [symbolic = @Cpp.long_long.as.EqWith.impl.600.%Cpp.long_long.as.EqWith.impl.NotEqual.1 (constants.%Cpp.long_long.as.EqWith.impl.NotEqual.4b5f60.2)]
|
||||
// CHECK:STDOUT: %Core.Equal.cce: @Cpp.long_long.as.EqWith.impl.600.%Cpp.long_long.as.EqWith.impl.Equal.type.1 (%Cpp.long_long.as.EqWith.impl.Equal.type.f2c091.2) = import_ref Core//prelude/types/cpp/int, Equal, loaded [symbolic = @Cpp.long_long.as.EqWith.impl.600.%Cpp.long_long.as.EqWith.impl.Equal.1 (constants.%Cpp.long_long.as.EqWith.impl.Equal.ec6d64.2)]
|
||||
// CHECK:STDOUT: %Core.NotEqual.422: @Cpp.long_long.as.EqWith.impl.600.%Cpp.long_long.as.EqWith.impl.NotEqual.type.1 (%Cpp.long_long.as.EqWith.impl.NotEqual.type.b639b1.2) = import_ref Core//prelude/types/cpp/int, NotEqual, loaded [symbolic = @Cpp.long_long.as.EqWith.impl.600.%Cpp.long_long.as.EqWith.impl.NotEqual.1 (constants.%Cpp.long_long.as.EqWith.impl.NotEqual.4b5f60.2)]
|
||||
// CHECK:STDOUT: %Core.import_ref.06c923.2: %i64.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%i64.as.ImplicitAs.impl.Convert]
|
||||
// CHECK:STDOUT: %ImplicitAs.impl_witness_table.a87 = impl_witness_table (%Core.import_ref.06c923.2), @i64.as.ImplicitAs.impl [concrete]
|
||||
// CHECK:STDOUT: %Core.import_ref.020: @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.Less.type.2 (%Cpp.long_long.as.OrderedWith.impl.Less.type.a2518e.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.Less.2 (constants.%Cpp.long_long.as.OrderedWith.impl.Less.0057df.1)]
|
||||
@@ -1686,10 +1686,10 @@ fn CopyUnsignedLongLong() {
|
||||
// CHECK:STDOUT: %Core.import_ref.ba3: @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.Greater.type.2 (%Cpp.long_long.as.OrderedWith.impl.Greater.type.9c33c6.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.Greater.2 (constants.%Cpp.long_long.as.OrderedWith.impl.Greater.692f01.1)]
|
||||
// CHECK:STDOUT: %Core.import_ref.cea: @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.2 (%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.362d6d.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.2 (constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.c812d5.1)]
|
||||
// CHECK:STDOUT: %OrderedWith.impl_witness_table.cdc = impl_witness_table (%Core.import_ref.020, %Core.import_ref.152, %Core.import_ref.ba3, %Core.import_ref.cea), @Cpp.long_long.as.OrderedWith.impl.deb [concrete]
|
||||
// CHECK:STDOUT: %Core.GreaterOrEquivalent.7ba: @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.1 (%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.362d6d.2) = import_ref Core//prelude/types/cpp/int, GreaterOrEquivalent, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1 (constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.c812d5.2)]
|
||||
// CHECK:STDOUT: %Core.Greater.91c: @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.Greater.type.1 (%Cpp.long_long.as.OrderedWith.impl.Greater.type.9c33c6.2) = import_ref Core//prelude/types/cpp/int, Greater, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.Greater.1 (constants.%Cpp.long_long.as.OrderedWith.impl.Greater.692f01.2)]
|
||||
// CHECK:STDOUT: %Core.LessOrEquivalent.211: @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.1 (%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.7ff5fb.2) = import_ref Core//prelude/types/cpp/int, LessOrEquivalent, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1 (constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.33bdbc.2)]
|
||||
// CHECK:STDOUT: %Core.Less.868: @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.Less.type.1 (%Cpp.long_long.as.OrderedWith.impl.Less.type.a2518e.2) = import_ref Core//prelude/types/cpp/int, Less, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.Less.1 (constants.%Cpp.long_long.as.OrderedWith.impl.Less.0057df.2)]
|
||||
// CHECK:STDOUT: %Core.LessOrEquivalent.211: @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.1 (%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.type.7ff5fb.2) = import_ref Core//prelude/types/cpp/int, LessOrEquivalent, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.1 (constants.%Cpp.long_long.as.OrderedWith.impl.LessOrEquivalent.33bdbc.2)]
|
||||
// CHECK:STDOUT: %Core.Greater.91c: @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.Greater.type.1 (%Cpp.long_long.as.OrderedWith.impl.Greater.type.9c33c6.2) = import_ref Core//prelude/types/cpp/int, Greater, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.Greater.1 (constants.%Cpp.long_long.as.OrderedWith.impl.Greater.692f01.2)]
|
||||
// CHECK:STDOUT: %Core.GreaterOrEquivalent.7ba: @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.1 (%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.type.362d6d.2) = import_ref Core//prelude/types/cpp/int, GreaterOrEquivalent, loaded [symbolic = @Cpp.long_long.as.OrderedWith.impl.deb.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.1 (constants.%Cpp.long_long.as.OrderedWith.impl.GreaterOrEquivalent.c812d5.2)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @ComparisonsHeterogeneousLongLongLeftSide() {
|
||||
@@ -1986,10 +1986,10 @@ fn CopyUnsignedLongLong() {
|
||||
// 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.b16a99.1: %T.as_type.as.EqWith.impl.NotEqual.type.925fdb.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.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.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.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.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.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]
|
||||
@@ -2019,18 +2019,18 @@ fn CopyUnsignedLongLong() {
|
||||
// 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.df5290.1: %T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.d6724c.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.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.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.878ae3.1: %T.as_type.as.OrderedWith.impl.Greater.type.4fb98a.1 = 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.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.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.2cb445.1: %T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.3d985f.1 = 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.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.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.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.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.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.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.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]
|
||||
@@ -2155,8 +2155,8 @@ fn CopyUnsignedLongLong() {
|
||||
// CHECK:STDOUT: %Core.import_ref.c48: @T.as_type.as.EqWith.impl.6d3.%T.as_type.as.EqWith.impl.Equal.type.2 (%T.as_type.as.EqWith.impl.Equal.type.3cb0e1.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.EqWith.impl.6d3.%T.as_type.as.EqWith.impl.Equal.2 (constants.%T.as_type.as.EqWith.impl.Equal.a1333e.1)]
|
||||
// CHECK:STDOUT: %Core.import_ref.98d: @T.as_type.as.EqWith.impl.6d3.%T.as_type.as.EqWith.impl.NotEqual.type.2 (%T.as_type.as.EqWith.impl.NotEqual.type.925fdb.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.EqWith.impl.6d3.%T.as_type.as.EqWith.impl.NotEqual.2 (constants.%T.as_type.as.EqWith.impl.NotEqual.b16a99.1)]
|
||||
// CHECK:STDOUT: %EqWith.impl_witness_table.db1 = impl_witness_table (%Core.import_ref.c48, %Core.import_ref.98d), @T.as_type.as.EqWith.impl.6d3 [concrete]
|
||||
// CHECK:STDOUT: %Core.NotEqual.0b2: @T.as_type.as.EqWith.impl.6d3.%T.as_type.as.EqWith.impl.NotEqual.type.1 (%T.as_type.as.EqWith.impl.NotEqual.type.925fdb.2) = import_ref Core//prelude/types/cpp/int, NotEqual, loaded [symbolic = @T.as_type.as.EqWith.impl.6d3.%T.as_type.as.EqWith.impl.NotEqual.1 (constants.%T.as_type.as.EqWith.impl.NotEqual.b16a99.2)]
|
||||
// CHECK:STDOUT: %Core.Equal.4f5: @T.as_type.as.EqWith.impl.6d3.%T.as_type.as.EqWith.impl.Equal.type.1 (%T.as_type.as.EqWith.impl.Equal.type.3cb0e1.2) = import_ref Core//prelude/types/cpp/int, Equal, loaded [symbolic = @T.as_type.as.EqWith.impl.6d3.%T.as_type.as.EqWith.impl.Equal.1 (constants.%T.as_type.as.EqWith.impl.Equal.a1333e.2)]
|
||||
// CHECK:STDOUT: %Core.NotEqual.0b2: @T.as_type.as.EqWith.impl.6d3.%T.as_type.as.EqWith.impl.NotEqual.type.1 (%T.as_type.as.EqWith.impl.NotEqual.type.925fdb.2) = import_ref Core//prelude/types/cpp/int, NotEqual, loaded [symbolic = @T.as_type.as.EqWith.impl.6d3.%T.as_type.as.EqWith.impl.NotEqual.1 (constants.%T.as_type.as.EqWith.impl.NotEqual.b16a99.2)]
|
||||
// CHECK:STDOUT: %Core.import_ref.06c923.2: %i64.as.ImplicitAs.impl.Convert.type = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [concrete = constants.%i64.as.ImplicitAs.impl.Convert]
|
||||
// CHECK:STDOUT: %ImplicitAs.impl_witness_table.a87 = impl_witness_table (%Core.import_ref.06c923.2), @i64.as.ImplicitAs.impl [concrete]
|
||||
// CHECK:STDOUT: %Core.import_ref.97f: @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.Less.type.2 (%T.as_type.as.OrderedWith.impl.Less.type.2daa9a.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.Less.2 (constants.%T.as_type.as.OrderedWith.impl.Less.c37ef5.1)]
|
||||
@@ -2164,10 +2164,10 @@ fn CopyUnsignedLongLong() {
|
||||
// CHECK:STDOUT: %Core.import_ref.56a: @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.Greater.type.2 (%T.as_type.as.OrderedWith.impl.Greater.type.4fb98a.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.Greater.2 (constants.%T.as_type.as.OrderedWith.impl.Greater.878ae3.1)]
|
||||
// CHECK:STDOUT: %Core.import_ref.b00d: @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.2 (%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.d6724c.1) = import_ref Core//prelude/types/cpp/int, loc{{\d+_\d+}}, loaded [symbolic = @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.2 (constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.df5290.1)]
|
||||
// CHECK:STDOUT: %OrderedWith.impl_witness_table.8b4 = impl_witness_table (%Core.import_ref.97f, %Core.import_ref.409, %Core.import_ref.56a, %Core.import_ref.b00d), @T.as_type.as.OrderedWith.impl.df2 [concrete]
|
||||
// CHECK:STDOUT: %Core.GreaterOrEquivalent.8e2: @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.1 (%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.d6724c.2) = import_ref Core//prelude/types/cpp/int, GreaterOrEquivalent, loaded [symbolic = @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1 (constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.df5290.2)]
|
||||
// CHECK:STDOUT: %Core.Greater.c24: @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.Greater.type.1 (%T.as_type.as.OrderedWith.impl.Greater.type.4fb98a.2) = import_ref Core//prelude/types/cpp/int, Greater, loaded [symbolic = @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.Greater.1 (constants.%T.as_type.as.OrderedWith.impl.Greater.878ae3.2)]
|
||||
// CHECK:STDOUT: %Core.LessOrEquivalent.d90: @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.1 (%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.3d985f.2) = import_ref Core//prelude/types/cpp/int, LessOrEquivalent, loaded [symbolic = @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.1 (constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.2cb445.2)]
|
||||
// CHECK:STDOUT: %Core.Less.2d9: @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.Less.type.1 (%T.as_type.as.OrderedWith.impl.Less.type.2daa9a.2) = import_ref Core//prelude/types/cpp/int, Less, loaded [symbolic = @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.Less.1 (constants.%T.as_type.as.OrderedWith.impl.Less.c37ef5.2)]
|
||||
// CHECK:STDOUT: %Core.LessOrEquivalent.d90: @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.1 (%T.as_type.as.OrderedWith.impl.LessOrEquivalent.type.3d985f.2) = import_ref Core//prelude/types/cpp/int, LessOrEquivalent, loaded [symbolic = @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.1 (constants.%T.as_type.as.OrderedWith.impl.LessOrEquivalent.2cb445.2)]
|
||||
// CHECK:STDOUT: %Core.Greater.c24: @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.Greater.type.1 (%T.as_type.as.OrderedWith.impl.Greater.type.4fb98a.2) = import_ref Core//prelude/types/cpp/int, Greater, loaded [symbolic = @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.Greater.1 (constants.%T.as_type.as.OrderedWith.impl.Greater.878ae3.2)]
|
||||
// CHECK:STDOUT: %Core.GreaterOrEquivalent.8e2: @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.1 (%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.type.d6724c.2) = import_ref Core//prelude/types/cpp/int, GreaterOrEquivalent, loaded [symbolic = @T.as_type.as.OrderedWith.impl.df2.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.1 (constants.%T.as_type.as.OrderedWith.impl.GreaterOrEquivalent.df5290.2)]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @ComparisonsHeterogeneousLongLongRightSide() {
|
||||
|
||||
+877
-876
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user