diff --git a/toolchain/check/testdata/alias/builtins.carbon b/toolchain/check/testdata/alias/builtins.carbon index 74579b610542..5156b09c26ec 100644 --- a/toolchain/check/testdata/alias/builtins.carbon +++ b/toolchain/check/testdata/alias/builtins.carbon @@ -2,6 +2,8 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/primitives.carbon +// // AUTOUPDATE // TIP: To test this file alone, run: // TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/check/testdata/alias/builtins.carbon diff --git a/toolchain/check/testdata/array/bound_values.carbon b/toolchain/check/testdata/array/bound_values.carbon index b4a1f177b4f7..093ebc01030c 100644 --- a/toolchain/check/testdata/array/bound_values.carbon +++ b/toolchain/check/testdata/array/bound_values.carbon @@ -2,6 +2,8 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon +// // AUTOUPDATE // TIP: To test this file alone, run: // TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/check/testdata/array/bound_values.carbon diff --git a/toolchain/check/testdata/builtins/bool/eq.carbon b/toolchain/check/testdata/builtins/bool/eq.carbon index e96e0f6e6b80..23e4bc766378 100644 --- a/toolchain/check/testdata/builtins/bool/eq.carbon +++ b/toolchain/check/testdata/builtins/bool/eq.carbon @@ -2,6 +2,8 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon +// // AUTOUPDATE // TIP: To test this file alone, run: // TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/check/testdata/builtins/bool/eq.carbon diff --git a/toolchain/check/testdata/builtins/bool/neq.carbon b/toolchain/check/testdata/builtins/bool/neq.carbon index 7dbc1cbc88d4..16bb1503f93c 100644 --- a/toolchain/check/testdata/builtins/bool/neq.carbon +++ b/toolchain/check/testdata/builtins/bool/neq.carbon @@ -2,6 +2,8 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon +// // AUTOUPDATE // TIP: To test this file alone, run: // TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/check/testdata/builtins/bool/neq.carbon diff --git a/toolchain/check/testdata/builtins/print/char.carbon b/toolchain/check/testdata/builtins/print/char.carbon index 1ebf8b1046b6..adc504044582 100644 --- a/toolchain/check/testdata/builtins/print/char.carbon +++ b/toolchain/check/testdata/builtins/print/char.carbon @@ -2,6 +2,8 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon +// // AUTOUPDATE // TIP: To test this file alone, run: // TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/check/testdata/builtins/print/char.carbon @@ -26,7 +28,7 @@ fn Main() { // CHECK:STDOUT: %Int.type: type = generic_class_type @Int [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %PrintChar.type.c95: type = fn_type @PrintChar.loc13 [concrete] +// CHECK:STDOUT: %PrintChar.type.c95: type = fn_type @PrintChar.loc15 [concrete] // CHECK:STDOUT: %PrintChar.843: %PrintChar.type.c95 = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] @@ -71,27 +73,27 @@ fn Main() { // CHECK:STDOUT: // CHECK:STDOUT: fn @Main() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %PrintChar.ref.loc17: %PrintChar.type.c95 = name_ref PrintChar, file.%PrintChar.decl [concrete = constants.%PrintChar.843] +// CHECK:STDOUT: %PrintChar.ref.loc19: %PrintChar.type.c95 = name_ref PrintChar, file.%PrintChar.decl [concrete = constants.%PrintChar.843] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc17: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] -// CHECK:STDOUT: %bound_method.loc17_13.1: = bound_method %int_1, %impl.elem0.loc17 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17, @Convert.3(constants.%int_32) [concrete = constants.%Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc17_13.2: = bound_method %int_1, %specific_fn.loc17 [concrete = constants.%bound_method.9a1] -// CHECK:STDOUT: %int.convert_checked.loc17: init %i32 = call %bound_method.loc17_13.2(%int_1) [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %.loc17_13.1: %i32 = value_of_initializer %int.convert_checked.loc17 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %.loc17_13.2: %i32 = converted %int_1, %.loc17_13.1 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %print.char.loc17: init %i32 = call %PrintChar.ref.loc17(%.loc17_13.2) +// CHECK:STDOUT: %impl.elem0.loc19: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %bound_method.loc19_13.1: = bound_method %int_1, %impl.elem0.loc19 [concrete = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19, @Convert.3(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %bound_method.loc19_13.2: = bound_method %int_1, %specific_fn.loc19 [concrete = constants.%bound_method.9a1] +// CHECK:STDOUT: %int.convert_checked.loc19: init %i32 = call %bound_method.loc19_13.2(%int_1) [concrete = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc19_13.1: %i32 = value_of_initializer %int.convert_checked.loc19 [concrete = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc19_13.2: %i32 = converted %int_1, %.loc19_13.1 [concrete = constants.%int_1.5d2] +// CHECK:STDOUT: %print.char.loc19: init %i32 = call %PrintChar.ref.loc19(%.loc19_13.2) // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] -// CHECK:STDOUT: %PrintChar.ref.loc18: %PrintChar.type.089 = name_ref PrintChar, imports.%Core.PrintChar [concrete = constants.%PrintChar.d75] +// CHECK:STDOUT: %PrintChar.ref.loc20: %PrintChar.type.089 = name_ref PrintChar, imports.%Core.PrintChar [concrete = constants.%PrintChar.d75] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc18: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] -// CHECK:STDOUT: %bound_method.loc18_18.1: = bound_method %int_2, %impl.elem0.loc18 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18, @Convert.3(constants.%int_32) [concrete = constants.%Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc18_18.2: = bound_method %int_2, %specific_fn.loc18 [concrete = constants.%bound_method.b92] -// CHECK:STDOUT: %int.convert_checked.loc18: init %i32 = call %bound_method.loc18_18.2(%int_2) [concrete = constants.%int_2.ef8] -// CHECK:STDOUT: %.loc18_18.1: %i32 = value_of_initializer %int.convert_checked.loc18 [concrete = constants.%int_2.ef8] -// CHECK:STDOUT: %.loc18_18.2: %i32 = converted %int_2, %.loc18_18.1 [concrete = constants.%int_2.ef8] -// CHECK:STDOUT: %print.char.loc18: init %i32 = call %PrintChar.ref.loc18(%.loc18_18.2) +// CHECK:STDOUT: %impl.elem0.loc20: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %bound_method.loc20_18.1: = bound_method %int_2, %impl.elem0.loc20 [concrete = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20, @Convert.3(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %bound_method.loc20_18.2: = bound_method %int_2, %specific_fn.loc20 [concrete = constants.%bound_method.b92] +// CHECK:STDOUT: %int.convert_checked.loc20: init %i32 = call %bound_method.loc20_18.2(%int_2) [concrete = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc20_18.1: %i32 = value_of_initializer %int.convert_checked.loc20 [concrete = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc20_18.2: %i32 = converted %int_2, %.loc20_18.1 [concrete = constants.%int_2.ef8] +// CHECK:STDOUT: %print.char.loc20: init %i32 = call %PrintChar.ref.loc20(%.loc20_18.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/builtins/print/int.carbon b/toolchain/check/testdata/builtins/print/int.carbon index b0db7eacce2b..d4e73426d4a7 100644 --- a/toolchain/check/testdata/builtins/print/int.carbon +++ b/toolchain/check/testdata/builtins/print/int.carbon @@ -2,6 +2,8 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon +// // AUTOUPDATE // TIP: To test this file alone, run: // TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/check/testdata/builtins/print/int.carbon @@ -27,7 +29,7 @@ fn Main() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Int.generic: %Int.type = struct_value () [concrete] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(%int_32) [concrete] -// CHECK:STDOUT: %Print.type.980: type = fn_type @Print.loc13 [concrete] +// CHECK:STDOUT: %Print.type.980: type = fn_type @Print.loc15 [concrete] // CHECK:STDOUT: %Print.b7c: %Print.type.980 = struct_value () [concrete] // CHECK:STDOUT: %int_1.5b8: Core.IntLiteral = int_value 1 [concrete] // CHECK:STDOUT: %ImplicitAs.type.cc7: type = generic_interface_type @ImplicitAs [concrete] @@ -72,27 +74,27 @@ fn Main() { // CHECK:STDOUT: // CHECK:STDOUT: fn @Main() { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %Print.ref.loc17: %Print.type.980 = name_ref Print, file.%Print.decl [concrete = constants.%Print.b7c] +// CHECK:STDOUT: %Print.ref.loc19: %Print.type.980 = name_ref Print, file.%Print.decl [concrete = constants.%Print.b7c] // CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1.5b8] -// CHECK:STDOUT: %impl.elem0.loc17: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] -// CHECK:STDOUT: %bound_method.loc17_9.1: = bound_method %int_1, %impl.elem0.loc17 [concrete = constants.%Convert.bound.ab5] -// CHECK:STDOUT: %specific_fn.loc17: = specific_function %impl.elem0.loc17, @Convert.3(constants.%int_32) [concrete = constants.%Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc17_9.2: = bound_method %int_1, %specific_fn.loc17 [concrete = constants.%bound_method.9a1] -// CHECK:STDOUT: %int.convert_checked.loc17: init %i32 = call %bound_method.loc17_9.2(%int_1) [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %.loc17_9.1: %i32 = value_of_initializer %int.convert_checked.loc17 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %.loc17_9.2: %i32 = converted %int_1, %.loc17_9.1 [concrete = constants.%int_1.5d2] -// CHECK:STDOUT: %print.int.loc17: init %empty_tuple.type = call %Print.ref.loc17(%.loc17_9.2) +// CHECK:STDOUT: %impl.elem0.loc19: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %bound_method.loc19_9.1: = bound_method %int_1, %impl.elem0.loc19 [concrete = constants.%Convert.bound.ab5] +// CHECK:STDOUT: %specific_fn.loc19: = specific_function %impl.elem0.loc19, @Convert.3(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %bound_method.loc19_9.2: = bound_method %int_1, %specific_fn.loc19 [concrete = constants.%bound_method.9a1] +// CHECK:STDOUT: %int.convert_checked.loc19: init %i32 = call %bound_method.loc19_9.2(%int_1) [concrete = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc19_9.1: %i32 = value_of_initializer %int.convert_checked.loc19 [concrete = constants.%int_1.5d2] +// CHECK:STDOUT: %.loc19_9.2: %i32 = converted %int_1, %.loc19_9.1 [concrete = constants.%int_1.5d2] +// CHECK:STDOUT: %print.int.loc19: init %empty_tuple.type = call %Print.ref.loc19(%.loc19_9.2) // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] -// CHECK:STDOUT: %Print.ref.loc18: %Print.type.6ed = name_ref Print, imports.%Core.Print [concrete = constants.%Print.723] +// CHECK:STDOUT: %Print.ref.loc20: %Print.type.6ed = name_ref Print, imports.%Core.Print [concrete = constants.%Print.723] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2.ecc] -// CHECK:STDOUT: %impl.elem0.loc18: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] -// CHECK:STDOUT: %bound_method.loc18_14.1: = bound_method %int_2, %impl.elem0.loc18 [concrete = constants.%Convert.bound.ef9] -// CHECK:STDOUT: %specific_fn.loc18: = specific_function %impl.elem0.loc18, @Convert.3(constants.%int_32) [concrete = constants.%Convert.specific_fn] -// CHECK:STDOUT: %bound_method.loc18_14.2: = bound_method %int_2, %specific_fn.loc18 [concrete = constants.%bound_method.b92] -// CHECK:STDOUT: %int.convert_checked.loc18: init %i32 = call %bound_method.loc18_14.2(%int_2) [concrete = constants.%int_2.ef8] -// CHECK:STDOUT: %.loc18_14.1: %i32 = value_of_initializer %int.convert_checked.loc18 [concrete = constants.%int_2.ef8] -// CHECK:STDOUT: %.loc18_14.2: %i32 = converted %int_2, %.loc18_14.1 [concrete = constants.%int_2.ef8] -// CHECK:STDOUT: %print.int.loc18: init %empty_tuple.type = call %Print.ref.loc18(%.loc18_14.2) +// CHECK:STDOUT: %impl.elem0.loc20: %.9c3 = impl_witness_access constants.%ImplicitAs.impl_witness.c75, element0 [concrete = constants.%Convert.956] +// CHECK:STDOUT: %bound_method.loc20_14.1: = bound_method %int_2, %impl.elem0.loc20 [concrete = constants.%Convert.bound.ef9] +// CHECK:STDOUT: %specific_fn.loc20: = specific_function %impl.elem0.loc20, @Convert.3(constants.%int_32) [concrete = constants.%Convert.specific_fn] +// CHECK:STDOUT: %bound_method.loc20_14.2: = bound_method %int_2, %specific_fn.loc20 [concrete = constants.%bound_method.b92] +// CHECK:STDOUT: %int.convert_checked.loc20: init %i32 = call %bound_method.loc20_14.2(%int_2) [concrete = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc20_14.1: %i32 = value_of_initializer %int.convert_checked.loc20 [concrete = constants.%int_2.ef8] +// CHECK:STDOUT: %.loc20_14.2: %i32 = converted %int_2, %.loc20_14.1 [concrete = constants.%int_2.ef8] +// CHECK:STDOUT: %print.int.loc20: init %empty_tuple.type = call %Print.ref.loc20(%.loc20_14.2) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/builtins/read/char.carbon b/toolchain/check/testdata/builtins/read/char.carbon index b4380d92f268..cf42d44d6ac5 100644 --- a/toolchain/check/testdata/builtins/read/char.carbon +++ b/toolchain/check/testdata/builtins/read/char.carbon @@ -2,6 +2,8 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon +// // AUTOUPDATE // TIP: To test this file alone, run: // TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/check/testdata/builtins/read/char.carbon diff --git a/toolchain/check/testdata/class/generic/self.carbon b/toolchain/check/testdata/class/generic/self.carbon index a40fa0f95103..f836ac978ed8 100644 --- a/toolchain/check/testdata/class/generic/self.carbon +++ b/toolchain/check/testdata/class/generic/self.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/destroy.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // @@ -61,7 +62,7 @@ class Class(T:! type) { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/destroy, Destroy, loaded [concrete = constants.%Destroy.type] +// CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -73,19 +74,19 @@ class Class(T:! type) { // CHECK:STDOUT: %Class.decl: %Class.type = class_decl @Class [concrete = constants.%Class.generic] { // CHECK:STDOUT: %T.patt: %pattern_type.98f = symbolic_binding_pattern T, 0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %T.loc14_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc14_13.2 (constants.%T)] +// CHECK:STDOUT: %T.loc15_13.1: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_13.2 (constants.%T)] // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic class @Class(%T.loc14_13.1: type) { -// CHECK:STDOUT: %T.loc14_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc14_13.2 (constants.%T)] +// CHECK:STDOUT: generic class @Class(%T.loc15_13.1: type) { +// CHECK:STDOUT: %T.loc15_13.2: type = bind_symbolic_name T, 0 [symbolic = %T.loc15_13.2 (constants.%T)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %MakeSelf.type: type = fn_type @MakeSelf, @Class(%T.loc14_13.2) [symbolic = %MakeSelf.type (constants.%MakeSelf.type)] +// CHECK:STDOUT: %MakeSelf.type: type = fn_type @MakeSelf, @Class(%T.loc15_13.2) [symbolic = %MakeSelf.type (constants.%MakeSelf.type)] // CHECK:STDOUT: %MakeSelf: @Class.%MakeSelf.type (%MakeSelf.type) = struct_value () [symbolic = %MakeSelf (constants.%MakeSelf)] -// CHECK:STDOUT: %MakeClass.type: type = fn_type @MakeClass, @Class(%T.loc14_13.2) [symbolic = %MakeClass.type (constants.%MakeClass.type)] +// CHECK:STDOUT: %MakeClass.type: type = fn_type @MakeClass, @Class(%T.loc15_13.2) [symbolic = %MakeClass.type (constants.%MakeClass.type)] // CHECK:STDOUT: %MakeClass: @Class.%MakeClass.type (%MakeClass.type) = struct_value () [symbolic = %MakeClass (constants.%MakeClass)] -// CHECK:STDOUT: %F.type: type = fn_type @F, @Class(%T.loc14_13.2) [symbolic = %F.type (constants.%F.type)] +// CHECK:STDOUT: %F.type: type = fn_type @F, @Class(%T.loc15_13.2) [symbolic = %F.type (constants.%F.type)] // CHECK:STDOUT: %F: @Class.%F.type (%F.type) = struct_value () [symbolic = %F (constants.%F)] // CHECK:STDOUT: // CHECK:STDOUT: class { @@ -93,8 +94,8 @@ class Class(T:! type) { // CHECK:STDOUT: %return.patt: @MakeSelf.%pattern_type (%pattern_type.3c1) = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: @MakeSelf.%pattern_type (%pattern_type.3c1) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc17_20: type = specific_constant constants.%Class, @Class(constants.%T) [symbolic = %Class (constants.%Class)] -// CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc17_20 [symbolic = %Class (constants.%Class)] +// CHECK:STDOUT: %.loc18_20: type = specific_constant constants.%Class, @Class(constants.%T) [symbolic = %Class (constants.%Class)] +// CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc18_20 [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %return.param: ref @MakeSelf.%Class (%Class) = out_param call_param0 // CHECK:STDOUT: %return: ref @MakeSelf.%Class (%Class) = return_slot %return.param // CHECK:STDOUT: } @@ -103,10 +104,10 @@ class Class(T:! type) { // CHECK:STDOUT: %return.param_patt: @MakeClass.%pattern_type (%pattern_type.3c1) = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [concrete = constants.%Class.generic] -// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc14_13.1 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Class.loc18_28.2: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.loc18_28.1 (constants.%Class)] -// CHECK:STDOUT: %return.param: ref @MakeClass.%Class.loc18_28.1 (%Class) = out_param call_param0 -// CHECK:STDOUT: %return: ref @MakeClass.%Class.loc18_28.1 (%Class) = return_slot %return.param +// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc15_13.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %Class.loc19_28.2: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.loc19_28.1 (constants.%Class)] +// CHECK:STDOUT: %return.param: ref @MakeClass.%Class.loc19_28.1 (%Class) = out_param call_param0 +// CHECK:STDOUT: %return: ref @MakeClass.%Class.loc19_28.1 (%Class) = return_slot %return.param // CHECK:STDOUT: } // CHECK:STDOUT: %F.decl: @Class.%F.type (%F.type) = fn_decl @F [symbolic = @Class.%F (constants.%F)] {} {} // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete = constants.%empty_struct_type] @@ -123,7 +124,7 @@ class Class(T:! type) { // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @MakeSelf(@Class.%T.loc14_13.1: type) { +// CHECK:STDOUT: generic fn @MakeSelf(@Class.%T.loc15_13.1: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] // CHECK:STDOUT: %Class: type = class_type @Class, @Class(%T) [symbolic = %Class (constants.%Class)] // CHECK:STDOUT: %pattern_type: type = pattern_type %Class [symbolic = %pattern_type (constants.%pattern_type.3c1)] @@ -134,50 +135,50 @@ class Class(T:! type) { // CHECK:STDOUT: // CHECK:STDOUT: fn() -> %return.param: @MakeSelf.%Class (%Class) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %.loc17_35.1: %empty_struct_type = struct_literal () -// CHECK:STDOUT: %.loc17_35.2: init @MakeSelf.%Class (%Class) = class_init (), %return [symbolic = %Class.val (constants.%Class.val)] -// CHECK:STDOUT: %.loc17_36: init @MakeSelf.%Class (%Class) = converted %.loc17_35.1, %.loc17_35.2 [symbolic = %Class.val (constants.%Class.val)] -// CHECK:STDOUT: return %.loc17_36 to %return +// CHECK:STDOUT: %.loc18_35.1: %empty_struct_type = struct_literal () +// CHECK:STDOUT: %.loc18_35.2: init @MakeSelf.%Class (%Class) = class_init (), %return [symbolic = %Class.val (constants.%Class.val)] +// CHECK:STDOUT: %.loc18_36: init @MakeSelf.%Class (%Class) = converted %.loc18_35.1, %.loc18_35.2 [symbolic = %Class.val (constants.%Class.val)] +// CHECK:STDOUT: return %.loc18_36 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @MakeClass(@Class.%T.loc14_13.1: type) { +// CHECK:STDOUT: generic fn @MakeClass(@Class.%T.loc15_13.1: type) { // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Class.loc18_28.1: type = class_type @Class, @Class(%T) [symbolic = %Class.loc18_28.1 (constants.%Class)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Class.loc18_28.1 [symbolic = %pattern_type (constants.%pattern_type.3c1)] +// CHECK:STDOUT: %Class.loc19_28.1: type = class_type @Class, @Class(%T) [symbolic = %Class.loc19_28.1 (constants.%Class)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Class.loc19_28.1 [symbolic = %pattern_type (constants.%pattern_type.3c1)] // CHECK:STDOUT: // CHECK:STDOUT: !definition: -// CHECK:STDOUT: %require_complete: = require_complete_type %Class.loc18_28.1 [symbolic = %require_complete (constants.%require_complete.4f8)] -// CHECK:STDOUT: %Class.val: @MakeClass.%Class.loc18_28.1 (%Class) = struct_value () [symbolic = %Class.val (constants.%Class.val)] +// CHECK:STDOUT: %require_complete: = require_complete_type %Class.loc19_28.1 [symbolic = %require_complete (constants.%require_complete.4f8)] +// CHECK:STDOUT: %Class.val: @MakeClass.%Class.loc19_28.1 (%Class) = struct_value () [symbolic = %Class.val (constants.%Class.val)] // CHECK:STDOUT: -// CHECK:STDOUT: fn() -> %return.param: @MakeClass.%Class.loc18_28.1 (%Class) { +// CHECK:STDOUT: fn() -> %return.param: @MakeClass.%Class.loc19_28.1 (%Class) { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %.loc18_40.1: %empty_struct_type = struct_literal () -// CHECK:STDOUT: %.loc18_40.2: init @MakeClass.%Class.loc18_28.1 (%Class) = class_init (), %return [symbolic = %Class.val (constants.%Class.val)] -// CHECK:STDOUT: %.loc18_41: init @MakeClass.%Class.loc18_28.1 (%Class) = converted %.loc18_40.1, %.loc18_40.2 [symbolic = %Class.val (constants.%Class.val)] -// CHECK:STDOUT: return %.loc18_41 to %return +// CHECK:STDOUT: %.loc19_40.1: %empty_struct_type = struct_literal () +// CHECK:STDOUT: %.loc19_40.2: init @MakeClass.%Class.loc19_28.1 (%Class) = class_init (), %return [symbolic = %Class.val (constants.%Class.val)] +// CHECK:STDOUT: %.loc19_41: init @MakeClass.%Class.loc19_28.1 (%Class) = converted %.loc19_40.1, %.loc19_40.2 [symbolic = %Class.val (constants.%Class.val)] +// CHECK:STDOUT: return %.loc19_41 to %return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: generic fn @F(@Class.%T.loc14_13.1: type) { +// CHECK:STDOUT: generic fn @F(@Class.%T.loc15_13.1: type) { // CHECK:STDOUT: !definition: // CHECK:STDOUT: %T: type = bind_symbolic_name T, 0 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Class.loc20_19.2: type = class_type @Class, @Class(%T) [symbolic = %Class.loc20_19.2 (constants.%Class)] -// CHECK:STDOUT: %require_complete.loc20: = require_complete_type %Class.loc20_19.2 [symbolic = %require_complete.loc20 (constants.%require_complete.4f8)] -// CHECK:STDOUT: %pattern_type: type = pattern_type %Class.loc20_19.2 [symbolic = %pattern_type (constants.%pattern_type.3c1)] +// CHECK:STDOUT: %Class.loc21_19.2: type = class_type @Class, @Class(%T) [symbolic = %Class.loc21_19.2 (constants.%Class)] +// CHECK:STDOUT: %require_complete.loc21: = require_complete_type %Class.loc21_19.2 [symbolic = %require_complete.loc21 (constants.%require_complete.4f8)] +// CHECK:STDOUT: %pattern_type: type = pattern_type %Class.loc21_19.2 [symbolic = %pattern_type (constants.%pattern_type.3c1)] // CHECK:STDOUT: %MakeSelf.type: type = fn_type @MakeSelf, @Class(%T) [symbolic = %MakeSelf.type (constants.%MakeSelf.type)] // CHECK:STDOUT: %MakeSelf: @F.%MakeSelf.type (%MakeSelf.type) = struct_value () [symbolic = %MakeSelf (constants.%MakeSelf)] -// CHECK:STDOUT: %MakeSelf.specific_fn.loc20_23.2: = specific_function %MakeSelf, @MakeSelf(%T) [symbolic = %MakeSelf.specific_fn.loc20_23.2 (constants.%MakeSelf.specific_fn)] +// CHECK:STDOUT: %MakeSelf.specific_fn.loc21_23.2: = specific_function %MakeSelf, @MakeSelf(%T) [symbolic = %MakeSelf.specific_fn.loc21_23.2 (constants.%MakeSelf.specific_fn)] // CHECK:STDOUT: %MakeClass.type: type = fn_type @MakeClass, @Class(%T) [symbolic = %MakeClass.type (constants.%MakeClass.type)] // CHECK:STDOUT: %MakeClass: @F.%MakeClass.type (%MakeClass.type) = struct_value () [symbolic = %MakeClass (constants.%MakeClass)] -// CHECK:STDOUT: %MakeClass.specific_fn.loc21_19.2: = specific_function %MakeClass, @MakeClass(%T) [symbolic = %MakeClass.specific_fn.loc21_19.2 (constants.%MakeClass.specific_fn)] -// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %Class.loc20_19.2, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] -// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Class.loc20_19.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet)] -// CHECK:STDOUT: %.loc21_5.4: type = fn_type_with_self_type constants.%Op.type.bae, %Destroy.facet [symbolic = %.loc21_5.4 (constants.%.d76)] -// CHECK:STDOUT: %impl.elem0.loc21_5.3: @F.%.loc21_5.4 (%.d76) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc21_5.3 (constants.%impl.elem0)] -// CHECK:STDOUT: %specific_impl_fn.loc21_5.3: = specific_impl_function %impl.elem0.loc21_5.3, @Op.1(%Destroy.facet) [symbolic = %specific_impl_fn.loc21_5.3 (constants.%specific_impl_fn)] -// CHECK:STDOUT: %ptr: type = ptr_type %Class.loc20_19.2 [symbolic = %ptr (constants.%ptr.955)] -// CHECK:STDOUT: %require_complete.loc21: = require_complete_type %ptr [symbolic = %require_complete.loc21 (constants.%require_complete.2ae)] +// CHECK:STDOUT: %MakeClass.specific_fn.loc22_19.2: = specific_function %MakeClass, @MakeClass(%T) [symbolic = %MakeClass.specific_fn.loc22_19.2 (constants.%MakeClass.specific_fn)] +// CHECK:STDOUT: %Destroy.lookup_impl_witness: = lookup_impl_witness %Class.loc21_19.2, @Destroy [symbolic = %Destroy.lookup_impl_witness (constants.%Destroy.lookup_impl_witness)] +// CHECK:STDOUT: %Destroy.facet: %Destroy.type = facet_value %Class.loc21_19.2, (%Destroy.lookup_impl_witness) [symbolic = %Destroy.facet (constants.%Destroy.facet)] +// CHECK:STDOUT: %.loc22_5.4: type = fn_type_with_self_type constants.%Op.type.bae, %Destroy.facet [symbolic = %.loc22_5.4 (constants.%.d76)] +// CHECK:STDOUT: %impl.elem0.loc22_5.3: @F.%.loc22_5.4 (%.d76) = impl_witness_access %Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_5.3 (constants.%impl.elem0)] +// CHECK:STDOUT: %specific_impl_fn.loc22_5.3: = specific_impl_function %impl.elem0.loc22_5.3, @Op.1(%Destroy.facet) [symbolic = %specific_impl_fn.loc22_5.3 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %ptr: type = ptr_type %Class.loc21_19.2 [symbolic = %ptr (constants.%ptr.955)] +// CHECK:STDOUT: %require_complete.loc22: = require_complete_type %ptr [symbolic = %require_complete.loc22 (constants.%require_complete.2ae)] // CHECK:STDOUT: // CHECK:STDOUT: fn() { // CHECK:STDOUT: !entry: @@ -185,65 +186,65 @@ class Class(T:! type) { // CHECK:STDOUT: %c.patt: @F.%pattern_type (%pattern_type.3c1) = binding_pattern c [concrete] // CHECK:STDOUT: %c.var_patt: @F.%pattern_type (%pattern_type.3c1) = var_pattern %c.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %c.var: ref @F.%Class.loc20_19.2 (%Class) = var %c.var_patt -// CHECK:STDOUT: %.loc20_23: @F.%MakeSelf.type (%MakeSelf.type) = specific_constant @Class.%MakeSelf.decl, @Class(constants.%T) [symbolic = %MakeSelf (constants.%MakeSelf)] -// CHECK:STDOUT: %MakeSelf.ref: @F.%MakeSelf.type (%MakeSelf.type) = name_ref MakeSelf, %.loc20_23 [symbolic = %MakeSelf (constants.%MakeSelf)] -// CHECK:STDOUT: %MakeSelf.specific_fn.loc20_23.1: = specific_function %MakeSelf.ref, @MakeSelf(constants.%T) [symbolic = %MakeSelf.specific_fn.loc20_23.2 (constants.%MakeSelf.specific_fn)] -// CHECK:STDOUT: %.loc20_5.1: ref @F.%Class.loc20_19.2 (%Class) = splice_block %c.var {} -// CHECK:STDOUT: %MakeSelf.call: init @F.%Class.loc20_19.2 (%Class) = call %MakeSelf.specific_fn.loc20_23.1() to %.loc20_5.1 +// CHECK:STDOUT: %c.var: ref @F.%Class.loc21_19.2 (%Class) = var %c.var_patt +// CHECK:STDOUT: %.loc21_23: @F.%MakeSelf.type (%MakeSelf.type) = specific_constant @Class.%MakeSelf.decl, @Class(constants.%T) [symbolic = %MakeSelf (constants.%MakeSelf)] +// CHECK:STDOUT: %MakeSelf.ref: @F.%MakeSelf.type (%MakeSelf.type) = name_ref MakeSelf, %.loc21_23 [symbolic = %MakeSelf (constants.%MakeSelf)] +// CHECK:STDOUT: %MakeSelf.specific_fn.loc21_23.1: = specific_function %MakeSelf.ref, @MakeSelf(constants.%T) [symbolic = %MakeSelf.specific_fn.loc21_23.2 (constants.%MakeSelf.specific_fn)] +// CHECK:STDOUT: %.loc21_5.1: ref @F.%Class.loc21_19.2 (%Class) = splice_block %c.var {} +// CHECK:STDOUT: %MakeSelf.call: init @F.%Class.loc21_19.2 (%Class) = call %MakeSelf.specific_fn.loc21_23.1() to %.loc21_5.1 // CHECK:STDOUT: assign %c.var, %MakeSelf.call -// CHECK:STDOUT: %.loc20_19: type = splice_block %Class.loc20_19.1 [symbolic = %Class.loc20_19.2 (constants.%Class)] { +// CHECK:STDOUT: %.loc21_19: type = splice_block %Class.loc21_19.1 [symbolic = %Class.loc21_19.2 (constants.%Class)] { // CHECK:STDOUT: %Class.ref: %Class.type = name_ref Class, file.%Class.decl [concrete = constants.%Class.generic] -// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc14_13.1 [symbolic = %T (constants.%T)] -// CHECK:STDOUT: %Class.loc20_19.1: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.loc20_19.2 (constants.%Class)] +// CHECK:STDOUT: %T.ref: type = name_ref T, @Class.%T.loc15_13.1 [symbolic = %T (constants.%T)] +// CHECK:STDOUT: %Class.loc21_19.1: type = class_type @Class, @Class(constants.%T) [symbolic = %Class.loc21_19.2 (constants.%Class)] // CHECK:STDOUT: } -// CHECK:STDOUT: %c: ref @F.%Class.loc20_19.2 (%Class) = bind_name c, %c.var +// CHECK:STDOUT: %c: ref @F.%Class.loc21_19.2 (%Class) = bind_name c, %c.var // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %s.patt: @F.%pattern_type (%pattern_type.3c1) = binding_pattern s [concrete] // CHECK:STDOUT: %s.var_patt: @F.%pattern_type (%pattern_type.3c1) = var_pattern %s.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %s.var: ref @F.%Class.loc20_19.2 (%Class) = var %s.var_patt -// CHECK:STDOUT: %.loc21_19: @F.%MakeClass.type (%MakeClass.type) = specific_constant @Class.%MakeClass.decl, @Class(constants.%T) [symbolic = %MakeClass (constants.%MakeClass)] -// CHECK:STDOUT: %MakeClass.ref: @F.%MakeClass.type (%MakeClass.type) = name_ref MakeClass, %.loc21_19 [symbolic = %MakeClass (constants.%MakeClass)] -// CHECK:STDOUT: %MakeClass.specific_fn.loc21_19.1: = specific_function %MakeClass.ref, @MakeClass(constants.%T) [symbolic = %MakeClass.specific_fn.loc21_19.2 (constants.%MakeClass.specific_fn)] -// CHECK:STDOUT: %.loc21_5.1: ref @F.%Class.loc20_19.2 (%Class) = splice_block %s.var {} -// CHECK:STDOUT: %MakeClass.call: init @F.%Class.loc20_19.2 (%Class) = call %MakeClass.specific_fn.loc21_19.1() to %.loc21_5.1 +// CHECK:STDOUT: %s.var: ref @F.%Class.loc21_19.2 (%Class) = var %s.var_patt +// CHECK:STDOUT: %.loc22_19: @F.%MakeClass.type (%MakeClass.type) = specific_constant @Class.%MakeClass.decl, @Class(constants.%T) [symbolic = %MakeClass (constants.%MakeClass)] +// CHECK:STDOUT: %MakeClass.ref: @F.%MakeClass.type (%MakeClass.type) = name_ref MakeClass, %.loc22_19 [symbolic = %MakeClass (constants.%MakeClass)] +// CHECK:STDOUT: %MakeClass.specific_fn.loc22_19.1: = specific_function %MakeClass.ref, @MakeClass(constants.%T) [symbolic = %MakeClass.specific_fn.loc22_19.2 (constants.%MakeClass.specific_fn)] +// CHECK:STDOUT: %.loc22_5.1: ref @F.%Class.loc21_19.2 (%Class) = splice_block %s.var {} +// CHECK:STDOUT: %MakeClass.call: init @F.%Class.loc21_19.2 (%Class) = call %MakeClass.specific_fn.loc22_19.1() to %.loc22_5.1 // CHECK:STDOUT: assign %s.var, %MakeClass.call -// CHECK:STDOUT: %.loc21_12.1: type = splice_block %Self.ref [symbolic = %Class.loc20_19.2 (constants.%Class)] { -// CHECK:STDOUT: %.loc21_12.2: type = specific_constant constants.%Class, @Class(constants.%T) [symbolic = %Class.loc20_19.2 (constants.%Class)] -// CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc21_12.2 [symbolic = %Class.loc20_19.2 (constants.%Class)] +// CHECK:STDOUT: %.loc22_12.1: type = splice_block %Self.ref [symbolic = %Class.loc21_19.2 (constants.%Class)] { +// CHECK:STDOUT: %.loc22_12.2: type = specific_constant constants.%Class, @Class(constants.%T) [symbolic = %Class.loc21_19.2 (constants.%Class)] +// CHECK:STDOUT: %Self.ref: type = name_ref Self, %.loc22_12.2 [symbolic = %Class.loc21_19.2 (constants.%Class)] // CHECK:STDOUT: } -// CHECK:STDOUT: %s: ref @F.%Class.loc20_19.2 (%Class) = bind_name s, %s.var -// CHECK:STDOUT: %impl.elem0.loc21_5.1: @F.%.loc21_5.4 (%.d76) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc21_5.3 (constants.%impl.elem0)] +// CHECK:STDOUT: %s: ref @F.%Class.loc21_19.2 (%Class) = bind_name s, %s.var +// CHECK:STDOUT: %impl.elem0.loc22_5.1: @F.%.loc22_5.4 (%.d76) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_5.3 (constants.%impl.elem0)] +// CHECK:STDOUT: %bound_method.loc22_5.1: = bound_method %.loc22_5.1, %impl.elem0.loc22_5.1 +// CHECK:STDOUT: %specific_impl_fn.loc22_5.1: = specific_impl_function %impl.elem0.loc22_5.1, @Op.1(constants.%Destroy.facet) [symbolic = %specific_impl_fn.loc22_5.3 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %bound_method.loc22_5.2: = bound_method %.loc22_5.1, %specific_impl_fn.loc22_5.1 +// CHECK:STDOUT: %addr.loc22_5.1: @F.%ptr (%ptr.955) = addr_of %.loc22_5.1 +// CHECK:STDOUT: %.loc22_5.2: init %empty_tuple.type = call %bound_method.loc22_5.2(%addr.loc22_5.1) +// CHECK:STDOUT: %impl.elem0.loc22_5.2: @F.%.loc22_5.4 (%.d76) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_5.3 (constants.%impl.elem0)] +// CHECK:STDOUT: %bound_method.loc22_5.3: = bound_method %s.var, %impl.elem0.loc22_5.2 +// CHECK:STDOUT: %specific_impl_fn.loc22_5.2: = specific_impl_function %impl.elem0.loc22_5.2, @Op.1(constants.%Destroy.facet) [symbolic = %specific_impl_fn.loc22_5.3 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %bound_method.loc22_5.4: = bound_method %s.var, %specific_impl_fn.loc22_5.2 +// CHECK:STDOUT: %addr.loc22_5.2: @F.%ptr (%ptr.955) = addr_of %s.var +// CHECK:STDOUT: %.loc22_5.3: init %empty_tuple.type = call %bound_method.loc22_5.4(%addr.loc22_5.2) +// CHECK:STDOUT: %impl.elem0.loc21_5.1: @F.%.loc22_5.4 (%.d76) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_5.3 (constants.%impl.elem0)] // CHECK:STDOUT: %bound_method.loc21_5.1: = bound_method %.loc21_5.1, %impl.elem0.loc21_5.1 -// CHECK:STDOUT: %specific_impl_fn.loc21_5.1: = specific_impl_function %impl.elem0.loc21_5.1, @Op.1(constants.%Destroy.facet) [symbolic = %specific_impl_fn.loc21_5.3 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %specific_impl_fn.loc21_5.1: = specific_impl_function %impl.elem0.loc21_5.1, @Op.1(constants.%Destroy.facet) [symbolic = %specific_impl_fn.loc22_5.3 (constants.%specific_impl_fn)] // CHECK:STDOUT: %bound_method.loc21_5.2: = bound_method %.loc21_5.1, %specific_impl_fn.loc21_5.1 // CHECK:STDOUT: %addr.loc21_5.1: @F.%ptr (%ptr.955) = addr_of %.loc21_5.1 // CHECK:STDOUT: %.loc21_5.2: init %empty_tuple.type = call %bound_method.loc21_5.2(%addr.loc21_5.1) -// CHECK:STDOUT: %impl.elem0.loc21_5.2: @F.%.loc21_5.4 (%.d76) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc21_5.3 (constants.%impl.elem0)] -// CHECK:STDOUT: %bound_method.loc21_5.3: = bound_method %s.var, %impl.elem0.loc21_5.2 -// CHECK:STDOUT: %specific_impl_fn.loc21_5.2: = specific_impl_function %impl.elem0.loc21_5.2, @Op.1(constants.%Destroy.facet) [symbolic = %specific_impl_fn.loc21_5.3 (constants.%specific_impl_fn)] -// CHECK:STDOUT: %bound_method.loc21_5.4: = bound_method %s.var, %specific_impl_fn.loc21_5.2 -// CHECK:STDOUT: %addr.loc21_5.2: @F.%ptr (%ptr.955) = addr_of %s.var +// CHECK:STDOUT: %impl.elem0.loc21_5.2: @F.%.loc22_5.4 (%.d76) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc22_5.3 (constants.%impl.elem0)] +// CHECK:STDOUT: %bound_method.loc21_5.3: = bound_method %c.var, %impl.elem0.loc21_5.2 +// CHECK:STDOUT: %specific_impl_fn.loc21_5.2: = specific_impl_function %impl.elem0.loc21_5.2, @Op.1(constants.%Destroy.facet) [symbolic = %specific_impl_fn.loc22_5.3 (constants.%specific_impl_fn)] +// CHECK:STDOUT: %bound_method.loc21_5.4: = bound_method %c.var, %specific_impl_fn.loc21_5.2 +// CHECK:STDOUT: %addr.loc21_5.2: @F.%ptr (%ptr.955) = addr_of %c.var // CHECK:STDOUT: %.loc21_5.3: init %empty_tuple.type = call %bound_method.loc21_5.4(%addr.loc21_5.2) -// CHECK:STDOUT: %impl.elem0.loc20_5.1: @F.%.loc21_5.4 (%.d76) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc21_5.3 (constants.%impl.elem0)] -// CHECK:STDOUT: %bound_method.loc20_5.1: = bound_method %.loc20_5.1, %impl.elem0.loc20_5.1 -// CHECK:STDOUT: %specific_impl_fn.loc20_5.1: = specific_impl_function %impl.elem0.loc20_5.1, @Op.1(constants.%Destroy.facet) [symbolic = %specific_impl_fn.loc21_5.3 (constants.%specific_impl_fn)] -// CHECK:STDOUT: %bound_method.loc20_5.2: = bound_method %.loc20_5.1, %specific_impl_fn.loc20_5.1 -// CHECK:STDOUT: %addr.loc20_5.1: @F.%ptr (%ptr.955) = addr_of %.loc20_5.1 -// CHECK:STDOUT: %.loc20_5.2: init %empty_tuple.type = call %bound_method.loc20_5.2(%addr.loc20_5.1) -// CHECK:STDOUT: %impl.elem0.loc20_5.2: @F.%.loc21_5.4 (%.d76) = impl_witness_access constants.%Destroy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc21_5.3 (constants.%impl.elem0)] -// CHECK:STDOUT: %bound_method.loc20_5.3: = bound_method %c.var, %impl.elem0.loc20_5.2 -// CHECK:STDOUT: %specific_impl_fn.loc20_5.2: = specific_impl_function %impl.elem0.loc20_5.2, @Op.1(constants.%Destroy.facet) [symbolic = %specific_impl_fn.loc21_5.3 (constants.%specific_impl_fn)] -// CHECK:STDOUT: %bound_method.loc20_5.4: = bound_method %c.var, %specific_impl_fn.loc20_5.2 -// CHECK:STDOUT: %addr.loc20_5.2: @F.%ptr (%ptr.955) = addr_of %c.var -// CHECK:STDOUT: %.loc20_5.3: init %empty_tuple.type = call %bound_method.loc20_5.4(%addr.loc20_5.2) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: specific @Class(constants.%T) { -// CHECK:STDOUT: %T.loc14_13.2 => constants.%T +// CHECK:STDOUT: %T.loc15_13.2 => constants.%T // CHECK:STDOUT: // CHECK:STDOUT: !definition: // CHECK:STDOUT: %MakeSelf.type => constants.%MakeSelf.type @@ -266,7 +267,7 @@ class Class(T:! type) { // CHECK:STDOUT: // CHECK:STDOUT: specific @MakeClass(constants.%T) { // CHECK:STDOUT: %T => constants.%T -// CHECK:STDOUT: %Class.loc18_28.1 => constants.%Class +// CHECK:STDOUT: %Class.loc19_28.1 => constants.%Class // CHECK:STDOUT: %pattern_type => constants.%pattern_type.3c1 // CHECK:STDOUT: // CHECK:STDOUT: !definition: diff --git a/toolchain/check/testdata/facet/aggregate_through_access.carbon b/toolchain/check/testdata/facet/aggregate_through_access.carbon index cc6a305f2201..defef08f4e55 100644 --- a/toolchain/check/testdata/facet/aggregate_through_access.carbon +++ b/toolchain/check/testdata/facet/aggregate_through_access.carbon @@ -2,6 +2,8 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon +// // AUTOUPDATE // TIP: To test this file alone, run: // TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/check/testdata/facet/aggregate_through_access.carbon diff --git a/toolchain/check/testdata/for/actual.carbon b/toolchain/check/testdata/for/actual.carbon index 0080788f4b87..de10b0c3b946 100644 --- a/toolchain/check/testdata/for/actual.carbon +++ b/toolchain/check/testdata/for/actual.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // // AUTOUPDATE diff --git a/toolchain/check/testdata/function/call/fail_not_callable.carbon b/toolchain/check/testdata/function/call/fail_not_callable.carbon index 924f9a545177..584b90acd3a9 100644 --- a/toolchain/check/testdata/function/call/fail_not_callable.carbon +++ b/toolchain/check/testdata/function/call/fail_not_callable.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // @@ -67,7 +68,7 @@ fn Run() { // CHECK:STDOUT: %x.var: ref %i32 = var %x.var_patt // CHECK:STDOUT: %str: String = string_literal "hello" [concrete = constants.%str] // CHECK:STDOUT: assign %x.var, -// CHECK:STDOUT: %.loc19: type = splice_block %i32 [concrete = constants.%i32] { +// CHECK:STDOUT: %.loc20: type = splice_block %i32 [concrete = constants.%i32] { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/generic/template/unimplemented.carbon b/toolchain/check/testdata/generic/template/unimplemented.carbon index eda5b5fdd52e..05341116ead3 100644 --- a/toolchain/check/testdata/generic/template/unimplemented.carbon +++ b/toolchain/check/testdata/generic/template/unimplemented.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // diff --git a/toolchain/check/testdata/impl/impl_assoc_const_with_prelude.carbon b/toolchain/check/testdata/impl/impl_assoc_const_with_prelude.carbon index a5a89ef07d39..24c3503ff136 100644 --- a/toolchain/check/testdata/impl/impl_assoc_const_with_prelude.carbon +++ b/toolchain/check/testdata/impl/impl_assoc_const_with_prelude.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // diff --git a/toolchain/check/testdata/impl/lookup/transitive.carbon b/toolchain/check/testdata/impl/lookup/transitive.carbon index 4fb23c28fa6f..c7493f9ec3de 100644 --- a/toolchain/check/testdata/impl/lookup/transitive.carbon +++ b/toolchain/check/testdata/impl/lookup/transitive.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/convert.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // @@ -314,7 +315,7 @@ fn Call() { // CHECK:STDOUT: %Main.import_ref.f50: type = import_ref Main//c, loc7_11, loaded [concrete = constants.%I.type] // CHECK:STDOUT: %Main.import_ref.742: %F.type.5d6 = import_ref Main//c, loc7_34, loaded [concrete = constants.%F.a2e] // CHECK:STDOUT: %I.impl_witness_table = impl_witness_table (%Main.import_ref.742), @I.impl [concrete] -// CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/destroy, Destroy, loaded [concrete = constants.%Destroy.type] +// CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/index/fail_invalid_base.carbon b/toolchain/check/testdata/index/fail_invalid_base.carbon index 4c762da8a3ef..b6ad56e0454f 100644 --- a/toolchain/check/testdata/index/fail_invalid_base.carbon +++ b/toolchain/check/testdata/index/fail_invalid_base.carbon @@ -5,6 +5,8 @@ // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon +// // AUTOUPDATE // TIP: To test this file alone, run: // TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/check/testdata/index/fail_invalid_base.carbon @@ -85,9 +87,9 @@ var d: i32 = {.a: i32, .b: i32}[0]; // CHECK:STDOUT: %a.var_patt: %pattern_type.7ce = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %i32 = var %a.var_patt [concrete] -// CHECK:STDOUT: %.loc19: type = splice_block %i32.loc19 [concrete = constants.%i32] { -// CHECK:STDOUT: %int_32.loc19: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] -// CHECK:STDOUT: %i32.loc19: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] +// CHECK:STDOUT: %.loc21: type = splice_block %i32.loc21 [concrete = constants.%i32] { +// CHECK:STDOUT: %int_32.loc21: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] +// CHECK:STDOUT: %i32.loc21: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } // CHECK:STDOUT: %a: ref %i32 = bind_name a, %a.var [concrete = %a.var] // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {} @@ -96,9 +98,9 @@ var d: i32 = {.a: i32, .b: i32}[0]; // CHECK:STDOUT: %b.var_patt: %pattern_type.7ce = var_pattern %b.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %b.var: ref %i32 = var %b.var_patt [concrete] -// CHECK:STDOUT: %.loc26: type = splice_block %i32.loc26 [concrete = constants.%i32] { -// CHECK:STDOUT: %int_32.loc26: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] -// CHECK:STDOUT: %i32.loc26: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] +// CHECK:STDOUT: %.loc28: type = splice_block %i32.loc28 [concrete = constants.%i32] { +// CHECK:STDOUT: %int_32.loc28: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] +// CHECK:STDOUT: %i32.loc28: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } // CHECK:STDOUT: %b: ref %i32 = bind_name b, %b.var [concrete = %b.var] // CHECK:STDOUT: name_binding_decl { @@ -106,9 +108,9 @@ var d: i32 = {.a: i32, .b: i32}[0]; // CHECK:STDOUT: %c.var_patt: %pattern_type.7ce = var_pattern %c.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %c.var: ref %i32 = var %c.var_patt [concrete] -// CHECK:STDOUT: %.loc32: type = splice_block %i32.loc32 [concrete = constants.%i32] { -// CHECK:STDOUT: %int_32.loc32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] -// CHECK:STDOUT: %i32.loc32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] +// CHECK:STDOUT: %.loc34: type = splice_block %i32.loc34 [concrete = constants.%i32] { +// CHECK:STDOUT: %int_32.loc34: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] +// CHECK:STDOUT: %i32.loc34: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } // CHECK:STDOUT: %c: ref %i32 = bind_name c, %c.var [concrete = %c.var] // CHECK:STDOUT: name_binding_decl { @@ -116,9 +118,9 @@ var d: i32 = {.a: i32, .b: i32}[0]; // CHECK:STDOUT: %d.var_patt: %pattern_type.7ce = var_pattern %d.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %d.var: ref %i32 = var %d.var_patt [concrete] -// CHECK:STDOUT: %.loc38: type = splice_block %i32.loc38 [concrete = constants.%i32] { -// CHECK:STDOUT: %int_32.loc38: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] -// CHECK:STDOUT: %i32.loc38: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] +// CHECK:STDOUT: %.loc40: type = splice_block %i32.loc40 [concrete = constants.%i32] { +// CHECK:STDOUT: %int_32.loc40: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] +// CHECK:STDOUT: %i32.loc40: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } // CHECK:STDOUT: %d: ref %i32 = bind_name d, %d.var [concrete = %d.var] // CHECK:STDOUT: } @@ -128,24 +130,24 @@ var d: i32 = {.a: i32, .b: i32}[0]; // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %N.ref: = name_ref N, file.%N [concrete = file.%N] -// CHECK:STDOUT: %int_0.loc19: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] +// CHECK:STDOUT: %int_0.loc21: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: assign file.%a.var, // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] -// CHECK:STDOUT: %int_1.loc26: Core.IntLiteral = int_value 1 [concrete = constants.%int_1] +// CHECK:STDOUT: %int_1.loc28: Core.IntLiteral = int_value 1 [concrete = constants.%int_1] // CHECK:STDOUT: assign file.%b.var, -// CHECK:STDOUT: %int_1.loc32: Core.IntLiteral = int_value 1 [concrete = constants.%int_1] +// CHECK:STDOUT: %int_1.loc34: Core.IntLiteral = int_value 1 [concrete = constants.%int_1] // CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [concrete = constants.%int_2] -// CHECK:STDOUT: %.loc32_29.1: %struct_type.a.b.cfd = struct_literal (%int_1.loc32, %int_2) -// CHECK:STDOUT: %int_0.loc32: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] -// CHECK:STDOUT: %struct: %struct_type.a.b.cfd = struct_value (%int_1.loc32, %int_2) [concrete = constants.%struct] -// CHECK:STDOUT: %.loc32_29.2: %struct_type.a.b.cfd = converted %.loc32_29.1, %struct [concrete = constants.%struct] +// CHECK:STDOUT: %.loc34_29.1: %struct_type.a.b.cfd = struct_literal (%int_1.loc34, %int_2) +// CHECK:STDOUT: %int_0.loc34: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] +// CHECK:STDOUT: %struct: %struct_type.a.b.cfd = struct_value (%int_1.loc34, %int_2) [concrete = constants.%struct] +// CHECK:STDOUT: %.loc34_29.2: %struct_type.a.b.cfd = converted %.loc34_29.1, %struct [concrete = constants.%struct] // CHECK:STDOUT: assign file.%c.var, -// CHECK:STDOUT: %int_32.loc38_19: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] -// CHECK:STDOUT: %i32.loc38_19: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] -// CHECK:STDOUT: %int_32.loc38_28: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] -// CHECK:STDOUT: %i32.loc38_28: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] +// CHECK:STDOUT: %int_32.loc40_19: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] +// CHECK:STDOUT: %i32.loc40_19: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] +// CHECK:STDOUT: %int_32.loc40_28: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] +// CHECK:STDOUT: %i32.loc40_28: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %struct_type.a.b: type = struct_type {.a: %i32, .b: %i32} [concrete = constants.%struct_type.a.b.501] -// CHECK:STDOUT: %int_0.loc38: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] +// CHECK:STDOUT: %int_0.loc40: Core.IntLiteral = int_value 0 [concrete = constants.%int_0] // CHECK:STDOUT: assign file.%d.var, // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/index/fail_non_tuple_access.carbon b/toolchain/check/testdata/index/fail_non_tuple_access.carbon index e153f6a559fe..f73a3a25e68c 100644 --- a/toolchain/check/testdata/index/fail_non_tuple_access.carbon +++ b/toolchain/check/testdata/index/fail_non_tuple_access.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // diff --git a/toolchain/check/testdata/interop/cpp/fail_fuzzing.carbon b/toolchain/check/testdata/interop/cpp/fail_fuzzing.carbon index 203cf5d9ca07..d4fe9c879a70 100644 --- a/toolchain/check/testdata/interop/cpp/fail_fuzzing.carbon +++ b/toolchain/check/testdata/interop/cpp/fail_fuzzing.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/none.carbon // ARGS: --include-diagnostic-kind --fuzzing compile --no-prelude-import --dump-sem-ir-ranges=only --phase=check %s // // AUTOUPDATE diff --git a/toolchain/check/testdata/operators/builtin/bit_and.carbon b/toolchain/check/testdata/operators/builtin/bit_and.carbon index 611a01fb3b81..ea0ec931bb18 100644 --- a/toolchain/check/testdata/operators/builtin/bit_and.carbon +++ b/toolchain/check/testdata/operators/builtin/bit_and.carbon @@ -2,6 +2,8 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon +// // AUTOUPDATE // TIP: To test this file alone, run: // TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/check/testdata/operators/builtin/bit_and.carbon diff --git a/toolchain/check/testdata/operators/builtin/fail_type_mismatch.carbon b/toolchain/check/testdata/operators/builtin/fail_type_mismatch.carbon index 5a4a39379c9b..940d82240713 100644 --- a/toolchain/check/testdata/operators/builtin/fail_type_mismatch.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_type_mismatch.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/bool.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // @@ -49,9 +50,9 @@ fn Main() { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.Bool: %Bool.type = import_ref Core//prelude/types/bool, Bool, loaded [concrete = constants.%Bool] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.cc7 = import_ref Core//prelude/operators/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] -// CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/destroy, Destroy, loaded [concrete = constants.%Destroy.type] +// CHECK:STDOUT: %Core.Bool: %Bool.type = import_ref Core//prelude/parts/bool, Bool, loaded [concrete = constants.%Bool] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.cc7 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -71,13 +72,13 @@ fn Main() { // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref bool = var %x.var_patt // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [concrete = constants.%int_12] -// CHECK:STDOUT: %.loc22_17.1: bool = converted %int_12, [concrete = ] -// CHECK:STDOUT: %.loc22_17.2: = not [concrete = ] +// CHECK:STDOUT: %.loc23_17.1: bool = converted %int_12, [concrete = ] +// CHECK:STDOUT: %.loc23_17.2: = not [concrete = ] // CHECK:STDOUT: assign %x.var, -// CHECK:STDOUT: %.loc22_10.1: type = splice_block %.loc22_10.3 [concrete = bool] { +// CHECK:STDOUT: %.loc23_10.1: type = splice_block %.loc23_10.3 [concrete = bool] { // CHECK:STDOUT: %bool.make_type: init type = call constants.%Bool() [concrete = bool] -// CHECK:STDOUT: %.loc22_10.2: type = value_of_initializer %bool.make_type [concrete = bool] -// CHECK:STDOUT: %.loc22_10.3: type = converted %bool.make_type, %.loc22_10.2 [concrete = bool] +// CHECK:STDOUT: %.loc23_10.2: type = value_of_initializer %bool.make_type [concrete = bool] +// CHECK:STDOUT: %.loc23_10.3: type = converted %bool.make_type, %.loc23_10.2 [concrete = bool] // CHECK:STDOUT: } // CHECK:STDOUT: %x: ref bool = bind_name x, %x.var // CHECK:STDOUT: %Op.bound: = bound_method %x.var, constants.%Op.8b7 diff --git a/toolchain/check/testdata/operators/builtin/fail_type_mismatch_once.carbon b/toolchain/check/testdata/operators/builtin/fail_type_mismatch_once.carbon index c43a5b57a286..a60e51424d0e 100644 --- a/toolchain/check/testdata/operators/builtin/fail_type_mismatch_once.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_type_mismatch_once.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // @@ -68,7 +69,7 @@ fn Main() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: fn @Main() -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %.loc21: %empty_struct_type = struct_literal () +// CHECK:STDOUT: %.loc22: %empty_struct_type = struct_literal () // CHECK:STDOUT: %float: f64 = float_literal 3.4000000000000004 [concrete = constants.%float] // CHECK:STDOUT: %int_12: Core.IntLiteral = int_value 12 [concrete = constants.%int_12] // CHECK:STDOUT: %impl.elem1: = impl_witness_access , element1 [concrete = ] diff --git a/toolchain/check/testdata/operators/builtin/fail_unimplemented_op.carbon b/toolchain/check/testdata/operators/builtin/fail_unimplemented_op.carbon index 05ca536d7f9e..0ed2209ec42e 100644 --- a/toolchain/check/testdata/operators/builtin/fail_unimplemented_op.carbon +++ b/toolchain/check/testdata/operators/builtin/fail_unimplemented_op.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // @@ -65,7 +66,7 @@ fn Main() -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: fn @Main() -> %i32 { // CHECK:STDOUT: !entry: -// CHECK:STDOUT: %.loc19: %empty_struct_type = struct_literal () +// CHECK:STDOUT: %.loc20: %empty_struct_type = struct_literal () // CHECK:STDOUT: %int_34: Core.IntLiteral = int_value 34 [concrete = constants.%int_34] // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/builtin/or.carbon b/toolchain/check/testdata/operators/builtin/or.carbon index dbf9bdc1b68a..f7441f3dd1c0 100644 --- a/toolchain/check/testdata/operators/builtin/or.carbon +++ b/toolchain/check/testdata/operators/builtin/or.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/bool.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // @@ -68,8 +69,8 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.Bool: %Bool.type = import_ref Core//prelude/types/bool, Bool, loaded [concrete = constants.%Bool] -// CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/destroy, Destroy, loaded [concrete = constants.%Destroy.type] +// CHECK:STDOUT: %Core.Bool: %Bool.type = import_ref Core//prelude/parts/bool, Bool, loaded [concrete = constants.%Bool] +// CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -87,8 +88,8 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %bool.make_type: init type = call constants.%Bool() [concrete = bool] -// CHECK:STDOUT: %.loc14_11.1: type = value_of_initializer %bool.make_type [concrete = bool] -// CHECK:STDOUT: %.loc14_11.2: type = converted %bool.make_type, %.loc14_11.1 [concrete = bool] +// CHECK:STDOUT: %.loc15_11.1: type = value_of_initializer %bool.make_type [concrete = bool] +// CHECK:STDOUT: %.loc15_11.2: type = converted %bool.make_type, %.loc15_11.1 [concrete = bool] // CHECK:STDOUT: %return.param: ref bool = out_param call_param0 // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } @@ -97,8 +98,8 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %bool.make_type: init type = call constants.%Bool() [concrete = bool] -// CHECK:STDOUT: %.loc15_11.1: type = value_of_initializer %bool.make_type [concrete = bool] -// CHECK:STDOUT: %.loc15_11.2: type = converted %bool.make_type, %.loc15_11.1 [concrete = bool] +// CHECK:STDOUT: %.loc16_11.1: type = value_of_initializer %bool.make_type [concrete = bool] +// CHECK:STDOUT: %.loc16_11.2: type = converted %bool.make_type, %.loc16_11.1 [concrete = bool] // CHECK:STDOUT: %return.param: ref bool = out_param call_param0 // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } @@ -107,8 +108,8 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %bool.make_type: init type = call constants.%Bool() [concrete = bool] -// CHECK:STDOUT: %.loc17_12.1: type = value_of_initializer %bool.make_type [concrete = bool] -// CHECK:STDOUT: %.loc17_12.2: type = converted %bool.make_type, %.loc17_12.1 [concrete = bool] +// CHECK:STDOUT: %.loc18_12.1: type = value_of_initializer %bool.make_type [concrete = bool] +// CHECK:STDOUT: %.loc18_12.2: type = converted %bool.make_type, %.loc18_12.1 [concrete = bool] // CHECK:STDOUT: %return.param: ref bool = out_param call_param0 // CHECK:STDOUT: %return: ref bool = return_slot %return.param // CHECK:STDOUT: } @@ -118,10 +119,10 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: %x.param_patt: %pattern_type.831 = value_param_pattern %x.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: bool = value_param call_param0 -// CHECK:STDOUT: %.loc28_23.1: type = splice_block %.loc28_23.3 [concrete = bool] { -// CHECK:STDOUT: %bool.make_type.loc28: init type = call constants.%Bool() [concrete = bool] -// CHECK:STDOUT: %.loc28_23.2: type = value_of_initializer %bool.make_type.loc28 [concrete = bool] -// CHECK:STDOUT: %.loc28_23.3: type = converted %bool.make_type.loc28, %.loc28_23.2 [concrete = bool] +// CHECK:STDOUT: %.loc29_23.1: type = splice_block %.loc29_23.3 [concrete = bool] { +// CHECK:STDOUT: %bool.make_type.loc29: init type = call constants.%Bool() [concrete = bool] +// CHECK:STDOUT: %.loc29_23.2: type = value_of_initializer %bool.make_type.loc29 [concrete = bool] +// CHECK:STDOUT: %.loc29_23.3: type = converted %bool.make_type.loc29, %.loc29_23.2 [concrete = bool] // CHECK:STDOUT: } // CHECK:STDOUT: %x: bool = bind_name x, %x.param // CHECK:STDOUT: } @@ -143,22 +144,22 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [concrete = constants.%F] // CHECK:STDOUT: %F.call: init bool = call %F.ref() -// CHECK:STDOUT: %.loc18_14.1: bool = value_of_initializer %F.call -// CHECK:STDOUT: %.loc18_14.2: bool = converted %F.call, %.loc18_14.1 -// CHECK:STDOUT: %.loc18_14.3: bool = not %.loc18_14.2 +// CHECK:STDOUT: %.loc19_14.1: bool = value_of_initializer %F.call +// CHECK:STDOUT: %.loc19_14.2: bool = converted %F.call, %.loc19_14.1 +// CHECK:STDOUT: %.loc19_14.3: bool = not %.loc19_14.2 // CHECK:STDOUT: %true: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: if %.loc18_14.3 br !or.rhs else br !or.result(%true) +// CHECK:STDOUT: if %.loc19_14.3 br !or.rhs else br !or.result(%true) // CHECK:STDOUT: // CHECK:STDOUT: !or.rhs: // CHECK:STDOUT: %G.ref: %G.type = name_ref G, file.%G.decl [concrete = constants.%G] // CHECK:STDOUT: %G.call: init bool = call %G.ref() -// CHECK:STDOUT: %.loc18_14.4: bool = value_of_initializer %G.call -// CHECK:STDOUT: %.loc18_14.5: bool = converted %G.call, %.loc18_14.4 -// CHECK:STDOUT: br !or.result(%.loc18_14.5) +// CHECK:STDOUT: %.loc19_14.4: bool = value_of_initializer %G.call +// CHECK:STDOUT: %.loc19_14.5: bool = converted %G.call, %.loc19_14.4 +// CHECK:STDOUT: br !or.result(%.loc19_14.5) // CHECK:STDOUT: // CHECK:STDOUT: !or.result: -// CHECK:STDOUT: %.loc18_14.6: bool = block_arg !or.result -// CHECK:STDOUT: return %.loc18_14.6 +// CHECK:STDOUT: %.loc19_14.6: bool = block_arg !or.result +// CHECK:STDOUT: return %.loc19_14.6 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Constant() { @@ -168,48 +169,8 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: %a.var_patt: %pattern_type.831 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref bool = var %a.var_patt -// CHECK:STDOUT: %true.loc22_46: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: assign %a.var, %true.loc22_46 -// CHECK:STDOUT: br !.loc22_13 -// CHECK:STDOUT: -// CHECK:STDOUT: !.loc22_13: -// CHECK:STDOUT: %true.loc22_13: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: %.loc22_18.1: bool = not %true.loc22_13 [concrete = constants.%false] -// CHECK:STDOUT: %true.loc22_18: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: if %.loc22_18.1 br !or.rhs.loc22 else br !or.result.loc22(%true.loc22_18) -// CHECK:STDOUT: -// CHECK:STDOUT: !or.rhs.loc22: -// CHECK:STDOUT: %true.loc22_21: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: br !or.result.loc22(%true.loc22_21) -// CHECK:STDOUT: -// CHECK:STDOUT: !or.result.loc22: -// CHECK:STDOUT: %.loc22_18.2: bool = block_arg !or.result.loc22 [concrete = constants.%true] -// CHECK:STDOUT: if %.loc22_18.2 br !if.expr.then.loc22 else br !if.expr.else.loc22 -// CHECK:STDOUT: -// CHECK:STDOUT: !if.expr.then.loc22: -// CHECK:STDOUT: %bool.make_type.loc22: init type = call constants.%Bool() [concrete = bool] -// CHECK:STDOUT: %.loc22_31.1: type = value_of_initializer %bool.make_type.loc22 [concrete = bool] -// CHECK:STDOUT: %.loc22_31.2: type = converted %bool.make_type.loc22, %.loc22_31.1 [concrete = bool] -// CHECK:STDOUT: br !if.expr.result.loc22(%.loc22_31.2) -// CHECK:STDOUT: -// CHECK:STDOUT: !if.expr.else.loc22: -// CHECK:STDOUT: %.loc22_42: %empty_tuple.type = tuple_literal () -// CHECK:STDOUT: %.loc22_36: type = converted %.loc22_42, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: br !if.expr.result.loc22(%.loc22_36) -// CHECK:STDOUT: -// CHECK:STDOUT: !if.expr.result.loc22: -// CHECK:STDOUT: %.loc22_10: type = block_arg !if.expr.result.loc22 [concrete = bool] -// CHECK:STDOUT: br !.loc22_7 -// CHECK:STDOUT: -// CHECK:STDOUT: !.loc22_7: -// CHECK:STDOUT: %a: ref bool = bind_name a, %a.var -// CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %b.patt: %pattern_type.831 = binding_pattern b [concrete] -// CHECK:STDOUT: %b.var_patt: %pattern_type.831 = var_pattern %b.patt [concrete] -// CHECK:STDOUT: } -// CHECK:STDOUT: %b.var: ref bool = var %b.var_patt -// CHECK:STDOUT: %true.loc23_47: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: assign %b.var, %true.loc23_47 +// CHECK:STDOUT: %true.loc23_46: bool = bool_literal true [concrete = constants.%true] +// CHECK:STDOUT: assign %a.var, %true.loc23_46 // CHECK:STDOUT: br !.loc23_13 // CHECK:STDOUT: // CHECK:STDOUT: !.loc23_13: @@ -219,8 +180,8 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: if %.loc23_18.1 br !or.rhs.loc23 else br !or.result.loc23(%true.loc23_18) // CHECK:STDOUT: // CHECK:STDOUT: !or.rhs.loc23: -// CHECK:STDOUT: %false.loc23: bool = bool_literal false [concrete = constants.%false] -// CHECK:STDOUT: br !or.result.loc23(%false.loc23) +// CHECK:STDOUT: %true.loc23_21: bool = bool_literal true [concrete = constants.%true] +// CHECK:STDOUT: br !or.result.loc23(%true.loc23_21) // CHECK:STDOUT: // CHECK:STDOUT: !or.result.loc23: // CHECK:STDOUT: %.loc23_18.2: bool = block_arg !or.result.loc23 [concrete = constants.%true] @@ -228,43 +189,43 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.then.loc23: // CHECK:STDOUT: %bool.make_type.loc23: init type = call constants.%Bool() [concrete = bool] -// CHECK:STDOUT: %.loc23_32.1: type = value_of_initializer %bool.make_type.loc23 [concrete = bool] -// CHECK:STDOUT: %.loc23_32.2: type = converted %bool.make_type.loc23, %.loc23_32.1 [concrete = bool] -// CHECK:STDOUT: br !if.expr.result.loc23(%.loc23_32.2) +// CHECK:STDOUT: %.loc23_31.1: type = value_of_initializer %bool.make_type.loc23 [concrete = bool] +// CHECK:STDOUT: %.loc23_31.2: type = converted %bool.make_type.loc23, %.loc23_31.1 [concrete = bool] +// CHECK:STDOUT: br !if.expr.result.loc23(%.loc23_31.2) // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.else.loc23: -// CHECK:STDOUT: %.loc23_43: %empty_tuple.type = tuple_literal () -// CHECK:STDOUT: %.loc23_37: type = converted %.loc23_43, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: br !if.expr.result.loc23(%.loc23_37) +// CHECK:STDOUT: %.loc23_42: %empty_tuple.type = tuple_literal () +// CHECK:STDOUT: %.loc23_36: type = converted %.loc23_42, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] +// CHECK:STDOUT: br !if.expr.result.loc23(%.loc23_36) // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.result.loc23: // CHECK:STDOUT: %.loc23_10: type = block_arg !if.expr.result.loc23 [concrete = bool] // CHECK:STDOUT: br !.loc23_7 // CHECK:STDOUT: // CHECK:STDOUT: !.loc23_7: -// CHECK:STDOUT: %b: ref bool = bind_name b, %b.var +// CHECK:STDOUT: %a: ref bool = bind_name a, %a.var // CHECK:STDOUT: name_binding_decl { -// CHECK:STDOUT: %c.patt: %pattern_type.831 = binding_pattern c [concrete] -// CHECK:STDOUT: %c.var_patt: %pattern_type.831 = var_pattern %c.patt [concrete] +// CHECK:STDOUT: %b.patt: %pattern_type.831 = binding_pattern b [concrete] +// CHECK:STDOUT: %b.var_patt: %pattern_type.831 = var_pattern %b.patt [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %c.var: ref bool = var %c.var_patt +// CHECK:STDOUT: %b.var: ref bool = var %b.var_patt // CHECK:STDOUT: %true.loc24_47: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: assign %c.var, %true.loc24_47 +// CHECK:STDOUT: assign %b.var, %true.loc24_47 // CHECK:STDOUT: br !.loc24_13 // CHECK:STDOUT: // CHECK:STDOUT: !.loc24_13: -// CHECK:STDOUT: %false.loc24: bool = bool_literal false [concrete = constants.%false] -// CHECK:STDOUT: %.loc24_19.1: bool = not %false.loc24 [concrete = constants.%true] -// CHECK:STDOUT: %true.loc24_19: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: if %.loc24_19.1 br !or.rhs.loc24 else br !or.result.loc24(%true.loc24_19) +// CHECK:STDOUT: %true.loc24_13: bool = bool_literal true [concrete = constants.%true] +// CHECK:STDOUT: %.loc24_18.1: bool = not %true.loc24_13 [concrete = constants.%false] +// CHECK:STDOUT: %true.loc24_18: bool = bool_literal true [concrete = constants.%true] +// CHECK:STDOUT: if %.loc24_18.1 br !or.rhs.loc24 else br !or.result.loc24(%true.loc24_18) // CHECK:STDOUT: // CHECK:STDOUT: !or.rhs.loc24: -// CHECK:STDOUT: %true.loc24_22: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: br !or.result.loc24(%true.loc24_22) +// CHECK:STDOUT: %false.loc24: bool = bool_literal false [concrete = constants.%false] +// CHECK:STDOUT: br !or.result.loc24(%false.loc24) // CHECK:STDOUT: // CHECK:STDOUT: !or.result.loc24: -// CHECK:STDOUT: %.loc24_19.2: bool = block_arg !or.result.loc24 [concrete = constants.%true] -// CHECK:STDOUT: if %.loc24_19.2 br !if.expr.then.loc24 else br !if.expr.else.loc24 +// CHECK:STDOUT: %.loc24_18.2: bool = block_arg !or.result.loc24 [concrete = constants.%true] +// CHECK:STDOUT: if %.loc24_18.2 br !if.expr.then.loc24 else br !if.expr.else.loc24 // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.then.loc24: // CHECK:STDOUT: %bool.make_type.loc24: init type = call constants.%Bool() [concrete = bool] @@ -282,69 +243,109 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: br !.loc24_7 // CHECK:STDOUT: // CHECK:STDOUT: !.loc24_7: +// CHECK:STDOUT: %b: ref bool = bind_name b, %b.var +// CHECK:STDOUT: name_binding_decl { +// CHECK:STDOUT: %c.patt: %pattern_type.831 = binding_pattern c [concrete] +// CHECK:STDOUT: %c.var_patt: %pattern_type.831 = var_pattern %c.patt [concrete] +// CHECK:STDOUT: } +// CHECK:STDOUT: %c.var: ref bool = var %c.var_patt +// CHECK:STDOUT: %true.loc25_47: bool = bool_literal true [concrete = constants.%true] +// CHECK:STDOUT: assign %c.var, %true.loc25_47 +// CHECK:STDOUT: br !.loc25_13 +// CHECK:STDOUT: +// CHECK:STDOUT: !.loc25_13: +// CHECK:STDOUT: %false.loc25: bool = bool_literal false [concrete = constants.%false] +// CHECK:STDOUT: %.loc25_19.1: bool = not %false.loc25 [concrete = constants.%true] +// CHECK:STDOUT: %true.loc25_19: bool = bool_literal true [concrete = constants.%true] +// CHECK:STDOUT: if %.loc25_19.1 br !or.rhs.loc25 else br !or.result.loc25(%true.loc25_19) +// CHECK:STDOUT: +// CHECK:STDOUT: !or.rhs.loc25: +// CHECK:STDOUT: %true.loc25_22: bool = bool_literal true [concrete = constants.%true] +// CHECK:STDOUT: br !or.result.loc25(%true.loc25_22) +// CHECK:STDOUT: +// CHECK:STDOUT: !or.result.loc25: +// CHECK:STDOUT: %.loc25_19.2: bool = block_arg !or.result.loc25 [concrete = constants.%true] +// CHECK:STDOUT: if %.loc25_19.2 br !if.expr.then.loc25 else br !if.expr.else.loc25 +// CHECK:STDOUT: +// CHECK:STDOUT: !if.expr.then.loc25: +// CHECK:STDOUT: %bool.make_type.loc25: init type = call constants.%Bool() [concrete = bool] +// CHECK:STDOUT: %.loc25_32.1: type = value_of_initializer %bool.make_type.loc25 [concrete = bool] +// CHECK:STDOUT: %.loc25_32.2: type = converted %bool.make_type.loc25, %.loc25_32.1 [concrete = bool] +// CHECK:STDOUT: br !if.expr.result.loc25(%.loc25_32.2) +// CHECK:STDOUT: +// CHECK:STDOUT: !if.expr.else.loc25: +// CHECK:STDOUT: %.loc25_43: %empty_tuple.type = tuple_literal () +// CHECK:STDOUT: %.loc25_37: type = converted %.loc25_43, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] +// CHECK:STDOUT: br !if.expr.result.loc25(%.loc25_37) +// CHECK:STDOUT: +// CHECK:STDOUT: !if.expr.result.loc25: +// CHECK:STDOUT: %.loc25_10: type = block_arg !if.expr.result.loc25 [concrete = bool] +// CHECK:STDOUT: br !.loc25_7 +// CHECK:STDOUT: +// CHECK:STDOUT: !.loc25_7: // CHECK:STDOUT: %c: ref bool = bind_name c, %c.var // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %d.patt: %pattern_type.cb1 = binding_pattern d [concrete] // CHECK:STDOUT: %d.var_patt: %pattern_type.cb1 = var_pattern %d.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %d.var: ref %empty_tuple.type = var %d.var_patt -// CHECK:STDOUT: %.loc25_49.1: %empty_tuple.type = tuple_literal () -// CHECK:STDOUT: %.loc25_49.2: init %empty_tuple.type = tuple_init () to %d.var [concrete = constants.%empty_tuple] -// CHECK:STDOUT: %.loc25_3: init %empty_tuple.type = converted %.loc25_49.1, %.loc25_49.2 [concrete = constants.%empty_tuple] -// CHECK:STDOUT: assign %d.var, %.loc25_3 -// CHECK:STDOUT: br !.loc25_13 +// CHECK:STDOUT: %.loc26_49.1: %empty_tuple.type = tuple_literal () +// CHECK:STDOUT: %.loc26_49.2: init %empty_tuple.type = tuple_init () to %d.var [concrete = constants.%empty_tuple] +// CHECK:STDOUT: %.loc26_3: init %empty_tuple.type = converted %.loc26_49.1, %.loc26_49.2 [concrete = constants.%empty_tuple] +// CHECK:STDOUT: assign %d.var, %.loc26_3 +// CHECK:STDOUT: br !.loc26_13 // CHECK:STDOUT: -// CHECK:STDOUT: !.loc25_13: -// CHECK:STDOUT: %false.loc25_13: bool = bool_literal false [concrete = constants.%false] -// CHECK:STDOUT: %.loc25_19.1: bool = not %false.loc25_13 [concrete = constants.%true] -// CHECK:STDOUT: %true.loc25: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: if %.loc25_19.1 br !or.rhs.loc25 else br !or.result.loc25(%true.loc25) +// CHECK:STDOUT: !.loc26_13: +// CHECK:STDOUT: %false.loc26_13: bool = bool_literal false [concrete = constants.%false] +// CHECK:STDOUT: %.loc26_19.1: bool = not %false.loc26_13 [concrete = constants.%true] +// CHECK:STDOUT: %true.loc26: bool = bool_literal true [concrete = constants.%true] +// CHECK:STDOUT: if %.loc26_19.1 br !or.rhs.loc26 else br !or.result.loc26(%true.loc26) // CHECK:STDOUT: -// CHECK:STDOUT: !or.rhs.loc25: -// CHECK:STDOUT: %false.loc25_22: bool = bool_literal false [concrete = constants.%false] -// CHECK:STDOUT: br !or.result.loc25(%false.loc25_22) +// CHECK:STDOUT: !or.rhs.loc26: +// CHECK:STDOUT: %false.loc26_22: bool = bool_literal false [concrete = constants.%false] +// CHECK:STDOUT: br !or.result.loc26(%false.loc26_22) // CHECK:STDOUT: -// CHECK:STDOUT: !or.result.loc25: -// CHECK:STDOUT: %.loc25_19.2: bool = block_arg !or.result.loc25 [concrete = constants.%false] -// CHECK:STDOUT: if %.loc25_19.2 br !if.expr.then.loc25 else br !if.expr.else.loc25 +// CHECK:STDOUT: !or.result.loc26: +// CHECK:STDOUT: %.loc26_19.2: bool = block_arg !or.result.loc26 [concrete = constants.%false] +// CHECK:STDOUT: if %.loc26_19.2 br !if.expr.then.loc26 else br !if.expr.else.loc26 // CHECK:STDOUT: -// CHECK:STDOUT: !if.expr.then.loc25: -// CHECK:STDOUT: %bool.make_type.loc25: init type = call constants.%Bool() [concrete = bool] -// CHECK:STDOUT: %.loc25_33.1: type = value_of_initializer %bool.make_type.loc25 [concrete = bool] -// CHECK:STDOUT: %.loc25_33.2: type = converted %bool.make_type.loc25, %.loc25_33.1 [concrete = bool] -// CHECK:STDOUT: br !if.expr.result.loc25(%.loc25_33.2) +// CHECK:STDOUT: !if.expr.then.loc26: +// CHECK:STDOUT: %bool.make_type.loc26: init type = call constants.%Bool() [concrete = bool] +// CHECK:STDOUT: %.loc26_33.1: type = value_of_initializer %bool.make_type.loc26 [concrete = bool] +// CHECK:STDOUT: %.loc26_33.2: type = converted %bool.make_type.loc26, %.loc26_33.1 [concrete = bool] +// CHECK:STDOUT: br !if.expr.result.loc26(%.loc26_33.2) // CHECK:STDOUT: -// CHECK:STDOUT: !if.expr.else.loc25: -// CHECK:STDOUT: %.loc25_44: %empty_tuple.type = tuple_literal () -// CHECK:STDOUT: %.loc25_38: type = converted %.loc25_44, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: br !if.expr.result.loc25(%.loc25_38) +// CHECK:STDOUT: !if.expr.else.loc26: +// CHECK:STDOUT: %.loc26_44: %empty_tuple.type = tuple_literal () +// CHECK:STDOUT: %.loc26_38: type = converted %.loc26_44, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] +// CHECK:STDOUT: br !if.expr.result.loc26(%.loc26_38) // CHECK:STDOUT: -// CHECK:STDOUT: !if.expr.result.loc25: -// CHECK:STDOUT: %.loc25_10: type = block_arg !if.expr.result.loc25 [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: br !.loc25_7 +// CHECK:STDOUT: !if.expr.result.loc26: +// CHECK:STDOUT: %.loc26_10: type = block_arg !if.expr.result.loc26 [concrete = constants.%empty_tuple.type] +// CHECK:STDOUT: br !.loc26_7 // CHECK:STDOUT: -// CHECK:STDOUT: !.loc25_7: +// CHECK:STDOUT: !.loc26_7: // CHECK:STDOUT: %d: ref %empty_tuple.type = bind_name d, %d.var -// CHECK:STDOUT: %Op.bound.loc25: = bound_method %d.var, constants.%Op.ea3 +// CHECK:STDOUT: %Op.bound.loc26: = bound_method %d.var, constants.%Op.ea3 // CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn.393] -// CHECK:STDOUT: %bound_method.loc25: = bound_method %d.var, %Op.specific_fn.1 -// CHECK:STDOUT: %addr.loc25: %ptr.843 = addr_of %d.var -// CHECK:STDOUT: %no_op.loc25: init %empty_tuple.type = call %bound_method.loc25(%addr.loc25) -// CHECK:STDOUT: %Op.bound.loc24: = bound_method %c.var, constants.%Op.8b7 +// CHECK:STDOUT: %bound_method.loc26: = bound_method %d.var, %Op.specific_fn.1 +// CHECK:STDOUT: %addr.loc26: %ptr.843 = addr_of %d.var +// CHECK:STDOUT: %no_op.loc26: init %empty_tuple.type = call %bound_method.loc26(%addr.loc26) +// CHECK:STDOUT: %Op.bound.loc25: = bound_method %c.var, constants.%Op.8b7 // CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.8b7, @Op.2(bool) [concrete = constants.%Op.specific_fn.c3f] -// CHECK:STDOUT: %bound_method.loc24: = bound_method %c.var, %Op.specific_fn.2 -// CHECK:STDOUT: %addr.loc24: %ptr.bb2 = addr_of %c.var -// CHECK:STDOUT: %no_op.loc24: init %empty_tuple.type = call %bound_method.loc24(%addr.loc24) -// CHECK:STDOUT: %Op.bound.loc23: = bound_method %b.var, constants.%Op.8b7 +// CHECK:STDOUT: %bound_method.loc25: = bound_method %c.var, %Op.specific_fn.2 +// CHECK:STDOUT: %addr.loc25: %ptr.bb2 = addr_of %c.var +// CHECK:STDOUT: %no_op.loc25: init %empty_tuple.type = call %bound_method.loc25(%addr.loc25) +// CHECK:STDOUT: %Op.bound.loc24: = bound_method %b.var, constants.%Op.8b7 // CHECK:STDOUT: %Op.specific_fn.3: = specific_function constants.%Op.8b7, @Op.2(bool) [concrete = constants.%Op.specific_fn.c3f] -// CHECK:STDOUT: %bound_method.loc23: = bound_method %b.var, %Op.specific_fn.3 -// CHECK:STDOUT: %addr.loc23: %ptr.bb2 = addr_of %b.var -// CHECK:STDOUT: %no_op.loc23: init %empty_tuple.type = call %bound_method.loc23(%addr.loc23) -// CHECK:STDOUT: %Op.bound.loc22: = bound_method %a.var, constants.%Op.8b7 +// CHECK:STDOUT: %bound_method.loc24: = bound_method %b.var, %Op.specific_fn.3 +// CHECK:STDOUT: %addr.loc24: %ptr.bb2 = addr_of %b.var +// CHECK:STDOUT: %no_op.loc24: init %empty_tuple.type = call %bound_method.loc24(%addr.loc24) +// CHECK:STDOUT: %Op.bound.loc23: = bound_method %a.var, constants.%Op.8b7 // CHECK:STDOUT: %Op.specific_fn.4: = specific_function constants.%Op.8b7, @Op.2(bool) [concrete = constants.%Op.specific_fn.c3f] -// CHECK:STDOUT: %bound_method.loc22: = bound_method %a.var, %Op.specific_fn.4 -// CHECK:STDOUT: %addr.loc22: %ptr.bb2 = addr_of %a.var -// CHECK:STDOUT: %no_op.loc22: init %empty_tuple.type = call %bound_method.loc22(%addr.loc22) +// CHECK:STDOUT: %bound_method.loc23: = bound_method %a.var, %Op.specific_fn.4 +// CHECK:STDOUT: %addr.loc23: %ptr.bb2 = addr_of %a.var +// CHECK:STDOUT: %no_op.loc23: init %empty_tuple.type = call %bound_method.loc23(%addr.loc23) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -355,40 +356,40 @@ fn PartialConstant(x: bool) { // CHECK:STDOUT: %a.var_patt: %pattern_type.831 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref bool = var %a.var_patt -// CHECK:STDOUT: %true.loc29_43: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: assign %a.var, %true.loc29_43 -// CHECK:STDOUT: br !.loc29_13 +// CHECK:STDOUT: %true.loc30_43: bool = bool_literal true [concrete = constants.%true] +// CHECK:STDOUT: assign %a.var, %true.loc30_43 +// CHECK:STDOUT: br !.loc30_13 // CHECK:STDOUT: -// CHECK:STDOUT: !.loc29_13: -// CHECK:STDOUT: %true.loc29_13: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: %.loc29_18.1: bool = not %true.loc29_13 [concrete = constants.%false] -// CHECK:STDOUT: %true.loc29_18: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: if %.loc29_18.1 br !or.rhs else br !or.result(%true.loc29_18) +// CHECK:STDOUT: !.loc30_13: +// CHECK:STDOUT: %true.loc30_13: bool = bool_literal true [concrete = constants.%true] +// CHECK:STDOUT: %.loc30_18.1: bool = not %true.loc30_13 [concrete = constants.%false] +// CHECK:STDOUT: %true.loc30_18: bool = bool_literal true [concrete = constants.%true] +// CHECK:STDOUT: if %.loc30_18.1 br !or.rhs else br !or.result(%true.loc30_18) // CHECK:STDOUT: // CHECK:STDOUT: !or.rhs: // CHECK:STDOUT: %x.ref: bool = name_ref x, %x // CHECK:STDOUT: br !or.result(%x.ref) // CHECK:STDOUT: // CHECK:STDOUT: !or.result: -// CHECK:STDOUT: %.loc29_18.2: bool = block_arg !or.result [concrete = constants.%true] -// CHECK:STDOUT: if %.loc29_18.2 br !if.expr.then else br !if.expr.else +// CHECK:STDOUT: %.loc30_18.2: bool = block_arg !or.result [concrete = constants.%true] +// CHECK:STDOUT: if %.loc30_18.2 br !if.expr.then else br !if.expr.else // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.then: -// CHECK:STDOUT: %bool.make_type.loc29: init type = call constants.%Bool() [concrete = bool] -// CHECK:STDOUT: %.loc29_28.1: type = value_of_initializer %bool.make_type.loc29 [concrete = bool] -// CHECK:STDOUT: %.loc29_28.2: type = converted %bool.make_type.loc29, %.loc29_28.1 [concrete = bool] -// CHECK:STDOUT: br !if.expr.result(%.loc29_28.2) +// CHECK:STDOUT: %bool.make_type.loc30: init type = call constants.%Bool() [concrete = bool] +// CHECK:STDOUT: %.loc30_28.1: type = value_of_initializer %bool.make_type.loc30 [concrete = bool] +// CHECK:STDOUT: %.loc30_28.2: type = converted %bool.make_type.loc30, %.loc30_28.1 [concrete = bool] +// CHECK:STDOUT: br !if.expr.result(%.loc30_28.2) // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.else: -// CHECK:STDOUT: %.loc29_39: %empty_tuple.type = tuple_literal () -// CHECK:STDOUT: %.loc29_33: type = converted %.loc29_39, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: br !if.expr.result(%.loc29_33) +// CHECK:STDOUT: %.loc30_39: %empty_tuple.type = tuple_literal () +// CHECK:STDOUT: %.loc30_33: type = converted %.loc30_39, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] +// CHECK:STDOUT: br !if.expr.result(%.loc30_33) // CHECK:STDOUT: // CHECK:STDOUT: !if.expr.result: -// CHECK:STDOUT: %.loc29_10: type = block_arg !if.expr.result [concrete = bool] -// CHECK:STDOUT: br !.loc29_7 +// CHECK:STDOUT: %.loc30_10: type = block_arg !if.expr.result [concrete = bool] +// CHECK:STDOUT: br !.loc30_7 // CHECK:STDOUT: -// CHECK:STDOUT: !.loc29_7: +// CHECK:STDOUT: !.loc30_7: // CHECK:STDOUT: %a: ref bool = bind_name a, %a.var // CHECK:STDOUT: %Op.bound: = bound_method %a.var, constants.%Op.8b7 // CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.8b7, @Op.2(bool) [concrete = constants.%Op.specific_fn.c3f] diff --git a/toolchain/check/testdata/operators/builtin/unary_op.carbon b/toolchain/check/testdata/operators/builtin/unary_op.carbon index 39265ad283f8..8149ddfc1c97 100644 --- a/toolchain/check/testdata/operators/builtin/unary_op.carbon +++ b/toolchain/check/testdata/operators/builtin/unary_op.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/bool.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // @@ -56,8 +57,8 @@ fn Constant() { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.Bool: %Bool.type = import_ref Core//prelude/types/bool, Bool, loaded [concrete = constants.%Bool] -// CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/destroy, Destroy, loaded [concrete = constants.%Destroy.type] +// CHECK:STDOUT: %Core.Bool: %Bool.type = import_ref Core//prelude/parts/bool, Bool, loaded [concrete = constants.%Bool] +// CHECK:STDOUT: %Core.Destroy: type = import_ref Core//prelude/parts/destroy, Destroy, loaded [concrete = constants.%Destroy.type] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -75,14 +76,14 @@ fn Constant() { // CHECK:STDOUT: %return.patt: %pattern_type.831 = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.831 = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %bool.make_type.loc14_20: init type = call constants.%Bool() [concrete = bool] -// CHECK:STDOUT: %.loc14_20.1: type = value_of_initializer %bool.make_type.loc14_20 [concrete = bool] -// CHECK:STDOUT: %.loc14_20.2: type = converted %bool.make_type.loc14_20, %.loc14_20.1 [concrete = bool] +// CHECK:STDOUT: %bool.make_type.loc15_20: init type = call constants.%Bool() [concrete = bool] +// CHECK:STDOUT: %.loc15_20.1: type = value_of_initializer %bool.make_type.loc15_20 [concrete = bool] +// CHECK:STDOUT: %.loc15_20.2: type = converted %bool.make_type.loc15_20, %.loc15_20.1 [concrete = bool] // CHECK:STDOUT: %b.param: bool = value_param call_param0 -// CHECK:STDOUT: %.loc14_11.1: type = splice_block %.loc14_11.3 [concrete = bool] { -// CHECK:STDOUT: %bool.make_type.loc14_11: init type = call constants.%Bool() [concrete = bool] -// CHECK:STDOUT: %.loc14_11.2: type = value_of_initializer %bool.make_type.loc14_11 [concrete = bool] -// CHECK:STDOUT: %.loc14_11.3: type = converted %bool.make_type.loc14_11, %.loc14_11.2 [concrete = bool] +// CHECK:STDOUT: %.loc15_11.1: type = splice_block %.loc15_11.3 [concrete = bool] { +// CHECK:STDOUT: %bool.make_type.loc15_11: init type = call constants.%Bool() [concrete = bool] +// CHECK:STDOUT: %.loc15_11.2: type = value_of_initializer %bool.make_type.loc15_11 [concrete = bool] +// CHECK:STDOUT: %.loc15_11.3: type = converted %bool.make_type.loc15_11, %.loc15_11.2 [concrete = bool] // CHECK:STDOUT: } // CHECK:STDOUT: %b: bool = bind_name b, %b.param // CHECK:STDOUT: %return.param: ref bool = out_param call_param1 @@ -91,29 +92,29 @@ fn Constant() { // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %not_true.patt: %pattern_type.831 = binding_pattern not_true [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc18_15.1: type = splice_block %.loc18_15.3 [concrete = bool] { -// CHECK:STDOUT: %bool.make_type.loc18: init type = call constants.%Bool() [concrete = bool] -// CHECK:STDOUT: %.loc18_15.2: type = value_of_initializer %bool.make_type.loc18 [concrete = bool] -// CHECK:STDOUT: %.loc18_15.3: type = converted %bool.make_type.loc18, %.loc18_15.2 [concrete = bool] +// CHECK:STDOUT: %.loc19_15.1: type = splice_block %.loc19_15.3 [concrete = bool] { +// CHECK:STDOUT: %bool.make_type.loc19: init type = call constants.%Bool() [concrete = bool] +// CHECK:STDOUT: %.loc19_15.2: type = value_of_initializer %bool.make_type.loc19 [concrete = bool] +// CHECK:STDOUT: %.loc19_15.3: type = converted %bool.make_type.loc19, %.loc19_15.2 [concrete = bool] // CHECK:STDOUT: } -// CHECK:STDOUT: %not_true: bool = bind_name not_true, @__global_init.%.loc18 +// CHECK:STDOUT: %not_true: bool = bind_name not_true, @__global_init.%.loc19 // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %not_false.patt: %pattern_type.831 = binding_pattern not_false [concrete] // CHECK:STDOUT: } -// CHECK:STDOUT: %.loc19_16.1: type = splice_block %.loc19_16.3 [concrete = bool] { -// CHECK:STDOUT: %bool.make_type.loc19: init type = call constants.%Bool() [concrete = bool] -// CHECK:STDOUT: %.loc19_16.2: type = value_of_initializer %bool.make_type.loc19 [concrete = bool] -// CHECK:STDOUT: %.loc19_16.3: type = converted %bool.make_type.loc19, %.loc19_16.2 [concrete = bool] +// CHECK:STDOUT: %.loc20_16.1: type = splice_block %.loc20_16.3 [concrete = bool] { +// CHECK:STDOUT: %bool.make_type.loc20: init type = call constants.%Bool() [concrete = bool] +// CHECK:STDOUT: %.loc20_16.2: type = value_of_initializer %bool.make_type.loc20 [concrete = bool] +// CHECK:STDOUT: %.loc20_16.3: type = converted %bool.make_type.loc20, %.loc20_16.2 [concrete = bool] // CHECK:STDOUT: } -// CHECK:STDOUT: %not_false: bool = bind_name not_false, @__global_init.%.loc19 +// CHECK:STDOUT: %not_false: bool = bind_name not_false, @__global_init.%.loc20 // CHECK:STDOUT: %Constant.decl: %Constant.type = fn_decl @Constant [concrete = constants.%Constant] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Not(%b.param: bool) -> bool { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %b.ref: bool = name_ref b, %b -// CHECK:STDOUT: %.loc15: bool = not %b.ref -// CHECK:STDOUT: return %.loc15 +// CHECK:STDOUT: %.loc16: bool = not %b.ref +// CHECK:STDOUT: return %.loc16 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @Constant() { @@ -123,84 +124,84 @@ fn Constant() { // CHECK:STDOUT: %a.var_patt: %pattern_type.cb1 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %empty_tuple.type = var %a.var_patt -// CHECK:STDOUT: %.loc22_43.1: %empty_tuple.type = tuple_literal () -// CHECK:STDOUT: %.loc22_43.2: init %empty_tuple.type = tuple_init () to %a.var [concrete = constants.%empty_tuple] -// CHECK:STDOUT: %.loc22_3: init %empty_tuple.type = converted %.loc22_43.1, %.loc22_43.2 [concrete = constants.%empty_tuple] -// CHECK:STDOUT: assign %a.var, %.loc22_3 -// CHECK:STDOUT: br !.loc22_17 +// CHECK:STDOUT: %.loc23_43.1: %empty_tuple.type = tuple_literal () +// CHECK:STDOUT: %.loc23_43.2: init %empty_tuple.type = tuple_init () to %a.var [concrete = constants.%empty_tuple] +// CHECK:STDOUT: %.loc23_3: init %empty_tuple.type = converted %.loc23_43.1, %.loc23_43.2 [concrete = constants.%empty_tuple] +// CHECK:STDOUT: assign %a.var, %.loc23_3 +// CHECK:STDOUT: br !.loc23_17 // CHECK:STDOUT: -// CHECK:STDOUT: !.loc22_17: -// CHECK:STDOUT: %true.loc22: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: %.loc22_13: bool = not %true.loc22 [concrete = constants.%false] -// CHECK:STDOUT: if %.loc22_13 br !if.expr.then.loc22 else br !if.expr.else.loc22 +// CHECK:STDOUT: !.loc23_17: +// CHECK:STDOUT: %true.loc23: bool = bool_literal true [concrete = constants.%true] +// CHECK:STDOUT: %.loc23_13: bool = not %true.loc23 [concrete = constants.%false] +// CHECK:STDOUT: if %.loc23_13 br !if.expr.then.loc23 else br !if.expr.else.loc23 // CHECK:STDOUT: -// CHECK:STDOUT: !if.expr.then.loc22: -// CHECK:STDOUT: %bool.make_type.loc22: init type = call constants.%Bool() [concrete = bool] -// CHECK:STDOUT: %.loc22_27.1: type = value_of_initializer %bool.make_type.loc22 [concrete = bool] -// CHECK:STDOUT: %.loc22_27.2: type = converted %bool.make_type.loc22, %.loc22_27.1 [concrete = bool] -// CHECK:STDOUT: br !if.expr.result.loc22(%.loc22_27.2) +// CHECK:STDOUT: !if.expr.then.loc23: +// CHECK:STDOUT: %bool.make_type.loc23: init type = call constants.%Bool() [concrete = bool] +// CHECK:STDOUT: %.loc23_27.1: type = value_of_initializer %bool.make_type.loc23 [concrete = bool] +// CHECK:STDOUT: %.loc23_27.2: type = converted %bool.make_type.loc23, %.loc23_27.1 [concrete = bool] +// CHECK:STDOUT: br !if.expr.result.loc23(%.loc23_27.2) // CHECK:STDOUT: -// CHECK:STDOUT: !if.expr.else.loc22: -// CHECK:STDOUT: %.loc22_38: %empty_tuple.type = tuple_literal () -// CHECK:STDOUT: %.loc22_32: type = converted %.loc22_38, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: br !if.expr.result.loc22(%.loc22_32) +// CHECK:STDOUT: !if.expr.else.loc23: +// CHECK:STDOUT: %.loc23_38: %empty_tuple.type = tuple_literal () +// CHECK:STDOUT: %.loc23_32: type = converted %.loc23_38, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] +// CHECK:STDOUT: br !if.expr.result.loc23(%.loc23_32) // CHECK:STDOUT: -// CHECK:STDOUT: !if.expr.result.loc22: -// CHECK:STDOUT: %.loc22_10: type = block_arg !if.expr.result.loc22 [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: br !.loc22_7 +// CHECK:STDOUT: !if.expr.result.loc23: +// CHECK:STDOUT: %.loc23_10: type = block_arg !if.expr.result.loc23 [concrete = constants.%empty_tuple.type] +// CHECK:STDOUT: br !.loc23_7 // CHECK:STDOUT: -// CHECK:STDOUT: !.loc22_7: +// CHECK:STDOUT: !.loc23_7: // CHECK:STDOUT: %a: ref %empty_tuple.type = bind_name a, %a.var // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %b.patt: %pattern_type.831 = binding_pattern b [concrete] // CHECK:STDOUT: %b.var_patt: %pattern_type.831 = var_pattern %b.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %b.var: ref bool = var %b.var_patt -// CHECK:STDOUT: %true.loc23: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: assign %b.var, %true.loc23 -// CHECK:STDOUT: br !.loc23_17 +// CHECK:STDOUT: %true.loc24: bool = bool_literal true [concrete = constants.%true] +// CHECK:STDOUT: assign %b.var, %true.loc24 +// CHECK:STDOUT: br !.loc24_17 // CHECK:STDOUT: -// CHECK:STDOUT: !.loc23_17: +// CHECK:STDOUT: !.loc24_17: // CHECK:STDOUT: %false: bool = bool_literal false [concrete = constants.%false] -// CHECK:STDOUT: %.loc23_13: bool = not %false [concrete = constants.%true] -// CHECK:STDOUT: if %.loc23_13 br !if.expr.then.loc23 else br !if.expr.else.loc23 +// CHECK:STDOUT: %.loc24_13: bool = not %false [concrete = constants.%true] +// CHECK:STDOUT: if %.loc24_13 br !if.expr.then.loc24 else br !if.expr.else.loc24 // CHECK:STDOUT: -// CHECK:STDOUT: !if.expr.then.loc23: -// CHECK:STDOUT: %bool.make_type.loc23: init type = call constants.%Bool() [concrete = bool] -// CHECK:STDOUT: %.loc23_28.1: type = value_of_initializer %bool.make_type.loc23 [concrete = bool] -// CHECK:STDOUT: %.loc23_28.2: type = converted %bool.make_type.loc23, %.loc23_28.1 [concrete = bool] -// CHECK:STDOUT: br !if.expr.result.loc23(%.loc23_28.2) +// CHECK:STDOUT: !if.expr.then.loc24: +// CHECK:STDOUT: %bool.make_type.loc24: init type = call constants.%Bool() [concrete = bool] +// CHECK:STDOUT: %.loc24_28.1: type = value_of_initializer %bool.make_type.loc24 [concrete = bool] +// CHECK:STDOUT: %.loc24_28.2: type = converted %bool.make_type.loc24, %.loc24_28.1 [concrete = bool] +// CHECK:STDOUT: br !if.expr.result.loc24(%.loc24_28.2) // CHECK:STDOUT: -// CHECK:STDOUT: !if.expr.else.loc23: -// CHECK:STDOUT: %.loc23_39: %empty_tuple.type = tuple_literal () -// CHECK:STDOUT: %.loc23_33: type = converted %.loc23_39, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] -// CHECK:STDOUT: br !if.expr.result.loc23(%.loc23_33) +// CHECK:STDOUT: !if.expr.else.loc24: +// CHECK:STDOUT: %.loc24_39: %empty_tuple.type = tuple_literal () +// CHECK:STDOUT: %.loc24_33: type = converted %.loc24_39, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] +// CHECK:STDOUT: br !if.expr.result.loc24(%.loc24_33) // CHECK:STDOUT: -// CHECK:STDOUT: !if.expr.result.loc23: -// CHECK:STDOUT: %.loc23_10: type = block_arg !if.expr.result.loc23 [concrete = bool] -// CHECK:STDOUT: br !.loc23_7 +// CHECK:STDOUT: !if.expr.result.loc24: +// CHECK:STDOUT: %.loc24_10: type = block_arg !if.expr.result.loc24 [concrete = bool] +// CHECK:STDOUT: br !.loc24_7 // CHECK:STDOUT: -// CHECK:STDOUT: !.loc23_7: +// CHECK:STDOUT: !.loc24_7: // CHECK:STDOUT: %b: ref bool = bind_name b, %b.var -// CHECK:STDOUT: %Op.bound.loc23: = bound_method %b.var, constants.%Op.8b7 +// CHECK:STDOUT: %Op.bound.loc24: = bound_method %b.var, constants.%Op.8b7 // CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.8b7, @Op.2(bool) [concrete = constants.%Op.specific_fn.c3f] -// CHECK:STDOUT: %bound_method.loc23: = bound_method %b.var, %Op.specific_fn.1 -// CHECK:STDOUT: %addr.loc23: %ptr.bb2 = addr_of %b.var -// CHECK:STDOUT: %no_op.loc23: init %empty_tuple.type = call %bound_method.loc23(%addr.loc23) -// CHECK:STDOUT: %Op.bound.loc22: = bound_method %a.var, constants.%Op.ea3 +// CHECK:STDOUT: %bound_method.loc24: = bound_method %b.var, %Op.specific_fn.1 +// CHECK:STDOUT: %addr.loc24: %ptr.bb2 = addr_of %b.var +// CHECK:STDOUT: %no_op.loc24: init %empty_tuple.type = call %bound_method.loc24(%addr.loc24) +// CHECK:STDOUT: %Op.bound.loc23: = bound_method %a.var, constants.%Op.ea3 // CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.ea3, @Op.2(constants.%empty_tuple.type) [concrete = constants.%Op.specific_fn.393] -// CHECK:STDOUT: %bound_method.loc22: = bound_method %a.var, %Op.specific_fn.2 -// CHECK:STDOUT: %addr.loc22: %ptr.843 = addr_of %a.var -// CHECK:STDOUT: %no_op.loc22: init %empty_tuple.type = call %bound_method.loc22(%addr.loc22) +// CHECK:STDOUT: %bound_method.loc23: = bound_method %a.var, %Op.specific_fn.2 +// CHECK:STDOUT: %addr.loc23: %ptr.843 = addr_of %a.var +// CHECK:STDOUT: %no_op.loc23: init %empty_tuple.type = call %bound_method.loc23(%addr.loc23) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: fn @__global_init() { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %true: bool = bool_literal true [concrete = constants.%true] -// CHECK:STDOUT: %.loc18: bool = not %true [concrete = constants.%false] +// CHECK:STDOUT: %.loc19: bool = not %true [concrete = constants.%false] // CHECK:STDOUT: %false: bool = bool_literal false [concrete = constants.%false] -// CHECK:STDOUT: %.loc19: bool = not %false [concrete = constants.%true] +// CHECK:STDOUT: %.loc20: bool = not %false [concrete = constants.%true] // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/overloaded/add.carbon b/toolchain/check/testdata/operators/overloaded/add.carbon index e0d4cc175715..c6434cadb867 100644 --- a/toolchain/check/testdata/operators/overloaded/add.carbon +++ b/toolchain/check/testdata/operators/overloaded/add.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // @@ -46,14 +47,14 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %AddWith.type.ffb: type = facet_type <@AddWith, @AddWith(%C)> [concrete] // CHECK:STDOUT: %Op.type.45e: type = fn_type @Op.1, @AddWith(%C) [concrete] // CHECK:STDOUT: %AddWith.impl_witness: = impl_witness file.%AddWith.impl_witness_table [concrete] -// CHECK:STDOUT: %Op.type.638: type = fn_type @Op.loc21 [concrete] +// CHECK:STDOUT: %Op.type.638: type = fn_type @Op.loc22 [concrete] // CHECK:STDOUT: %Op.276: %Op.type.638 = struct_value () [concrete] // CHECK:STDOUT: %AddWith.facet.3ef: %AddWith.type.ffb = facet_value %C, (%AddWith.impl_witness) [concrete] // CHECK:STDOUT: %AddAssignWith.type.393: type = facet_type <@AddAssignWith, @AddAssignWith(%C)> [concrete] // CHECK:STDOUT: %Op.type.5af: type = fn_type @Op.6, @AddAssignWith(%C) [concrete] // CHECK:STDOUT: %AddAssignWith.impl_witness: = impl_witness file.%AddAssignWith.impl_witness_table [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.type.0d7: type = fn_type @Op.loc26 [concrete] +// CHECK:STDOUT: %Op.type.0d7: type = fn_type @Op.loc27 [concrete] // CHECK:STDOUT: %Op.572: %Op.type.0d7 = struct_value () [concrete] // CHECK:STDOUT: %AddAssignWith.facet: %AddAssignWith.type.393 = facet_value %C, (%AddAssignWith.impl_witness) [concrete] // CHECK:STDOUT: %.268: type = fn_type_with_self_type %Op.type.45e, %AddWith.facet.3ef [concrete] @@ -68,9 +69,9 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b // CHECK:STDOUT: %impl.elem1: %.268 = impl_witness_access constants.%AddWith.impl_witness, element1 [concrete = constants.%Op.276] -// CHECK:STDOUT: %bound_method.loc31: = bound_method %a.ref, %impl.elem1 +// CHECK:STDOUT: %bound_method.loc32: = bound_method %a.ref, %impl.elem1 // CHECK:STDOUT: -// CHECK:STDOUT: %Op.call: init %C = call %bound_method.loc31(%a.ref, %b.ref) to %.loc29 +// CHECK:STDOUT: %Op.call: init %C = call %bound_method.loc32(%a.ref, %b.ref) to %.loc30 // CHECK:STDOUT: // CHECK:STDOUT: return %Op.call to %return // CHECK:STDOUT: } @@ -78,11 +79,11 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: fn @TestAssign(%a.param: %ptr.019, %b.param: %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %ptr.019 = name_ref a, %a -// CHECK:STDOUT: %.loc37: ref %C = deref %a.ref +// CHECK:STDOUT: %.loc38: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b // CHECK:STDOUT: %impl.elem0: %.e2d = impl_witness_access constants.%AddAssignWith.impl_witness, element0 [concrete = constants.%Op.572] -// CHECK:STDOUT: %bound_method: = bound_method %.loc37, %impl.elem0 -// CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc37 +// CHECK:STDOUT: %bound_method: = bound_method %.loc38, %impl.elem0 +// CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc38 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method(%addr, %b.ref) // CHECK:STDOUT: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/overloaded/bit_and.carbon b/toolchain/check/testdata/operators/overloaded/bit_and.carbon index 22504e0dca63..c697bd13f95a 100644 --- a/toolchain/check/testdata/operators/overloaded/bit_and.carbon +++ b/toolchain/check/testdata/operators/overloaded/bit_and.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // @@ -46,14 +47,14 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %BitAndWith.type.e40: type = facet_type <@BitAndWith, @BitAndWith(%C)> [concrete] // CHECK:STDOUT: %Op.type.914: type = fn_type @Op.1, @BitAndWith(%C) [concrete] // CHECK:STDOUT: %BitAndWith.impl_witness: = impl_witness file.%BitAndWith.impl_witness_table [concrete] -// CHECK:STDOUT: %Op.type.bcc: type = fn_type @Op.loc21 [concrete] +// CHECK:STDOUT: %Op.type.bcc: type = fn_type @Op.loc22 [concrete] // CHECK:STDOUT: %Op.c46: %Op.type.bcc = struct_value () [concrete] // CHECK:STDOUT: %BitAndWith.facet.783: %BitAndWith.type.e40 = facet_value %C, (%BitAndWith.impl_witness) [concrete] // CHECK:STDOUT: %BitAndAssignWith.type.e85: type = facet_type <@BitAndAssignWith, @BitAndAssignWith(%C)> [concrete] // CHECK:STDOUT: %Op.type.73d: type = fn_type @Op.6, @BitAndAssignWith(%C) [concrete] // CHECK:STDOUT: %BitAndAssignWith.impl_witness: = impl_witness file.%BitAndAssignWith.impl_witness_table [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.type.115: type = fn_type @Op.loc26 [concrete] +// CHECK:STDOUT: %Op.type.115: type = fn_type @Op.loc27 [concrete] // CHECK:STDOUT: %Op.270: %Op.type.115 = struct_value () [concrete] // CHECK:STDOUT: %BitAndAssignWith.facet: %BitAndAssignWith.type.e85 = facet_value %C, (%BitAndAssignWith.impl_witness) [concrete] // CHECK:STDOUT: %.04a: type = fn_type_with_self_type %Op.type.914, %BitAndWith.facet.783 [concrete] @@ -68,9 +69,9 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b // CHECK:STDOUT: %impl.elem1: %.04a = impl_witness_access constants.%BitAndWith.impl_witness, element1 [concrete = constants.%Op.c46] -// CHECK:STDOUT: %bound_method.loc31: = bound_method %a.ref, %impl.elem1 +// CHECK:STDOUT: %bound_method.loc32: = bound_method %a.ref, %impl.elem1 // CHECK:STDOUT: -// CHECK:STDOUT: %Op.call: init %C = call %bound_method.loc31(%a.ref, %b.ref) to %.loc29 +// CHECK:STDOUT: %Op.call: init %C = call %bound_method.loc32(%a.ref, %b.ref) to %.loc30 // CHECK:STDOUT: // CHECK:STDOUT: return %Op.call to %return // CHECK:STDOUT: } @@ -78,11 +79,11 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: fn @TestAssign(%a.param: %ptr.019, %b.param: %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %ptr.019 = name_ref a, %a -// CHECK:STDOUT: %.loc37: ref %C = deref %a.ref +// CHECK:STDOUT: %.loc38: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b // CHECK:STDOUT: %impl.elem0: %.554 = impl_witness_access constants.%BitAndAssignWith.impl_witness, element0 [concrete = constants.%Op.270] -// CHECK:STDOUT: %bound_method: = bound_method %.loc37, %impl.elem0 -// CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc37 +// CHECK:STDOUT: %bound_method: = bound_method %.loc38, %impl.elem0 +// CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc38 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method(%addr, %b.ref) // CHECK:STDOUT: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/overloaded/bit_complement.carbon b/toolchain/check/testdata/operators/overloaded/bit_complement.carbon index b9c06cd9ef1a..4e6cf705c627 100644 --- a/toolchain/check/testdata/operators/overloaded/bit_complement.carbon +++ b/toolchain/check/testdata/operators/overloaded/bit_complement.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // @@ -36,7 +37,7 @@ fn TestOp(a: C) -> C { // CHECK:STDOUT: %BitComplement.type: type = facet_type <@BitComplement> [concrete] // CHECK:STDOUT: %Op.type.f25: type = fn_type @Op.6 [concrete] // CHECK:STDOUT: %BitComplement.impl_witness: = impl_witness file.%BitComplement.impl_witness_table [concrete] -// CHECK:STDOUT: %Op.type.e57: type = fn_type @Op.loc21 [concrete] +// CHECK:STDOUT: %Op.type.e57: type = fn_type @Op.loc22 [concrete] // CHECK:STDOUT: %Op.d4b: %Op.type.e57 = struct_value () [concrete] // CHECK:STDOUT: %BitComplement.facet.c4c: %BitComplement.type = facet_value %C, (%BitComplement.impl_witness) [concrete] // CHECK:STDOUT: %.18b: type = fn_type_with_self_type %Op.type.f25, %BitComplement.facet.c4c [concrete] @@ -49,9 +50,9 @@ fn TestOp(a: C) -> C { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %impl.elem1: %.18b = impl_witness_access constants.%BitComplement.impl_witness, element1 [concrete = constants.%Op.d4b] -// CHECK:STDOUT: %bound_method.loc28: = bound_method %a.ref, %impl.elem1 +// CHECK:STDOUT: %bound_method.loc29: = bound_method %a.ref, %impl.elem1 // CHECK:STDOUT: -// CHECK:STDOUT: %Op.call: init %C = call %bound_method.loc28(%a.ref) to %.loc26 +// CHECK:STDOUT: %Op.call: init %C = call %bound_method.loc29(%a.ref) to %.loc27 // CHECK:STDOUT: // CHECK:STDOUT: return %Op.call to %return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/overloaded/bit_or.carbon b/toolchain/check/testdata/operators/overloaded/bit_or.carbon index f841c2a56f91..df7c54d531ef 100644 --- a/toolchain/check/testdata/operators/overloaded/bit_or.carbon +++ b/toolchain/check/testdata/operators/overloaded/bit_or.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // @@ -46,14 +47,14 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %BitOrWith.type.502: type = facet_type <@BitOrWith, @BitOrWith(%C)> [concrete] // CHECK:STDOUT: %Op.type.501: type = fn_type @Op.1, @BitOrWith(%C) [concrete] // CHECK:STDOUT: %BitOrWith.impl_witness: = impl_witness file.%BitOrWith.impl_witness_table [concrete] -// CHECK:STDOUT: %Op.type.cc7: type = fn_type @Op.loc21 [concrete] +// CHECK:STDOUT: %Op.type.cc7: type = fn_type @Op.loc22 [concrete] // CHECK:STDOUT: %Op.3e9: %Op.type.cc7 = struct_value () [concrete] // CHECK:STDOUT: %BitOrWith.facet.f19: %BitOrWith.type.502 = facet_value %C, (%BitOrWith.impl_witness) [concrete] // CHECK:STDOUT: %BitOrAssignWith.type.3e6: type = facet_type <@BitOrAssignWith, @BitOrAssignWith(%C)> [concrete] // CHECK:STDOUT: %Op.type.efc: type = fn_type @Op.6, @BitOrAssignWith(%C) [concrete] // CHECK:STDOUT: %BitOrAssignWith.impl_witness: = impl_witness file.%BitOrAssignWith.impl_witness_table [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.type.4ee: type = fn_type @Op.loc26 [concrete] +// CHECK:STDOUT: %Op.type.4ee: type = fn_type @Op.loc27 [concrete] // CHECK:STDOUT: %Op.afa: %Op.type.4ee = struct_value () [concrete] // CHECK:STDOUT: %BitOrAssignWith.facet: %BitOrAssignWith.type.3e6 = facet_value %C, (%BitOrAssignWith.impl_witness) [concrete] // CHECK:STDOUT: %.b8d: type = fn_type_with_self_type %Op.type.501, %BitOrWith.facet.f19 [concrete] @@ -68,9 +69,9 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b // CHECK:STDOUT: %impl.elem1: %.b8d = impl_witness_access constants.%BitOrWith.impl_witness, element1 [concrete = constants.%Op.3e9] -// CHECK:STDOUT: %bound_method.loc31: = bound_method %a.ref, %impl.elem1 +// CHECK:STDOUT: %bound_method.loc32: = bound_method %a.ref, %impl.elem1 // CHECK:STDOUT: -// CHECK:STDOUT: %Op.call: init %C = call %bound_method.loc31(%a.ref, %b.ref) to %.loc29 +// CHECK:STDOUT: %Op.call: init %C = call %bound_method.loc32(%a.ref, %b.ref) to %.loc30 // CHECK:STDOUT: // CHECK:STDOUT: return %Op.call to %return // CHECK:STDOUT: } @@ -78,11 +79,11 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: fn @TestAssign(%a.param: %ptr.019, %b.param: %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %ptr.019 = name_ref a, %a -// CHECK:STDOUT: %.loc37: ref %C = deref %a.ref +// CHECK:STDOUT: %.loc38: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b // CHECK:STDOUT: %impl.elem0: %.c8a = impl_witness_access constants.%BitOrAssignWith.impl_witness, element0 [concrete = constants.%Op.afa] -// CHECK:STDOUT: %bound_method: = bound_method %.loc37, %impl.elem0 -// CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc37 +// CHECK:STDOUT: %bound_method: = bound_method %.loc38, %impl.elem0 +// CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc38 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method(%addr, %b.ref) // CHECK:STDOUT: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/overloaded/bit_xor.carbon b/toolchain/check/testdata/operators/overloaded/bit_xor.carbon index f44b62d88864..59e1cb42e12e 100644 --- a/toolchain/check/testdata/operators/overloaded/bit_xor.carbon +++ b/toolchain/check/testdata/operators/overloaded/bit_xor.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // @@ -46,14 +47,14 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %BitXorWith.type.f9b: type = facet_type <@BitXorWith, @BitXorWith(%C)> [concrete] // CHECK:STDOUT: %Op.type.502: type = fn_type @Op.1, @BitXorWith(%C) [concrete] // CHECK:STDOUT: %BitXorWith.impl_witness: = impl_witness file.%BitXorWith.impl_witness_table [concrete] -// CHECK:STDOUT: %Op.type.5e4: type = fn_type @Op.loc21 [concrete] +// CHECK:STDOUT: %Op.type.5e4: type = fn_type @Op.loc22 [concrete] // CHECK:STDOUT: %Op.ef1: %Op.type.5e4 = struct_value () [concrete] // CHECK:STDOUT: %BitXorWith.facet.d57: %BitXorWith.type.f9b = facet_value %C, (%BitXorWith.impl_witness) [concrete] // CHECK:STDOUT: %BitXorAssignWith.type.57a: type = facet_type <@BitXorAssignWith, @BitXorAssignWith(%C)> [concrete] // CHECK:STDOUT: %Op.type.ad0: type = fn_type @Op.6, @BitXorAssignWith(%C) [concrete] // CHECK:STDOUT: %BitXorAssignWith.impl_witness: = impl_witness file.%BitXorAssignWith.impl_witness_table [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.type.d64: type = fn_type @Op.loc26 [concrete] +// CHECK:STDOUT: %Op.type.d64: type = fn_type @Op.loc27 [concrete] // CHECK:STDOUT: %Op.5e5: %Op.type.d64 = struct_value () [concrete] // CHECK:STDOUT: %BitXorAssignWith.facet: %BitXorAssignWith.type.57a = facet_value %C, (%BitXorAssignWith.impl_witness) [concrete] // CHECK:STDOUT: %.c60: type = fn_type_with_self_type %Op.type.502, %BitXorWith.facet.d57 [concrete] @@ -68,9 +69,9 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b // CHECK:STDOUT: %impl.elem1: %.c60 = impl_witness_access constants.%BitXorWith.impl_witness, element1 [concrete = constants.%Op.ef1] -// CHECK:STDOUT: %bound_method.loc31: = bound_method %a.ref, %impl.elem1 +// CHECK:STDOUT: %bound_method.loc32: = bound_method %a.ref, %impl.elem1 // CHECK:STDOUT: -// CHECK:STDOUT: %Op.call: init %C = call %bound_method.loc31(%a.ref, %b.ref) to %.loc29 +// CHECK:STDOUT: %Op.call: init %C = call %bound_method.loc32(%a.ref, %b.ref) to %.loc30 // CHECK:STDOUT: // CHECK:STDOUT: return %Op.call to %return // CHECK:STDOUT: } @@ -78,11 +79,11 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: fn @TestAssign(%a.param: %ptr.019, %b.param: %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %ptr.019 = name_ref a, %a -// CHECK:STDOUT: %.loc37: ref %C = deref %a.ref +// CHECK:STDOUT: %.loc38: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b // CHECK:STDOUT: %impl.elem0: %.d8a = impl_witness_access constants.%BitXorAssignWith.impl_witness, element0 [concrete = constants.%Op.5e5] -// CHECK:STDOUT: %bound_method: = bound_method %.loc37, %impl.elem0 -// CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc37 +// CHECK:STDOUT: %bound_method: = bound_method %.loc38, %impl.elem0 +// CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc38 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method(%addr, %b.ref) // CHECK:STDOUT: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/overloaded/dec.carbon b/toolchain/check/testdata/operators/overloaded/dec.carbon index 1ed767498882..241b30dd96ee 100644 --- a/toolchain/check/testdata/operators/overloaded/dec.carbon +++ b/toolchain/check/testdata/operators/overloaded/dec.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // @@ -37,7 +38,7 @@ fn TestOp() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Dec.impl_witness: = impl_witness file.%Dec.impl_witness_table [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.type.9e0: type = fn_type @Op.loc21 [concrete] +// CHECK:STDOUT: %Op.type.9e0: type = fn_type @Op.loc22 [concrete] // CHECK:STDOUT: %Op.cf9: %Op.type.9e0 = struct_value () [concrete] // CHECK:STDOUT: %Dec.facet: %Dec.type = facet_value %C, (%Dec.impl_witness) [concrete] // CHECK:STDOUT: %.859: type = fn_type_with_self_type %Op.type.633, %Dec.facet [concrete] @@ -51,9 +52,9 @@ fn TestOp() { // CHECK:STDOUT: // CHECK:STDOUT: %c.ref: ref %C = name_ref c, %c // CHECK:STDOUT: %impl.elem0: %.859 = impl_witness_access constants.%Dec.impl_witness, element0 [concrete = constants.%Op.cf9] -// CHECK:STDOUT: %bound_method.loc27: = bound_method %c.ref, %impl.elem0 -// CHECK:STDOUT: %addr.loc27: %ptr.019 = addr_of %c.ref -// CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method.loc27(%addr.loc27) +// CHECK:STDOUT: %bound_method.loc28: = bound_method %c.ref, %impl.elem0 +// CHECK:STDOUT: %addr.loc28: %ptr.019 = addr_of %c.ref +// CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method.loc28(%addr.loc28) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/overloaded/div.carbon b/toolchain/check/testdata/operators/overloaded/div.carbon index 08c211b87876..7945592cd47d 100644 --- a/toolchain/check/testdata/operators/overloaded/div.carbon +++ b/toolchain/check/testdata/operators/overloaded/div.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // @@ -46,14 +47,14 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %DivWith.type.ead: type = facet_type <@DivWith, @DivWith(%C)> [concrete] // CHECK:STDOUT: %Op.type.c4b: type = fn_type @Op.1, @DivWith(%C) [concrete] // CHECK:STDOUT: %DivWith.impl_witness: = impl_witness file.%DivWith.impl_witness_table [concrete] -// CHECK:STDOUT: %Op.type.a37: type = fn_type @Op.loc21 [concrete] +// CHECK:STDOUT: %Op.type.a37: type = fn_type @Op.loc22 [concrete] // CHECK:STDOUT: %Op.5b4: %Op.type.a37 = struct_value () [concrete] // CHECK:STDOUT: %DivWith.facet.f3b: %DivWith.type.ead = facet_value %C, (%DivWith.impl_witness) [concrete] // CHECK:STDOUT: %DivAssignWith.type.08b: type = facet_type <@DivAssignWith, @DivAssignWith(%C)> [concrete] // CHECK:STDOUT: %Op.type.629: type = fn_type @Op.6, @DivAssignWith(%C) [concrete] // CHECK:STDOUT: %DivAssignWith.impl_witness: = impl_witness file.%DivAssignWith.impl_witness_table [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.type.1b1: type = fn_type @Op.loc26 [concrete] +// CHECK:STDOUT: %Op.type.1b1: type = fn_type @Op.loc27 [concrete] // CHECK:STDOUT: %Op.27f: %Op.type.1b1 = struct_value () [concrete] // CHECK:STDOUT: %DivAssignWith.facet: %DivAssignWith.type.08b = facet_value %C, (%DivAssignWith.impl_witness) [concrete] // CHECK:STDOUT: %.bb6: type = fn_type_with_self_type %Op.type.c4b, %DivWith.facet.f3b [concrete] @@ -68,9 +69,9 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b // CHECK:STDOUT: %impl.elem1: %.bb6 = impl_witness_access constants.%DivWith.impl_witness, element1 [concrete = constants.%Op.5b4] -// CHECK:STDOUT: %bound_method.loc31: = bound_method %a.ref, %impl.elem1 +// CHECK:STDOUT: %bound_method.loc32: = bound_method %a.ref, %impl.elem1 // CHECK:STDOUT: -// CHECK:STDOUT: %Op.call: init %C = call %bound_method.loc31(%a.ref, %b.ref) to %.loc29 +// CHECK:STDOUT: %Op.call: init %C = call %bound_method.loc32(%a.ref, %b.ref) to %.loc30 // CHECK:STDOUT: // CHECK:STDOUT: return %Op.call to %return // CHECK:STDOUT: } @@ -78,11 +79,11 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: fn @TestAssign(%a.param: %ptr.019, %b.param: %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %ptr.019 = name_ref a, %a -// CHECK:STDOUT: %.loc37: ref %C = deref %a.ref +// CHECK:STDOUT: %.loc38: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b // CHECK:STDOUT: %impl.elem0: %.f19 = impl_witness_access constants.%DivAssignWith.impl_witness, element0 [concrete = constants.%Op.27f] -// CHECK:STDOUT: %bound_method: = bound_method %.loc37, %impl.elem0 -// CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc37 +// CHECK:STDOUT: %bound_method: = bound_method %.loc38, %impl.elem0 +// CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc38 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method(%addr, %b.ref) // CHECK:STDOUT: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/overloaded/eq.carbon b/toolchain/check/testdata/operators/overloaded/eq.carbon index 08af5dec3f43..c5504688aa98 100644 --- a/toolchain/check/testdata/operators/overloaded/eq.carbon +++ b/toolchain/check/testdata/operators/overloaded/eq.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // diff --git a/toolchain/check/testdata/operators/overloaded/fail_assign_non_ref.carbon b/toolchain/check/testdata/operators/overloaded/fail_assign_non_ref.carbon index 209c7bbccf8d..7bf1c35d9bea 100644 --- a/toolchain/check/testdata/operators/overloaded/fail_assign_non_ref.carbon +++ b/toolchain/check/testdata/operators/overloaded/fail_assign_non_ref.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // @@ -57,7 +58,7 @@ fn TestAddAssignNonRef(a: C, b: C) { // CHECK:STDOUT: %Inc.impl_witness: = impl_witness file.%Inc.impl_witness_table [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] // CHECK:STDOUT: %pattern_type.44a: type = pattern_type %ptr.019 [concrete] -// CHECK:STDOUT: %Op.type.73a: type = fn_type @Op.loc19 [concrete] +// CHECK:STDOUT: %Op.type.73a: type = fn_type @Op.loc20 [concrete] // CHECK:STDOUT: %Op.0c9: %Op.type.73a = struct_value () [concrete] // CHECK:STDOUT: %Inc.facet: %Inc.type = facet_value %C, (%Inc.impl_witness) [concrete] // CHECK:STDOUT: %AddAssignWith.type.fc6: type = generic_interface_type @AddAssignWith [concrete] @@ -66,7 +67,7 @@ fn TestAddAssignNonRef(a: C, b: C) { // CHECK:STDOUT: %Op.type.5af: type = fn_type @Op.2, @AddAssignWith(%C) [concrete] // CHECK:STDOUT: %AddAssignWith.impl_witness: = impl_witness file.%AddAssignWith.impl_witness_table [concrete] // CHECK:STDOUT: %pattern_type.c48: type = pattern_type %C [concrete] -// CHECK:STDOUT: %Op.type.0d7: type = fn_type @Op.loc22 [concrete] +// CHECK:STDOUT: %Op.type.0d7: type = fn_type @Op.loc23 [concrete] // CHECK:STDOUT: %Op.572: %Op.type.0d7 = struct_value () [concrete] // CHECK:STDOUT: %AddAssignWith.facet: %AddAssignWith.type.393 = facet_value %C, (%AddAssignWith.impl_witness) [concrete] // CHECK:STDOUT: %TestIncNonRef.type: type = fn_type @TestIncNonRef [concrete] @@ -111,10 +112,10 @@ fn TestAddAssignNonRef(a: C, b: C) { // CHECK:STDOUT: %Inc.impl_witness_table = impl_witness_table (@Inc.impl.%Op.decl), @Inc.impl [concrete] // CHECK:STDOUT: %Inc.impl_witness: = impl_witness %Inc.impl_witness_table [concrete = constants.%Inc.impl_witness] // CHECK:STDOUT: impl_decl @AddAssignWith.impl [concrete] {} { -// CHECK:STDOUT: %C.ref.loc21_6: type = name_ref C, file.%C.decl [concrete = constants.%C] +// CHECK:STDOUT: %C.ref.loc22_6: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %Core.ref: = name_ref Core, imports.%Core [concrete = imports.%Core] // CHECK:STDOUT: %AddAssignWith.ref: %AddAssignWith.type.fc6 = name_ref AddAssignWith, imports.%Core.AddAssignWith [concrete = constants.%AddAssignWith.generic] -// CHECK:STDOUT: %C.ref.loc21_30: type = name_ref C, file.%C.decl [concrete = constants.%C] +// CHECK:STDOUT: %C.ref.loc22_30: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %AddAssignWith.type: type = facet_type <@AddAssignWith, @AddAssignWith(constants.%C)> [concrete = constants.%AddAssignWith.type.393] // CHECK:STDOUT: } // CHECK:STDOUT: %AddAssignWith.impl_witness_table = impl_witness_table (@AddAssignWith.impl.%Op.decl), @AddAssignWith.impl [concrete] @@ -134,22 +135,22 @@ fn TestAddAssignNonRef(a: C, b: C) { // CHECK:STDOUT: %b.param_patt: %pattern_type.c48 = value_param_pattern %b.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %a.param: %C = value_param call_param0 -// CHECK:STDOUT: %C.ref.loc36_27: type = name_ref C, file.%C.decl [concrete = constants.%C] +// CHECK:STDOUT: %C.ref.loc37_27: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %a: %C = bind_name a, %a.param // CHECK:STDOUT: %b.param: %C = value_param call_param1 -// CHECK:STDOUT: %C.ref.loc36_33: type = name_ref C, file.%C.decl [concrete = constants.%C] +// CHECK:STDOUT: %C.ref.loc37_33: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %b: %C = bind_name b, %b.param // CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: impl @Inc.impl: %C.ref as %Inc.ref { -// CHECK:STDOUT: %Op.decl: %Op.type.73a = fn_decl @Op.loc19 [concrete = constants.%Op.0c9] { +// CHECK:STDOUT: %Op.decl: %Op.type.73a = fn_decl @Op.loc20 [concrete = constants.%Op.0c9] { // CHECK:STDOUT: %self.patt: %pattern_type.44a = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: %pattern_type.44a = value_param_pattern %self.patt, call_param0 [concrete] -// CHECK:STDOUT: %.loc19_9: %pattern_type.f6d = addr_pattern %self.param_patt [concrete] +// CHECK:STDOUT: %.loc20_9: %pattern_type.f6d = addr_pattern %self.param_patt [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %ptr.019 = value_param call_param0 -// CHECK:STDOUT: %.loc19_21: type = splice_block %ptr [concrete = constants.%ptr.019] { +// CHECK:STDOUT: %.loc20_21: type = splice_block %ptr [concrete = constants.%ptr.019] { // CHECK:STDOUT: %C.ref: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %ptr: type = ptr_type %C.ref [concrete = constants.%ptr.019] // CHECK:STDOUT: } @@ -162,22 +163,22 @@ fn TestAddAssignNonRef(a: C, b: C) { // CHECK:STDOUT: witness = file.%Inc.impl_witness // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: impl @AddAssignWith.impl: %C.ref.loc21_6 as %AddAssignWith.type { -// CHECK:STDOUT: %Op.decl: %Op.type.0d7 = fn_decl @Op.loc22 [concrete = constants.%Op.572] { +// CHECK:STDOUT: impl @AddAssignWith.impl: %C.ref.loc22_6 as %AddAssignWith.type { +// CHECK:STDOUT: %Op.decl: %Op.type.0d7 = fn_decl @Op.loc23 [concrete = constants.%Op.572] { // CHECK:STDOUT: %self.patt: %pattern_type.44a = binding_pattern self [concrete] // CHECK:STDOUT: %self.param_patt: %pattern_type.44a = value_param_pattern %self.patt, call_param0 [concrete] -// CHECK:STDOUT: %.loc22_9: %pattern_type.f6d = addr_pattern %self.param_patt [concrete] +// CHECK:STDOUT: %.loc23_9: %pattern_type.f6d = addr_pattern %self.param_patt [concrete] // CHECK:STDOUT: %other.patt: %pattern_type.c48 = binding_pattern other [concrete] // CHECK:STDOUT: %other.param_patt: %pattern_type.c48 = value_param_pattern %other.patt, call_param1 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %self.param: %ptr.019 = value_param call_param0 -// CHECK:STDOUT: %.loc22_21: type = splice_block %ptr [concrete = constants.%ptr.019] { -// CHECK:STDOUT: %C.ref.loc22_20: type = name_ref C, file.%C.decl [concrete = constants.%C] -// CHECK:STDOUT: %ptr: type = ptr_type %C.ref.loc22_20 [concrete = constants.%ptr.019] +// CHECK:STDOUT: %.loc23_21: type = splice_block %ptr [concrete = constants.%ptr.019] { +// CHECK:STDOUT: %C.ref.loc23_20: type = name_ref C, file.%C.decl [concrete = constants.%C] +// CHECK:STDOUT: %ptr: type = ptr_type %C.ref.loc23_20 [concrete = constants.%ptr.019] // CHECK:STDOUT: } // CHECK:STDOUT: %self: %ptr.019 = bind_name self, %self.param // CHECK:STDOUT: %other.param: %C = value_param call_param1 -// CHECK:STDOUT: %C.ref.loc22_31: type = name_ref C, file.%C.decl [concrete = constants.%C] +// CHECK:STDOUT: %C.ref.loc23_31: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %other: %C = bind_name other, %other.param // CHECK:STDOUT: } // CHECK:STDOUT: @@ -196,23 +197,23 @@ fn TestAddAssignNonRef(a: C, b: C) { // CHECK:STDOUT: .Self = constants.%C // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: fn @Op.loc19(%self.param: %ptr.019); +// CHECK:STDOUT: fn @Op.loc20(%self.param: %ptr.019); // CHECK:STDOUT: -// CHECK:STDOUT: fn @Op.loc22(%self.param: %ptr.019, %other.param: %C); +// CHECK:STDOUT: fn @Op.loc23(%self.param: %ptr.019, %other.param: %C); // CHECK:STDOUT: // CHECK:STDOUT: fn @TestIncNonRef(%a.param: %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %impl.elem0: %.bc7 = impl_witness_access constants.%Inc.impl_witness, element0 [concrete = constants.%Op.0c9] -// CHECK:STDOUT: %bound_method.loc33_3: = bound_method %a.ref, %impl.elem0 -// CHECK:STDOUT: %.loc33: ref %C = temporary_storage -// CHECK:STDOUT: %addr.loc33_5.1: %ptr.019 = addr_of %.loc33 -// CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method.loc33_3(%addr.loc33_5.1) -// CHECK:STDOUT: %Op.bound: = bound_method %.loc33, constants.%Op.5d7 +// CHECK:STDOUT: %bound_method.loc34_3: = bound_method %a.ref, %impl.elem0 +// CHECK:STDOUT: %.loc34: ref %C = temporary_storage +// CHECK:STDOUT: %addr.loc34_5.1: %ptr.019 = addr_of %.loc34 +// CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method.loc34_3(%addr.loc34_5.1) +// CHECK:STDOUT: %Op.bound: = bound_method %.loc34, constants.%Op.5d7 // CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.9(constants.%C) [concrete = constants.%Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc33_5: = bound_method %.loc33, %Op.specific_fn -// CHECK:STDOUT: %addr.loc33_5.2: %ptr.019 = addr_of %.loc33 -// CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc33_5(%addr.loc33_5.2) +// CHECK:STDOUT: %bound_method.loc34_5: = bound_method %.loc34, %Op.specific_fn +// CHECK:STDOUT: %addr.loc34_5.2: %ptr.019 = addr_of %.loc34 +// CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc34_5(%addr.loc34_5.2) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: @@ -221,15 +222,15 @@ fn TestAddAssignNonRef(a: C, b: C) { // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b // CHECK:STDOUT: %impl.elem0: %.e2d = impl_witness_access constants.%AddAssignWith.impl_witness, element0 [concrete = constants.%Op.572] -// CHECK:STDOUT: %bound_method.loc44_5: = bound_method %a.ref, %impl.elem0 -// CHECK:STDOUT: %.loc44: ref %C = temporary_storage -// CHECK:STDOUT: %addr.loc44_3.1: %ptr.019 = addr_of %.loc44 -// CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method.loc44_5(%addr.loc44_3.1, %b.ref) -// CHECK:STDOUT: %Op.bound: = bound_method %.loc44, constants.%Op.5d7 +// CHECK:STDOUT: %bound_method.loc45_5: = bound_method %a.ref, %impl.elem0 +// CHECK:STDOUT: %.loc45: ref %C = temporary_storage +// CHECK:STDOUT: %addr.loc45_3.1: %ptr.019 = addr_of %.loc45 +// CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method.loc45_5(%addr.loc45_3.1, %b.ref) +// CHECK:STDOUT: %Op.bound: = bound_method %.loc45, constants.%Op.5d7 // CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.9(constants.%C) [concrete = constants.%Op.specific_fn] -// CHECK:STDOUT: %bound_method.loc44_3: = bound_method %.loc44, %Op.specific_fn -// CHECK:STDOUT: %addr.loc44_3.2: %ptr.019 = addr_of %.loc44 -// CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc44_3(%addr.loc44_3.2) +// CHECK:STDOUT: %bound_method.loc45_3: = bound_method %.loc45, %Op.specific_fn +// CHECK:STDOUT: %addr.loc45_3.2: %ptr.019 = addr_of %.loc45 +// CHECK:STDOUT: %no_op: init %empty_tuple.type = call %bound_method.loc45_3(%addr.loc45_3.2) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/overloaded/fail_error_recovery.carbon b/toolchain/check/testdata/operators/overloaded/fail_error_recovery.carbon index 6aa9e0a65615..607732c41afe 100644 --- a/toolchain/check/testdata/operators/overloaded/fail_error_recovery.carbon +++ b/toolchain/check/testdata/operators/overloaded/fail_error_recovery.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // @@ -72,7 +73,7 @@ fn G(n: i32) { // CHECK:STDOUT: %n.param_patt: %pattern_type.7ce = value_param_pattern %n.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %n.param: %i32 = value_param call_param0 -// CHECK:STDOUT: %.loc25: type = splice_block %i32 [concrete = constants.%i32] { +// CHECK:STDOUT: %.loc26: type = splice_block %i32 [concrete = constants.%i32] { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon b/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon index 3321830fcb3c..6be18f466d3d 100644 --- a/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon +++ b/toolchain/check/testdata/operators/overloaded/fail_no_impl.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // @@ -106,9 +107,9 @@ fn TestRef(b: C) { // CHECK:STDOUT: %return.patt: %pattern_type.c48 = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.c48 = out_param_pattern %return.patt, call_param1 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %C.ref.loc18_23: type = name_ref C, file.%C.decl [concrete = constants.%C] +// CHECK:STDOUT: %C.ref.loc19_23: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %a.param: %C = value_param call_param0 -// CHECK:STDOUT: %C.ref.loc18_17: type = name_ref C, file.%C.decl [concrete = constants.%C] +// CHECK:STDOUT: %C.ref.loc19_17: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %a: %C = bind_name a, %a.param // CHECK:STDOUT: %return.param: ref %C = out_param call_param1 // CHECK:STDOUT: %return: ref %C = return_slot %return.param @@ -121,12 +122,12 @@ fn TestRef(b: C) { // CHECK:STDOUT: %return.patt: %pattern_type.c48 = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type.c48 = out_param_pattern %return.patt, call_param2 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %C.ref.loc26_30: type = name_ref C, file.%C.decl [concrete = constants.%C] +// CHECK:STDOUT: %C.ref.loc27_30: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %a.param: %C = value_param call_param0 -// CHECK:STDOUT: %C.ref.loc26_18: type = name_ref C, file.%C.decl [concrete = constants.%C] +// CHECK:STDOUT: %C.ref.loc27_18: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %a: %C = bind_name a, %a.param // CHECK:STDOUT: %b.param: %C = value_param call_param1 -// CHECK:STDOUT: %C.ref.loc26_24: type = name_ref C, file.%C.decl [concrete = constants.%C] +// CHECK:STDOUT: %C.ref.loc27_24: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %b: %C = bind_name b, %b.param // CHECK:STDOUT: %return.param: ref %C = out_param call_param2 // CHECK:STDOUT: %return: ref %C = return_slot %return.param @@ -136,7 +137,7 @@ fn TestRef(b: C) { // CHECK:STDOUT: %b.param_patt: %pattern_type.c48 = value_param_pattern %b.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %b.param: %C = value_param call_param0 -// CHECK:STDOUT: %C.ref.loc34: type = name_ref C, file.%C.decl [concrete = constants.%C] +// CHECK:STDOUT: %C.ref.loc35: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %b: %C = bind_name b, %b.param // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -170,15 +171,15 @@ fn TestRef(b: C) { // CHECK:STDOUT: %a.var_patt: %pattern_type.c48 = var_pattern %a.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %a.var: ref %C = var %a.var_patt -// CHECK:STDOUT: %.loc35_15.1: %empty_struct_type = struct_literal () -// CHECK:STDOUT: %.loc35_15.2: init %C = class_init (), %a.var [concrete = constants.%C.val] -// CHECK:STDOUT: %.loc35_3: init %C = converted %.loc35_15.1, %.loc35_15.2 [concrete = constants.%C.val] -// CHECK:STDOUT: assign %a.var, %.loc35_3 -// CHECK:STDOUT: %C.ref.loc35: type = name_ref C, file.%C.decl [concrete = constants.%C] +// CHECK:STDOUT: %.loc36_15.1: %empty_struct_type = struct_literal () +// CHECK:STDOUT: %.loc36_15.2: init %C = class_init (), %a.var [concrete = constants.%C.val] +// CHECK:STDOUT: %.loc36_3: init %C = converted %.loc36_15.1, %.loc36_15.2 [concrete = constants.%C.val] +// CHECK:STDOUT: assign %a.var, %.loc36_3 +// CHECK:STDOUT: %C.ref.loc36: type = name_ref C, file.%C.decl [concrete = constants.%C] // CHECK:STDOUT: %a: ref %C = bind_name a, %a.var -// CHECK:STDOUT: %a.ref.loc40: ref %C = name_ref a, %a +// CHECK:STDOUT: %a.ref.loc41: ref %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b -// CHECK:STDOUT: %a.ref.loc45: ref %C = name_ref a, %a +// CHECK:STDOUT: %a.ref.loc46: ref %C = name_ref a, %a // CHECK:STDOUT: %Op.bound: = bound_method %a.var, constants.%Op.5d7 // CHECK:STDOUT: %Op.specific_fn: = specific_function constants.%Op.5d7, @Op.10(constants.%C) [concrete = constants.%Op.specific_fn] // CHECK:STDOUT: %bound_method: = bound_method %a.var, %Op.specific_fn diff --git a/toolchain/check/testdata/operators/overloaded/fail_no_impl_for_arg.carbon b/toolchain/check/testdata/operators/overloaded/fail_no_impl_for_arg.carbon index 7de92248798b..5a9714c9175e 100644 --- a/toolchain/check/testdata/operators/overloaded/fail_no_impl_for_arg.carbon +++ b/toolchain/check/testdata/operators/overloaded/fail_no_impl_for_arg.carbon @@ -2,6 +2,8 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon +// // AUTOUPDATE // TIP: To test this file alone, run: // TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/check/testdata/operators/overloaded/fail_no_impl_for_arg.carbon diff --git a/toolchain/check/testdata/operators/overloaded/inc.carbon b/toolchain/check/testdata/operators/overloaded/inc.carbon index e308bda596c6..6f3ca19ce9a9 100644 --- a/toolchain/check/testdata/operators/overloaded/inc.carbon +++ b/toolchain/check/testdata/operators/overloaded/inc.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // @@ -37,7 +38,7 @@ fn TestOp() { // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete] // CHECK:STDOUT: %Inc.impl_witness: = impl_witness file.%Inc.impl_witness_table [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.type.73a: type = fn_type @Op.loc21 [concrete] +// CHECK:STDOUT: %Op.type.73a: type = fn_type @Op.loc22 [concrete] // CHECK:STDOUT: %Op.0c9: %Op.type.73a = struct_value () [concrete] // CHECK:STDOUT: %Inc.facet: %Inc.type = facet_value %C, (%Inc.impl_witness) [concrete] // CHECK:STDOUT: %.bc7: type = fn_type_with_self_type %Op.type.e3a, %Inc.facet [concrete] @@ -51,9 +52,9 @@ fn TestOp() { // CHECK:STDOUT: // CHECK:STDOUT: %c.ref: ref %C = name_ref c, %c // CHECK:STDOUT: %impl.elem0: %.bc7 = impl_witness_access constants.%Inc.impl_witness, element0 [concrete = constants.%Op.0c9] -// CHECK:STDOUT: %bound_method.loc27: = bound_method %c.ref, %impl.elem0 -// CHECK:STDOUT: %addr.loc27: %ptr.019 = addr_of %c.ref -// CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method.loc27(%addr.loc27) +// CHECK:STDOUT: %bound_method.loc28: = bound_method %c.ref, %impl.elem0 +// CHECK:STDOUT: %addr.loc28: %ptr.019 = addr_of %c.ref +// CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method.loc28(%addr.loc28) // CHECK:STDOUT: // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/operators/overloaded/index_with_prelude.carbon b/toolchain/check/testdata/operators/overloaded/index_with_prelude.carbon index 433cce7a5b5e..eb3bce339e7e 100644 --- a/toolchain/check/testdata/operators/overloaded/index_with_prelude.carbon +++ b/toolchain/check/testdata/operators/overloaded/index_with_prelude.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // diff --git a/toolchain/check/testdata/operators/overloaded/left_shift.carbon b/toolchain/check/testdata/operators/overloaded/left_shift.carbon index 6c6264d7ad2d..bf482877f99a 100644 --- a/toolchain/check/testdata/operators/overloaded/left_shift.carbon +++ b/toolchain/check/testdata/operators/overloaded/left_shift.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // @@ -46,14 +47,14 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %LeftShiftWith.type.f92: type = facet_type <@LeftShiftWith, @LeftShiftWith(%C)> [concrete] // CHECK:STDOUT: %Op.type.097: type = fn_type @Op.1, @LeftShiftWith(%C) [concrete] // CHECK:STDOUT: %LeftShiftWith.impl_witness: = impl_witness file.%LeftShiftWith.impl_witness_table [concrete] -// CHECK:STDOUT: %Op.type.be6: type = fn_type @Op.loc21 [concrete] +// CHECK:STDOUT: %Op.type.be6: type = fn_type @Op.loc22 [concrete] // CHECK:STDOUT: %Op.4d9: %Op.type.be6 = struct_value () [concrete] // CHECK:STDOUT: %LeftShiftWith.facet.662: %LeftShiftWith.type.f92 = facet_value %C, (%LeftShiftWith.impl_witness) [concrete] // CHECK:STDOUT: %LeftShiftAssignWith.type.56d: type = facet_type <@LeftShiftAssignWith, @LeftShiftAssignWith(%C)> [concrete] // CHECK:STDOUT: %Op.type.30f: type = fn_type @Op.6, @LeftShiftAssignWith(%C) [concrete] // CHECK:STDOUT: %LeftShiftAssignWith.impl_witness: = impl_witness file.%LeftShiftAssignWith.impl_witness_table [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.type.b1b6: type = fn_type @Op.loc26 [concrete] +// CHECK:STDOUT: %Op.type.b1b6: type = fn_type @Op.loc27 [concrete] // CHECK:STDOUT: %Op.07c: %Op.type.b1b6 = struct_value () [concrete] // CHECK:STDOUT: %LeftShiftAssignWith.facet: %LeftShiftAssignWith.type.56d = facet_value %C, (%LeftShiftAssignWith.impl_witness) [concrete] // CHECK:STDOUT: %.cd9: type = fn_type_with_self_type %Op.type.097, %LeftShiftWith.facet.662 [concrete] @@ -68,9 +69,9 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b // CHECK:STDOUT: %impl.elem1: %.cd9 = impl_witness_access constants.%LeftShiftWith.impl_witness, element1 [concrete = constants.%Op.4d9] -// CHECK:STDOUT: %bound_method.loc31: = bound_method %a.ref, %impl.elem1 +// CHECK:STDOUT: %bound_method.loc32: = bound_method %a.ref, %impl.elem1 // CHECK:STDOUT: -// CHECK:STDOUT: %Op.call: init %C = call %bound_method.loc31(%a.ref, %b.ref) to %.loc29 +// CHECK:STDOUT: %Op.call: init %C = call %bound_method.loc32(%a.ref, %b.ref) to %.loc30 // CHECK:STDOUT: // CHECK:STDOUT: return %Op.call to %return // CHECK:STDOUT: } @@ -78,11 +79,11 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: fn @TestAssign(%a.param: %ptr.019, %b.param: %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %ptr.019 = name_ref a, %a -// CHECK:STDOUT: %.loc37: ref %C = deref %a.ref +// CHECK:STDOUT: %.loc38: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b // CHECK:STDOUT: %impl.elem0: %.97b = impl_witness_access constants.%LeftShiftAssignWith.impl_witness, element0 [concrete = constants.%Op.07c] -// CHECK:STDOUT: %bound_method: = bound_method %.loc37, %impl.elem0 -// CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc37 +// CHECK:STDOUT: %bound_method: = bound_method %.loc38, %impl.elem0 +// CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc38 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method(%addr, %b.ref) // CHECK:STDOUT: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/overloaded/mod.carbon b/toolchain/check/testdata/operators/overloaded/mod.carbon index cbcd1aec2c03..beee743dd6e1 100644 --- a/toolchain/check/testdata/operators/overloaded/mod.carbon +++ b/toolchain/check/testdata/operators/overloaded/mod.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // @@ -46,14 +47,14 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %ModWith.type.4d0: type = facet_type <@ModWith, @ModWith(%C)> [concrete] // CHECK:STDOUT: %Op.type.140: type = fn_type @Op.1, @ModWith(%C) [concrete] // CHECK:STDOUT: %ModWith.impl_witness: = impl_witness file.%ModWith.impl_witness_table [concrete] -// CHECK:STDOUT: %Op.type.0ad: type = fn_type @Op.loc21 [concrete] +// CHECK:STDOUT: %Op.type.0ad: type = fn_type @Op.loc22 [concrete] // CHECK:STDOUT: %Op.d57: %Op.type.0ad = struct_value () [concrete] // CHECK:STDOUT: %ModWith.facet.517: %ModWith.type.4d0 = facet_value %C, (%ModWith.impl_witness) [concrete] // CHECK:STDOUT: %ModAssignWith.type.8eb: type = facet_type <@ModAssignWith, @ModAssignWith(%C)> [concrete] // CHECK:STDOUT: %Op.type.dd0: type = fn_type @Op.6, @ModAssignWith(%C) [concrete] // CHECK:STDOUT: %ModAssignWith.impl_witness: = impl_witness file.%ModAssignWith.impl_witness_table [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.type.4dd: type = fn_type @Op.loc26 [concrete] +// CHECK:STDOUT: %Op.type.4dd: type = fn_type @Op.loc27 [concrete] // CHECK:STDOUT: %Op.4f0: %Op.type.4dd = struct_value () [concrete] // CHECK:STDOUT: %ModAssignWith.facet: %ModAssignWith.type.8eb = facet_value %C, (%ModAssignWith.impl_witness) [concrete] // CHECK:STDOUT: %.f08: type = fn_type_with_self_type %Op.type.140, %ModWith.facet.517 [concrete] @@ -68,9 +69,9 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b // CHECK:STDOUT: %impl.elem1: %.f08 = impl_witness_access constants.%ModWith.impl_witness, element1 [concrete = constants.%Op.d57] -// CHECK:STDOUT: %bound_method.loc31: = bound_method %a.ref, %impl.elem1 +// CHECK:STDOUT: %bound_method.loc32: = bound_method %a.ref, %impl.elem1 // CHECK:STDOUT: -// CHECK:STDOUT: %Op.call: init %C = call %bound_method.loc31(%a.ref, %b.ref) to %.loc29 +// CHECK:STDOUT: %Op.call: init %C = call %bound_method.loc32(%a.ref, %b.ref) to %.loc30 // CHECK:STDOUT: // CHECK:STDOUT: return %Op.call to %return // CHECK:STDOUT: } @@ -78,11 +79,11 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: fn @TestAssign(%a.param: %ptr.019, %b.param: %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %ptr.019 = name_ref a, %a -// CHECK:STDOUT: %.loc37: ref %C = deref %a.ref +// CHECK:STDOUT: %.loc38: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b // CHECK:STDOUT: %impl.elem0: %.f3c = impl_witness_access constants.%ModAssignWith.impl_witness, element0 [concrete = constants.%Op.4f0] -// CHECK:STDOUT: %bound_method: = bound_method %.loc37, %impl.elem0 -// CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc37 +// CHECK:STDOUT: %bound_method: = bound_method %.loc38, %impl.elem0 +// CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc38 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method(%addr, %b.ref) // CHECK:STDOUT: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/overloaded/mul.carbon b/toolchain/check/testdata/operators/overloaded/mul.carbon index 3d756c206fa2..836f85fb9a5a 100644 --- a/toolchain/check/testdata/operators/overloaded/mul.carbon +++ b/toolchain/check/testdata/operators/overloaded/mul.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // @@ -46,14 +47,14 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %MulWith.type.3ed: type = facet_type <@MulWith, @MulWith(%C)> [concrete] // CHECK:STDOUT: %Op.type.2c9: type = fn_type @Op.1, @MulWith(%C) [concrete] // CHECK:STDOUT: %MulWith.impl_witness: = impl_witness file.%MulWith.impl_witness_table [concrete] -// CHECK:STDOUT: %Op.type.304: type = fn_type @Op.loc21 [concrete] +// CHECK:STDOUT: %Op.type.304: type = fn_type @Op.loc22 [concrete] // CHECK:STDOUT: %Op.7af: %Op.type.304 = struct_value () [concrete] // CHECK:STDOUT: %MulWith.facet.6c2: %MulWith.type.3ed = facet_value %C, (%MulWith.impl_witness) [concrete] // CHECK:STDOUT: %MulAssignWith.type.a15: type = facet_type <@MulAssignWith, @MulAssignWith(%C)> [concrete] // CHECK:STDOUT: %Op.type.5c8: type = fn_type @Op.6, @MulAssignWith(%C) [concrete] // CHECK:STDOUT: %MulAssignWith.impl_witness: = impl_witness file.%MulAssignWith.impl_witness_table [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.type.e9a: type = fn_type @Op.loc26 [concrete] +// CHECK:STDOUT: %Op.type.e9a: type = fn_type @Op.loc27 [concrete] // CHECK:STDOUT: %Op.d43: %Op.type.e9a = struct_value () [concrete] // CHECK:STDOUT: %MulAssignWith.facet: %MulAssignWith.type.a15 = facet_value %C, (%MulAssignWith.impl_witness) [concrete] // CHECK:STDOUT: %.6ce: type = fn_type_with_self_type %Op.type.2c9, %MulWith.facet.6c2 [concrete] @@ -68,9 +69,9 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b // CHECK:STDOUT: %impl.elem1: %.6ce = impl_witness_access constants.%MulWith.impl_witness, element1 [concrete = constants.%Op.7af] -// CHECK:STDOUT: %bound_method.loc31: = bound_method %a.ref, %impl.elem1 +// CHECK:STDOUT: %bound_method.loc32: = bound_method %a.ref, %impl.elem1 // CHECK:STDOUT: -// CHECK:STDOUT: %Op.call: init %C = call %bound_method.loc31(%a.ref, %b.ref) to %.loc29 +// CHECK:STDOUT: %Op.call: init %C = call %bound_method.loc32(%a.ref, %b.ref) to %.loc30 // CHECK:STDOUT: // CHECK:STDOUT: return %Op.call to %return // CHECK:STDOUT: } @@ -78,11 +79,11 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: fn @TestAssign(%a.param: %ptr.019, %b.param: %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %ptr.019 = name_ref a, %a -// CHECK:STDOUT: %.loc37: ref %C = deref %a.ref +// CHECK:STDOUT: %.loc38: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b // CHECK:STDOUT: %impl.elem0: %.5e8 = impl_witness_access constants.%MulAssignWith.impl_witness, element0 [concrete = constants.%Op.d43] -// CHECK:STDOUT: %bound_method: = bound_method %.loc37, %impl.elem0 -// CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc37 +// CHECK:STDOUT: %bound_method: = bound_method %.loc38, %impl.elem0 +// CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc38 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method(%addr, %b.ref) // CHECK:STDOUT: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/overloaded/ordered.carbon b/toolchain/check/testdata/operators/overloaded/ordered.carbon index 941e5a5b16af..296e7717e9a6 100644 --- a/toolchain/check/testdata/operators/overloaded/ordered.carbon +++ b/toolchain/check/testdata/operators/overloaded/ordered.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // diff --git a/toolchain/check/testdata/operators/overloaded/right_shift.carbon b/toolchain/check/testdata/operators/overloaded/right_shift.carbon index 6ecd6fa42d84..21236dc0a917 100644 --- a/toolchain/check/testdata/operators/overloaded/right_shift.carbon +++ b/toolchain/check/testdata/operators/overloaded/right_shift.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // @@ -46,14 +47,14 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %RightShiftWith.type.bd6: type = facet_type <@RightShiftWith, @RightShiftWith(%C)> [concrete] // CHECK:STDOUT: %Op.type.19b: type = fn_type @Op.1, @RightShiftWith(%C) [concrete] // CHECK:STDOUT: %RightShiftWith.impl_witness: = impl_witness file.%RightShiftWith.impl_witness_table [concrete] -// CHECK:STDOUT: %Op.type.873: type = fn_type @Op.loc21 [concrete] +// CHECK:STDOUT: %Op.type.873: type = fn_type @Op.loc22 [concrete] // CHECK:STDOUT: %Op.909: %Op.type.873 = struct_value () [concrete] // CHECK:STDOUT: %RightShiftWith.facet.fb0: %RightShiftWith.type.bd6 = facet_value %C, (%RightShiftWith.impl_witness) [concrete] // CHECK:STDOUT: %RightShiftAssignWith.type.cd0: type = facet_type <@RightShiftAssignWith, @RightShiftAssignWith(%C)> [concrete] // CHECK:STDOUT: %Op.type.ae9: type = fn_type @Op.6, @RightShiftAssignWith(%C) [concrete] // CHECK:STDOUT: %RightShiftAssignWith.impl_witness: = impl_witness file.%RightShiftAssignWith.impl_witness_table [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.type.e0c: type = fn_type @Op.loc26 [concrete] +// CHECK:STDOUT: %Op.type.e0c: type = fn_type @Op.loc27 [concrete] // CHECK:STDOUT: %Op.6a2: %Op.type.e0c = struct_value () [concrete] // CHECK:STDOUT: %RightShiftAssignWith.facet: %RightShiftAssignWith.type.cd0 = facet_value %C, (%RightShiftAssignWith.impl_witness) [concrete] // CHECK:STDOUT: %.982: type = fn_type_with_self_type %Op.type.19b, %RightShiftWith.facet.fb0 [concrete] @@ -68,9 +69,9 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b // CHECK:STDOUT: %impl.elem1: %.982 = impl_witness_access constants.%RightShiftWith.impl_witness, element1 [concrete = constants.%Op.909] -// CHECK:STDOUT: %bound_method.loc31: = bound_method %a.ref, %impl.elem1 +// CHECK:STDOUT: %bound_method.loc32: = bound_method %a.ref, %impl.elem1 // CHECK:STDOUT: -// CHECK:STDOUT: %Op.call: init %C = call %bound_method.loc31(%a.ref, %b.ref) to %.loc29 +// CHECK:STDOUT: %Op.call: init %C = call %bound_method.loc32(%a.ref, %b.ref) to %.loc30 // CHECK:STDOUT: // CHECK:STDOUT: return %Op.call to %return // CHECK:STDOUT: } @@ -78,11 +79,11 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: fn @TestAssign(%a.param: %ptr.019, %b.param: %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %ptr.019 = name_ref a, %a -// CHECK:STDOUT: %.loc37: ref %C = deref %a.ref +// CHECK:STDOUT: %.loc38: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b // CHECK:STDOUT: %impl.elem0: %.d41 = impl_witness_access constants.%RightShiftAssignWith.impl_witness, element0 [concrete = constants.%Op.6a2] -// CHECK:STDOUT: %bound_method: = bound_method %.loc37, %impl.elem0 -// CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc37 +// CHECK:STDOUT: %bound_method: = bound_method %.loc38, %impl.elem0 +// CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc38 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method(%addr, %b.ref) // CHECK:STDOUT: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/operators/overloaded/sub.carbon b/toolchain/check/testdata/operators/overloaded/sub.carbon index 225aa4369281..beda48948d63 100644 --- a/toolchain/check/testdata/operators/overloaded/sub.carbon +++ b/toolchain/check/testdata/operators/overloaded/sub.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // @@ -46,14 +47,14 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %SubWith.type.d29: type = facet_type <@SubWith, @SubWith(%C)> [concrete] // CHECK:STDOUT: %Op.type.fc0: type = fn_type @Op.1, @SubWith(%C) [concrete] // CHECK:STDOUT: %SubWith.impl_witness: = impl_witness file.%SubWith.impl_witness_table [concrete] -// CHECK:STDOUT: %Op.type.3fa: type = fn_type @Op.loc21 [concrete] +// CHECK:STDOUT: %Op.type.3fa: type = fn_type @Op.loc22 [concrete] // CHECK:STDOUT: %Op.5e4: %Op.type.3fa = struct_value () [concrete] // CHECK:STDOUT: %SubWith.facet.0b6: %SubWith.type.d29 = facet_value %C, (%SubWith.impl_witness) [concrete] // CHECK:STDOUT: %SubAssignWith.type.df6: type = facet_type <@SubAssignWith, @SubAssignWith(%C)> [concrete] // CHECK:STDOUT: %Op.type.ffe: type = fn_type @Op.6, @SubAssignWith(%C) [concrete] // CHECK:STDOUT: %SubAssignWith.impl_witness: = impl_witness file.%SubAssignWith.impl_witness_table [concrete] // CHECK:STDOUT: %ptr.019: type = ptr_type %C [concrete] -// CHECK:STDOUT: %Op.type.26d: type = fn_type @Op.loc26 [concrete] +// CHECK:STDOUT: %Op.type.26d: type = fn_type @Op.loc27 [concrete] // CHECK:STDOUT: %Op.f7d: %Op.type.26d = struct_value () [concrete] // CHECK:STDOUT: %SubAssignWith.facet: %SubAssignWith.type.df6 = facet_value %C, (%SubAssignWith.impl_witness) [concrete] // CHECK:STDOUT: %.71c: type = fn_type_with_self_type %Op.type.fc0, %SubWith.facet.0b6 [concrete] @@ -68,9 +69,9 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: %a.ref: %C = name_ref a, %a // CHECK:STDOUT: %b.ref: %C = name_ref b, %b // CHECK:STDOUT: %impl.elem1: %.71c = impl_witness_access constants.%SubWith.impl_witness, element1 [concrete = constants.%Op.5e4] -// CHECK:STDOUT: %bound_method.loc31: = bound_method %a.ref, %impl.elem1 +// CHECK:STDOUT: %bound_method.loc32: = bound_method %a.ref, %impl.elem1 // CHECK:STDOUT: -// CHECK:STDOUT: %Op.call: init %C = call %bound_method.loc31(%a.ref, %b.ref) to %.loc29 +// CHECK:STDOUT: %Op.call: init %C = call %bound_method.loc32(%a.ref, %b.ref) to %.loc30 // CHECK:STDOUT: // CHECK:STDOUT: return %Op.call to %return // CHECK:STDOUT: } @@ -78,11 +79,11 @@ fn TestAssign(a: C*, b: C) { // CHECK:STDOUT: fn @TestAssign(%a.param: %ptr.019, %b.param: %C) { // CHECK:STDOUT: !entry: // CHECK:STDOUT: %a.ref: %ptr.019 = name_ref a, %a -// CHECK:STDOUT: %.loc37: ref %C = deref %a.ref +// CHECK:STDOUT: %.loc38: ref %C = deref %a.ref // CHECK:STDOUT: %b.ref: %C = name_ref b, %b // CHECK:STDOUT: %impl.elem0: %.647 = impl_witness_access constants.%SubAssignWith.impl_witness, element0 [concrete = constants.%Op.f7d] -// CHECK:STDOUT: %bound_method: = bound_method %.loc37, %impl.elem0 -// CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc37 +// CHECK:STDOUT: %bound_method: = bound_method %.loc38, %impl.elem0 +// CHECK:STDOUT: %addr: %ptr.019 = addr_of %.loc38 // CHECK:STDOUT: %Op.call: init %empty_tuple.type = call %bound_method(%addr, %b.ref) // CHECK:STDOUT: // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/packages/fail_import_type_error.carbon b/toolchain/check/testdata/packages/fail_import_type_error.carbon index 7128caeb6316..d21c7fa69cac 100644 --- a/toolchain/check/testdata/packages/fail_import_type_error.carbon +++ b/toolchain/check/testdata/packages/fail_import_type_error.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/int.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // @@ -125,7 +126,7 @@ var d: i32 = d_ref; // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/types/int, Int, loaded [concrete = constants.%Int.generic] +// CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/packages/fail_name_with_import_failure.carbon b/toolchain/check/testdata/packages/fail_name_with_import_failure.carbon index fba50ae330d2..5586984ab016 100644 --- a/toolchain/check/testdata/packages/fail_name_with_import_failure.carbon +++ b/toolchain/check/testdata/packages/fail_name_with_import_failure.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/none.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // @@ -28,22 +29,13 @@ var a: () = A(); // CHECK:STDOUT: %pattern_type: type = pattern_type %empty_tuple.type [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core: = namespace file.%Core.import, [concrete] { -// CHECK:STDOUT: import Core//prelude -// CHECK:STDOUT: import Core//prelude/... -// CHECK:STDOUT: } -// CHECK:STDOUT: } -// CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { -// CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .a = %a // CHECK:STDOUT: .A = // CHECK:STDOUT: has_error // CHECK:STDOUT: } // CHECK:STDOUT: %default.import = import -// CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %a.patt: %pattern_type = binding_pattern a [concrete] // CHECK:STDOUT: %a.var_patt: %pattern_type = var_pattern %a.patt [concrete] diff --git a/toolchain/check/testdata/packages/loaded_global.carbon b/toolchain/check/testdata/packages/loaded_global.carbon index 9efc62c3470e..fb89935ce061 100644 --- a/toolchain/check/testdata/packages/loaded_global.carbon +++ b/toolchain/check/testdata/packages/loaded_global.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/none.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // @@ -48,19 +49,10 @@ var package_b: () = package.B(); // CHECK:STDOUT: %A: %A.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core: = namespace file.%Core.import, [concrete] { -// CHECK:STDOUT: import Core//prelude -// CHECK:STDOUT: import Core//prelude/... -// CHECK:STDOUT: } -// CHECK:STDOUT: } -// CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { -// CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .A = %A.decl // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: @@ -77,22 +69,16 @@ var package_b: () = package.B(); // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Implicit.A: %A.type = import_ref Implicit//default, A, loaded [concrete = constants.%A] -// CHECK:STDOUT: %Core: = namespace file.%Core.import, [concrete] { -// CHECK:STDOUT: import Core//prelude -// CHECK:STDOUT: import Core//prelude/... -// CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .A = imports.%Implicit.A -// CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .a = %a // CHECK:STDOUT: .package_a = %package_a // CHECK:STDOUT: } // CHECK:STDOUT: %Implicit.import = import Implicit // CHECK:STDOUT: %default.import = import -// CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %a.patt: %pattern_type = binding_pattern a [concrete] // CHECK:STDOUT: %a.var_patt: %pattern_type = var_pattern %a.patt [concrete] @@ -136,19 +122,10 @@ var package_b: () = package.B(); // CHECK:STDOUT: %B: %B.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core: = namespace file.%Core.import, [concrete] { -// CHECK:STDOUT: import Core//prelude -// CHECK:STDOUT: import Core//prelude/... -// CHECK:STDOUT: } -// CHECK:STDOUT: } -// CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { -// CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .B = %B.decl // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [concrete = constants.%B] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: @@ -165,20 +142,14 @@ var package_b: () = package.B(); // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %SamePackage.B: %B.type = import_ref SamePackage//default, B, loaded [concrete = constants.%B] -// CHECK:STDOUT: %Core: = namespace file.%Core.import, [concrete] { -// CHECK:STDOUT: import Core//prelude -// CHECK:STDOUT: import Core//prelude/... -// CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .B = imports.%SamePackage.B -// CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .b = %b // CHECK:STDOUT: .package_b = %package_b // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %default.import = import // CHECK:STDOUT: name_binding_decl { // CHECK:STDOUT: %b.patt: %pattern_type = binding_pattern b [concrete] diff --git a/toolchain/check/testdata/packages/unused_lazy_import.carbon b/toolchain/check/testdata/packages/unused_lazy_import.carbon index d2fad6fba9bf..8c4465a5182b 100644 --- a/toolchain/check/testdata/packages/unused_lazy_import.carbon +++ b/toolchain/check/testdata/packages/unused_lazy_import.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/none.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // @@ -28,19 +29,10 @@ impl package Implicit; // CHECK:STDOUT: %A: %A.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core: = namespace file.%Core.import, [concrete] { -// CHECK:STDOUT: import Core//prelude -// CHECK:STDOUT: import Core//prelude/... -// CHECK:STDOUT: } -// CHECK:STDOUT: } -// CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { -// CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .A = %A.decl // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [concrete = constants.%A] {} {} // CHECK:STDOUT: } // CHECK:STDOUT: @@ -50,19 +42,13 @@ impl package Implicit; // CHECK:STDOUT: // CHECK:STDOUT: imports { // CHECK:STDOUT: %Implicit.A = import_ref Implicit//default, A, unloaded -// CHECK:STDOUT: %Core: = namespace file.%Core.import, [concrete] { -// CHECK:STDOUT: import Core//prelude -// CHECK:STDOUT: import Core//prelude/... -// CHECK:STDOUT: } // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { // CHECK:STDOUT: .A = imports.%Implicit.A -// CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: } // CHECK:STDOUT: %Implicit.import = import Implicit // CHECK:STDOUT: %default.import = import -// CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/check/testdata/return/fail_missing_return_empty_tuple.carbon b/toolchain/check/testdata/return/fail_missing_return_empty_tuple.carbon index bee2f558704a..ca695389a84d 100644 --- a/toolchain/check/testdata/return/fail_missing_return_empty_tuple.carbon +++ b/toolchain/check/testdata/return/fail_missing_return_empty_tuple.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/none.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // @@ -27,25 +28,16 @@ fn F() -> () { // CHECK:STDOUT: %F: %F.type = struct_value () [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: -// CHECK:STDOUT: imports { -// CHECK:STDOUT: %Core: = namespace file.%Core.import, [concrete] { -// CHECK:STDOUT: import Core//prelude -// CHECK:STDOUT: import Core//prelude/... -// CHECK:STDOUT: } -// CHECK:STDOUT: } -// CHECK:STDOUT: // CHECK:STDOUT: file { // CHECK:STDOUT: package: = namespace [concrete] { -// CHECK:STDOUT: .Core = imports.%Core // CHECK:STDOUT: .F = %F.decl // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.import = import Core // CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] { // CHECK:STDOUT: %return.patt: %pattern_type = return_slot_pattern [concrete] // CHECK:STDOUT: %return.param_patt: %pattern_type = out_param_pattern %return.patt, call_param0 [concrete] // CHECK:STDOUT: } { -// CHECK:STDOUT: %.loc14_12.1: %empty_tuple.type = tuple_literal () -// CHECK:STDOUT: %.loc14_12.2: type = converted %.loc14_12.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] +// CHECK:STDOUT: %.loc15_12.1: %empty_tuple.type = tuple_literal () +// CHECK:STDOUT: %.loc15_12.2: type = converted %.loc15_12.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type] // CHECK:STDOUT: %return.param: ref %empty_tuple.type = out_param call_param0 // CHECK:STDOUT: %return: ref %empty_tuple.type = return_slot %return.param // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/return/fail_return_var_no_returned_var.carbon b/toolchain/check/testdata/return/fail_return_var_no_returned_var.carbon index a3c577fe0e15..77140acef868 100644 --- a/toolchain/check/testdata/return/fail_return_var_no_returned_var.carbon +++ b/toolchain/check/testdata/return/fail_return_var_no_returned_var.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/int.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // @@ -37,7 +38,7 @@ fn Procedure() -> i32 { // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/types/int, Int, loaded [concrete = constants.%Int.generic] +// CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { diff --git a/toolchain/check/testdata/struct/fail_type_assign.carbon b/toolchain/check/testdata/struct/fail_type_assign.carbon index 359d022b3752..4acb54331f98 100644 --- a/toolchain/check/testdata/struct/fail_type_assign.carbon +++ b/toolchain/check/testdata/struct/fail_type_assign.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/int.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // @@ -40,8 +41,8 @@ var x: {.a: i32} = {.a: i32}; // CHECK:STDOUT: import Core//prelude // CHECK:STDOUT: import Core//prelude/... // CHECK:STDOUT: } -// CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/types/int, Int, loaded [concrete = constants.%Int.generic] -// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.cc7 = import_ref Core//prelude/operators/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] +// CHECK:STDOUT: %Core.Int: %Int.type = import_ref Core//prelude/parts/int, Int, loaded [concrete = constants.%Int.generic] +// CHECK:STDOUT: %Core.ImplicitAs: %ImplicitAs.type.cc7 = import_ref Core//prelude/parts/as, ImplicitAs, loaded [concrete = constants.%ImplicitAs.generic] // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: file { @@ -55,7 +56,7 @@ var x: {.a: i32} = {.a: i32}; // CHECK:STDOUT: %x.var_patt: %pattern_type.268 = var_pattern %x.patt [concrete] // CHECK:STDOUT: } // CHECK:STDOUT: %x.var: ref %struct_type.a = var %x.var_patt [concrete] -// CHECK:STDOUT: %.loc21: type = splice_block %struct_type.a [concrete = constants.%struct_type.a] { +// CHECK:STDOUT: %.loc22: type = splice_block %struct_type.a [concrete = constants.%struct_type.a] { // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %i32} [concrete = constants.%struct_type.a] @@ -68,7 +69,7 @@ var x: {.a: i32} = {.a: i32}; // CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [concrete = constants.%int_32] // CHECK:STDOUT: %i32: type = class_type @Int, @Int(constants.%int_32) [concrete = constants.%i32] // CHECK:STDOUT: %struct_type.a: type = struct_type {.a: %i32} [concrete = constants.%struct_type.a] -// CHECK:STDOUT: %.loc21: %struct_type.a = converted %struct_type.a, [concrete = ] +// CHECK:STDOUT: %.loc22: %struct_type.a = converted %struct_type.a, [concrete = ] // CHECK:STDOUT: assign file.%x.var, // CHECK:STDOUT: return // CHECK:STDOUT: } diff --git a/toolchain/check/testdata/var/fail_not_copyable.carbon b/toolchain/check/testdata/var/fail_not_copyable.carbon index 3f33befe4816..2b094f129f82 100644 --- a/toolchain/check/testdata/var/fail_not_copyable.carbon +++ b/toolchain/check/testdata/var/fail_not_copyable.carbon @@ -2,6 +2,7 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only". // EXTRA-ARGS: --dump-sem-ir-ranges=if-present // @@ -76,7 +77,7 @@ fn F(x: X) { // CHECK:STDOUT: %x.param_patt: %pattern_type.019 = value_param_pattern %x.patt, call_param0 [concrete] // CHECK:STDOUT: } { // CHECK:STDOUT: %x.param: %X = value_param call_param0 -// CHECK:STDOUT: %X.ref.loc17: type = name_ref X, file.%X.decl [concrete = constants.%X] +// CHECK:STDOUT: %X.ref.loc18: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %x: %X = bind_name x, %x.param // CHECK:STDOUT: } // CHECK:STDOUT: } @@ -107,18 +108,18 @@ fn F(x: X) { // CHECK:STDOUT: %y.var: ref %X = var %y.var_patt // CHECK:STDOUT: %x.ref: %X = name_ref x, %x // CHECK:STDOUT: assign %y.var, -// CHECK:STDOUT: %X.ref.loc31: type = name_ref X, file.%X.decl [concrete = constants.%X] +// CHECK:STDOUT: %X.ref.loc32: type = name_ref X, file.%X.decl [concrete = constants.%X] // CHECK:STDOUT: %y: ref %X = bind_name y, %y.var -// CHECK:STDOUT: %Op.bound.loc31: = bound_method %y.var, constants.%Op.33a +// CHECK:STDOUT: %Op.bound.loc32: = bound_method %y.var, constants.%Op.33a // CHECK:STDOUT: %Op.specific_fn.1: = specific_function constants.%Op.33a, @Op.2(constants.%X) [concrete = constants.%Op.specific_fn.d1f] -// CHECK:STDOUT: %bound_method.loc31: = bound_method %y.var, %Op.specific_fn.1 -// CHECK:STDOUT: %addr.loc31: %ptr.d17 = addr_of %y.var -// CHECK:STDOUT: %no_op.loc31: init %empty_tuple.type = call %bound_method.loc31(%addr.loc31) -// CHECK:STDOUT: %Op.bound.loc24: = bound_method %s.var, constants.%Op.5ef +// CHECK:STDOUT: %bound_method.loc32: = bound_method %y.var, %Op.specific_fn.1 +// CHECK:STDOUT: %addr.loc32: %ptr.d17 = addr_of %y.var +// CHECK:STDOUT: %no_op.loc32: init %empty_tuple.type = call %bound_method.loc32(%addr.loc32) +// CHECK:STDOUT: %Op.bound.loc25: = bound_method %s.var, constants.%Op.5ef // CHECK:STDOUT: %Op.specific_fn.2: = specific_function constants.%Op.5ef, @Op.2(String) [concrete = constants.%Op.specific_fn.93f] -// CHECK:STDOUT: %bound_method.loc24: = bound_method %s.var, %Op.specific_fn.2 -// CHECK:STDOUT: %addr.loc24: %ptr.a45 = addr_of %s.var -// CHECK:STDOUT: %no_op.loc24: init %empty_tuple.type = call %bound_method.loc24(%addr.loc24) +// CHECK:STDOUT: %bound_method.loc25: = bound_method %s.var, %Op.specific_fn.2 +// CHECK:STDOUT: %addr.loc25: %ptr.a45 = addr_of %s.var +// CHECK:STDOUT: %no_op.loc25: init %empty_tuple.type = call %bound_method.loc25(%addr.loc25) // CHECK:STDOUT: return // CHECK:STDOUT: } // CHECK:STDOUT: diff --git a/toolchain/lower/testdata/builtins/int_literal.carbon b/toolchain/lower/testdata/builtins/int_literal.carbon index db93678405de..b8c3bf26dbfe 100644 --- a/toolchain/lower/testdata/builtins/int_literal.carbon +++ b/toolchain/lower/testdata/builtins/int_literal.carbon @@ -2,6 +2,8 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon +// // AUTOUPDATE // TIP: To test this file alone, run: // TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/lower/testdata/builtins/int_literal.carbon @@ -56,13 +58,13 @@ fn IntMin() -> i32 { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "int_literal.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Copy", linkageName: "_CCopy.Main", scope: null, file: !3, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Copy", linkageName: "_CCopy.Main", scope: null, file: !3, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{} -// CHECK:STDOUT: !7 = !DILocation(line: 14, column: 3, scope: !4) -// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "MinusOne", linkageName: "_CMinusOne.Main", scope: null, file: !3, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !9 = !DILocation(line: 18, column: 3, scope: !8) -// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "IntMax", linkageName: "_CIntMax.Main", scope: null, file: !3, line: 21, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !11 = !DILocation(line: 22, column: 3, scope: !10) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "IntMin", linkageName: "_CIntMin.Main", scope: null, file: !3, line: 25, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !13 = !DILocation(line: 26, column: 3, scope: !12) +// CHECK:STDOUT: !7 = !DILocation(line: 16, column: 3, scope: !4) +// CHECK:STDOUT: !8 = distinct !DISubprogram(name: "MinusOne", linkageName: "_CMinusOne.Main", scope: null, file: !3, line: 19, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !9 = !DILocation(line: 20, column: 3, scope: !8) +// CHECK:STDOUT: !10 = distinct !DISubprogram(name: "IntMax", linkageName: "_CIntMax.Main", scope: null, file: !3, line: 23, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !11 = !DILocation(line: 24, column: 3, scope: !10) +// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "IntMin", linkageName: "_CIntMin.Main", scope: null, file: !3, line: 27, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !13 = !DILocation(line: 28, column: 3, scope: !12) diff --git a/toolchain/lower/testdata/builtins/overloaded_operator.carbon b/toolchain/lower/testdata/builtins/overloaded_operator.carbon index 951091204c37..8d67c8eb1106 100644 --- a/toolchain/lower/testdata/builtins/overloaded_operator.carbon +++ b/toolchain/lower/testdata/builtins/overloaded_operator.carbon @@ -2,6 +2,8 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon +// // AUTOUPDATE // TIP: To test this file alone, run: // TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/lower/testdata/builtins/overloaded_operator.carbon @@ -17,9 +19,9 @@ fn AddThreeIntegers(a: i32, b: i32, c: i32) -> i32 { // CHECK:STDOUT: // CHECK:STDOUT: define i32 @_CAddThreeIntegers.Main(i32 %a, i32 %b, i32 %c) !dbg !4 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %int.sadd.loc12_12 = add i32 %a, %b, !dbg !7 -// CHECK:STDOUT: %int.sadd.loc12_16 = add i32 %int.sadd.loc12_12, %c, !dbg !7 -// CHECK:STDOUT: ret i32 %int.sadd.loc12_16, !dbg !8 +// CHECK:STDOUT: %int.sadd.loc14_12 = add i32 %a, %b, !dbg !7 +// CHECK:STDOUT: %int.sadd.loc14_16 = add i32 %int.sadd.loc14_12, %c, !dbg !7 +// CHECK:STDOUT: ret i32 %int.sadd.loc14_16, !dbg !8 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: !llvm.module.flags = !{!0, !1} @@ -29,8 +31,8 @@ fn AddThreeIntegers(a: i32, b: i32, c: i32) -> i32 { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "overloaded_operator.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "AddThreeIntegers", linkageName: "_CAddThreeIntegers.Main", scope: null, file: !3, line: 11, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "AddThreeIntegers", linkageName: "_CAddThreeIntegers.Main", scope: null, file: !3, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{} -// CHECK:STDOUT: !7 = !DILocation(line: 12, column: 10, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 12, column: 3, scope: !4) +// CHECK:STDOUT: !7 = !DILocation(line: 14, column: 10, scope: !4) +// CHECK:STDOUT: !8 = !DILocation(line: 14, column: 3, scope: !4) diff --git a/toolchain/lower/testdata/builtins/print_read.carbon b/toolchain/lower/testdata/builtins/print_read.carbon index 5e2b582f3977..e4695f297633 100644 --- a/toolchain/lower/testdata/builtins/print_read.carbon +++ b/toolchain/lower/testdata/builtins/print_read.carbon @@ -2,6 +2,8 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon +// // AUTOUPDATE // TIP: To test this file alone, run: // TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/lower/testdata/builtins/print_read.carbon @@ -37,16 +39,16 @@ fn Main() { // CHECK:STDOUT: // CHECK:STDOUT: while.cond: ; preds = %if.else, %entry // CHECK:STDOUT: %read.char = call i32 @getchar(), !dbg !9 -// CHECK:STDOUT: %int.neq.loc20 = icmp ne i32 %read.char, -1, !dbg !9 -// CHECK:STDOUT: br i1 %int.neq.loc20, label %while.body, label %while.done, !dbg !8 +// CHECK:STDOUT: %int.neq.loc22 = icmp ne i32 %read.char, -1, !dbg !9 +// CHECK:STDOUT: br i1 %int.neq.loc22, label %while.body, label %while.done, !dbg !8 // CHECK:STDOUT: // CHECK:STDOUT: while.body: ; preds = %while.cond -// CHECK:STDOUT: %print.char.loc22 = call i32 @putchar(i32 72), !dbg !10 -// CHECK:STDOUT: %int.neq.loc22 = icmp ne i32 %print.char.loc22, -1, !dbg !10 -// CHECK:STDOUT: br i1 %int.neq.loc22, label %if.then, label %if.else, !dbg !11 +// CHECK:STDOUT: %print.char.loc24 = call i32 @putchar(i32 72), !dbg !10 +// CHECK:STDOUT: %int.neq.loc24 = icmp ne i32 %print.char.loc24, -1, !dbg !10 +// CHECK:STDOUT: br i1 %int.neq.loc24, label %if.then, label %if.else, !dbg !11 // CHECK:STDOUT: // CHECK:STDOUT: if.then: ; preds = %while.body -// CHECK:STDOUT: %print.char.loc23 = call i32 @putchar(i32 105), !dbg !12 +// CHECK:STDOUT: %print.char.loc25 = call i32 @putchar(i32 105), !dbg !12 // CHECK:STDOUT: br label %if.else, !dbg !13 // CHECK:STDOUT: // CHECK:STDOUT: if.else: ; preds = %if.then, %while.body @@ -72,15 +74,15 @@ fn Main() { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "print_read.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !3, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Main", linkageName: "_CMain.Main", scope: null, file: !3, line: 18, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{} -// CHECK:STDOUT: !7 = !DILocation(line: 17, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 20, column: 9, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 20, column: 10, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 22, column: 9, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 22, column: 8, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 23, column: 7, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 22, column: 5, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 20, column: 3, scope: !4) -// CHECK:STDOUT: !15 = !DILocation(line: 16, column: 1, scope: !4) +// CHECK:STDOUT: !7 = !DILocation(line: 19, column: 3, scope: !4) +// CHECK:STDOUT: !8 = !DILocation(line: 22, column: 9, scope: !4) +// CHECK:STDOUT: !9 = !DILocation(line: 22, column: 10, scope: !4) +// CHECK:STDOUT: !10 = !DILocation(line: 24, column: 9, scope: !4) +// CHECK:STDOUT: !11 = !DILocation(line: 24, column: 8, scope: !4) +// CHECK:STDOUT: !12 = !DILocation(line: 25, column: 7, scope: !4) +// CHECK:STDOUT: !13 = !DILocation(line: 24, column: 5, scope: !4) +// CHECK:STDOUT: !14 = !DILocation(line: 22, column: 3, scope: !4) +// CHECK:STDOUT: !15 = !DILocation(line: 18, column: 1, scope: !4) diff --git a/toolchain/lower/testdata/for/bindings.carbon b/toolchain/lower/testdata/for/bindings.carbon index 1bc71b627b01..37f7da53c78c 100644 --- a/toolchain/lower/testdata/for/bindings.carbon +++ b/toolchain/lower/testdata/for/bindings.carbon @@ -2,6 +2,8 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon +// // AUTOUPDATE // TIP: To test this file alone, run: // TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/lower/testdata/for/bindings.carbon @@ -32,7 +34,7 @@ fn For() { // CHECK:STDOUT: ; ModuleID = 'bindings.carbon' // CHECK:STDOUT: source_filename = "bindings.carbon" // CHECK:STDOUT: -// CHECK:STDOUT: @EmptyRange.val.loc25_3 = internal constant {} zeroinitializer +// CHECK:STDOUT: @EmptyRange.val.loc27_3 = internal constant {} zeroinitializer // CHECK:STDOUT: // CHECK:STDOUT: declare void @_CF.Main(i32, ptr) // CHECK:STDOUT: @@ -40,31 +42,31 @@ fn For() { // CHECK:STDOUT: entry: // CHECK:STDOUT: %r.var = alloca {}, align 8, !dbg !7 // CHECK:STDOUT: %var = alloca {}, align 8, !dbg !8 -// CHECK:STDOUT: %.loc27_33.1.temp = alloca { i1, { i32, i32 } }, align 8, !dbg !8 +// CHECK:STDOUT: %.loc29_33.1.temp = alloca { i1, { i32, i32 } }, align 8, !dbg !8 // CHECK:STDOUT: %n.var = alloca i32, align 4, !dbg !9 -// CHECK:STDOUT: %.loc27_33.8.temp = alloca { i32, i32 }, align 8, !dbg !8 +// CHECK:STDOUT: %.loc29_33.8.temp = alloca { i32, i32 }, align 8, !dbg !8 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 0, ptr %r.var), !dbg !7 -// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %r.var, ptr align 1 @EmptyRange.val.loc25_3, i64 0, i1 false), !dbg !7 +// CHECK:STDOUT: call void @llvm.memcpy.p0.p0.i64(ptr align 1 %r.var, ptr align 1 @EmptyRange.val.loc27_3, i64 0, i1 false), !dbg !7 // CHECK:STDOUT: call void @"_CNewCursor.EmptyRange.Main:Iterate.Core.29d34654e802e24e"(ptr %r.var), !dbg !8 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 0, ptr %var), !dbg !8 // CHECK:STDOUT: br label %for.next, !dbg !8 // CHECK:STDOUT: // CHECK:STDOUT: for.next: ; preds = %for.body, %entry -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 12, ptr %.loc27_33.1.temp), !dbg !8 -// CHECK:STDOUT: call void @"_CNext.EmptyRange.Main:Iterate.Core.29d34654e802e24e"(ptr %.loc27_33.1.temp, ptr %r.var, ptr %var), !dbg !8 -// CHECK:STDOUT: %HasValue.call = call i1 @_CHasValue.Optional.Core.29d34654e802e24e(ptr %.loc27_33.1.temp), !dbg !8 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 12, ptr %.loc29_33.1.temp), !dbg !8 +// CHECK:STDOUT: call void @"_CNext.EmptyRange.Main:Iterate.Core.29d34654e802e24e"(ptr %.loc29_33.1.temp, ptr %r.var, ptr %var), !dbg !8 +// CHECK:STDOUT: %HasValue.call = call i1 @_CHasValue.Optional.Core.29d34654e802e24e(ptr %.loc29_33.1.temp), !dbg !8 // CHECK:STDOUT: br i1 %HasValue.call, label %for.body, label %for.done, !dbg !8 // CHECK:STDOUT: // CHECK:STDOUT: for.body: ; preds = %for.next // CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 4, ptr %n.var), !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 8, ptr %.loc27_33.8.temp), !dbg !8 -// CHECK:STDOUT: call void @_CGet.Optional.Core.29d34654e802e24e(ptr %.loc27_33.8.temp, ptr %.loc27_33.1.temp), !dbg !8 -// CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %.loc27_33.8.temp, i32 0, i32 0, !dbg !8 -// CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %.loc27_33.8.temp, i32 0, i32 1, !dbg !8 -// CHECK:STDOUT: %.loc27_33.11 = load i32, ptr %tuple.elem0.tuple.elem, align 4, !dbg !8 -// CHECK:STDOUT: %.loc27_33.12 = load i32, ptr %tuple.elem1.tuple.elem, align 4, !dbg !8 -// CHECK:STDOUT: store i32 %.loc27_33.12, ptr %n.var, align 4, !dbg !9 -// CHECK:STDOUT: call void @_CF.Main(i32 %.loc27_33.11, ptr %n.var), !dbg !10 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 8, ptr %.loc29_33.8.temp), !dbg !8 +// CHECK:STDOUT: call void @_CGet.Optional.Core.29d34654e802e24e(ptr %.loc29_33.8.temp, ptr %.loc29_33.1.temp), !dbg !8 +// CHECK:STDOUT: %tuple.elem0.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %.loc29_33.8.temp, i32 0, i32 0, !dbg !8 +// CHECK:STDOUT: %tuple.elem1.tuple.elem = getelementptr inbounds nuw { i32, i32 }, ptr %.loc29_33.8.temp, i32 0, i32 1, !dbg !8 +// CHECK:STDOUT: %.loc29_33.11 = load i32, ptr %tuple.elem0.tuple.elem, align 4, !dbg !8 +// CHECK:STDOUT: %.loc29_33.12 = load i32, ptr %tuple.elem1.tuple.elem, align 4, !dbg !8 +// CHECK:STDOUT: store i32 %.loc29_33.12, ptr %n.var, align 4, !dbg !9 +// CHECK:STDOUT: call void @_CF.Main(i32 %.loc29_33.11, ptr %n.var), !dbg !10 // CHECK:STDOUT: br label %for.next, !dbg !11 // CHECK:STDOUT: // CHECK:STDOUT: for.done: ; preds = %for.next @@ -118,20 +120,20 @@ fn For() { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "bindings.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "For", linkageName: "_CFor.Main", scope: null, file: !3, line: 24, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "For", linkageName: "_CFor.Main", scope: null, file: !3, line: 26, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{} -// CHECK:STDOUT: !7 = !DILocation(line: 25, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 27, column: 7, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 27, column: 17, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 28, column: 5, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 27, column: 3, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 24, column: 1, scope: !4) -// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "NewCursor", linkageName: "_CNewCursor.EmptyRange.Main:Iterate.Core.29d34654e802e24e", scope: null, file: !3, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !14 = !DILocation(line: 14, column: 7, scope: !13) -// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "Next", linkageName: "_CNext.EmptyRange.Main:Iterate.Core.29d34654e802e24e", scope: null, file: !3, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !16 = !DILocation(line: 17, column: 14, scope: !15) -// CHECK:STDOUT: !17 = !DILocation(line: 17, column: 7, scope: !15) +// CHECK:STDOUT: !7 = !DILocation(line: 27, column: 3, scope: !4) +// CHECK:STDOUT: !8 = !DILocation(line: 29, column: 7, scope: !4) +// CHECK:STDOUT: !9 = !DILocation(line: 29, column: 17, scope: !4) +// CHECK:STDOUT: !10 = !DILocation(line: 30, column: 5, scope: !4) +// CHECK:STDOUT: !11 = !DILocation(line: 29, column: 3, scope: !4) +// CHECK:STDOUT: !12 = !DILocation(line: 26, column: 1, scope: !4) +// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "NewCursor", linkageName: "_CNewCursor.EmptyRange.Main:Iterate.Core.29d34654e802e24e", scope: null, file: !3, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !14 = !DILocation(line: 16, column: 7, scope: !13) +// CHECK:STDOUT: !15 = distinct !DISubprogram(name: "Next", linkageName: "_CNext.EmptyRange.Main:Iterate.Core.29d34654e802e24e", scope: null, file: !3, line: 18, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !16 = !DILocation(line: 19, column: 14, scope: !15) +// CHECK:STDOUT: !17 = !DILocation(line: 19, column: 7, scope: !15) // CHECK:STDOUT: !18 = distinct !DISubprogram(name: "HasValue", linkageName: "_CHasValue.Optional.Core.29d34654e802e24e", scope: null, file: !19, line: 28, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !19 = !DIFile(filename: "{{.*}}/prelude/types/optional.carbon", directory: "") // CHECK:STDOUT: !20 = !DILocation(line: 28, column: 46, scope: !18) diff --git a/toolchain/lower/testdata/for/break_continue.carbon b/toolchain/lower/testdata/for/break_continue.carbon index 50cf26e88203..2e7aad68d533 100644 --- a/toolchain/lower/testdata/for/break_continue.carbon +++ b/toolchain/lower/testdata/for/break_continue.carbon @@ -2,6 +2,8 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon +// // AUTOUPDATE // TIP: To test this file alone, run: // TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/lower/testdata/for/break_continue.carbon @@ -33,42 +35,42 @@ fn For() { // CHECK:STDOUT: // CHECK:STDOUT: define void @_CFor.Main() !dbg !4 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc18_32.1.temp = alloca { i32, i32 }, align 8, !dbg !7 +// CHECK:STDOUT: %.loc20_32.1.temp = alloca { i32, i32 }, align 8, !dbg !7 // CHECK:STDOUT: %var = alloca i32, align 4, !dbg !8 -// CHECK:STDOUT: %.loc18_33.1.temp = alloca { i1, i32 }, align 8, !dbg !8 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 8, ptr %.loc18_32.1.temp), !dbg !7 -// CHECK:STDOUT: call void @_CRange.Core(ptr %.loc18_32.1.temp, i32 100), !dbg !7 -// CHECK:STDOUT: %NewCursor.call = call i32 @"_CNewCursor.IntRange.Core:Iterate.Core.be1e879c1ad406d8"(ptr %.loc18_32.1.temp), !dbg !8 +// CHECK:STDOUT: %.loc20_33.1.temp = alloca { i1, i32 }, align 8, !dbg !8 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 8, ptr %.loc20_32.1.temp), !dbg !7 +// CHECK:STDOUT: call void @_CRange.Core(ptr %.loc20_32.1.temp, i32 100), !dbg !7 +// CHECK:STDOUT: %NewCursor.call = call i32 @"_CNewCursor.IntRange.Core:Iterate.Core.be1e879c1ad406d8"(ptr %.loc20_32.1.temp), !dbg !8 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 4, ptr %var), !dbg !8 // CHECK:STDOUT: store i32 %NewCursor.call, ptr %var, align 4, !dbg !8 // CHECK:STDOUT: br label %for.next, !dbg !8 // CHECK:STDOUT: -// CHECK:STDOUT: for.next: ; preds = %if.else.loc20, %if.then.loc20, %entry -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 8, ptr %.loc18_33.1.temp), !dbg !8 -// CHECK:STDOUT: call void @"_CNext.IntRange.Core:Iterate.Core.be1e879c1ad406d8"(ptr %.loc18_33.1.temp, ptr %.loc18_32.1.temp, ptr %var), !dbg !8 -// CHECK:STDOUT: %HasValue.call = call i1 @_CHasValue.Optional.Core.b88d1103f417c6d4(ptr %.loc18_33.1.temp), !dbg !8 +// CHECK:STDOUT: for.next: ; preds = %if.else.loc22, %if.then.loc22, %entry +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 8, ptr %.loc20_33.1.temp), !dbg !8 +// CHECK:STDOUT: call void @"_CNext.IntRange.Core:Iterate.Core.be1e879c1ad406d8"(ptr %.loc20_33.1.temp, ptr %.loc20_32.1.temp, ptr %var), !dbg !8 +// CHECK:STDOUT: %HasValue.call = call i1 @_CHasValue.Optional.Core.b88d1103f417c6d4(ptr %.loc20_33.1.temp), !dbg !8 // CHECK:STDOUT: br i1 %HasValue.call, label %for.body, label %for.done, !dbg !8 // CHECK:STDOUT: // CHECK:STDOUT: for.body: ; preds = %for.next -// CHECK:STDOUT: %Get.call = call i32 @_CGet.Optional.Core.b88d1103f417c6d4(ptr %.loc18_33.1.temp), !dbg !8 +// CHECK:STDOUT: %Get.call = call i32 @_CGet.Optional.Core.b88d1103f417c6d4(ptr %.loc20_33.1.temp), !dbg !8 // CHECK:STDOUT: %F.call = call i1 @_CF.Main(), !dbg !9 -// CHECK:STDOUT: br i1 %F.call, label %if.then.loc19, label %if.else.loc19, !dbg !10 +// CHECK:STDOUT: br i1 %F.call, label %if.then.loc21, label %if.else.loc21, !dbg !10 // CHECK:STDOUT: -// CHECK:STDOUT: if.then.loc19: ; preds = %for.body +// CHECK:STDOUT: if.then.loc21: ; preds = %for.body // CHECK:STDOUT: br label %for.done, !dbg !11 // CHECK:STDOUT: -// CHECK:STDOUT: if.else.loc19: ; preds = %for.body +// CHECK:STDOUT: if.else.loc21: ; preds = %for.body // CHECK:STDOUT: %G.call = call i1 @_CG.Main(), !dbg !12 -// CHECK:STDOUT: br i1 %G.call, label %if.then.loc20, label %if.else.loc20, !dbg !13 +// CHECK:STDOUT: br i1 %G.call, label %if.then.loc22, label %if.else.loc22, !dbg !13 // CHECK:STDOUT: -// CHECK:STDOUT: if.then.loc20: ; preds = %if.else.loc19 +// CHECK:STDOUT: if.then.loc22: ; preds = %if.else.loc21 // CHECK:STDOUT: br label %for.next, !dbg !14 // CHECK:STDOUT: -// CHECK:STDOUT: if.else.loc20: ; preds = %if.else.loc19 +// CHECK:STDOUT: if.else.loc22: ; preds = %if.else.loc21 // CHECK:STDOUT: call void @_CH.Main(), !dbg !15 // CHECK:STDOUT: br label %for.next, !dbg !16 // CHECK:STDOUT: -// CHECK:STDOUT: for.done: ; preds = %if.then.loc19, %for.next +// CHECK:STDOUT: for.done: ; preds = %if.then.loc21, %for.next // CHECK:STDOUT: ret void, !dbg !17 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -162,20 +164,20 @@ fn For() { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "break_continue.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "For", linkageName: "_CFor.Main", scope: null, file: !3, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "For", linkageName: "_CFor.Main", scope: null, file: !3, line: 19, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{} -// CHECK:STDOUT: !7 = !DILocation(line: 18, column: 18, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 18, column: 7, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 19, column: 9, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 19, column: 8, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 19, column: 16, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 20, column: 9, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 20, column: 8, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 20, column: 16, scope: !4) -// CHECK:STDOUT: !15 = !DILocation(line: 21, column: 5, scope: !4) -// CHECK:STDOUT: !16 = !DILocation(line: 18, column: 3, scope: !4) -// CHECK:STDOUT: !17 = !DILocation(line: 17, column: 1, scope: !4) +// CHECK:STDOUT: !7 = !DILocation(line: 20, column: 18, scope: !4) +// CHECK:STDOUT: !8 = !DILocation(line: 20, column: 7, scope: !4) +// CHECK:STDOUT: !9 = !DILocation(line: 21, column: 9, scope: !4) +// CHECK:STDOUT: !10 = !DILocation(line: 21, column: 8, scope: !4) +// CHECK:STDOUT: !11 = !DILocation(line: 21, column: 16, scope: !4) +// CHECK:STDOUT: !12 = !DILocation(line: 22, column: 9, scope: !4) +// CHECK:STDOUT: !13 = !DILocation(line: 22, column: 8, scope: !4) +// CHECK:STDOUT: !14 = !DILocation(line: 22, column: 16, scope: !4) +// CHECK:STDOUT: !15 = !DILocation(line: 23, column: 5, scope: !4) +// CHECK:STDOUT: !16 = !DILocation(line: 20, column: 3, scope: !4) +// CHECK:STDOUT: !17 = !DILocation(line: 19, column: 1, scope: !4) // CHECK:STDOUT: !18 = distinct !DISubprogram(name: "NewCursor", linkageName: "_CNewCursor.IntRange.Core:Iterate.Core.be1e879c1ad406d8", scope: null, file: !19, line: 25, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !19 = !DIFile(filename: "{{.*}}/range.carbon", directory: "") // CHECK:STDOUT: !20 = !DILocation(line: 25, column: 51, scope: !18) diff --git a/toolchain/lower/testdata/for/for.carbon b/toolchain/lower/testdata/for/for.carbon index bc4030a0f7cf..3f37f28b9c4c 100644 --- a/toolchain/lower/testdata/for/for.carbon +++ b/toolchain/lower/testdata/for/for.carbon @@ -2,6 +2,8 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon +// // AUTOUPDATE // TIP: To test this file alone, run: // TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/lower/testdata/for/for.carbon @@ -33,25 +35,25 @@ fn For() { // CHECK:STDOUT: // CHECK:STDOUT: define void @_CFor.Main() !dbg !4 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc19_32.1.temp = alloca { i32, i32 }, align 8, !dbg !7 +// CHECK:STDOUT: %.loc21_32.1.temp = alloca { i32, i32 }, align 8, !dbg !7 // CHECK:STDOUT: %var = alloca i32, align 4, !dbg !8 -// CHECK:STDOUT: %.loc19_33.1.temp = alloca { i1, i32 }, align 8, !dbg !8 +// CHECK:STDOUT: %.loc21_33.1.temp = alloca { i1, i32 }, align 8, !dbg !8 // CHECK:STDOUT: call void @_CF.Main(), !dbg !9 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 8, ptr %.loc19_32.1.temp), !dbg !7 -// CHECK:STDOUT: call void @_CRange.Core(ptr %.loc19_32.1.temp, i32 100), !dbg !7 -// CHECK:STDOUT: %NewCursor.call = call i32 @"_CNewCursor.IntRange.Core:Iterate.Core.be1e879c1ad406d8"(ptr %.loc19_32.1.temp), !dbg !8 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 8, ptr %.loc21_32.1.temp), !dbg !7 +// CHECK:STDOUT: call void @_CRange.Core(ptr %.loc21_32.1.temp, i32 100), !dbg !7 +// CHECK:STDOUT: %NewCursor.call = call i32 @"_CNewCursor.IntRange.Core:Iterate.Core.be1e879c1ad406d8"(ptr %.loc21_32.1.temp), !dbg !8 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 4, ptr %var), !dbg !8 // CHECK:STDOUT: store i32 %NewCursor.call, ptr %var, align 4, !dbg !8 // CHECK:STDOUT: br label %for.next, !dbg !8 // CHECK:STDOUT: // CHECK:STDOUT: for.next: ; preds = %for.body, %entry -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 8, ptr %.loc19_33.1.temp), !dbg !8 -// CHECK:STDOUT: call void @"_CNext.IntRange.Core:Iterate.Core.be1e879c1ad406d8"(ptr %.loc19_33.1.temp, ptr %.loc19_32.1.temp, ptr %var), !dbg !8 -// CHECK:STDOUT: %HasValue.call = call i1 @_CHasValue.Optional.Core.b88d1103f417c6d4(ptr %.loc19_33.1.temp), !dbg !8 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 8, ptr %.loc21_33.1.temp), !dbg !8 +// CHECK:STDOUT: call void @"_CNext.IntRange.Core:Iterate.Core.be1e879c1ad406d8"(ptr %.loc21_33.1.temp, ptr %.loc21_32.1.temp, ptr %var), !dbg !8 +// CHECK:STDOUT: %HasValue.call = call i1 @_CHasValue.Optional.Core.b88d1103f417c6d4(ptr %.loc21_33.1.temp), !dbg !8 // CHECK:STDOUT: br i1 %HasValue.call, label %for.body, label %for.done, !dbg !8 // CHECK:STDOUT: // CHECK:STDOUT: for.body: ; preds = %for.next -// CHECK:STDOUT: %Get.call = call i32 @_CGet.Optional.Core.b88d1103f417c6d4(ptr %.loc19_33.1.temp), !dbg !8 +// CHECK:STDOUT: %Get.call = call i32 @_CGet.Optional.Core.b88d1103f417c6d4(ptr %.loc21_33.1.temp), !dbg !8 // CHECK:STDOUT: call void @_CG.Main(), !dbg !10 // CHECK:STDOUT: br label %for.next, !dbg !11 // CHECK:STDOUT: @@ -150,16 +152,16 @@ fn For() { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "for.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "For", linkageName: "_CFor.Main", scope: null, file: !3, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "For", linkageName: "_CFor.Main", scope: null, file: !3, line: 19, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{} -// CHECK:STDOUT: !7 = !DILocation(line: 19, column: 18, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 19, column: 7, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 18, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 20, column: 5, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 19, column: 3, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 22, column: 3, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 17, column: 1, scope: !4) +// CHECK:STDOUT: !7 = !DILocation(line: 21, column: 18, scope: !4) +// CHECK:STDOUT: !8 = !DILocation(line: 21, column: 7, scope: !4) +// CHECK:STDOUT: !9 = !DILocation(line: 20, column: 3, scope: !4) +// CHECK:STDOUT: !10 = !DILocation(line: 22, column: 5, scope: !4) +// CHECK:STDOUT: !11 = !DILocation(line: 21, column: 3, scope: !4) +// CHECK:STDOUT: !12 = !DILocation(line: 24, column: 3, scope: !4) +// CHECK:STDOUT: !13 = !DILocation(line: 19, column: 1, scope: !4) // CHECK:STDOUT: !14 = distinct !DISubprogram(name: "NewCursor", linkageName: "_CNewCursor.IntRange.Core:Iterate.Core.be1e879c1ad406d8", scope: null, file: !15, line: 25, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !15 = !DIFile(filename: "{{.*}}/range.carbon", directory: "") // CHECK:STDOUT: !16 = !DILocation(line: 25, column: 51, scope: !14) diff --git a/toolchain/lower/testdata/function/generic/call_different_impls.carbon b/toolchain/lower/testdata/function/generic/call_different_impls.carbon index 7345606a9ea5..aee76820e76c 100644 --- a/toolchain/lower/testdata/function/generic/call_different_impls.carbon +++ b/toolchain/lower/testdata/function/generic/call_different_impls.carbon @@ -2,6 +2,8 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon +// // AUTOUPDATE // TIP: To test this file alone, run: // TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/lower/testdata/function/generic/call_different_impls.carbon @@ -79,21 +81,21 @@ fn Run() { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "call_different_impls.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.X.Main:I.Main", scope: null, file: !3, line: 18, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.X.Main:I.Main", scope: null, file: !3, line: 20, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{} -// CHECK:STDOUT: !7 = !DILocation(line: 18, column: 12, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 18, column: 3, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "F", linkageName: "_CF.Y.Main:I.Main", scope: null, file: !3, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !10 = !DILocation(line: 22, column: 12, scope: !9) -// CHECK:STDOUT: !11 = !DILocation(line: 22, column: 3, scope: !9) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !3, line: 29, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !13 = !DILocation(line: 30, column: 3, scope: !12) -// CHECK:STDOUT: !14 = !DILocation(line: 31, column: 3, scope: !12) -// CHECK:STDOUT: !15 = !DILocation(line: 29, column: 1, scope: !12) -// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.2c436a64dfc3fd29", scope: null, file: !3, line: 27, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !17 = !DILocation(line: 27, column: 15, scope: !16) -// CHECK:STDOUT: !18 = !DILocation(line: 27, column: 1, scope: !16) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.c124d41ebc08c32b", scope: null, file: !3, line: 27, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !20 = !DILocation(line: 27, column: 15, scope: !19) -// CHECK:STDOUT: !21 = !DILocation(line: 27, column: 1, scope: !19) +// CHECK:STDOUT: !7 = !DILocation(line: 20, column: 12, scope: !4) +// CHECK:STDOUT: !8 = !DILocation(line: 20, column: 3, scope: !4) +// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "F", linkageName: "_CF.Y.Main:I.Main", scope: null, file: !3, line: 24, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !10 = !DILocation(line: 24, column: 12, scope: !9) +// CHECK:STDOUT: !11 = !DILocation(line: 24, column: 3, scope: !9) +// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !3, line: 31, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !13 = !DILocation(line: 32, column: 3, scope: !12) +// CHECK:STDOUT: !14 = !DILocation(line: 33, column: 3, scope: !12) +// CHECK:STDOUT: !15 = !DILocation(line: 31, column: 1, scope: !12) +// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.2c436a64dfc3fd29", scope: null, file: !3, line: 29, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !17 = !DILocation(line: 29, column: 15, scope: !16) +// CHECK:STDOUT: !18 = !DILocation(line: 29, column: 1, scope: !16) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.c124d41ebc08c32b", scope: null, file: !3, line: 29, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !20 = !DILocation(line: 29, column: 15, scope: !19) +// CHECK:STDOUT: !21 = !DILocation(line: 29, column: 1, scope: !19) diff --git a/toolchain/lower/testdata/function/generic/call_different_impls_with_const.carbon b/toolchain/lower/testdata/function/generic/call_different_impls_with_const.carbon index f599c7d39163..c95a7825b129 100644 --- a/toolchain/lower/testdata/function/generic/call_different_impls_with_const.carbon +++ b/toolchain/lower/testdata/function/generic/call_different_impls_with_const.carbon @@ -2,6 +2,8 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon +// // AUTOUPDATE // TIP: To test this file alone, run: // TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/lower/testdata/function/generic/call_different_impls_with_const.carbon @@ -68,13 +70,13 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: define linkonce_odr void @_CG.Main.ae78220c5e9d4af5() !dbg !16 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc35_20.1 = call i1 @"_CF.X.Main:I.Main"(), !dbg !17 +// CHECK:STDOUT: %.loc37_20.1 = call i1 @"_CF.X.Main:I.Main"(), !dbg !17 // CHECK:STDOUT: ret void, !dbg !18 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: define linkonce_odr void @_CG.Main.6b293b16be321a45() !dbg !19 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc35_20.1 = call i32 @"_CF.Y.Main:I.Main"(), !dbg !20 +// CHECK:STDOUT: %.loc37_20.1 = call i32 @"_CF.Y.Main:I.Main"(), !dbg !20 // CHECK:STDOUT: ret void, !dbg !21 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -88,21 +90,21 @@ fn Run() { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "call_different_impls_with_const.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.X.Main:I.Main", scope: null, file: !3, line: 19, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.X.Main:I.Main", scope: null, file: !3, line: 21, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{} -// CHECK:STDOUT: !7 = !DILocation(line: 20, column: 5, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 21, column: 5, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "F", linkageName: "_CF.Y.Main:I.Main", scope: null, file: !3, line: 26, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !10 = !DILocation(line: 27, column: 5, scope: !9) -// CHECK:STDOUT: !11 = !DILocation(line: 28, column: 5, scope: !9) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !3, line: 38, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !13 = !DILocation(line: 39, column: 3, scope: !12) -// CHECK:STDOUT: !14 = !DILocation(line: 40, column: 3, scope: !12) -// CHECK:STDOUT: !15 = !DILocation(line: 38, column: 1, scope: !12) -// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.ae78220c5e9d4af5", scope: null, file: !3, line: 34, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !17 = !DILocation(line: 35, column: 16, scope: !16) -// CHECK:STDOUT: !18 = !DILocation(line: 34, column: 1, scope: !16) -// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.6b293b16be321a45", scope: null, file: !3, line: 34, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !20 = !DILocation(line: 35, column: 16, scope: !19) -// CHECK:STDOUT: !21 = !DILocation(line: 34, column: 1, scope: !19) +// CHECK:STDOUT: !7 = !DILocation(line: 22, column: 5, scope: !4) +// CHECK:STDOUT: !8 = !DILocation(line: 23, column: 5, scope: !4) +// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "F", linkageName: "_CF.Y.Main:I.Main", scope: null, file: !3, line: 28, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !10 = !DILocation(line: 29, column: 5, scope: !9) +// CHECK:STDOUT: !11 = !DILocation(line: 30, column: 5, scope: !9) +// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !3, line: 40, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !13 = !DILocation(line: 41, column: 3, scope: !12) +// CHECK:STDOUT: !14 = !DILocation(line: 42, column: 3, scope: !12) +// CHECK:STDOUT: !15 = !DILocation(line: 40, column: 1, scope: !12) +// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.ae78220c5e9d4af5", scope: null, file: !3, line: 36, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !17 = !DILocation(line: 37, column: 16, scope: !16) +// CHECK:STDOUT: !18 = !DILocation(line: 36, column: 1, scope: !16) +// CHECK:STDOUT: !19 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.6b293b16be321a45", scope: null, file: !3, line: 36, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !20 = !DILocation(line: 37, column: 16, scope: !19) +// CHECK:STDOUT: !21 = !DILocation(line: 36, column: 1, scope: !19) diff --git a/toolchain/lower/testdata/function/generic/call_different_specific.carbon b/toolchain/lower/testdata/function/generic/call_different_specific.carbon index e257886e5793..ed7c69f37711 100644 --- a/toolchain/lower/testdata/function/generic/call_different_specific.carbon +++ b/toolchain/lower/testdata/function/generic/call_different_specific.carbon @@ -2,6 +2,8 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon +// // AUTOUPDATE // TIP: To test this file alone, run: // TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/lower/testdata/function/generic/call_different_specific.carbon @@ -57,10 +59,10 @@ fn M() { // CHECK:STDOUT: %ptr_f64.var = alloca ptr, align 8, !dbg !8 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 8, ptr %ptr_i32.var), !dbg !7 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 8, ptr %ptr_f64.var), !dbg !8 -// CHECK:STDOUT: %.loc44 = load ptr, ptr %ptr_i32.var, align 8, !dbg !9 -// CHECK:STDOUT: call void @_CF.Main.b88d1103f417c6d4(ptr %.loc44), !dbg !10 -// CHECK:STDOUT: %.loc45 = load ptr, ptr %ptr_f64.var, align 8, !dbg !11 -// CHECK:STDOUT: call void @_CF.Main.66be507887ceee78(ptr %.loc45), !dbg !12 +// CHECK:STDOUT: %.loc46 = load ptr, ptr %ptr_i32.var, align 8, !dbg !9 +// CHECK:STDOUT: call void @_CF.Main.b88d1103f417c6d4(ptr %.loc46), !dbg !10 +// CHECK:STDOUT: %.loc47 = load ptr, ptr %ptr_f64.var, align 8, !dbg !11 +// CHECK:STDOUT: call void @_CF.Main.66be507887ceee78(ptr %.loc47), !dbg !12 // CHECK:STDOUT: ret void, !dbg !13 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -88,15 +90,15 @@ fn M() { // CHECK:STDOUT: // CHECK:STDOUT: define linkonce_odr void @_CB.Main.b88d1103f417c6d4(ptr %x) !dbg !24 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc32_5.2 = load i32, ptr %x, align 4, !dbg !25 -// CHECK:STDOUT: %D.call = call i32 @_CD.Main.b88d1103f417c6d4(i32 %.loc32_5.2), !dbg !26 +// CHECK:STDOUT: %.loc34_5.2 = load i32, ptr %x, align 4, !dbg !25 +// CHECK:STDOUT: %D.call = call i32 @_CD.Main.b88d1103f417c6d4(i32 %.loc34_5.2), !dbg !26 // CHECK:STDOUT: ret void, !dbg !27 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: define linkonce_odr void @_CB.Main.66be507887ceee78(ptr %x) !dbg !28 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc32_5.2 = load double, ptr %x, align 8, !dbg !29 -// CHECK:STDOUT: %D.call = call double @_CD.Main.66be507887ceee78(double %.loc32_5.2), !dbg !30 +// CHECK:STDOUT: %.loc34_5.2 = load double, ptr %x, align 8, !dbg !29 +// CHECK:STDOUT: %D.call = call double @_CD.Main.66be507887ceee78(double %.loc34_5.2), !dbg !30 // CHECK:STDOUT: ret void, !dbg !31 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -123,35 +125,35 @@ fn M() { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "call_different_specific.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !3, line: 40, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !3, line: 42, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{} -// CHECK:STDOUT: !7 = !DILocation(line: 41, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 42, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 44, column: 5, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 44, column: 3, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 45, column: 5, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 45, column: 3, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 40, column: 1, scope: !4) -// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.b88d1103f417c6d4", scope: null, file: !3, line: 35, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !15 = !DILocation(line: 36, column: 3, scope: !14) -// CHECK:STDOUT: !16 = !DILocation(line: 37, column: 3, scope: !14) -// CHECK:STDOUT: !17 = !DILocation(line: 35, column: 1, scope: !14) -// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.66be507887ceee78", scope: null, file: !3, line: 35, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !19 = !DILocation(line: 36, column: 3, scope: !18) -// CHECK:STDOUT: !20 = !DILocation(line: 37, column: 3, scope: !18) -// CHECK:STDOUT: !21 = !DILocation(line: 35, column: 1, scope: !18) -// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.5754c7a55c7cbe4a", scope: null, file: !3, line: 23, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !23 = !DILocation(line: 24, column: 3, scope: !22) -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.b88d1103f417c6d4", scope: null, file: !3, line: 31, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !25 = !DILocation(line: 32, column: 5, scope: !24) -// CHECK:STDOUT: !26 = !DILocation(line: 32, column: 3, scope: !24) -// CHECK:STDOUT: !27 = !DILocation(line: 31, column: 1, scope: !24) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.66be507887ceee78", scope: null, file: !3, line: 31, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !29 = !DILocation(line: 32, column: 5, scope: !28) -// CHECK:STDOUT: !30 = !DILocation(line: 32, column: 3, scope: !28) -// CHECK:STDOUT: !31 = !DILocation(line: 31, column: 1, scope: !28) -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.b88d1103f417c6d4", scope: null, file: !3, line: 27, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !33 = !DILocation(line: 28, column: 3, scope: !32) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.66be507887ceee78", scope: null, file: !3, line: 27, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !35 = !DILocation(line: 28, column: 3, scope: !34) +// CHECK:STDOUT: !7 = !DILocation(line: 43, column: 3, scope: !4) +// CHECK:STDOUT: !8 = !DILocation(line: 44, column: 3, scope: !4) +// CHECK:STDOUT: !9 = !DILocation(line: 46, column: 5, scope: !4) +// CHECK:STDOUT: !10 = !DILocation(line: 46, column: 3, scope: !4) +// CHECK:STDOUT: !11 = !DILocation(line: 47, column: 5, scope: !4) +// CHECK:STDOUT: !12 = !DILocation(line: 47, column: 3, scope: !4) +// CHECK:STDOUT: !13 = !DILocation(line: 42, column: 1, scope: !4) +// CHECK:STDOUT: !14 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.b88d1103f417c6d4", scope: null, file: !3, line: 37, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !15 = !DILocation(line: 38, column: 3, scope: !14) +// CHECK:STDOUT: !16 = !DILocation(line: 39, column: 3, scope: !14) +// CHECK:STDOUT: !17 = !DILocation(line: 37, column: 1, scope: !14) +// CHECK:STDOUT: !18 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.66be507887ceee78", scope: null, file: !3, line: 37, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !19 = !DILocation(line: 38, column: 3, scope: !18) +// CHECK:STDOUT: !20 = !DILocation(line: 39, column: 3, scope: !18) +// CHECK:STDOUT: !21 = !DILocation(line: 37, column: 1, scope: !18) +// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.5754c7a55c7cbe4a", scope: null, file: !3, line: 25, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !23 = !DILocation(line: 26, column: 3, scope: !22) +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.b88d1103f417c6d4", scope: null, file: !3, line: 33, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !25 = !DILocation(line: 34, column: 5, scope: !24) +// CHECK:STDOUT: !26 = !DILocation(line: 34, column: 3, scope: !24) +// CHECK:STDOUT: !27 = !DILocation(line: 33, column: 1, scope: !24) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.66be507887ceee78", scope: null, file: !3, line: 33, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !29 = !DILocation(line: 34, column: 5, scope: !28) +// CHECK:STDOUT: !30 = !DILocation(line: 34, column: 3, scope: !28) +// CHECK:STDOUT: !31 = !DILocation(line: 33, column: 1, scope: !28) +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.b88d1103f417c6d4", scope: null, file: !3, line: 29, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !33 = !DILocation(line: 30, column: 3, scope: !32) +// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.66be507887ceee78", scope: null, file: !3, line: 29, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !35 = !DILocation(line: 30, column: 3, scope: !34) diff --git a/toolchain/lower/testdata/function/generic/call_recursive_basic.carbon b/toolchain/lower/testdata/function/generic/call_recursive_basic.carbon index b0248c20821b..fe5d9f7bb61a 100644 --- a/toolchain/lower/testdata/function/generic/call_recursive_basic.carbon +++ b/toolchain/lower/testdata/function/generic/call_recursive_basic.carbon @@ -2,6 +2,8 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon +// // AUTOUPDATE // TIP: To test this file alone, run: // TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/lower/testdata/function/generic/call_recursive_basic.carbon @@ -52,14 +54,14 @@ fn M() { // CHECK:STDOUT: store double 1.000000e+00, ptr %m.var, align 8, !dbg !8 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 8, ptr %ptr_i32.var), !dbg !9 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 8, ptr %ptr_f64.var), !dbg !10 -// CHECK:STDOUT: %.loc28_5 = load i32, ptr %n.var, align 4, !dbg !11 -// CHECK:STDOUT: %F.call.loc28 = call i32 @_CF.Main.b88d1103f417c6d4(i32 %.loc28_5, i32 0), !dbg !12 -// CHECK:STDOUT: %.loc29_5 = load double, ptr %m.var, align 8, !dbg !13 -// CHECK:STDOUT: %F.call.loc29 = call double @_CF.Main.66be507887ceee78(double %.loc29_5, i32 0), !dbg !14 -// CHECK:STDOUT: %.loc30_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !15 -// CHECK:STDOUT: %F.call.loc30 = call ptr @_CF.Main.e8193710fd35b608(ptr %.loc30_5, i32 0), !dbg !16 -// CHECK:STDOUT: %.loc31_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !17 -// CHECK:STDOUT: %F.call.loc31 = call ptr @_CF.Main.e8193710fd35b608(ptr %.loc31_5, i32 0), !dbg !18 +// CHECK:STDOUT: %.loc30_5 = load i32, ptr %n.var, align 4, !dbg !11 +// CHECK:STDOUT: %F.call.loc30 = call i32 @_CF.Main.b88d1103f417c6d4(i32 %.loc30_5, i32 0), !dbg !12 +// CHECK:STDOUT: %.loc31_5 = load double, ptr %m.var, align 8, !dbg !13 +// CHECK:STDOUT: %F.call.loc31 = call double @_CF.Main.66be507887ceee78(double %.loc31_5, i32 0), !dbg !14 +// CHECK:STDOUT: %.loc32_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !15 +// CHECK:STDOUT: %F.call.loc32 = call ptr @_CF.Main.e8193710fd35b608(ptr %.loc32_5, i32 0), !dbg !16 +// CHECK:STDOUT: %.loc33_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !17 +// CHECK:STDOUT: %F.call.loc33 = call ptr @_CF.Main.e8193710fd35b608(ptr %.loc33_5, i32 0), !dbg !18 // CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -121,40 +123,40 @@ fn M() { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "call_recursive_basic.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !3, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !3, line: 24, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{} -// CHECK:STDOUT: !7 = !DILocation(line: 23, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 24, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 25, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 26, column: 3, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 28, column: 5, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 28, column: 3, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 29, column: 5, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 29, column: 3, scope: !4) -// CHECK:STDOUT: !15 = !DILocation(line: 30, column: 5, scope: !4) -// CHECK:STDOUT: !16 = !DILocation(line: 30, column: 3, scope: !4) -// CHECK:STDOUT: !17 = !DILocation(line: 31, column: 5, scope: !4) -// CHECK:STDOUT: !18 = !DILocation(line: 31, column: 3, scope: !4) -// CHECK:STDOUT: !19 = !DILocation(line: 22, column: 1, scope: !4) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.b88d1103f417c6d4", scope: null, file: !3, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !21 = !DILocation(line: 16, column: 7, scope: !20) -// CHECK:STDOUT: !22 = !DILocation(line: 16, column: 6, scope: !20) -// CHECK:STDOUT: !23 = !DILocation(line: 17, column: 5, scope: !20) -// CHECK:STDOUT: !24 = !DILocation(line: 19, column: 15, scope: !20) -// CHECK:STDOUT: !25 = !DILocation(line: 19, column: 10, scope: !20) -// CHECK:STDOUT: !26 = !DILocation(line: 19, column: 3, scope: !20) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.66be507887ceee78", scope: null, file: !3, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !28 = !DILocation(line: 16, column: 7, scope: !27) -// CHECK:STDOUT: !29 = !DILocation(line: 16, column: 6, scope: !27) -// CHECK:STDOUT: !30 = !DILocation(line: 17, column: 5, scope: !27) -// CHECK:STDOUT: !31 = !DILocation(line: 19, column: 15, scope: !27) -// CHECK:STDOUT: !32 = !DILocation(line: 19, column: 10, scope: !27) -// CHECK:STDOUT: !33 = !DILocation(line: 19, column: 3, scope: !27) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.e8193710fd35b608", scope: null, file: !3, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !35 = !DILocation(line: 16, column: 7, scope: !34) -// CHECK:STDOUT: !36 = !DILocation(line: 16, column: 6, scope: !34) -// CHECK:STDOUT: !37 = !DILocation(line: 17, column: 5, scope: !34) -// CHECK:STDOUT: !38 = !DILocation(line: 19, column: 15, scope: !34) -// CHECK:STDOUT: !39 = !DILocation(line: 19, column: 10, scope: !34) -// CHECK:STDOUT: !40 = !DILocation(line: 19, column: 3, scope: !34) +// CHECK:STDOUT: !7 = !DILocation(line: 25, column: 3, scope: !4) +// CHECK:STDOUT: !8 = !DILocation(line: 26, column: 3, scope: !4) +// CHECK:STDOUT: !9 = !DILocation(line: 27, column: 3, scope: !4) +// CHECK:STDOUT: !10 = !DILocation(line: 28, column: 3, scope: !4) +// CHECK:STDOUT: !11 = !DILocation(line: 30, column: 5, scope: !4) +// CHECK:STDOUT: !12 = !DILocation(line: 30, column: 3, scope: !4) +// CHECK:STDOUT: !13 = !DILocation(line: 31, column: 5, scope: !4) +// CHECK:STDOUT: !14 = !DILocation(line: 31, column: 3, scope: !4) +// CHECK:STDOUT: !15 = !DILocation(line: 32, column: 5, scope: !4) +// CHECK:STDOUT: !16 = !DILocation(line: 32, column: 3, scope: !4) +// CHECK:STDOUT: !17 = !DILocation(line: 33, column: 5, scope: !4) +// CHECK:STDOUT: !18 = !DILocation(line: 33, column: 3, scope: !4) +// CHECK:STDOUT: !19 = !DILocation(line: 24, column: 1, scope: !4) +// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.b88d1103f417c6d4", scope: null, file: !3, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !21 = !DILocation(line: 18, column: 7, scope: !20) +// CHECK:STDOUT: !22 = !DILocation(line: 18, column: 6, scope: !20) +// CHECK:STDOUT: !23 = !DILocation(line: 19, column: 5, scope: !20) +// CHECK:STDOUT: !24 = !DILocation(line: 21, column: 15, scope: !20) +// CHECK:STDOUT: !25 = !DILocation(line: 21, column: 10, scope: !20) +// CHECK:STDOUT: !26 = !DILocation(line: 21, column: 3, scope: !20) +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.66be507887ceee78", scope: null, file: !3, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !28 = !DILocation(line: 18, column: 7, scope: !27) +// CHECK:STDOUT: !29 = !DILocation(line: 18, column: 6, scope: !27) +// CHECK:STDOUT: !30 = !DILocation(line: 19, column: 5, scope: !27) +// CHECK:STDOUT: !31 = !DILocation(line: 21, column: 15, scope: !27) +// CHECK:STDOUT: !32 = !DILocation(line: 21, column: 10, scope: !27) +// CHECK:STDOUT: !33 = !DILocation(line: 21, column: 3, scope: !27) +// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.e8193710fd35b608", scope: null, file: !3, line: 17, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !35 = !DILocation(line: 18, column: 7, scope: !34) +// CHECK:STDOUT: !36 = !DILocation(line: 18, column: 6, scope: !34) +// CHECK:STDOUT: !37 = !DILocation(line: 19, column: 5, scope: !34) +// CHECK:STDOUT: !38 = !DILocation(line: 21, column: 15, scope: !34) +// CHECK:STDOUT: !39 = !DILocation(line: 21, column: 10, scope: !34) +// CHECK:STDOUT: !40 = !DILocation(line: 21, column: 3, scope: !34) diff --git a/toolchain/lower/testdata/function/generic/call_recursive_diamond.carbon b/toolchain/lower/testdata/function/generic/call_recursive_diamond.carbon index e7624a1d0538..da05b8e26339 100644 --- a/toolchain/lower/testdata/function/generic/call_recursive_diamond.carbon +++ b/toolchain/lower/testdata/function/generic/call_recursive_diamond.carbon @@ -2,6 +2,8 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon +// // AUTOUPDATE // TIP: To test this file alone, run: // TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/lower/testdata/function/generic/call_recursive_diamond.carbon @@ -71,14 +73,14 @@ fn M() { // CHECK:STDOUT: store double 1.000000e+00, ptr %m.var, align 8, !dbg !8 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 8, ptr %ptr_i32.var), !dbg !9 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 8, ptr %ptr_f64.var), !dbg !10 -// CHECK:STDOUT: %.loc51_5 = load i32, ptr %n.var, align 4, !dbg !11 -// CHECK:STDOUT: %A.call.loc51 = call i32 @_CA.Main.b88d1103f417c6d4(i32 %.loc51_5, i32 0), !dbg !12 -// CHECK:STDOUT: %.loc52_5 = load double, ptr %m.var, align 8, !dbg !13 -// CHECK:STDOUT: %A.call.loc52 = call double @_CA.Main.66be507887ceee78(double %.loc52_5, i32 0), !dbg !14 -// CHECK:STDOUT: %.loc53_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !15 -// CHECK:STDOUT: %A.call.loc53 = call ptr @_CA.Main.e8193710fd35b608(ptr %.loc53_5, i32 0), !dbg !16 -// CHECK:STDOUT: %.loc54_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !17 -// CHECK:STDOUT: %A.call.loc54 = call ptr @_CA.Main.e8193710fd35b608(ptr %.loc54_5, i32 0), !dbg !18 +// CHECK:STDOUT: %.loc53_5 = load i32, ptr %n.var, align 4, !dbg !11 +// CHECK:STDOUT: %A.call.loc53 = call i32 @_CA.Main.b88d1103f417c6d4(i32 %.loc53_5, i32 0), !dbg !12 +// CHECK:STDOUT: %.loc54_5 = load double, ptr %m.var, align 8, !dbg !13 +// CHECK:STDOUT: %A.call.loc54 = call double @_CA.Main.66be507887ceee78(double %.loc54_5, i32 0), !dbg !14 +// CHECK:STDOUT: %.loc55_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !15 +// CHECK:STDOUT: %A.call.loc55 = call ptr @_CA.Main.e8193710fd35b608(ptr %.loc55_5, i32 0), !dbg !16 +// CHECK:STDOUT: %.loc56_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !17 +// CHECK:STDOUT: %A.call.loc56 = call ptr @_CA.Main.e8193710fd35b608(ptr %.loc56_5, i32 0), !dbg !18 // CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -88,21 +90,21 @@ fn M() { // CHECK:STDOUT: define linkonce_odr i32 @_CA.Main.b88d1103f417c6d4(i32 %x, i32 %count) !dbg !20 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %int.greater = icmp sgt i32 %count, 4, !dbg !21 -// CHECK:STDOUT: br i1 %int.greater, label %if.then.loc20, label %if.else.loc20, !dbg !22 +// CHECK:STDOUT: br i1 %int.greater, label %if.then.loc22, label %if.else.loc22, !dbg !22 // CHECK:STDOUT: -// CHECK:STDOUT: if.then.loc20: ; preds = %entry +// CHECK:STDOUT: if.then.loc22: ; preds = %entry // CHECK:STDOUT: ret i32 %x, !dbg !23 // CHECK:STDOUT: -// CHECK:STDOUT: if.else.loc20: ; preds = %entry +// CHECK:STDOUT: if.else.loc22: ; preds = %entry // CHECK:STDOUT: %int.smod = srem i32 %count, 2, !dbg !24 // CHECK:STDOUT: %int.eq = icmp eq i32 %int.smod, 0, !dbg !24 -// CHECK:STDOUT: br i1 %int.eq, label %if.then.loc23, label %if.else.loc23, !dbg !25 +// CHECK:STDOUT: br i1 %int.eq, label %if.then.loc25, label %if.else.loc25, !dbg !25 // CHECK:STDOUT: -// CHECK:STDOUT: if.then.loc23: ; preds = %if.else.loc20 +// CHECK:STDOUT: if.then.loc25: ; preds = %if.else.loc22 // CHECK:STDOUT: %B.call = call i32 @_CB.Main.b88d1103f417c6d4(i32 %x, i32 %count), !dbg !26 // CHECK:STDOUT: ret i32 %B.call, !dbg !27 // CHECK:STDOUT: -// CHECK:STDOUT: if.else.loc23: ; preds = %if.else.loc20 +// CHECK:STDOUT: if.else.loc25: ; preds = %if.else.loc22 // CHECK:STDOUT: %C.call = call i32 @_CC.Main.b88d1103f417c6d4(i32 %x, i32 %count), !dbg !28 // CHECK:STDOUT: ret i32 %C.call, !dbg !29 // CHECK:STDOUT: } @@ -110,21 +112,21 @@ fn M() { // CHECK:STDOUT: define linkonce_odr double @_CA.Main.66be507887ceee78(double %x, i32 %count) !dbg !30 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %int.greater = icmp sgt i32 %count, 4, !dbg !31 -// CHECK:STDOUT: br i1 %int.greater, label %if.then.loc20, label %if.else.loc20, !dbg !32 +// CHECK:STDOUT: br i1 %int.greater, label %if.then.loc22, label %if.else.loc22, !dbg !32 // CHECK:STDOUT: -// CHECK:STDOUT: if.then.loc20: ; preds = %entry +// CHECK:STDOUT: if.then.loc22: ; preds = %entry // CHECK:STDOUT: ret double %x, !dbg !33 // CHECK:STDOUT: -// CHECK:STDOUT: if.else.loc20: ; preds = %entry +// CHECK:STDOUT: if.else.loc22: ; preds = %entry // CHECK:STDOUT: %int.smod = srem i32 %count, 2, !dbg !34 // CHECK:STDOUT: %int.eq = icmp eq i32 %int.smod, 0, !dbg !34 -// CHECK:STDOUT: br i1 %int.eq, label %if.then.loc23, label %if.else.loc23, !dbg !35 +// CHECK:STDOUT: br i1 %int.eq, label %if.then.loc25, label %if.else.loc25, !dbg !35 // CHECK:STDOUT: -// CHECK:STDOUT: if.then.loc23: ; preds = %if.else.loc20 +// CHECK:STDOUT: if.then.loc25: ; preds = %if.else.loc22 // CHECK:STDOUT: %B.call = call double @_CB.Main.66be507887ceee78(double %x, i32 %count), !dbg !36 // CHECK:STDOUT: ret double %B.call, !dbg !37 // CHECK:STDOUT: -// CHECK:STDOUT: if.else.loc23: ; preds = %if.else.loc20 +// CHECK:STDOUT: if.else.loc25: ; preds = %if.else.loc22 // CHECK:STDOUT: %C.call = call double @_CC.Main.66be507887ceee78(double %x, i32 %count), !dbg !38 // CHECK:STDOUT: ret double %C.call, !dbg !39 // CHECK:STDOUT: } @@ -132,21 +134,21 @@ fn M() { // CHECK:STDOUT: define linkonce_odr ptr @_CA.Main.e8193710fd35b608(ptr %x, i32 %count) !dbg !40 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %int.greater = icmp sgt i32 %count, 4, !dbg !41 -// CHECK:STDOUT: br i1 %int.greater, label %if.then.loc20, label %if.else.loc20, !dbg !42 +// CHECK:STDOUT: br i1 %int.greater, label %if.then.loc22, label %if.else.loc22, !dbg !42 // CHECK:STDOUT: -// CHECK:STDOUT: if.then.loc20: ; preds = %entry +// CHECK:STDOUT: if.then.loc22: ; preds = %entry // CHECK:STDOUT: ret ptr %x, !dbg !43 // CHECK:STDOUT: -// CHECK:STDOUT: if.else.loc20: ; preds = %entry +// CHECK:STDOUT: if.else.loc22: ; preds = %entry // CHECK:STDOUT: %int.smod = srem i32 %count, 2, !dbg !44 // CHECK:STDOUT: %int.eq = icmp eq i32 %int.smod, 0, !dbg !44 -// CHECK:STDOUT: br i1 %int.eq, label %if.then.loc23, label %if.else.loc23, !dbg !45 +// CHECK:STDOUT: br i1 %int.eq, label %if.then.loc25, label %if.else.loc25, !dbg !45 // CHECK:STDOUT: -// CHECK:STDOUT: if.then.loc23: ; preds = %if.else.loc20 +// CHECK:STDOUT: if.then.loc25: ; preds = %if.else.loc22 // CHECK:STDOUT: %B.call = call ptr @_CB.Main.e8193710fd35b608(ptr %x, i32 %count), !dbg !46 // CHECK:STDOUT: ret ptr %B.call, !dbg !47 // CHECK:STDOUT: -// CHECK:STDOUT: if.else.loc23: ; preds = %if.else.loc20 +// CHECK:STDOUT: if.else.loc25: ; preds = %if.else.loc22 // CHECK:STDOUT: %C.call = call ptr @_CC.Main.e8193710fd35b608(ptr %x, i32 %count), !dbg !48 // CHECK:STDOUT: ret ptr %C.call, !dbg !49 // CHECK:STDOUT: } @@ -233,85 +235,85 @@ fn M() { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "call_recursive_diamond.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !3, line: 45, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !3, line: 47, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{} -// CHECK:STDOUT: !7 = !DILocation(line: 46, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 47, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 48, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 49, column: 3, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 51, column: 5, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 51, column: 3, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 52, column: 5, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 52, column: 3, scope: !4) -// CHECK:STDOUT: !15 = !DILocation(line: 53, column: 5, scope: !4) -// CHECK:STDOUT: !16 = !DILocation(line: 53, column: 3, scope: !4) -// CHECK:STDOUT: !17 = !DILocation(line: 54, column: 5, scope: !4) -// CHECK:STDOUT: !18 = !DILocation(line: 54, column: 3, scope: !4) -// CHECK:STDOUT: !19 = !DILocation(line: 45, column: 1, scope: !4) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.b88d1103f417c6d4", scope: null, file: !3, line: 19, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !21 = !DILocation(line: 20, column: 7, scope: !20) -// CHECK:STDOUT: !22 = !DILocation(line: 20, column: 6, scope: !20) -// CHECK:STDOUT: !23 = !DILocation(line: 21, column: 5, scope: !20) -// CHECK:STDOUT: !24 = !DILocation(line: 23, column: 7, scope: !20) -// CHECK:STDOUT: !25 = !DILocation(line: 23, column: 6, scope: !20) -// CHECK:STDOUT: !26 = !DILocation(line: 24, column: 12, scope: !20) -// CHECK:STDOUT: !27 = !DILocation(line: 24, column: 5, scope: !20) -// CHECK:STDOUT: !28 = !DILocation(line: 26, column: 12, scope: !20) -// CHECK:STDOUT: !29 = !DILocation(line: 26, column: 5, scope: !20) -// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.66be507887ceee78", scope: null, file: !3, line: 19, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !31 = !DILocation(line: 20, column: 7, scope: !30) -// CHECK:STDOUT: !32 = !DILocation(line: 20, column: 6, scope: !30) -// CHECK:STDOUT: !33 = !DILocation(line: 21, column: 5, scope: !30) -// CHECK:STDOUT: !34 = !DILocation(line: 23, column: 7, scope: !30) -// CHECK:STDOUT: !35 = !DILocation(line: 23, column: 6, scope: !30) -// CHECK:STDOUT: !36 = !DILocation(line: 24, column: 12, scope: !30) -// CHECK:STDOUT: !37 = !DILocation(line: 24, column: 5, scope: !30) -// CHECK:STDOUT: !38 = !DILocation(line: 26, column: 12, scope: !30) -// CHECK:STDOUT: !39 = !DILocation(line: 26, column: 5, scope: !30) -// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.e8193710fd35b608", scope: null, file: !3, line: 19, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !41 = !DILocation(line: 20, column: 7, scope: !40) -// CHECK:STDOUT: !42 = !DILocation(line: 20, column: 6, scope: !40) -// CHECK:STDOUT: !43 = !DILocation(line: 21, column: 5, scope: !40) -// CHECK:STDOUT: !44 = !DILocation(line: 23, column: 7, scope: !40) -// CHECK:STDOUT: !45 = !DILocation(line: 23, column: 6, scope: !40) -// CHECK:STDOUT: !46 = !DILocation(line: 24, column: 12, scope: !40) -// CHECK:STDOUT: !47 = !DILocation(line: 24, column: 5, scope: !40) -// CHECK:STDOUT: !48 = !DILocation(line: 26, column: 12, scope: !40) -// CHECK:STDOUT: !49 = !DILocation(line: 26, column: 5, scope: !40) -// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.b88d1103f417c6d4", scope: null, file: !3, line: 31, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !51 = !DILocation(line: 32, column: 3, scope: !50) -// CHECK:STDOUT: !52 = !DILocation(line: 33, column: 10, scope: !50) -// CHECK:STDOUT: !53 = !DILocation(line: 33, column: 3, scope: !50) -// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.b88d1103f417c6d4", scope: null, file: !3, line: 36, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !55 = !DILocation(line: 37, column: 3, scope: !54) -// CHECK:STDOUT: !56 = !DILocation(line: 38, column: 10, scope: !54) -// CHECK:STDOUT: !57 = !DILocation(line: 38, column: 3, scope: !54) -// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.66be507887ceee78", scope: null, file: !3, line: 31, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !59 = !DILocation(line: 32, column: 3, scope: !58) -// CHECK:STDOUT: !60 = !DILocation(line: 33, column: 10, scope: !58) -// CHECK:STDOUT: !61 = !DILocation(line: 33, column: 3, scope: !58) -// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.66be507887ceee78", scope: null, file: !3, line: 36, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !63 = !DILocation(line: 37, column: 3, scope: !62) -// CHECK:STDOUT: !64 = !DILocation(line: 38, column: 10, scope: !62) -// CHECK:STDOUT: !65 = !DILocation(line: 38, column: 3, scope: !62) -// CHECK:STDOUT: !66 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.e8193710fd35b608", scope: null, file: !3, line: 31, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !67 = !DILocation(line: 32, column: 3, scope: !66) -// CHECK:STDOUT: !68 = !DILocation(line: 33, column: 10, scope: !66) -// CHECK:STDOUT: !69 = !DILocation(line: 33, column: 3, scope: !66) -// CHECK:STDOUT: !70 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.e8193710fd35b608", scope: null, file: !3, line: 36, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !71 = !DILocation(line: 37, column: 3, scope: !70) -// CHECK:STDOUT: !72 = !DILocation(line: 38, column: 10, scope: !70) -// CHECK:STDOUT: !73 = !DILocation(line: 38, column: 3, scope: !70) -// CHECK:STDOUT: !74 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.b88d1103f417c6d4", scope: null, file: !3, line: 41, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !75 = !DILocation(line: 42, column: 15, scope: !74) -// CHECK:STDOUT: !76 = !DILocation(line: 42, column: 10, scope: !74) -// CHECK:STDOUT: !77 = !DILocation(line: 42, column: 3, scope: !74) -// CHECK:STDOUT: !78 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.66be507887ceee78", scope: null, file: !3, line: 41, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !79 = !DILocation(line: 42, column: 15, scope: !78) -// CHECK:STDOUT: !80 = !DILocation(line: 42, column: 10, scope: !78) -// CHECK:STDOUT: !81 = !DILocation(line: 42, column: 3, scope: !78) -// CHECK:STDOUT: !82 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.e8193710fd35b608", scope: null, file: !3, line: 41, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !83 = !DILocation(line: 42, column: 15, scope: !82) -// CHECK:STDOUT: !84 = !DILocation(line: 42, column: 10, scope: !82) -// CHECK:STDOUT: !85 = !DILocation(line: 42, column: 3, scope: !82) +// CHECK:STDOUT: !7 = !DILocation(line: 48, column: 3, scope: !4) +// CHECK:STDOUT: !8 = !DILocation(line: 49, column: 3, scope: !4) +// CHECK:STDOUT: !9 = !DILocation(line: 50, column: 3, scope: !4) +// CHECK:STDOUT: !10 = !DILocation(line: 51, column: 3, scope: !4) +// CHECK:STDOUT: !11 = !DILocation(line: 53, column: 5, scope: !4) +// CHECK:STDOUT: !12 = !DILocation(line: 53, column: 3, scope: !4) +// CHECK:STDOUT: !13 = !DILocation(line: 54, column: 5, scope: !4) +// CHECK:STDOUT: !14 = !DILocation(line: 54, column: 3, scope: !4) +// CHECK:STDOUT: !15 = !DILocation(line: 55, column: 5, scope: !4) +// CHECK:STDOUT: !16 = !DILocation(line: 55, column: 3, scope: !4) +// CHECK:STDOUT: !17 = !DILocation(line: 56, column: 5, scope: !4) +// CHECK:STDOUT: !18 = !DILocation(line: 56, column: 3, scope: !4) +// CHECK:STDOUT: !19 = !DILocation(line: 47, column: 1, scope: !4) +// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.b88d1103f417c6d4", scope: null, file: !3, line: 21, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !21 = !DILocation(line: 22, column: 7, scope: !20) +// CHECK:STDOUT: !22 = !DILocation(line: 22, column: 6, scope: !20) +// CHECK:STDOUT: !23 = !DILocation(line: 23, column: 5, scope: !20) +// CHECK:STDOUT: !24 = !DILocation(line: 25, column: 7, scope: !20) +// CHECK:STDOUT: !25 = !DILocation(line: 25, column: 6, scope: !20) +// CHECK:STDOUT: !26 = !DILocation(line: 26, column: 12, scope: !20) +// CHECK:STDOUT: !27 = !DILocation(line: 26, column: 5, scope: !20) +// CHECK:STDOUT: !28 = !DILocation(line: 28, column: 12, scope: !20) +// CHECK:STDOUT: !29 = !DILocation(line: 28, column: 5, scope: !20) +// CHECK:STDOUT: !30 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.66be507887ceee78", scope: null, file: !3, line: 21, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !31 = !DILocation(line: 22, column: 7, scope: !30) +// CHECK:STDOUT: !32 = !DILocation(line: 22, column: 6, scope: !30) +// CHECK:STDOUT: !33 = !DILocation(line: 23, column: 5, scope: !30) +// CHECK:STDOUT: !34 = !DILocation(line: 25, column: 7, scope: !30) +// CHECK:STDOUT: !35 = !DILocation(line: 25, column: 6, scope: !30) +// CHECK:STDOUT: !36 = !DILocation(line: 26, column: 12, scope: !30) +// CHECK:STDOUT: !37 = !DILocation(line: 26, column: 5, scope: !30) +// CHECK:STDOUT: !38 = !DILocation(line: 28, column: 12, scope: !30) +// CHECK:STDOUT: !39 = !DILocation(line: 28, column: 5, scope: !30) +// CHECK:STDOUT: !40 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.e8193710fd35b608", scope: null, file: !3, line: 21, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !41 = !DILocation(line: 22, column: 7, scope: !40) +// CHECK:STDOUT: !42 = !DILocation(line: 22, column: 6, scope: !40) +// CHECK:STDOUT: !43 = !DILocation(line: 23, column: 5, scope: !40) +// CHECK:STDOUT: !44 = !DILocation(line: 25, column: 7, scope: !40) +// CHECK:STDOUT: !45 = !DILocation(line: 25, column: 6, scope: !40) +// CHECK:STDOUT: !46 = !DILocation(line: 26, column: 12, scope: !40) +// CHECK:STDOUT: !47 = !DILocation(line: 26, column: 5, scope: !40) +// CHECK:STDOUT: !48 = !DILocation(line: 28, column: 12, scope: !40) +// CHECK:STDOUT: !49 = !DILocation(line: 28, column: 5, scope: !40) +// CHECK:STDOUT: !50 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.b88d1103f417c6d4", scope: null, file: !3, line: 33, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !51 = !DILocation(line: 34, column: 3, scope: !50) +// CHECK:STDOUT: !52 = !DILocation(line: 35, column: 10, scope: !50) +// CHECK:STDOUT: !53 = !DILocation(line: 35, column: 3, scope: !50) +// CHECK:STDOUT: !54 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.b88d1103f417c6d4", scope: null, file: !3, line: 38, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !55 = !DILocation(line: 39, column: 3, scope: !54) +// CHECK:STDOUT: !56 = !DILocation(line: 40, column: 10, scope: !54) +// CHECK:STDOUT: !57 = !DILocation(line: 40, column: 3, scope: !54) +// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.66be507887ceee78", scope: null, file: !3, line: 33, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !59 = !DILocation(line: 34, column: 3, scope: !58) +// CHECK:STDOUT: !60 = !DILocation(line: 35, column: 10, scope: !58) +// CHECK:STDOUT: !61 = !DILocation(line: 35, column: 3, scope: !58) +// CHECK:STDOUT: !62 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.66be507887ceee78", scope: null, file: !3, line: 38, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !63 = !DILocation(line: 39, column: 3, scope: !62) +// CHECK:STDOUT: !64 = !DILocation(line: 40, column: 10, scope: !62) +// CHECK:STDOUT: !65 = !DILocation(line: 40, column: 3, scope: !62) +// CHECK:STDOUT: !66 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.e8193710fd35b608", scope: null, file: !3, line: 33, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !67 = !DILocation(line: 34, column: 3, scope: !66) +// CHECK:STDOUT: !68 = !DILocation(line: 35, column: 10, scope: !66) +// CHECK:STDOUT: !69 = !DILocation(line: 35, column: 3, scope: !66) +// CHECK:STDOUT: !70 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.e8193710fd35b608", scope: null, file: !3, line: 38, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !71 = !DILocation(line: 39, column: 3, scope: !70) +// CHECK:STDOUT: !72 = !DILocation(line: 40, column: 10, scope: !70) +// CHECK:STDOUT: !73 = !DILocation(line: 40, column: 3, scope: !70) +// CHECK:STDOUT: !74 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.b88d1103f417c6d4", scope: null, file: !3, line: 43, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !75 = !DILocation(line: 44, column: 15, scope: !74) +// CHECK:STDOUT: !76 = !DILocation(line: 44, column: 10, scope: !74) +// CHECK:STDOUT: !77 = !DILocation(line: 44, column: 3, scope: !74) +// CHECK:STDOUT: !78 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.66be507887ceee78", scope: null, file: !3, line: 43, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !79 = !DILocation(line: 44, column: 15, scope: !78) +// CHECK:STDOUT: !80 = !DILocation(line: 44, column: 10, scope: !78) +// CHECK:STDOUT: !81 = !DILocation(line: 44, column: 3, scope: !78) +// CHECK:STDOUT: !82 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.e8193710fd35b608", scope: null, file: !3, line: 43, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !83 = !DILocation(line: 44, column: 15, scope: !82) +// CHECK:STDOUT: !84 = !DILocation(line: 44, column: 10, scope: !82) +// CHECK:STDOUT: !85 = !DILocation(line: 44, column: 3, scope: !82) diff --git a/toolchain/lower/testdata/function/generic/call_recursive_impl.carbon b/toolchain/lower/testdata/function/generic/call_recursive_impl.carbon index 37e45ac1de15..144d844bd6cc 100644 --- a/toolchain/lower/testdata/function/generic/call_recursive_impl.carbon +++ b/toolchain/lower/testdata/function/generic/call_recursive_impl.carbon @@ -2,6 +2,8 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon +// // AUTOUPDATE // TIP: To test this file alone, run: // TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/lower/testdata/function/generic/call_recursive_impl.carbon @@ -58,8 +60,8 @@ fn Run() { // CHECK:STDOUT: // CHECK:STDOUT: define void @main() !dbg !12 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %G.call.loc38 = call i32 @_CG.Main.2c436a64dfc3fd29(i32 0), !dbg !13 -// CHECK:STDOUT: %G.call.loc39 = call i32 @_CG.Main.c124d41ebc08c32b(i32 0), !dbg !14 +// CHECK:STDOUT: %G.call.loc40 = call i32 @_CG.Main.2c436a64dfc3fd29(i32 0), !dbg !13 +// CHECK:STDOUT: %G.call.loc41 = call i32 @_CG.Main.c124d41ebc08c32b(i32 0), !dbg !14 // CHECK:STDOUT: ret void, !dbg !15 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -105,31 +107,31 @@ fn Run() { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "call_recursive_impl.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.X.Main:I.Main", scope: null, file: !3, line: 18, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "F", linkageName: "_CF.X.Main:I.Main", scope: null, file: !3, line: 20, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{} -// CHECK:STDOUT: !7 = !DILocation(line: 18, column: 12, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 18, column: 3, scope: !4) -// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "F", linkageName: "_CF.Y.Main:I.Main", scope: null, file: !3, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !10 = !DILocation(line: 22, column: 12, scope: !9) -// CHECK:STDOUT: !11 = !DILocation(line: 22, column: 3, scope: !9) -// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !3, line: 37, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !13 = !DILocation(line: 38, column: 3, scope: !12) -// CHECK:STDOUT: !14 = !DILocation(line: 39, column: 3, scope: !12) -// CHECK:STDOUT: !15 = !DILocation(line: 37, column: 1, scope: !12) -// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.2c436a64dfc3fd29", scope: null, file: !3, line: 28, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !17 = !DILocation(line: 29, column: 3, scope: !16) -// CHECK:STDOUT: !18 = !DILocation(line: 31, column: 7, scope: !16) -// CHECK:STDOUT: !19 = !DILocation(line: 31, column: 6, scope: !16) -// CHECK:STDOUT: !20 = !DILocation(line: 32, column: 5, scope: !16) -// CHECK:STDOUT: !21 = !DILocation(line: 34, column: 15, scope: !16) -// CHECK:STDOUT: !22 = !DILocation(line: 34, column: 10, scope: !16) -// CHECK:STDOUT: !23 = !DILocation(line: 34, column: 3, scope: !16) -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.c124d41ebc08c32b", scope: null, file: !3, line: 28, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !25 = !DILocation(line: 29, column: 3, scope: !24) -// CHECK:STDOUT: !26 = !DILocation(line: 31, column: 7, scope: !24) -// CHECK:STDOUT: !27 = !DILocation(line: 31, column: 6, scope: !24) -// CHECK:STDOUT: !28 = !DILocation(line: 32, column: 5, scope: !24) -// CHECK:STDOUT: !29 = !DILocation(line: 34, column: 15, scope: !24) -// CHECK:STDOUT: !30 = !DILocation(line: 34, column: 10, scope: !24) -// CHECK:STDOUT: !31 = !DILocation(line: 34, column: 3, scope: !24) +// CHECK:STDOUT: !7 = !DILocation(line: 20, column: 12, scope: !4) +// CHECK:STDOUT: !8 = !DILocation(line: 20, column: 3, scope: !4) +// CHECK:STDOUT: !9 = distinct !DISubprogram(name: "F", linkageName: "_CF.Y.Main:I.Main", scope: null, file: !3, line: 24, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !10 = !DILocation(line: 24, column: 12, scope: !9) +// CHECK:STDOUT: !11 = !DILocation(line: 24, column: 3, scope: !9) +// CHECK:STDOUT: !12 = distinct !DISubprogram(name: "Run", linkageName: "main", scope: null, file: !3, line: 39, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !13 = !DILocation(line: 40, column: 3, scope: !12) +// CHECK:STDOUT: !14 = !DILocation(line: 41, column: 3, scope: !12) +// CHECK:STDOUT: !15 = !DILocation(line: 39, column: 1, scope: !12) +// CHECK:STDOUT: !16 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.2c436a64dfc3fd29", scope: null, file: !3, line: 30, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !17 = !DILocation(line: 31, column: 3, scope: !16) +// CHECK:STDOUT: !18 = !DILocation(line: 33, column: 7, scope: !16) +// CHECK:STDOUT: !19 = !DILocation(line: 33, column: 6, scope: !16) +// CHECK:STDOUT: !20 = !DILocation(line: 34, column: 5, scope: !16) +// CHECK:STDOUT: !21 = !DILocation(line: 36, column: 15, scope: !16) +// CHECK:STDOUT: !22 = !DILocation(line: 36, column: 10, scope: !16) +// CHECK:STDOUT: !23 = !DILocation(line: 36, column: 3, scope: !16) +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.c124d41ebc08c32b", scope: null, file: !3, line: 30, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !25 = !DILocation(line: 31, column: 3, scope: !24) +// CHECK:STDOUT: !26 = !DILocation(line: 33, column: 7, scope: !24) +// CHECK:STDOUT: !27 = !DILocation(line: 33, column: 6, scope: !24) +// CHECK:STDOUT: !28 = !DILocation(line: 34, column: 5, scope: !24) +// CHECK:STDOUT: !29 = !DILocation(line: 36, column: 15, scope: !24) +// CHECK:STDOUT: !30 = !DILocation(line: 36, column: 10, scope: !24) +// CHECK:STDOUT: !31 = !DILocation(line: 36, column: 3, scope: !24) diff --git a/toolchain/lower/testdata/function/generic/call_recursive_mutual.carbon b/toolchain/lower/testdata/function/generic/call_recursive_mutual.carbon index 72e95a28764f..bc711a88d984 100644 --- a/toolchain/lower/testdata/function/generic/call_recursive_mutual.carbon +++ b/toolchain/lower/testdata/function/generic/call_recursive_mutual.carbon @@ -2,6 +2,8 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon +// // AUTOUPDATE // TIP: To test this file alone, run: // TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/lower/testdata/function/generic/call_recursive_mutual.carbon @@ -54,14 +56,14 @@ fn M() { // CHECK:STDOUT: store double 1.000000e+00, ptr %m.var, align 8, !dbg !8 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 8, ptr %ptr_i32.var), !dbg !9 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 8, ptr %ptr_f64.var), !dbg !10 -// CHECK:STDOUT: %.loc36_5 = load i32, ptr %n.var, align 4, !dbg !11 -// CHECK:STDOUT: %F.call.loc36 = call i32 @_CF.Main.b88d1103f417c6d4(i32 %.loc36_5, i32 0), !dbg !12 -// CHECK:STDOUT: %.loc37_5 = load double, ptr %m.var, align 8, !dbg !13 -// CHECK:STDOUT: %F.call.loc37 = call double @_CF.Main.66be507887ceee78(double %.loc37_5, i32 0), !dbg !14 -// CHECK:STDOUT: %.loc38_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !15 -// CHECK:STDOUT: %F.call.loc38 = call ptr @_CF.Main.e8193710fd35b608(ptr %.loc38_5, i32 0), !dbg !16 -// CHECK:STDOUT: %.loc39_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !17 -// CHECK:STDOUT: %F.call.loc39 = call ptr @_CF.Main.e8193710fd35b608(ptr %.loc39_5, i32 0), !dbg !18 +// CHECK:STDOUT: %.loc38_5 = load i32, ptr %n.var, align 4, !dbg !11 +// CHECK:STDOUT: %F.call.loc38 = call i32 @_CF.Main.b88d1103f417c6d4(i32 %.loc38_5, i32 0), !dbg !12 +// CHECK:STDOUT: %.loc39_5 = load double, ptr %m.var, align 8, !dbg !13 +// CHECK:STDOUT: %F.call.loc39 = call double @_CF.Main.66be507887ceee78(double %.loc39_5, i32 0), !dbg !14 +// CHECK:STDOUT: %.loc40_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !15 +// CHECK:STDOUT: %F.call.loc40 = call ptr @_CF.Main.e8193710fd35b608(ptr %.loc40_5, i32 0), !dbg !16 +// CHECK:STDOUT: %.loc41_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !17 +// CHECK:STDOUT: %F.call.loc41 = call ptr @_CF.Main.e8193710fd35b608(ptr %.loc41_5, i32 0), !dbg !18 // CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -165,61 +167,61 @@ fn M() { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "call_recursive_mutual.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !3, line: 30, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !3, line: 32, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{} -// CHECK:STDOUT: !7 = !DILocation(line: 31, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 32, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 33, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 34, column: 3, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 36, column: 5, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 36, column: 3, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 37, column: 5, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 37, column: 3, scope: !4) -// CHECK:STDOUT: !15 = !DILocation(line: 38, column: 5, scope: !4) -// CHECK:STDOUT: !16 = !DILocation(line: 38, column: 3, scope: !4) -// CHECK:STDOUT: !17 = !DILocation(line: 39, column: 5, scope: !4) -// CHECK:STDOUT: !18 = !DILocation(line: 39, column: 3, scope: !4) -// CHECK:STDOUT: !19 = !DILocation(line: 30, column: 1, scope: !4) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.b88d1103f417c6d4", scope: null, file: !3, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !21 = !DILocation(line: 17, column: 7, scope: !20) -// CHECK:STDOUT: !22 = !DILocation(line: 17, column: 6, scope: !20) -// CHECK:STDOUT: !23 = !DILocation(line: 18, column: 5, scope: !20) -// CHECK:STDOUT: !24 = !DILocation(line: 20, column: 15, scope: !20) -// CHECK:STDOUT: !25 = !DILocation(line: 20, column: 10, scope: !20) -// CHECK:STDOUT: !26 = !DILocation(line: 20, column: 3, scope: !20) -// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.66be507887ceee78", scope: null, file: !3, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !28 = !DILocation(line: 17, column: 7, scope: !27) -// CHECK:STDOUT: !29 = !DILocation(line: 17, column: 6, scope: !27) -// CHECK:STDOUT: !30 = !DILocation(line: 18, column: 5, scope: !27) -// CHECK:STDOUT: !31 = !DILocation(line: 20, column: 15, scope: !27) -// CHECK:STDOUT: !32 = !DILocation(line: 20, column: 10, scope: !27) -// CHECK:STDOUT: !33 = !DILocation(line: 20, column: 3, scope: !27) -// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.e8193710fd35b608", scope: null, file: !3, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !35 = !DILocation(line: 17, column: 7, scope: !34) -// CHECK:STDOUT: !36 = !DILocation(line: 17, column: 6, scope: !34) -// CHECK:STDOUT: !37 = !DILocation(line: 18, column: 5, scope: !34) -// CHECK:STDOUT: !38 = !DILocation(line: 20, column: 15, scope: !34) -// CHECK:STDOUT: !39 = !DILocation(line: 20, column: 10, scope: !34) -// CHECK:STDOUT: !40 = !DILocation(line: 20, column: 3, scope: !34) -// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.b88d1103f417c6d4", scope: null, file: !3, line: 23, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !42 = !DILocation(line: 24, column: 7, scope: !41) -// CHECK:STDOUT: !43 = !DILocation(line: 24, column: 6, scope: !41) -// CHECK:STDOUT: !44 = !DILocation(line: 25, column: 5, scope: !41) -// CHECK:STDOUT: !45 = !DILocation(line: 27, column: 15, scope: !41) -// CHECK:STDOUT: !46 = !DILocation(line: 27, column: 10, scope: !41) -// CHECK:STDOUT: !47 = !DILocation(line: 27, column: 3, scope: !41) -// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.66be507887ceee78", scope: null, file: !3, line: 23, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !49 = !DILocation(line: 24, column: 7, scope: !48) -// CHECK:STDOUT: !50 = !DILocation(line: 24, column: 6, scope: !48) -// CHECK:STDOUT: !51 = !DILocation(line: 25, column: 5, scope: !48) -// CHECK:STDOUT: !52 = !DILocation(line: 27, column: 15, scope: !48) -// CHECK:STDOUT: !53 = !DILocation(line: 27, column: 10, scope: !48) -// CHECK:STDOUT: !54 = !DILocation(line: 27, column: 3, scope: !48) -// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.e8193710fd35b608", scope: null, file: !3, line: 23, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !56 = !DILocation(line: 24, column: 7, scope: !55) -// CHECK:STDOUT: !57 = !DILocation(line: 24, column: 6, scope: !55) -// CHECK:STDOUT: !58 = !DILocation(line: 25, column: 5, scope: !55) -// CHECK:STDOUT: !59 = !DILocation(line: 27, column: 15, scope: !55) -// CHECK:STDOUT: !60 = !DILocation(line: 27, column: 10, scope: !55) -// CHECK:STDOUT: !61 = !DILocation(line: 27, column: 3, scope: !55) +// CHECK:STDOUT: !7 = !DILocation(line: 33, column: 3, scope: !4) +// CHECK:STDOUT: !8 = !DILocation(line: 34, column: 3, scope: !4) +// CHECK:STDOUT: !9 = !DILocation(line: 35, column: 3, scope: !4) +// CHECK:STDOUT: !10 = !DILocation(line: 36, column: 3, scope: !4) +// CHECK:STDOUT: !11 = !DILocation(line: 38, column: 5, scope: !4) +// CHECK:STDOUT: !12 = !DILocation(line: 38, column: 3, scope: !4) +// CHECK:STDOUT: !13 = !DILocation(line: 39, column: 5, scope: !4) +// CHECK:STDOUT: !14 = !DILocation(line: 39, column: 3, scope: !4) +// CHECK:STDOUT: !15 = !DILocation(line: 40, column: 5, scope: !4) +// CHECK:STDOUT: !16 = !DILocation(line: 40, column: 3, scope: !4) +// CHECK:STDOUT: !17 = !DILocation(line: 41, column: 5, scope: !4) +// CHECK:STDOUT: !18 = !DILocation(line: 41, column: 3, scope: !4) +// CHECK:STDOUT: !19 = !DILocation(line: 32, column: 1, scope: !4) +// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.b88d1103f417c6d4", scope: null, file: !3, line: 18, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !21 = !DILocation(line: 19, column: 7, scope: !20) +// CHECK:STDOUT: !22 = !DILocation(line: 19, column: 6, scope: !20) +// CHECK:STDOUT: !23 = !DILocation(line: 20, column: 5, scope: !20) +// CHECK:STDOUT: !24 = !DILocation(line: 22, column: 15, scope: !20) +// CHECK:STDOUT: !25 = !DILocation(line: 22, column: 10, scope: !20) +// CHECK:STDOUT: !26 = !DILocation(line: 22, column: 3, scope: !20) +// CHECK:STDOUT: !27 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.66be507887ceee78", scope: null, file: !3, line: 18, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !28 = !DILocation(line: 19, column: 7, scope: !27) +// CHECK:STDOUT: !29 = !DILocation(line: 19, column: 6, scope: !27) +// CHECK:STDOUT: !30 = !DILocation(line: 20, column: 5, scope: !27) +// CHECK:STDOUT: !31 = !DILocation(line: 22, column: 15, scope: !27) +// CHECK:STDOUT: !32 = !DILocation(line: 22, column: 10, scope: !27) +// CHECK:STDOUT: !33 = !DILocation(line: 22, column: 3, scope: !27) +// CHECK:STDOUT: !34 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.e8193710fd35b608", scope: null, file: !3, line: 18, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !35 = !DILocation(line: 19, column: 7, scope: !34) +// CHECK:STDOUT: !36 = !DILocation(line: 19, column: 6, scope: !34) +// CHECK:STDOUT: !37 = !DILocation(line: 20, column: 5, scope: !34) +// CHECK:STDOUT: !38 = !DILocation(line: 22, column: 15, scope: !34) +// CHECK:STDOUT: !39 = !DILocation(line: 22, column: 10, scope: !34) +// CHECK:STDOUT: !40 = !DILocation(line: 22, column: 3, scope: !34) +// CHECK:STDOUT: !41 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.b88d1103f417c6d4", scope: null, file: !3, line: 25, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !42 = !DILocation(line: 26, column: 7, scope: !41) +// CHECK:STDOUT: !43 = !DILocation(line: 26, column: 6, scope: !41) +// CHECK:STDOUT: !44 = !DILocation(line: 27, column: 5, scope: !41) +// CHECK:STDOUT: !45 = !DILocation(line: 29, column: 15, scope: !41) +// CHECK:STDOUT: !46 = !DILocation(line: 29, column: 10, scope: !41) +// CHECK:STDOUT: !47 = !DILocation(line: 29, column: 3, scope: !41) +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.66be507887ceee78", scope: null, file: !3, line: 25, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !49 = !DILocation(line: 26, column: 7, scope: !48) +// CHECK:STDOUT: !50 = !DILocation(line: 26, column: 6, scope: !48) +// CHECK:STDOUT: !51 = !DILocation(line: 27, column: 5, scope: !48) +// CHECK:STDOUT: !52 = !DILocation(line: 29, column: 15, scope: !48) +// CHECK:STDOUT: !53 = !DILocation(line: 29, column: 10, scope: !48) +// CHECK:STDOUT: !54 = !DILocation(line: 29, column: 3, scope: !48) +// CHECK:STDOUT: !55 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.e8193710fd35b608", scope: null, file: !3, line: 25, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !56 = !DILocation(line: 26, column: 7, scope: !55) +// CHECK:STDOUT: !57 = !DILocation(line: 26, column: 6, scope: !55) +// CHECK:STDOUT: !58 = !DILocation(line: 27, column: 5, scope: !55) +// CHECK:STDOUT: !59 = !DILocation(line: 29, column: 15, scope: !55) +// CHECK:STDOUT: !60 = !DILocation(line: 29, column: 10, scope: !55) +// CHECK:STDOUT: !61 = !DILocation(line: 29, column: 3, scope: !55) diff --git a/toolchain/lower/testdata/function/generic/call_recursive_reorder.carbon b/toolchain/lower/testdata/function/generic/call_recursive_reorder.carbon index facd1949389d..3932a99661fa 100644 --- a/toolchain/lower/testdata/function/generic/call_recursive_reorder.carbon +++ b/toolchain/lower/testdata/function/generic/call_recursive_reorder.carbon @@ -2,6 +2,8 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon +// // AUTOUPDATE // TIP: To test this file alone, run: // TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/lower/testdata/function/generic/call_recursive_reorder.carbon @@ -37,12 +39,12 @@ fn M() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 8, ptr %ptr_i32.var), !dbg !7 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 8, ptr %ptr_f64.var), !dbg !8 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 8, ptr %ptr_bool.var), !dbg !9 -// CHECK:STDOUT: %.loc25_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !10 -// CHECK:STDOUT: %.loc25_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !11 -// CHECK:STDOUT: %F.call.loc25 = call i32 @_CF.Main.2fe87eb83f5a4614(ptr %.loc25_5, ptr %.loc25_14, i32 0), !dbg !12 -// CHECK:STDOUT: %.loc26_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !13 -// CHECK:STDOUT: %.loc26_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !14 -// CHECK:STDOUT: %F.call.loc26 = call i32 @_CF.Main.2fe87eb83f5a4614(ptr %.loc26_5, ptr %.loc26_14, i32 0), !dbg !15 +// CHECK:STDOUT: %.loc27_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !10 +// CHECK:STDOUT: %.loc27_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !11 +// CHECK:STDOUT: %F.call.loc27 = call i32 @_CF.Main.2fe87eb83f5a4614(ptr %.loc27_5, ptr %.loc27_14, i32 0), !dbg !12 +// CHECK:STDOUT: %.loc28_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !13 +// CHECK:STDOUT: %.loc28_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !14 +// CHECK:STDOUT: %F.call.loc28 = call i32 @_CF.Main.2fe87eb83f5a4614(ptr %.loc28_5, ptr %.loc28_14, i32 0), !dbg !15 // CHECK:STDOUT: ret void, !dbg !16 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -76,23 +78,23 @@ fn M() { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "call_recursive_reorder.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !3, line: 20, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !3, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{} -// CHECK:STDOUT: !7 = !DILocation(line: 21, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 22, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 23, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 25, column: 5, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 25, column: 14, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 25, column: 3, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 26, column: 5, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 26, column: 14, scope: !4) -// CHECK:STDOUT: !15 = !DILocation(line: 26, column: 3, scope: !4) -// CHECK:STDOUT: !16 = !DILocation(line: 20, column: 1, scope: !4) -// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.2fe87eb83f5a4614", scope: null, file: !3, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !18 = !DILocation(line: 14, column: 7, scope: !17) -// CHECK:STDOUT: !19 = !DILocation(line: 14, column: 6, scope: !17) -// CHECK:STDOUT: !20 = !DILocation(line: 15, column: 5, scope: !17) -// CHECK:STDOUT: !21 = !DILocation(line: 17, column: 18, scope: !17) -// CHECK:STDOUT: !22 = !DILocation(line: 17, column: 10, scope: !17) -// CHECK:STDOUT: !23 = !DILocation(line: 17, column: 3, scope: !17) +// CHECK:STDOUT: !7 = !DILocation(line: 23, column: 3, scope: !4) +// CHECK:STDOUT: !8 = !DILocation(line: 24, column: 3, scope: !4) +// CHECK:STDOUT: !9 = !DILocation(line: 25, column: 3, scope: !4) +// CHECK:STDOUT: !10 = !DILocation(line: 27, column: 5, scope: !4) +// CHECK:STDOUT: !11 = !DILocation(line: 27, column: 14, scope: !4) +// CHECK:STDOUT: !12 = !DILocation(line: 27, column: 3, scope: !4) +// CHECK:STDOUT: !13 = !DILocation(line: 28, column: 5, scope: !4) +// CHECK:STDOUT: !14 = !DILocation(line: 28, column: 14, scope: !4) +// CHECK:STDOUT: !15 = !DILocation(line: 28, column: 3, scope: !4) +// CHECK:STDOUT: !16 = !DILocation(line: 22, column: 1, scope: !4) +// CHECK:STDOUT: !17 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.2fe87eb83f5a4614", scope: null, file: !3, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !18 = !DILocation(line: 16, column: 7, scope: !17) +// CHECK:STDOUT: !19 = !DILocation(line: 16, column: 6, scope: !17) +// CHECK:STDOUT: !20 = !DILocation(line: 17, column: 5, scope: !17) +// CHECK:STDOUT: !21 = !DILocation(line: 19, column: 18, scope: !17) +// CHECK:STDOUT: !22 = !DILocation(line: 19, column: 10, scope: !17) +// CHECK:STDOUT: !23 = !DILocation(line: 19, column: 3, scope: !17) diff --git a/toolchain/lower/testdata/function/generic/call_recursive_reorder_more.carbon b/toolchain/lower/testdata/function/generic/call_recursive_reorder_more.carbon index fdb967af63bf..f955a1ffe5c5 100644 --- a/toolchain/lower/testdata/function/generic/call_recursive_reorder_more.carbon +++ b/toolchain/lower/testdata/function/generic/call_recursive_reorder_more.carbon @@ -2,6 +2,8 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon +// // AUTOUPDATE // TIP: To test this file alone, run: // TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/lower/testdata/function/generic/call_recursive_reorder_more.carbon @@ -73,54 +75,54 @@ fn M() { // CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 8, ptr %ptr_i32.var), !dbg !13 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 8, ptr %ptr_i64.var), !dbg !14 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 8, ptr %ptr_bool.var), !dbg !15 -// CHECK:STDOUT: %.loc36_5 = load i16, ptr %val_i16.var, align 2, !dbg !16 -// CHECK:STDOUT: %.loc36_14 = load ptr, ptr %ptr_i32.var, align 8, !dbg !17 -// CHECK:STDOUT: %.loc36_23 = load ptr, ptr %ptr_bool.var, align 8, !dbg !18 -// CHECK:STDOUT: %F.call.loc36 = call i32 @_CF.Main.077d2bb2ab5eee86(i16 %.loc36_5, ptr %.loc36_14, ptr %.loc36_23, i32 0), !dbg !19 -// CHECK:STDOUT: %.loc37_5 = load i32, ptr %val_i32.var, align 4, !dbg !20 -// CHECK:STDOUT: %.loc37_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !21 -// CHECK:STDOUT: %.loc37_24 = load ptr, ptr %ptr_i64.var, align 8, !dbg !22 -// CHECK:STDOUT: %F.call.loc37 = call i32 @_CF.Main.9a89ac9e10448feb(i32 %.loc37_5, ptr %.loc37_14, ptr %.loc37_24, i32 0), !dbg !23 -// CHECK:STDOUT: %.loc38_5 = load i1, ptr %val_bool.var, align 1, !dbg !24 -// CHECK:STDOUT: %.loc38_15 = load ptr, ptr %ptr_bool.var, align 8, !dbg !25 -// CHECK:STDOUT: %.loc38_25 = load ptr, ptr %ptr_i16.var, align 8, !dbg !26 -// CHECK:STDOUT: %F.call.loc38 = call i32 @_CF.Main.76a945443862cc1f(i1 %.loc38_5, ptr %.loc38_15, ptr %.loc38_25, i32 0), !dbg !27 -// CHECK:STDOUT: %.loc39_5 = load i64, ptr %val_i64.var, align 4, !dbg !28 -// CHECK:STDOUT: %.loc39_14 = load i1, ptr %val_bool.var, align 1, !dbg !29 -// CHECK:STDOUT: %.loc39_24 = load ptr, ptr %ptr_bool.var, align 8, !dbg !30 -// CHECK:STDOUT: %F.call.loc39 = call i32 @_CF.Main.02da1a7614ea56b6(i64 %.loc39_5, i1 %.loc39_14, ptr %.loc39_24, i32 0), !dbg !31 -// CHECK:STDOUT: %.loc40_5 = load double, ptr %val_f64.var, align 8, !dbg !32 -// CHECK:STDOUT: %.loc40_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !33 -// CHECK:STDOUT: %.loc40_24 = load ptr, ptr %ptr_bool.var, align 8, !dbg !34 -// CHECK:STDOUT: %F.call.loc40 = call i32 @_CF.Main.f51a89281f4fb62e(double %.loc40_5, ptr %.loc40_14, ptr %.loc40_24, i32 0), !dbg !35 -// CHECK:STDOUT: %.loc44_5 = load ptr, ptr %ptr_bool.var, align 8, !dbg !36 -// CHECK:STDOUT: %.loc44_15 = load ptr, ptr %ptr_i16.var, align 8, !dbg !37 -// CHECK:STDOUT: %.loc44_24 = load ptr, ptr %ptr_i32.var, align 8, !dbg !38 -// CHECK:STDOUT: %F.call.loc44 = call i32 @_CF.Main.7776e910959584d9(ptr %.loc44_5, ptr %.loc44_15, ptr %.loc44_24, i32 0), !dbg !39 -// CHECK:STDOUT: %.loc45_5 = load ptr, ptr %ptr_bool.var, align 8, !dbg !40 -// CHECK:STDOUT: %.loc45_15 = load ptr, ptr %ptr_i16.var, align 8, !dbg !41 -// CHECK:STDOUT: %.loc45_24 = load ptr, ptr %ptr_i64.var, align 8, !dbg !42 -// CHECK:STDOUT: %F.call.loc45 = call i32 @_CF.Main.7776e910959584d9(ptr %.loc45_5, ptr %.loc45_15, ptr %.loc45_24, i32 0), !dbg !43 -// CHECK:STDOUT: %.loc46_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !44 -// CHECK:STDOUT: %.loc46_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !45 -// CHECK:STDOUT: %.loc46_24 = load ptr, ptr %ptr_i16.var, align 8, !dbg !46 -// CHECK:STDOUT: %F.call.loc46 = call i32 @_CF.Main.7776e910959584d9(ptr %.loc46_5, ptr %.loc46_14, ptr %.loc46_24, i32 0), !dbg !47 -// CHECK:STDOUT: %.loc47_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !48 -// CHECK:STDOUT: %.loc47_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !49 -// CHECK:STDOUT: %.loc47_24 = load ptr, ptr %ptr_i64.var, align 8, !dbg !50 -// CHECK:STDOUT: %F.call.loc47 = call i32 @_CF.Main.7776e910959584d9(ptr %.loc47_5, ptr %.loc47_14, ptr %.loc47_24, i32 0), !dbg !51 -// CHECK:STDOUT: %.loc48_5 = load ptr, ptr %ptr_i16.var, align 8, !dbg !52 -// CHECK:STDOUT: %.loc48_14 = load ptr, ptr %ptr_i32.var, align 8, !dbg !53 -// CHECK:STDOUT: %.loc48_23 = load ptr, ptr %ptr_i64.var, align 8, !dbg !54 -// CHECK:STDOUT: %F.call.loc48 = call i32 @_CF.Main.7776e910959584d9(ptr %.loc48_5, ptr %.loc48_14, ptr %.loc48_23, i32 0), !dbg !55 -// CHECK:STDOUT: %.loc49_5 = load ptr, ptr %ptr_i64.var, align 8, !dbg !56 -// CHECK:STDOUT: %.loc49_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !57 -// CHECK:STDOUT: %.loc49_24 = load ptr, ptr %ptr_i16.var, align 8, !dbg !58 -// CHECK:STDOUT: %F.call.loc49 = call i32 @_CF.Main.7776e910959584d9(ptr %.loc49_5, ptr %.loc49_14, ptr %.loc49_24, i32 0), !dbg !59 -// CHECK:STDOUT: %.loc50_5 = load ptr, ptr %ptr_bool.var, align 8, !dbg !60 -// CHECK:STDOUT: %.loc50_15 = load ptr, ptr %ptr_bool.var, align 8, !dbg !61 -// CHECK:STDOUT: %.loc50_25 = load ptr, ptr %ptr_bool.var, align 8, !dbg !62 -// CHECK:STDOUT: %F.call.loc50 = call i32 @_CF.Main.7776e910959584d9(ptr %.loc50_5, ptr %.loc50_15, ptr %.loc50_25, i32 0), !dbg !63 +// CHECK:STDOUT: %.loc38_5 = load i16, ptr %val_i16.var, align 2, !dbg !16 +// CHECK:STDOUT: %.loc38_14 = load ptr, ptr %ptr_i32.var, align 8, !dbg !17 +// CHECK:STDOUT: %.loc38_23 = load ptr, ptr %ptr_bool.var, align 8, !dbg !18 +// CHECK:STDOUT: %F.call.loc38 = call i32 @_CF.Main.077d2bb2ab5eee86(i16 %.loc38_5, ptr %.loc38_14, ptr %.loc38_23, i32 0), !dbg !19 +// CHECK:STDOUT: %.loc39_5 = load i32, ptr %val_i32.var, align 4, !dbg !20 +// CHECK:STDOUT: %.loc39_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !21 +// CHECK:STDOUT: %.loc39_24 = load ptr, ptr %ptr_i64.var, align 8, !dbg !22 +// CHECK:STDOUT: %F.call.loc39 = call i32 @_CF.Main.9a89ac9e10448feb(i32 %.loc39_5, ptr %.loc39_14, ptr %.loc39_24, i32 0), !dbg !23 +// CHECK:STDOUT: %.loc40_5 = load i1, ptr %val_bool.var, align 1, !dbg !24 +// CHECK:STDOUT: %.loc40_15 = load ptr, ptr %ptr_bool.var, align 8, !dbg !25 +// CHECK:STDOUT: %.loc40_25 = load ptr, ptr %ptr_i16.var, align 8, !dbg !26 +// CHECK:STDOUT: %F.call.loc40 = call i32 @_CF.Main.76a945443862cc1f(i1 %.loc40_5, ptr %.loc40_15, ptr %.loc40_25, i32 0), !dbg !27 +// CHECK:STDOUT: %.loc41_5 = load i64, ptr %val_i64.var, align 4, !dbg !28 +// CHECK:STDOUT: %.loc41_14 = load i1, ptr %val_bool.var, align 1, !dbg !29 +// CHECK:STDOUT: %.loc41_24 = load ptr, ptr %ptr_bool.var, align 8, !dbg !30 +// CHECK:STDOUT: %F.call.loc41 = call i32 @_CF.Main.02da1a7614ea56b6(i64 %.loc41_5, i1 %.loc41_14, ptr %.loc41_24, i32 0), !dbg !31 +// CHECK:STDOUT: %.loc42_5 = load double, ptr %val_f64.var, align 8, !dbg !32 +// CHECK:STDOUT: %.loc42_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !33 +// CHECK:STDOUT: %.loc42_24 = load ptr, ptr %ptr_bool.var, align 8, !dbg !34 +// CHECK:STDOUT: %F.call.loc42 = call i32 @_CF.Main.f51a89281f4fb62e(double %.loc42_5, ptr %.loc42_14, ptr %.loc42_24, i32 0), !dbg !35 +// CHECK:STDOUT: %.loc46_5 = load ptr, ptr %ptr_bool.var, align 8, !dbg !36 +// CHECK:STDOUT: %.loc46_15 = load ptr, ptr %ptr_i16.var, align 8, !dbg !37 +// CHECK:STDOUT: %.loc46_24 = load ptr, ptr %ptr_i32.var, align 8, !dbg !38 +// CHECK:STDOUT: %F.call.loc46 = call i32 @_CF.Main.7776e910959584d9(ptr %.loc46_5, ptr %.loc46_15, ptr %.loc46_24, i32 0), !dbg !39 +// CHECK:STDOUT: %.loc47_5 = load ptr, ptr %ptr_bool.var, align 8, !dbg !40 +// CHECK:STDOUT: %.loc47_15 = load ptr, ptr %ptr_i16.var, align 8, !dbg !41 +// CHECK:STDOUT: %.loc47_24 = load ptr, ptr %ptr_i64.var, align 8, !dbg !42 +// CHECK:STDOUT: %F.call.loc47 = call i32 @_CF.Main.7776e910959584d9(ptr %.loc47_5, ptr %.loc47_15, ptr %.loc47_24, i32 0), !dbg !43 +// CHECK:STDOUT: %.loc48_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !44 +// CHECK:STDOUT: %.loc48_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !45 +// CHECK:STDOUT: %.loc48_24 = load ptr, ptr %ptr_i16.var, align 8, !dbg !46 +// CHECK:STDOUT: %F.call.loc48 = call i32 @_CF.Main.7776e910959584d9(ptr %.loc48_5, ptr %.loc48_14, ptr %.loc48_24, i32 0), !dbg !47 +// CHECK:STDOUT: %.loc49_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !48 +// CHECK:STDOUT: %.loc49_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !49 +// CHECK:STDOUT: %.loc49_24 = load ptr, ptr %ptr_i64.var, align 8, !dbg !50 +// CHECK:STDOUT: %F.call.loc49 = call i32 @_CF.Main.7776e910959584d9(ptr %.loc49_5, ptr %.loc49_14, ptr %.loc49_24, i32 0), !dbg !51 +// CHECK:STDOUT: %.loc50_5 = load ptr, ptr %ptr_i16.var, align 8, !dbg !52 +// CHECK:STDOUT: %.loc50_14 = load ptr, ptr %ptr_i32.var, align 8, !dbg !53 +// CHECK:STDOUT: %.loc50_23 = load ptr, ptr %ptr_i64.var, align 8, !dbg !54 +// CHECK:STDOUT: %F.call.loc50 = call i32 @_CF.Main.7776e910959584d9(ptr %.loc50_5, ptr %.loc50_14, ptr %.loc50_23, i32 0), !dbg !55 +// CHECK:STDOUT: %.loc51_5 = load ptr, ptr %ptr_i64.var, align 8, !dbg !56 +// CHECK:STDOUT: %.loc51_14 = load ptr, ptr %ptr_bool.var, align 8, !dbg !57 +// CHECK:STDOUT: %.loc51_24 = load ptr, ptr %ptr_i16.var, align 8, !dbg !58 +// CHECK:STDOUT: %F.call.loc51 = call i32 @_CF.Main.7776e910959584d9(ptr %.loc51_5, ptr %.loc51_14, ptr %.loc51_24, i32 0), !dbg !59 +// CHECK:STDOUT: %.loc52_5 = load ptr, ptr %ptr_bool.var, align 8, !dbg !60 +// CHECK:STDOUT: %.loc52_15 = load ptr, ptr %ptr_bool.var, align 8, !dbg !61 +// CHECK:STDOUT: %.loc52_25 = load ptr, ptr %ptr_bool.var, align 8, !dbg !62 +// CHECK:STDOUT: %F.call.loc52 = call i32 @_CF.Main.7776e910959584d9(ptr %.loc52_5, ptr %.loc52_15, ptr %.loc52_25, i32 0), !dbg !63 // CHECK:STDOUT: ret void, !dbg !64 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -238,113 +240,113 @@ fn M() { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "call_recursive_reorder_more.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !3, line: 20, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !3, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{} -// CHECK:STDOUT: !7 = !DILocation(line: 21, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 22, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 23, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 24, column: 3, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 25, column: 3, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 27, column: 3, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 28, column: 3, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 29, column: 3, scope: !4) -// CHECK:STDOUT: !15 = !DILocation(line: 30, column: 3, scope: !4) -// CHECK:STDOUT: !16 = !DILocation(line: 36, column: 5, scope: !4) -// CHECK:STDOUT: !17 = !DILocation(line: 36, column: 14, scope: !4) -// CHECK:STDOUT: !18 = !DILocation(line: 36, column: 23, scope: !4) -// CHECK:STDOUT: !19 = !DILocation(line: 36, column: 3, scope: !4) -// CHECK:STDOUT: !20 = !DILocation(line: 37, column: 5, scope: !4) -// CHECK:STDOUT: !21 = !DILocation(line: 37, column: 14, scope: !4) -// CHECK:STDOUT: !22 = !DILocation(line: 37, column: 24, scope: !4) -// CHECK:STDOUT: !23 = !DILocation(line: 37, column: 3, scope: !4) -// CHECK:STDOUT: !24 = !DILocation(line: 38, column: 5, scope: !4) -// CHECK:STDOUT: !25 = !DILocation(line: 38, column: 15, scope: !4) -// CHECK:STDOUT: !26 = !DILocation(line: 38, column: 25, scope: !4) -// CHECK:STDOUT: !27 = !DILocation(line: 38, column: 3, scope: !4) -// CHECK:STDOUT: !28 = !DILocation(line: 39, column: 5, scope: !4) -// CHECK:STDOUT: !29 = !DILocation(line: 39, column: 14, scope: !4) -// CHECK:STDOUT: !30 = !DILocation(line: 39, column: 24, scope: !4) -// CHECK:STDOUT: !31 = !DILocation(line: 39, column: 3, scope: !4) -// CHECK:STDOUT: !32 = !DILocation(line: 40, column: 5, scope: !4) -// CHECK:STDOUT: !33 = !DILocation(line: 40, column: 14, scope: !4) -// CHECK:STDOUT: !34 = !DILocation(line: 40, column: 24, scope: !4) -// CHECK:STDOUT: !35 = !DILocation(line: 40, column: 3, scope: !4) -// CHECK:STDOUT: !36 = !DILocation(line: 44, column: 5, scope: !4) -// CHECK:STDOUT: !37 = !DILocation(line: 44, column: 15, scope: !4) -// CHECK:STDOUT: !38 = !DILocation(line: 44, column: 24, scope: !4) -// CHECK:STDOUT: !39 = !DILocation(line: 44, column: 3, scope: !4) -// CHECK:STDOUT: !40 = !DILocation(line: 45, column: 5, scope: !4) -// CHECK:STDOUT: !41 = !DILocation(line: 45, column: 15, scope: !4) -// CHECK:STDOUT: !42 = !DILocation(line: 45, column: 24, scope: !4) -// CHECK:STDOUT: !43 = !DILocation(line: 45, column: 3, scope: !4) -// CHECK:STDOUT: !44 = !DILocation(line: 46, column: 5, scope: !4) -// CHECK:STDOUT: !45 = !DILocation(line: 46, column: 14, scope: !4) -// CHECK:STDOUT: !46 = !DILocation(line: 46, column: 24, scope: !4) -// CHECK:STDOUT: !47 = !DILocation(line: 46, column: 3, scope: !4) -// CHECK:STDOUT: !48 = !DILocation(line: 47, column: 5, scope: !4) -// CHECK:STDOUT: !49 = !DILocation(line: 47, column: 14, scope: !4) -// CHECK:STDOUT: !50 = !DILocation(line: 47, column: 24, scope: !4) -// CHECK:STDOUT: !51 = !DILocation(line: 47, column: 3, scope: !4) -// CHECK:STDOUT: !52 = !DILocation(line: 48, column: 5, scope: !4) -// CHECK:STDOUT: !53 = !DILocation(line: 48, column: 14, scope: !4) -// CHECK:STDOUT: !54 = !DILocation(line: 48, column: 23, scope: !4) -// CHECK:STDOUT: !55 = !DILocation(line: 48, column: 3, scope: !4) -// CHECK:STDOUT: !56 = !DILocation(line: 49, column: 5, scope: !4) -// CHECK:STDOUT: !57 = !DILocation(line: 49, column: 14, scope: !4) -// CHECK:STDOUT: !58 = !DILocation(line: 49, column: 24, scope: !4) -// CHECK:STDOUT: !59 = !DILocation(line: 49, column: 3, scope: !4) -// CHECK:STDOUT: !60 = !DILocation(line: 50, column: 5, scope: !4) -// CHECK:STDOUT: !61 = !DILocation(line: 50, column: 15, scope: !4) -// CHECK:STDOUT: !62 = !DILocation(line: 50, column: 25, scope: !4) -// CHECK:STDOUT: !63 = !DILocation(line: 50, column: 3, scope: !4) -// CHECK:STDOUT: !64 = !DILocation(line: 20, column: 1, scope: !4) -// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.077d2bb2ab5eee86", scope: null, file: !3, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !66 = !DILocation(line: 14, column: 7, scope: !65) -// CHECK:STDOUT: !67 = !DILocation(line: 14, column: 6, scope: !65) -// CHECK:STDOUT: !68 = !DILocation(line: 15, column: 5, scope: !65) -// CHECK:STDOUT: !69 = !DILocation(line: 17, column: 21, scope: !65) -// CHECK:STDOUT: !70 = !DILocation(line: 17, column: 10, scope: !65) -// CHECK:STDOUT: !71 = !DILocation(line: 17, column: 3, scope: !65) -// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.9a89ac9e10448feb", scope: null, file: !3, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !73 = !DILocation(line: 14, column: 7, scope: !72) -// CHECK:STDOUT: !74 = !DILocation(line: 14, column: 6, scope: !72) -// CHECK:STDOUT: !75 = !DILocation(line: 15, column: 5, scope: !72) -// CHECK:STDOUT: !76 = !DILocation(line: 17, column: 21, scope: !72) -// CHECK:STDOUT: !77 = !DILocation(line: 17, column: 10, scope: !72) -// CHECK:STDOUT: !78 = !DILocation(line: 17, column: 3, scope: !72) -// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.76a945443862cc1f", scope: null, file: !3, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !80 = !DILocation(line: 14, column: 7, scope: !79) -// CHECK:STDOUT: !81 = !DILocation(line: 14, column: 6, scope: !79) -// CHECK:STDOUT: !82 = !DILocation(line: 15, column: 5, scope: !79) -// CHECK:STDOUT: !83 = !DILocation(line: 17, column: 21, scope: !79) -// CHECK:STDOUT: !84 = !DILocation(line: 17, column: 10, scope: !79) -// CHECK:STDOUT: !85 = !DILocation(line: 17, column: 3, scope: !79) -// CHECK:STDOUT: !86 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.02da1a7614ea56b6", scope: null, file: !3, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !87 = !DILocation(line: 14, column: 7, scope: !86) -// CHECK:STDOUT: !88 = !DILocation(line: 14, column: 6, scope: !86) -// CHECK:STDOUT: !89 = !DILocation(line: 15, column: 5, scope: !86) -// CHECK:STDOUT: !90 = !DILocation(line: 17, column: 21, scope: !86) -// CHECK:STDOUT: !91 = !DILocation(line: 17, column: 10, scope: !86) -// CHECK:STDOUT: !92 = !DILocation(line: 17, column: 3, scope: !86) -// CHECK:STDOUT: !93 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.f51a89281f4fb62e", scope: null, file: !3, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !94 = !DILocation(line: 14, column: 7, scope: !93) -// CHECK:STDOUT: !95 = !DILocation(line: 14, column: 6, scope: !93) -// CHECK:STDOUT: !96 = !DILocation(line: 15, column: 5, scope: !93) -// CHECK:STDOUT: !97 = !DILocation(line: 17, column: 21, scope: !93) -// CHECK:STDOUT: !98 = !DILocation(line: 17, column: 10, scope: !93) -// CHECK:STDOUT: !99 = !DILocation(line: 17, column: 3, scope: !93) -// CHECK:STDOUT: !100 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.7776e910959584d9", scope: null, file: !3, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !101 = !DILocation(line: 14, column: 7, scope: !100) -// CHECK:STDOUT: !102 = !DILocation(line: 14, column: 6, scope: !100) -// CHECK:STDOUT: !103 = !DILocation(line: 15, column: 5, scope: !100) -// CHECK:STDOUT: !104 = !DILocation(line: 17, column: 21, scope: !100) -// CHECK:STDOUT: !105 = !DILocation(line: 17, column: 10, scope: !100) -// CHECK:STDOUT: !106 = !DILocation(line: 17, column: 3, scope: !100) -// CHECK:STDOUT: !107 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.bea8bae6e14e4034", scope: null, file: !3, line: 13, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !108 = !DILocation(line: 14, column: 7, scope: !107) -// CHECK:STDOUT: !109 = !DILocation(line: 14, column: 6, scope: !107) -// CHECK:STDOUT: !110 = !DILocation(line: 15, column: 5, scope: !107) -// CHECK:STDOUT: !111 = !DILocation(line: 17, column: 21, scope: !107) -// CHECK:STDOUT: !112 = !DILocation(line: 17, column: 10, scope: !107) -// CHECK:STDOUT: !113 = !DILocation(line: 17, column: 3, scope: !107) +// CHECK:STDOUT: !7 = !DILocation(line: 23, column: 3, scope: !4) +// CHECK:STDOUT: !8 = !DILocation(line: 24, column: 3, scope: !4) +// CHECK:STDOUT: !9 = !DILocation(line: 25, column: 3, scope: !4) +// CHECK:STDOUT: !10 = !DILocation(line: 26, column: 3, scope: !4) +// CHECK:STDOUT: !11 = !DILocation(line: 27, column: 3, scope: !4) +// CHECK:STDOUT: !12 = !DILocation(line: 29, column: 3, scope: !4) +// CHECK:STDOUT: !13 = !DILocation(line: 30, column: 3, scope: !4) +// CHECK:STDOUT: !14 = !DILocation(line: 31, column: 3, scope: !4) +// CHECK:STDOUT: !15 = !DILocation(line: 32, column: 3, scope: !4) +// CHECK:STDOUT: !16 = !DILocation(line: 38, column: 5, scope: !4) +// CHECK:STDOUT: !17 = !DILocation(line: 38, column: 14, scope: !4) +// CHECK:STDOUT: !18 = !DILocation(line: 38, column: 23, scope: !4) +// CHECK:STDOUT: !19 = !DILocation(line: 38, column: 3, scope: !4) +// CHECK:STDOUT: !20 = !DILocation(line: 39, column: 5, scope: !4) +// CHECK:STDOUT: !21 = !DILocation(line: 39, column: 14, scope: !4) +// CHECK:STDOUT: !22 = !DILocation(line: 39, column: 24, scope: !4) +// CHECK:STDOUT: !23 = !DILocation(line: 39, column: 3, scope: !4) +// CHECK:STDOUT: !24 = !DILocation(line: 40, column: 5, scope: !4) +// CHECK:STDOUT: !25 = !DILocation(line: 40, column: 15, scope: !4) +// CHECK:STDOUT: !26 = !DILocation(line: 40, column: 25, scope: !4) +// CHECK:STDOUT: !27 = !DILocation(line: 40, column: 3, scope: !4) +// CHECK:STDOUT: !28 = !DILocation(line: 41, column: 5, scope: !4) +// CHECK:STDOUT: !29 = !DILocation(line: 41, column: 14, scope: !4) +// CHECK:STDOUT: !30 = !DILocation(line: 41, column: 24, scope: !4) +// CHECK:STDOUT: !31 = !DILocation(line: 41, column: 3, scope: !4) +// CHECK:STDOUT: !32 = !DILocation(line: 42, column: 5, scope: !4) +// CHECK:STDOUT: !33 = !DILocation(line: 42, column: 14, scope: !4) +// CHECK:STDOUT: !34 = !DILocation(line: 42, column: 24, scope: !4) +// CHECK:STDOUT: !35 = !DILocation(line: 42, column: 3, scope: !4) +// CHECK:STDOUT: !36 = !DILocation(line: 46, column: 5, scope: !4) +// CHECK:STDOUT: !37 = !DILocation(line: 46, column: 15, scope: !4) +// CHECK:STDOUT: !38 = !DILocation(line: 46, column: 24, scope: !4) +// CHECK:STDOUT: !39 = !DILocation(line: 46, column: 3, scope: !4) +// CHECK:STDOUT: !40 = !DILocation(line: 47, column: 5, scope: !4) +// CHECK:STDOUT: !41 = !DILocation(line: 47, column: 15, scope: !4) +// CHECK:STDOUT: !42 = !DILocation(line: 47, column: 24, scope: !4) +// CHECK:STDOUT: !43 = !DILocation(line: 47, column: 3, scope: !4) +// CHECK:STDOUT: !44 = !DILocation(line: 48, column: 5, scope: !4) +// CHECK:STDOUT: !45 = !DILocation(line: 48, column: 14, scope: !4) +// CHECK:STDOUT: !46 = !DILocation(line: 48, column: 24, scope: !4) +// CHECK:STDOUT: !47 = !DILocation(line: 48, column: 3, scope: !4) +// CHECK:STDOUT: !48 = !DILocation(line: 49, column: 5, scope: !4) +// CHECK:STDOUT: !49 = !DILocation(line: 49, column: 14, scope: !4) +// CHECK:STDOUT: !50 = !DILocation(line: 49, column: 24, scope: !4) +// CHECK:STDOUT: !51 = !DILocation(line: 49, column: 3, scope: !4) +// CHECK:STDOUT: !52 = !DILocation(line: 50, column: 5, scope: !4) +// CHECK:STDOUT: !53 = !DILocation(line: 50, column: 14, scope: !4) +// CHECK:STDOUT: !54 = !DILocation(line: 50, column: 23, scope: !4) +// CHECK:STDOUT: !55 = !DILocation(line: 50, column: 3, scope: !4) +// CHECK:STDOUT: !56 = !DILocation(line: 51, column: 5, scope: !4) +// CHECK:STDOUT: !57 = !DILocation(line: 51, column: 14, scope: !4) +// CHECK:STDOUT: !58 = !DILocation(line: 51, column: 24, scope: !4) +// CHECK:STDOUT: !59 = !DILocation(line: 51, column: 3, scope: !4) +// CHECK:STDOUT: !60 = !DILocation(line: 52, column: 5, scope: !4) +// CHECK:STDOUT: !61 = !DILocation(line: 52, column: 15, scope: !4) +// CHECK:STDOUT: !62 = !DILocation(line: 52, column: 25, scope: !4) +// CHECK:STDOUT: !63 = !DILocation(line: 52, column: 3, scope: !4) +// CHECK:STDOUT: !64 = !DILocation(line: 22, column: 1, scope: !4) +// CHECK:STDOUT: !65 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.077d2bb2ab5eee86", scope: null, file: !3, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !66 = !DILocation(line: 16, column: 7, scope: !65) +// CHECK:STDOUT: !67 = !DILocation(line: 16, column: 6, scope: !65) +// CHECK:STDOUT: !68 = !DILocation(line: 17, column: 5, scope: !65) +// CHECK:STDOUT: !69 = !DILocation(line: 19, column: 21, scope: !65) +// CHECK:STDOUT: !70 = !DILocation(line: 19, column: 10, scope: !65) +// CHECK:STDOUT: !71 = !DILocation(line: 19, column: 3, scope: !65) +// CHECK:STDOUT: !72 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.9a89ac9e10448feb", scope: null, file: !3, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !73 = !DILocation(line: 16, column: 7, scope: !72) +// CHECK:STDOUT: !74 = !DILocation(line: 16, column: 6, scope: !72) +// CHECK:STDOUT: !75 = !DILocation(line: 17, column: 5, scope: !72) +// CHECK:STDOUT: !76 = !DILocation(line: 19, column: 21, scope: !72) +// CHECK:STDOUT: !77 = !DILocation(line: 19, column: 10, scope: !72) +// CHECK:STDOUT: !78 = !DILocation(line: 19, column: 3, scope: !72) +// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.76a945443862cc1f", scope: null, file: !3, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !80 = !DILocation(line: 16, column: 7, scope: !79) +// CHECK:STDOUT: !81 = !DILocation(line: 16, column: 6, scope: !79) +// CHECK:STDOUT: !82 = !DILocation(line: 17, column: 5, scope: !79) +// CHECK:STDOUT: !83 = !DILocation(line: 19, column: 21, scope: !79) +// CHECK:STDOUT: !84 = !DILocation(line: 19, column: 10, scope: !79) +// CHECK:STDOUT: !85 = !DILocation(line: 19, column: 3, scope: !79) +// CHECK:STDOUT: !86 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.02da1a7614ea56b6", scope: null, file: !3, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !87 = !DILocation(line: 16, column: 7, scope: !86) +// CHECK:STDOUT: !88 = !DILocation(line: 16, column: 6, scope: !86) +// CHECK:STDOUT: !89 = !DILocation(line: 17, column: 5, scope: !86) +// CHECK:STDOUT: !90 = !DILocation(line: 19, column: 21, scope: !86) +// CHECK:STDOUT: !91 = !DILocation(line: 19, column: 10, scope: !86) +// CHECK:STDOUT: !92 = !DILocation(line: 19, column: 3, scope: !86) +// CHECK:STDOUT: !93 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.f51a89281f4fb62e", scope: null, file: !3, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !94 = !DILocation(line: 16, column: 7, scope: !93) +// CHECK:STDOUT: !95 = !DILocation(line: 16, column: 6, scope: !93) +// CHECK:STDOUT: !96 = !DILocation(line: 17, column: 5, scope: !93) +// CHECK:STDOUT: !97 = !DILocation(line: 19, column: 21, scope: !93) +// CHECK:STDOUT: !98 = !DILocation(line: 19, column: 10, scope: !93) +// CHECK:STDOUT: !99 = !DILocation(line: 19, column: 3, scope: !93) +// CHECK:STDOUT: !100 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.7776e910959584d9", scope: null, file: !3, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !101 = !DILocation(line: 16, column: 7, scope: !100) +// CHECK:STDOUT: !102 = !DILocation(line: 16, column: 6, scope: !100) +// CHECK:STDOUT: !103 = !DILocation(line: 17, column: 5, scope: !100) +// CHECK:STDOUT: !104 = !DILocation(line: 19, column: 21, scope: !100) +// CHECK:STDOUT: !105 = !DILocation(line: 19, column: 10, scope: !100) +// CHECK:STDOUT: !106 = !DILocation(line: 19, column: 3, scope: !100) +// CHECK:STDOUT: !107 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.bea8bae6e14e4034", scope: null, file: !3, line: 15, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !108 = !DILocation(line: 16, column: 7, scope: !107) +// CHECK:STDOUT: !109 = !DILocation(line: 16, column: 6, scope: !107) +// CHECK:STDOUT: !110 = !DILocation(line: 17, column: 5, scope: !107) +// CHECK:STDOUT: !111 = !DILocation(line: 19, column: 21, scope: !107) +// CHECK:STDOUT: !112 = !DILocation(line: 19, column: 10, scope: !107) +// CHECK:STDOUT: !113 = !DILocation(line: 19, column: 3, scope: !107) diff --git a/toolchain/lower/testdata/function/generic/call_recursive_sccs_deep.carbon b/toolchain/lower/testdata/function/generic/call_recursive_sccs_deep.carbon index ca47e56a472c..20387a8980fd 100644 --- a/toolchain/lower/testdata/function/generic/call_recursive_sccs_deep.carbon +++ b/toolchain/lower/testdata/function/generic/call_recursive_sccs_deep.carbon @@ -2,6 +2,8 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon +// // AUTOUPDATE // TIP: To test this file alone, run: // TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/lower/testdata/function/generic/call_recursive_sccs_deep.carbon @@ -98,14 +100,14 @@ fn M() { // CHECK:STDOUT: store double 1.000000e+00, ptr %m.var, align 8, !dbg !8 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 8, ptr %ptr_i32.var), !dbg !9 // CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 8, ptr %ptr_f64.var), !dbg !10 -// CHECK:STDOUT: %.loc77_5 = load i32, ptr %n.var, align 4, !dbg !11 -// CHECK:STDOUT: %A.call.loc77 = call i32 @_CA.Main.b88d1103f417c6d4(i32 %.loc77_5, i32 0), !dbg !12 -// CHECK:STDOUT: %.loc78_5 = load double, ptr %m.var, align 8, !dbg !13 -// CHECK:STDOUT: %A.call.loc78 = call double @_CA.Main.66be507887ceee78(double %.loc78_5, i32 0), !dbg !14 -// CHECK:STDOUT: %.loc79_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !15 -// CHECK:STDOUT: %A.call.loc79 = call ptr @_CA.Main.e8193710fd35b608(ptr %.loc79_5, i32 0), !dbg !16 -// CHECK:STDOUT: %.loc80_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !17 -// CHECK:STDOUT: %A.call.loc80 = call ptr @_CA.Main.e8193710fd35b608(ptr %.loc80_5, i32 0), !dbg !18 +// CHECK:STDOUT: %.loc79_5 = load i32, ptr %n.var, align 4, !dbg !11 +// CHECK:STDOUT: %A.call.loc79 = call i32 @_CA.Main.b88d1103f417c6d4(i32 %.loc79_5, i32 0), !dbg !12 +// CHECK:STDOUT: %.loc80_5 = load double, ptr %m.var, align 8, !dbg !13 +// CHECK:STDOUT: %A.call.loc80 = call double @_CA.Main.66be507887ceee78(double %.loc80_5, i32 0), !dbg !14 +// CHECK:STDOUT: %.loc81_5 = load ptr, ptr %ptr_i32.var, align 8, !dbg !15 +// CHECK:STDOUT: %A.call.loc81 = call ptr @_CA.Main.e8193710fd35b608(ptr %.loc81_5, i32 0), !dbg !16 +// CHECK:STDOUT: %.loc82_5 = load ptr, ptr %ptr_f64.var, align 8, !dbg !17 +// CHECK:STDOUT: %A.call.loc82 = call ptr @_CA.Main.e8193710fd35b608(ptr %.loc82_5, i32 0), !dbg !18 // CHECK:STDOUT: ret void, !dbg !19 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -142,21 +144,21 @@ fn M() { // CHECK:STDOUT: define linkonce_odr i32 @_CD.Main.b88d1103f417c6d4(i32 %x, i32 %count) !dbg !35 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %int.greater = icmp sgt i32 %count, 4, !dbg !36 -// CHECK:STDOUT: br i1 %int.greater, label %if.then.loc46, label %if.else.loc46, !dbg !37 +// CHECK:STDOUT: br i1 %int.greater, label %if.then.loc48, label %if.else.loc48, !dbg !37 // CHECK:STDOUT: -// CHECK:STDOUT: if.then.loc46: ; preds = %entry +// CHECK:STDOUT: if.then.loc48: ; preds = %entry // CHECK:STDOUT: ret i32 %x, !dbg !38 // CHECK:STDOUT: -// CHECK:STDOUT: if.else.loc46: ; preds = %entry +// CHECK:STDOUT: if.else.loc48: ; preds = %entry // CHECK:STDOUT: %int.smod = srem i32 %count, 2, !dbg !39 // CHECK:STDOUT: %int.eq = icmp eq i32 %int.smod, 0, !dbg !39 -// CHECK:STDOUT: br i1 %int.eq, label %if.then.loc49, label %if.else.loc49, !dbg !40 +// CHECK:STDOUT: br i1 %int.eq, label %if.then.loc51, label %if.else.loc51, !dbg !40 // CHECK:STDOUT: -// CHECK:STDOUT: if.then.loc49: ; preds = %if.else.loc46 +// CHECK:STDOUT: if.then.loc51: ; preds = %if.else.loc48 // CHECK:STDOUT: %E.call = call i32 @_CE.Main.b88d1103f417c6d4(i32 %x, i32 %count), !dbg !41 // CHECK:STDOUT: ret i32 %E.call, !dbg !42 // CHECK:STDOUT: -// CHECK:STDOUT: if.else.loc49: ; preds = %if.else.loc46 +// CHECK:STDOUT: if.else.loc51: ; preds = %if.else.loc48 // CHECK:STDOUT: %F.call = call i32 @_CF.Main.b88d1103f417c6d4(i32 %x, i32 %count), !dbg !43 // CHECK:STDOUT: ret i32 %F.call, !dbg !44 // CHECK:STDOUT: } @@ -170,21 +172,21 @@ fn M() { // CHECK:STDOUT: define linkonce_odr double @_CD.Main.66be507887ceee78(double %x, i32 %count) !dbg !48 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %int.greater = icmp sgt i32 %count, 4, !dbg !49 -// CHECK:STDOUT: br i1 %int.greater, label %if.then.loc46, label %if.else.loc46, !dbg !50 +// CHECK:STDOUT: br i1 %int.greater, label %if.then.loc48, label %if.else.loc48, !dbg !50 // CHECK:STDOUT: -// CHECK:STDOUT: if.then.loc46: ; preds = %entry +// CHECK:STDOUT: if.then.loc48: ; preds = %entry // CHECK:STDOUT: ret double %x, !dbg !51 // CHECK:STDOUT: -// CHECK:STDOUT: if.else.loc46: ; preds = %entry +// CHECK:STDOUT: if.else.loc48: ; preds = %entry // CHECK:STDOUT: %int.smod = srem i32 %count, 2, !dbg !52 // CHECK:STDOUT: %int.eq = icmp eq i32 %int.smod, 0, !dbg !52 -// CHECK:STDOUT: br i1 %int.eq, label %if.then.loc49, label %if.else.loc49, !dbg !53 +// CHECK:STDOUT: br i1 %int.eq, label %if.then.loc51, label %if.else.loc51, !dbg !53 // CHECK:STDOUT: -// CHECK:STDOUT: if.then.loc49: ; preds = %if.else.loc46 +// CHECK:STDOUT: if.then.loc51: ; preds = %if.else.loc48 // CHECK:STDOUT: %E.call = call double @_CE.Main.66be507887ceee78(double %x, i32 %count), !dbg !54 // CHECK:STDOUT: ret double %E.call, !dbg !55 // CHECK:STDOUT: -// CHECK:STDOUT: if.else.loc49: ; preds = %if.else.loc46 +// CHECK:STDOUT: if.else.loc51: ; preds = %if.else.loc48 // CHECK:STDOUT: %F.call = call double @_CF.Main.66be507887ceee78(double %x, i32 %count), !dbg !56 // CHECK:STDOUT: ret double %F.call, !dbg !57 // CHECK:STDOUT: } @@ -198,21 +200,21 @@ fn M() { // CHECK:STDOUT: define linkonce_odr ptr @_CD.Main.e8193710fd35b608(ptr %x, i32 %count) !dbg !61 { // CHECK:STDOUT: entry: // CHECK:STDOUT: %int.greater = icmp sgt i32 %count, 4, !dbg !62 -// CHECK:STDOUT: br i1 %int.greater, label %if.then.loc46, label %if.else.loc46, !dbg !63 +// CHECK:STDOUT: br i1 %int.greater, label %if.then.loc48, label %if.else.loc48, !dbg !63 // CHECK:STDOUT: -// CHECK:STDOUT: if.then.loc46: ; preds = %entry +// CHECK:STDOUT: if.then.loc48: ; preds = %entry // CHECK:STDOUT: ret ptr %x, !dbg !64 // CHECK:STDOUT: -// CHECK:STDOUT: if.else.loc46: ; preds = %entry +// CHECK:STDOUT: if.else.loc48: ; preds = %entry // CHECK:STDOUT: %int.smod = srem i32 %count, 2, !dbg !65 // CHECK:STDOUT: %int.eq = icmp eq i32 %int.smod, 0, !dbg !65 -// CHECK:STDOUT: br i1 %int.eq, label %if.then.loc49, label %if.else.loc49, !dbg !66 +// CHECK:STDOUT: br i1 %int.eq, label %if.then.loc51, label %if.else.loc51, !dbg !66 // CHECK:STDOUT: -// CHECK:STDOUT: if.then.loc49: ; preds = %if.else.loc46 +// CHECK:STDOUT: if.then.loc51: ; preds = %if.else.loc48 // CHECK:STDOUT: %E.call = call ptr @_CE.Main.e8193710fd35b608(ptr %x, i32 %count), !dbg !67 // CHECK:STDOUT: ret ptr %E.call, !dbg !68 // CHECK:STDOUT: -// CHECK:STDOUT: if.else.loc49: ; preds = %if.else.loc46 +// CHECK:STDOUT: if.else.loc51: ; preds = %if.else.loc48 // CHECK:STDOUT: %F.call = call ptr @_CF.Main.e8193710fd35b608(ptr %x, i32 %count), !dbg !69 // CHECK:STDOUT: ret ptr %F.call, !dbg !70 // CHECK:STDOUT: } @@ -338,124 +340,124 @@ fn M() { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "call_recursive_sccs_deep.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !3, line: 71, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "M", linkageName: "_CM.Main", scope: null, file: !3, line: 73, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{} -// CHECK:STDOUT: !7 = !DILocation(line: 72, column: 3, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 73, column: 3, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 74, column: 3, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 75, column: 3, scope: !4) -// CHECK:STDOUT: !11 = !DILocation(line: 77, column: 5, scope: !4) -// CHECK:STDOUT: !12 = !DILocation(line: 77, column: 3, scope: !4) -// CHECK:STDOUT: !13 = !DILocation(line: 78, column: 5, scope: !4) -// CHECK:STDOUT: !14 = !DILocation(line: 78, column: 3, scope: !4) -// CHECK:STDOUT: !15 = !DILocation(line: 79, column: 5, scope: !4) -// CHECK:STDOUT: !16 = !DILocation(line: 79, column: 3, scope: !4) -// CHECK:STDOUT: !17 = !DILocation(line: 80, column: 5, scope: !4) -// CHECK:STDOUT: !18 = !DILocation(line: 80, column: 3, scope: !4) -// CHECK:STDOUT: !19 = !DILocation(line: 71, column: 1, scope: !4) -// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.b88d1103f417c6d4", scope: null, file: !3, line: 29, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !21 = !DILocation(line: 30, column: 3, scope: !20) -// CHECK:STDOUT: !22 = !DILocation(line: 31, column: 10, scope: !20) -// CHECK:STDOUT: !23 = !DILocation(line: 31, column: 3, scope: !20) -// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.66be507887ceee78", scope: null, file: !3, line: 29, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !25 = !DILocation(line: 30, column: 3, scope: !24) -// CHECK:STDOUT: !26 = !DILocation(line: 31, column: 10, scope: !24) -// CHECK:STDOUT: !27 = !DILocation(line: 31, column: 3, scope: !24) -// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.e8193710fd35b608", scope: null, file: !3, line: 29, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !29 = !DILocation(line: 30, column: 3, scope: !28) -// CHECK:STDOUT: !30 = !DILocation(line: 31, column: 10, scope: !28) -// CHECK:STDOUT: !31 = !DILocation(line: 31, column: 3, scope: !28) -// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.b88d1103f417c6d4", scope: null, file: !3, line: 34, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !33 = !DILocation(line: 35, column: 3, scope: !32) -// CHECK:STDOUT: !34 = !DILocation(line: 34, column: 1, scope: !32) -// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.b88d1103f417c6d4", scope: null, file: !3, line: 45, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !36 = !DILocation(line: 46, column: 7, scope: !35) -// CHECK:STDOUT: !37 = !DILocation(line: 46, column: 6, scope: !35) -// CHECK:STDOUT: !38 = !DILocation(line: 47, column: 5, scope: !35) -// CHECK:STDOUT: !39 = !DILocation(line: 49, column: 7, scope: !35) -// CHECK:STDOUT: !40 = !DILocation(line: 49, column: 6, scope: !35) -// CHECK:STDOUT: !41 = !DILocation(line: 50, column: 12, scope: !35) -// CHECK:STDOUT: !42 = !DILocation(line: 50, column: 5, scope: !35) -// CHECK:STDOUT: !43 = !DILocation(line: 52, column: 12, scope: !35) -// CHECK:STDOUT: !44 = !DILocation(line: 52, column: 5, scope: !35) -// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.66be507887ceee78", scope: null, file: !3, line: 34, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !46 = !DILocation(line: 35, column: 3, scope: !45) -// CHECK:STDOUT: !47 = !DILocation(line: 34, column: 1, scope: !45) -// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.66be507887ceee78", scope: null, file: !3, line: 45, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !49 = !DILocation(line: 46, column: 7, scope: !48) -// CHECK:STDOUT: !50 = !DILocation(line: 46, column: 6, scope: !48) -// CHECK:STDOUT: !51 = !DILocation(line: 47, column: 5, scope: !48) -// CHECK:STDOUT: !52 = !DILocation(line: 49, column: 7, scope: !48) -// CHECK:STDOUT: !53 = !DILocation(line: 49, column: 6, scope: !48) -// CHECK:STDOUT: !54 = !DILocation(line: 50, column: 12, scope: !48) -// CHECK:STDOUT: !55 = !DILocation(line: 50, column: 5, scope: !48) -// CHECK:STDOUT: !56 = !DILocation(line: 52, column: 12, scope: !48) -// CHECK:STDOUT: !57 = !DILocation(line: 52, column: 5, scope: !48) -// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.e8193710fd35b608", scope: null, file: !3, line: 34, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !59 = !DILocation(line: 35, column: 3, scope: !58) -// CHECK:STDOUT: !60 = !DILocation(line: 34, column: 1, scope: !58) -// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.e8193710fd35b608", scope: null, file: !3, line: 45, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !62 = !DILocation(line: 46, column: 7, scope: !61) -// CHECK:STDOUT: !63 = !DILocation(line: 46, column: 6, scope: !61) -// CHECK:STDOUT: !64 = !DILocation(line: 47, column: 5, scope: !61) -// CHECK:STDOUT: !65 = !DILocation(line: 49, column: 7, scope: !61) -// CHECK:STDOUT: !66 = !DILocation(line: 49, column: 6, scope: !61) -// CHECK:STDOUT: !67 = !DILocation(line: 50, column: 12, scope: !61) -// CHECK:STDOUT: !68 = !DILocation(line: 50, column: 5, scope: !61) -// CHECK:STDOUT: !69 = !DILocation(line: 52, column: 12, scope: !61) -// CHECK:STDOUT: !70 = !DILocation(line: 52, column: 5, scope: !61) -// CHECK:STDOUT: !71 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.b88d1103f417c6d4", scope: null, file: !3, line: 38, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !72 = !DILocation(line: 39, column: 7, scope: !71) -// CHECK:STDOUT: !73 = !DILocation(line: 39, column: 6, scope: !71) -// CHECK:STDOUT: !74 = !DILocation(line: 40, column: 5, scope: !71) -// CHECK:STDOUT: !75 = !DILocation(line: 41, column: 10, scope: !71) -// CHECK:STDOUT: !76 = !DILocation(line: 41, column: 5, scope: !71) -// CHECK:STDOUT: !77 = !DILocation(line: 39, column: 3, scope: !71) -// CHECK:STDOUT: !78 = !DILocation(line: 38, column: 1, scope: !71) -// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "E", linkageName: "_CE.Main.b88d1103f417c6d4", scope: null, file: !3, line: 58, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !80 = !DILocation(line: 59, column: 10, scope: !79) -// CHECK:STDOUT: !81 = !DILocation(line: 59, column: 3, scope: !79) -// CHECK:STDOUT: !82 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.b88d1103f417c6d4", scope: null, file: !3, line: 62, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !83 = !DILocation(line: 63, column: 10, scope: !82) -// CHECK:STDOUT: !84 = !DILocation(line: 63, column: 3, scope: !82) -// CHECK:STDOUT: !85 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.66be507887ceee78", scope: null, file: !3, line: 38, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !86 = !DILocation(line: 39, column: 7, scope: !85) -// CHECK:STDOUT: !87 = !DILocation(line: 39, column: 6, scope: !85) -// CHECK:STDOUT: !88 = !DILocation(line: 40, column: 5, scope: !85) -// CHECK:STDOUT: !89 = !DILocation(line: 41, column: 10, scope: !85) -// CHECK:STDOUT: !90 = !DILocation(line: 41, column: 5, scope: !85) -// CHECK:STDOUT: !91 = !DILocation(line: 39, column: 3, scope: !85) -// CHECK:STDOUT: !92 = !DILocation(line: 38, column: 1, scope: !85) -// CHECK:STDOUT: !93 = distinct !DISubprogram(name: "E", linkageName: "_CE.Main.66be507887ceee78", scope: null, file: !3, line: 58, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !94 = !DILocation(line: 59, column: 10, scope: !93) -// CHECK:STDOUT: !95 = !DILocation(line: 59, column: 3, scope: !93) -// CHECK:STDOUT: !96 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.66be507887ceee78", scope: null, file: !3, line: 62, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !97 = !DILocation(line: 63, column: 10, scope: !96) -// CHECK:STDOUT: !98 = !DILocation(line: 63, column: 3, scope: !96) -// CHECK:STDOUT: !99 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.e8193710fd35b608", scope: null, file: !3, line: 38, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !100 = !DILocation(line: 39, column: 7, scope: !99) -// CHECK:STDOUT: !101 = !DILocation(line: 39, column: 6, scope: !99) -// CHECK:STDOUT: !102 = !DILocation(line: 40, column: 5, scope: !99) -// CHECK:STDOUT: !103 = !DILocation(line: 41, column: 10, scope: !99) -// CHECK:STDOUT: !104 = !DILocation(line: 41, column: 5, scope: !99) -// CHECK:STDOUT: !105 = !DILocation(line: 39, column: 3, scope: !99) -// CHECK:STDOUT: !106 = !DILocation(line: 38, column: 1, scope: !99) -// CHECK:STDOUT: !107 = distinct !DISubprogram(name: "E", linkageName: "_CE.Main.e8193710fd35b608", scope: null, file: !3, line: 58, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !108 = !DILocation(line: 59, column: 10, scope: !107) -// CHECK:STDOUT: !109 = !DILocation(line: 59, column: 3, scope: !107) -// CHECK:STDOUT: !110 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.e8193710fd35b608", scope: null, file: !3, line: 62, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !111 = !DILocation(line: 63, column: 10, scope: !110) -// CHECK:STDOUT: !112 = !DILocation(line: 63, column: 3, scope: !110) -// CHECK:STDOUT: !113 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.b88d1103f417c6d4", scope: null, file: !3, line: 66, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !114 = !DILocation(line: 67, column: 15, scope: !113) -// CHECK:STDOUT: !115 = !DILocation(line: 67, column: 10, scope: !113) -// CHECK:STDOUT: !116 = !DILocation(line: 67, column: 3, scope: !113) -// CHECK:STDOUT: !117 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.66be507887ceee78", scope: null, file: !3, line: 66, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !118 = !DILocation(line: 67, column: 15, scope: !117) -// CHECK:STDOUT: !119 = !DILocation(line: 67, column: 10, scope: !117) -// CHECK:STDOUT: !120 = !DILocation(line: 67, column: 3, scope: !117) -// CHECK:STDOUT: !121 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.e8193710fd35b608", scope: null, file: !3, line: 66, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !122 = !DILocation(line: 67, column: 15, scope: !121) -// CHECK:STDOUT: !123 = !DILocation(line: 67, column: 10, scope: !121) -// CHECK:STDOUT: !124 = !DILocation(line: 67, column: 3, scope: !121) +// CHECK:STDOUT: !7 = !DILocation(line: 74, column: 3, scope: !4) +// CHECK:STDOUT: !8 = !DILocation(line: 75, column: 3, scope: !4) +// CHECK:STDOUT: !9 = !DILocation(line: 76, column: 3, scope: !4) +// CHECK:STDOUT: !10 = !DILocation(line: 77, column: 3, scope: !4) +// CHECK:STDOUT: !11 = !DILocation(line: 79, column: 5, scope: !4) +// CHECK:STDOUT: !12 = !DILocation(line: 79, column: 3, scope: !4) +// CHECK:STDOUT: !13 = !DILocation(line: 80, column: 5, scope: !4) +// CHECK:STDOUT: !14 = !DILocation(line: 80, column: 3, scope: !4) +// CHECK:STDOUT: !15 = !DILocation(line: 81, column: 5, scope: !4) +// CHECK:STDOUT: !16 = !DILocation(line: 81, column: 3, scope: !4) +// CHECK:STDOUT: !17 = !DILocation(line: 82, column: 5, scope: !4) +// CHECK:STDOUT: !18 = !DILocation(line: 82, column: 3, scope: !4) +// CHECK:STDOUT: !19 = !DILocation(line: 73, column: 1, scope: !4) +// CHECK:STDOUT: !20 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.b88d1103f417c6d4", scope: null, file: !3, line: 31, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !21 = !DILocation(line: 32, column: 3, scope: !20) +// CHECK:STDOUT: !22 = !DILocation(line: 33, column: 10, scope: !20) +// CHECK:STDOUT: !23 = !DILocation(line: 33, column: 3, scope: !20) +// CHECK:STDOUT: !24 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.66be507887ceee78", scope: null, file: !3, line: 31, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !25 = !DILocation(line: 32, column: 3, scope: !24) +// CHECK:STDOUT: !26 = !DILocation(line: 33, column: 10, scope: !24) +// CHECK:STDOUT: !27 = !DILocation(line: 33, column: 3, scope: !24) +// CHECK:STDOUT: !28 = distinct !DISubprogram(name: "A", linkageName: "_CA.Main.e8193710fd35b608", scope: null, file: !3, line: 31, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !29 = !DILocation(line: 32, column: 3, scope: !28) +// CHECK:STDOUT: !30 = !DILocation(line: 33, column: 10, scope: !28) +// CHECK:STDOUT: !31 = !DILocation(line: 33, column: 3, scope: !28) +// CHECK:STDOUT: !32 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.b88d1103f417c6d4", scope: null, file: !3, line: 36, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !33 = !DILocation(line: 37, column: 3, scope: !32) +// CHECK:STDOUT: !34 = !DILocation(line: 36, column: 1, scope: !32) +// CHECK:STDOUT: !35 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.b88d1103f417c6d4", scope: null, file: !3, line: 47, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !36 = !DILocation(line: 48, column: 7, scope: !35) +// CHECK:STDOUT: !37 = !DILocation(line: 48, column: 6, scope: !35) +// CHECK:STDOUT: !38 = !DILocation(line: 49, column: 5, scope: !35) +// CHECK:STDOUT: !39 = !DILocation(line: 51, column: 7, scope: !35) +// CHECK:STDOUT: !40 = !DILocation(line: 51, column: 6, scope: !35) +// CHECK:STDOUT: !41 = !DILocation(line: 52, column: 12, scope: !35) +// CHECK:STDOUT: !42 = !DILocation(line: 52, column: 5, scope: !35) +// CHECK:STDOUT: !43 = !DILocation(line: 54, column: 12, scope: !35) +// CHECK:STDOUT: !44 = !DILocation(line: 54, column: 5, scope: !35) +// CHECK:STDOUT: !45 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.66be507887ceee78", scope: null, file: !3, line: 36, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !46 = !DILocation(line: 37, column: 3, scope: !45) +// CHECK:STDOUT: !47 = !DILocation(line: 36, column: 1, scope: !45) +// CHECK:STDOUT: !48 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.66be507887ceee78", scope: null, file: !3, line: 47, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !49 = !DILocation(line: 48, column: 7, scope: !48) +// CHECK:STDOUT: !50 = !DILocation(line: 48, column: 6, scope: !48) +// CHECK:STDOUT: !51 = !DILocation(line: 49, column: 5, scope: !48) +// CHECK:STDOUT: !52 = !DILocation(line: 51, column: 7, scope: !48) +// CHECK:STDOUT: !53 = !DILocation(line: 51, column: 6, scope: !48) +// CHECK:STDOUT: !54 = !DILocation(line: 52, column: 12, scope: !48) +// CHECK:STDOUT: !55 = !DILocation(line: 52, column: 5, scope: !48) +// CHECK:STDOUT: !56 = !DILocation(line: 54, column: 12, scope: !48) +// CHECK:STDOUT: !57 = !DILocation(line: 54, column: 5, scope: !48) +// CHECK:STDOUT: !58 = distinct !DISubprogram(name: "B", linkageName: "_CB.Main.e8193710fd35b608", scope: null, file: !3, line: 36, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !59 = !DILocation(line: 37, column: 3, scope: !58) +// CHECK:STDOUT: !60 = !DILocation(line: 36, column: 1, scope: !58) +// CHECK:STDOUT: !61 = distinct !DISubprogram(name: "D", linkageName: "_CD.Main.e8193710fd35b608", scope: null, file: !3, line: 47, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !62 = !DILocation(line: 48, column: 7, scope: !61) +// CHECK:STDOUT: !63 = !DILocation(line: 48, column: 6, scope: !61) +// CHECK:STDOUT: !64 = !DILocation(line: 49, column: 5, scope: !61) +// CHECK:STDOUT: !65 = !DILocation(line: 51, column: 7, scope: !61) +// CHECK:STDOUT: !66 = !DILocation(line: 51, column: 6, scope: !61) +// CHECK:STDOUT: !67 = !DILocation(line: 52, column: 12, scope: !61) +// CHECK:STDOUT: !68 = !DILocation(line: 52, column: 5, scope: !61) +// CHECK:STDOUT: !69 = !DILocation(line: 54, column: 12, scope: !61) +// CHECK:STDOUT: !70 = !DILocation(line: 54, column: 5, scope: !61) +// CHECK:STDOUT: !71 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.b88d1103f417c6d4", scope: null, file: !3, line: 40, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !72 = !DILocation(line: 41, column: 7, scope: !71) +// CHECK:STDOUT: !73 = !DILocation(line: 41, column: 6, scope: !71) +// CHECK:STDOUT: !74 = !DILocation(line: 42, column: 5, scope: !71) +// CHECK:STDOUT: !75 = !DILocation(line: 43, column: 10, scope: !71) +// CHECK:STDOUT: !76 = !DILocation(line: 43, column: 5, scope: !71) +// CHECK:STDOUT: !77 = !DILocation(line: 41, column: 3, scope: !71) +// CHECK:STDOUT: !78 = !DILocation(line: 40, column: 1, scope: !71) +// CHECK:STDOUT: !79 = distinct !DISubprogram(name: "E", linkageName: "_CE.Main.b88d1103f417c6d4", scope: null, file: !3, line: 60, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !80 = !DILocation(line: 61, column: 10, scope: !79) +// CHECK:STDOUT: !81 = !DILocation(line: 61, column: 3, scope: !79) +// CHECK:STDOUT: !82 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.b88d1103f417c6d4", scope: null, file: !3, line: 64, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !83 = !DILocation(line: 65, column: 10, scope: !82) +// CHECK:STDOUT: !84 = !DILocation(line: 65, column: 3, scope: !82) +// CHECK:STDOUT: !85 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.66be507887ceee78", scope: null, file: !3, line: 40, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !86 = !DILocation(line: 41, column: 7, scope: !85) +// CHECK:STDOUT: !87 = !DILocation(line: 41, column: 6, scope: !85) +// CHECK:STDOUT: !88 = !DILocation(line: 42, column: 5, scope: !85) +// CHECK:STDOUT: !89 = !DILocation(line: 43, column: 10, scope: !85) +// CHECK:STDOUT: !90 = !DILocation(line: 43, column: 5, scope: !85) +// CHECK:STDOUT: !91 = !DILocation(line: 41, column: 3, scope: !85) +// CHECK:STDOUT: !92 = !DILocation(line: 40, column: 1, scope: !85) +// CHECK:STDOUT: !93 = distinct !DISubprogram(name: "E", linkageName: "_CE.Main.66be507887ceee78", scope: null, file: !3, line: 60, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !94 = !DILocation(line: 61, column: 10, scope: !93) +// CHECK:STDOUT: !95 = !DILocation(line: 61, column: 3, scope: !93) +// CHECK:STDOUT: !96 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.66be507887ceee78", scope: null, file: !3, line: 64, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !97 = !DILocation(line: 65, column: 10, scope: !96) +// CHECK:STDOUT: !98 = !DILocation(line: 65, column: 3, scope: !96) +// CHECK:STDOUT: !99 = distinct !DISubprogram(name: "C", linkageName: "_CC.Main.e8193710fd35b608", scope: null, file: !3, line: 40, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !100 = !DILocation(line: 41, column: 7, scope: !99) +// CHECK:STDOUT: !101 = !DILocation(line: 41, column: 6, scope: !99) +// CHECK:STDOUT: !102 = !DILocation(line: 42, column: 5, scope: !99) +// CHECK:STDOUT: !103 = !DILocation(line: 43, column: 10, scope: !99) +// CHECK:STDOUT: !104 = !DILocation(line: 43, column: 5, scope: !99) +// CHECK:STDOUT: !105 = !DILocation(line: 41, column: 3, scope: !99) +// CHECK:STDOUT: !106 = !DILocation(line: 40, column: 1, scope: !99) +// CHECK:STDOUT: !107 = distinct !DISubprogram(name: "E", linkageName: "_CE.Main.e8193710fd35b608", scope: null, file: !3, line: 60, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !108 = !DILocation(line: 61, column: 10, scope: !107) +// CHECK:STDOUT: !109 = !DILocation(line: 61, column: 3, scope: !107) +// CHECK:STDOUT: !110 = distinct !DISubprogram(name: "F", linkageName: "_CF.Main.e8193710fd35b608", scope: null, file: !3, line: 64, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !111 = !DILocation(line: 65, column: 10, scope: !110) +// CHECK:STDOUT: !112 = !DILocation(line: 65, column: 3, scope: !110) +// CHECK:STDOUT: !113 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.b88d1103f417c6d4", scope: null, file: !3, line: 68, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !114 = !DILocation(line: 69, column: 15, scope: !113) +// CHECK:STDOUT: !115 = !DILocation(line: 69, column: 10, scope: !113) +// CHECK:STDOUT: !116 = !DILocation(line: 69, column: 3, scope: !113) +// CHECK:STDOUT: !117 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.66be507887ceee78", scope: null, file: !3, line: 68, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !118 = !DILocation(line: 69, column: 15, scope: !117) +// CHECK:STDOUT: !119 = !DILocation(line: 69, column: 10, scope: !117) +// CHECK:STDOUT: !120 = !DILocation(line: 69, column: 3, scope: !117) +// CHECK:STDOUT: !121 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.e8193710fd35b608", scope: null, file: !3, line: 68, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !122 = !DILocation(line: 69, column: 15, scope: !121) +// CHECK:STDOUT: !123 = !DILocation(line: 69, column: 10, scope: !121) +// CHECK:STDOUT: !124 = !DILocation(line: 69, column: 3, scope: !121) diff --git a/toolchain/lower/testdata/operators/overloaded.carbon b/toolchain/lower/testdata/operators/overloaded.carbon index 186c8707b29b..75c484b0bd09 100644 --- a/toolchain/lower/testdata/operators/overloaded.carbon +++ b/toolchain/lower/testdata/operators/overloaded.carbon @@ -2,6 +2,8 @@ // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // +// INCLUDE-FILE: toolchain/testing/testdata/min_prelude/full.carbon +// // AUTOUPDATE // TIP: To test this file alone, run: // TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/lower/testdata/operators/overloaded.carbon @@ -33,59 +35,59 @@ fn Calculate(a: Number, b: Number) -> Number { // CHECK:STDOUT: // CHECK:STDOUT: define void @"_COp.Number.Main:Negate.Core"(ptr sret({ i1 }) %return, ptr %self) !dbg !4 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc17_36.1.is_positive = getelementptr inbounds nuw { i1 }, ptr %self, i32 0, i32 0, !dbg !7 -// CHECK:STDOUT: %.loc17_36.2 = load i1, ptr %.loc17_36.1.is_positive, align 1, !dbg !7 -// CHECK:STDOUT: %.loc17_28 = xor i1 %.loc17_36.2, true, !dbg !8 -// CHECK:STDOUT: %.loc17_48.2.is_positive = getelementptr inbounds nuw { i1 }, ptr %return, i32 0, i32 0, !dbg !9 -// CHECK:STDOUT: store i1 %.loc17_28, ptr %.loc17_48.2.is_positive, align 1, !dbg !9 +// CHECK:STDOUT: %.loc19_36.1.is_positive = getelementptr inbounds nuw { i1 }, ptr %self, i32 0, i32 0, !dbg !7 +// CHECK:STDOUT: %.loc19_36.2 = load i1, ptr %.loc19_36.1.is_positive, align 1, !dbg !7 +// CHECK:STDOUT: %.loc19_28 = xor i1 %.loc19_36.2, true, !dbg !8 +// CHECK:STDOUT: %.loc19_48.2.is_positive = getelementptr inbounds nuw { i1 }, ptr %return, i32 0, i32 0, !dbg !9 +// CHECK:STDOUT: store i1 %.loc19_28, ptr %.loc19_48.2.is_positive, align 1, !dbg !9 // CHECK:STDOUT: ret void, !dbg !10 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: define void @"_COp.Number.Main:MulWith.Core"(ptr sret({ i1 }) %return, ptr %self, ptr %other) !dbg !11 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc22_33.1.is_positive = getelementptr inbounds nuw { i1 }, ptr %self, i32 0, i32 0, !dbg !12 -// CHECK:STDOUT: %.loc22_33.2 = load i1, ptr %.loc22_33.1.is_positive, align 1, !dbg !12 -// CHECK:STDOUT: br i1 %.loc22_33.2, label %and.rhs.loc22, label %and.result.loc22, !dbg !12 +// CHECK:STDOUT: %.loc24_33.1.is_positive = getelementptr inbounds nuw { i1 }, ptr %self, i32 0, i32 0, !dbg !12 +// CHECK:STDOUT: %.loc24_33.2 = load i1, ptr %.loc24_33.1.is_positive, align 1, !dbg !12 +// CHECK:STDOUT: br i1 %.loc24_33.2, label %and.rhs.loc24, label %and.result.loc24, !dbg !12 // CHECK:STDOUT: -// CHECK:STDOUT: and.rhs.loc22: ; preds = %entry -// CHECK:STDOUT: %.loc22_55.1.is_positive = getelementptr inbounds nuw { i1 }, ptr %other, i32 0, i32 0, !dbg !13 -// CHECK:STDOUT: %.loc22_55.2 = load i1, ptr %.loc22_55.1.is_positive, align 1, !dbg !13 -// CHECK:STDOUT: br label %and.result.loc22, !dbg !12 +// CHECK:STDOUT: and.rhs.loc24: ; preds = %entry +// CHECK:STDOUT: %.loc24_55.1.is_positive = getelementptr inbounds nuw { i1 }, ptr %other, i32 0, i32 0, !dbg !13 +// CHECK:STDOUT: %.loc24_55.2 = load i1, ptr %.loc24_55.1.is_positive, align 1, !dbg !13 +// CHECK:STDOUT: br label %and.result.loc24, !dbg !12 // CHECK:STDOUT: -// CHECK:STDOUT: and.result.loc22: ; preds = %and.rhs.loc22, %entry -// CHECK:STDOUT: %0 = phi i1 [ false, %entry ], [ %.loc22_55.2, %and.rhs.loc22 ] -// CHECK:STDOUT: %.loc22_69.1 = xor i1 %0, true, !dbg !14 -// CHECK:STDOUT: br i1 %.loc22_69.1, label %or.rhs, label %or.result, !dbg !14 +// CHECK:STDOUT: and.result.loc24: ; preds = %and.rhs.loc24, %entry +// CHECK:STDOUT: %0 = phi i1 [ false, %entry ], [ %.loc24_55.2, %and.rhs.loc24 ] +// CHECK:STDOUT: %.loc24_69.1 = xor i1 %0, true, !dbg !14 +// CHECK:STDOUT: br i1 %.loc24_69.1, label %or.rhs, label %or.result, !dbg !14 // CHECK:STDOUT: -// CHECK:STDOUT: or.rhs: ; preds = %and.result.loc22 -// CHECK:STDOUT: %.loc23_38.1.is_positive = getelementptr inbounds nuw { i1 }, ptr %self, i32 0, i32 0, !dbg !15 -// CHECK:STDOUT: %.loc23_38.2 = load i1, ptr %.loc23_38.1.is_positive, align 1, !dbg !15 -// CHECK:STDOUT: %.loc23_30 = xor i1 %.loc23_38.2, true, !dbg !16 -// CHECK:STDOUT: br i1 %.loc23_30, label %and.rhs.loc23, label %and.result.loc23, !dbg !16 +// CHECK:STDOUT: or.rhs: ; preds = %and.result.loc24 +// CHECK:STDOUT: %.loc25_38.1.is_positive = getelementptr inbounds nuw { i1 }, ptr %self, i32 0, i32 0, !dbg !15 +// CHECK:STDOUT: %.loc25_38.2 = load i1, ptr %.loc25_38.1.is_positive, align 1, !dbg !15 +// CHECK:STDOUT: %.loc25_30 = xor i1 %.loc25_38.2, true, !dbg !16 +// CHECK:STDOUT: br i1 %.loc25_30, label %and.rhs.loc25, label %and.result.loc25, !dbg !16 // CHECK:STDOUT: -// CHECK:STDOUT: and.rhs.loc23: ; preds = %or.rhs -// CHECK:STDOUT: %.loc23_64.1.is_positive = getelementptr inbounds nuw { i1 }, ptr %other, i32 0, i32 0, !dbg !17 -// CHECK:STDOUT: %.loc23_64.2 = load i1, ptr %.loc23_64.1.is_positive, align 1, !dbg !17 -// CHECK:STDOUT: %.loc23_55 = xor i1 %.loc23_64.2, true, !dbg !18 -// CHECK:STDOUT: br label %and.result.loc23, !dbg !16 +// CHECK:STDOUT: and.rhs.loc25: ; preds = %or.rhs +// CHECK:STDOUT: %.loc25_64.1.is_positive = getelementptr inbounds nuw { i1 }, ptr %other, i32 0, i32 0, !dbg !17 +// CHECK:STDOUT: %.loc25_64.2 = load i1, ptr %.loc25_64.1.is_positive, align 1, !dbg !17 +// CHECK:STDOUT: %.loc25_55 = xor i1 %.loc25_64.2, true, !dbg !18 +// CHECK:STDOUT: br label %and.result.loc25, !dbg !16 // CHECK:STDOUT: -// CHECK:STDOUT: and.result.loc23: ; preds = %and.rhs.loc23, %or.rhs -// CHECK:STDOUT: %1 = phi i1 [ false, %or.rhs ], [ %.loc23_55, %and.rhs.loc23 ] +// CHECK:STDOUT: and.result.loc25: ; preds = %and.rhs.loc25, %or.rhs +// CHECK:STDOUT: %1 = phi i1 [ false, %or.rhs ], [ %.loc25_55, %and.rhs.loc25 ] // CHECK:STDOUT: br label %or.result, !dbg !14 // CHECK:STDOUT: -// CHECK:STDOUT: or.result: ; preds = %and.result.loc23, %and.result.loc22 -// CHECK:STDOUT: %2 = phi i1 [ true, %and.result.loc22 ], [ %1, %and.result.loc23 ] -// CHECK:STDOUT: %.loc23_77.2.is_positive = getelementptr inbounds nuw { i1 }, ptr %return, i32 0, i32 0, !dbg !19 -// CHECK:STDOUT: store i1 %2, ptr %.loc23_77.2.is_positive, align 1, !dbg !19 +// CHECK:STDOUT: or.result: ; preds = %and.result.loc25, %and.result.loc24 +// CHECK:STDOUT: %2 = phi i1 [ true, %and.result.loc24 ], [ %1, %and.result.loc25 ] +// CHECK:STDOUT: %.loc25_77.2.is_positive = getelementptr inbounds nuw { i1 }, ptr %return, i32 0, i32 0, !dbg !19 +// CHECK:STDOUT: store i1 %2, ptr %.loc25_77.2.is_positive, align 1, !dbg !19 // CHECK:STDOUT: ret void, !dbg !20 // CHECK:STDOUT: } // CHECK:STDOUT: // CHECK:STDOUT: define void @_CCalculate.Main(ptr sret({ i1 }) %return, ptr %a, ptr %b) !dbg !21 { // CHECK:STDOUT: entry: -// CHECK:STDOUT: %.loc28_10.1.temp = alloca { i1 }, align 8, !dbg !22 -// CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 1, ptr %.loc28_10.1.temp), !dbg !22 -// CHECK:STDOUT: call void @"_COp.Number.Main:Negate.Core"(ptr %.loc28_10.1.temp, ptr %a), !dbg !22 -// CHECK:STDOUT: call void @"_COp.Number.Main:MulWith.Core"(ptr %return, ptr %.loc28_10.1.temp, ptr %b), !dbg !22 +// CHECK:STDOUT: %.loc30_10.1.temp = alloca { i1 }, align 8, !dbg !22 +// CHECK:STDOUT: call void @llvm.lifetime.start.p0(i64 1, ptr %.loc30_10.1.temp), !dbg !22 +// CHECK:STDOUT: call void @"_COp.Number.Main:Negate.Core"(ptr %.loc30_10.1.temp, ptr %a), !dbg !22 +// CHECK:STDOUT: call void @"_COp.Number.Main:MulWith.Core"(ptr %return, ptr %.loc30_10.1.temp, ptr %b), !dbg !22 // CHECK:STDOUT: ret void, !dbg !23 // CHECK:STDOUT: } // CHECK:STDOUT: @@ -101,23 +103,23 @@ fn Calculate(a: Number, b: Number) -> Number { // CHECK:STDOUT: !1 = !{i32 2, !"Debug Info Version", i32 3} // CHECK:STDOUT: !2 = distinct !DICompileUnit(language: DW_LANG_C, file: !3, producer: "carbon", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug) // CHECK:STDOUT: !3 = !DIFile(filename: "overloaded.carbon", directory: "") -// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Number.Main:Negate.Core", scope: null, file: !3, line: 16, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !4 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Number.Main:Negate.Core", scope: null, file: !3, line: 18, type: !5, spFlags: DISPFlagDefinition, unit: !2) // CHECK:STDOUT: !5 = !DISubroutineType(types: !6) // CHECK:STDOUT: !6 = !{} -// CHECK:STDOUT: !7 = !DILocation(line: 17, column: 32, scope: !4) -// CHECK:STDOUT: !8 = !DILocation(line: 17, column: 28, scope: !4) -// CHECK:STDOUT: !9 = !DILocation(line: 17, column: 12, scope: !4) -// CHECK:STDOUT: !10 = !DILocation(line: 17, column: 5, scope: !4) -// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Number.Main:MulWith.Core", scope: null, file: !3, line: 21, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !12 = !DILocation(line: 22, column: 29, scope: !11) -// CHECK:STDOUT: !13 = !DILocation(line: 22, column: 50, scope: !11) -// CHECK:STDOUT: !14 = !DILocation(line: 22, column: 28, scope: !11) -// CHECK:STDOUT: !15 = !DILocation(line: 23, column: 34, scope: !11) -// CHECK:STDOUT: !16 = !DILocation(line: 23, column: 30, scope: !11) -// CHECK:STDOUT: !17 = !DILocation(line: 23, column: 59, scope: !11) -// CHECK:STDOUT: !18 = !DILocation(line: 23, column: 55, scope: !11) -// CHECK:STDOUT: !19 = !DILocation(line: 22, column: 12, scope: !11) -// CHECK:STDOUT: !20 = !DILocation(line: 22, column: 5, scope: !11) -// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Calculate", linkageName: "_CCalculate.Main", scope: null, file: !3, line: 27, type: !5, spFlags: DISPFlagDefinition, unit: !2) -// CHECK:STDOUT: !22 = !DILocation(line: 28, column: 10, scope: !21) -// CHECK:STDOUT: !23 = !DILocation(line: 28, column: 3, scope: !21) +// CHECK:STDOUT: !7 = !DILocation(line: 19, column: 32, scope: !4) +// CHECK:STDOUT: !8 = !DILocation(line: 19, column: 28, scope: !4) +// CHECK:STDOUT: !9 = !DILocation(line: 19, column: 12, scope: !4) +// CHECK:STDOUT: !10 = !DILocation(line: 19, column: 5, scope: !4) +// CHECK:STDOUT: !11 = distinct !DISubprogram(name: "Op", linkageName: "_COp.Number.Main:MulWith.Core", scope: null, file: !3, line: 23, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !12 = !DILocation(line: 24, column: 29, scope: !11) +// CHECK:STDOUT: !13 = !DILocation(line: 24, column: 50, scope: !11) +// CHECK:STDOUT: !14 = !DILocation(line: 24, column: 28, scope: !11) +// CHECK:STDOUT: !15 = !DILocation(line: 25, column: 34, scope: !11) +// CHECK:STDOUT: !16 = !DILocation(line: 25, column: 30, scope: !11) +// CHECK:STDOUT: !17 = !DILocation(line: 25, column: 59, scope: !11) +// CHECK:STDOUT: !18 = !DILocation(line: 25, column: 55, scope: !11) +// CHECK:STDOUT: !19 = !DILocation(line: 24, column: 12, scope: !11) +// CHECK:STDOUT: !20 = !DILocation(line: 24, column: 5, scope: !11) +// CHECK:STDOUT: !21 = distinct !DISubprogram(name: "Calculate", linkageName: "_CCalculate.Main", scope: null, file: !3, line: 29, type: !5, spFlags: DISPFlagDefinition, unit: !2) +// CHECK:STDOUT: !22 = !DILocation(line: 30, column: 10, scope: !21) +// CHECK:STDOUT: !23 = !DILocation(line: 30, column: 3, scope: !21) diff --git a/toolchain/testing/file_test.cpp b/toolchain/testing/file_test.cpp index 4aefaef92fda..1c8c1458f4dd 100644 --- a/toolchain/testing/file_test.cpp +++ b/toolchain/testing/file_test.cpp @@ -163,11 +163,9 @@ auto ToolchainFileTest::Run( } } if (!found_prelude_flag) { - // TODO: Enable this error when all check/ and lower/ tests include a - // prelude choice explicitly. - // return Error( - // "Include a prelude from //toolchain/testing/testdata/min_prelude " - // "to specify what should be imported into the test."); + return Error( + "Include a prelude from //toolchain/testing/testdata/min_prelude " + "to specify what should be imported into the test."); } } else { filtered_test_args = test_args;