mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-05 22:02:55 +01:00
More instructions get named (#4615)
Goal is to reduce churn in names in test updates (by churning a lot of them in this PR). --------- Co-authored-by: Josh L <josh11b@users.noreply.github.com>
This commit is contained in:
+33
-33
@@ -17,21 +17,21 @@ fn G() {
|
||||
// CHECK:STDOUT: --- array_in_place.carbon
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %.1: Core.IntLiteral = int_value 32 [template]
|
||||
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template]
|
||||
// CHECK:STDOUT: %Int.type: type = fn_type @Int [template]
|
||||
// CHECK:STDOUT: %Int: %Int.type = struct_value () [template]
|
||||
// CHECK:STDOUT: %i32: type = int_type signed, %.1 [template]
|
||||
// CHECK:STDOUT: %i32: type = int_type signed, %int_32 [template]
|
||||
// CHECK:STDOUT: %tuple.type.1: type = tuple_type (type, type, type) [template]
|
||||
// CHECK:STDOUT: %tuple.type.2: type = tuple_type (%i32, %i32, %i32) [template]
|
||||
// CHECK:STDOUT: %F.type: type = fn_type @F [template]
|
||||
// CHECK:STDOUT: %F: %F.type = struct_value () [template]
|
||||
// CHECK:STDOUT: %G.type: type = fn_type @G [template]
|
||||
// CHECK:STDOUT: %G: %G.type = struct_value () [template]
|
||||
// CHECK:STDOUT: %.2: Core.IntLiteral = int_value 2 [template]
|
||||
// CHECK:STDOUT: %.3: type = array_type %.2, %tuple.type.2 [template]
|
||||
// CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template]
|
||||
// CHECK:STDOUT: %array_type: type = array_type %int_2, %tuple.type.2 [template]
|
||||
// CHECK:STDOUT: %tuple.type.3: type = tuple_type (%tuple.type.2, %tuple.type.2) [template]
|
||||
// CHECK:STDOUT: %.6: Core.IntLiteral = int_value 0 [template]
|
||||
// CHECK:STDOUT: %.7: Core.IntLiteral = int_value 1 [template]
|
||||
// CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template]
|
||||
// CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -53,12 +53,12 @@ fn G() {
|
||||
// CHECK:STDOUT: %return.patt: %tuple.type.2 = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: %tuple.type.2 = out_param_pattern %return.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %.loc11_12: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc11_12: init type = call constants.%Int(%.loc11_12) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_17: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc11_17: init type = call constants.%Int(%.loc11_17) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_22: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc11_22: init type = call constants.%Int(%.loc11_22) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_32.loc11_12: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc11_12: init type = call constants.%Int(%int_32.loc11_12) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_32.loc11_17: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc11_17: init type = call constants.%Int(%int_32.loc11_17) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_32.loc11_22: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc11_22: init type = call constants.%Int(%int_32.loc11_22) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_25.1: %tuple.type.1 = tuple_literal (%int.make_type_signed.loc11_12, %int.make_type_signed.loc11_17, %int.make_type_signed.loc11_22)
|
||||
// CHECK:STDOUT: %.loc11_25.2: type = value_of_initializer %int.make_type_signed.loc11_12 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_25.3: type = converted %int.make_type_signed.loc11_12, %.loc11_25.2 [template = constants.%i32]
|
||||
@@ -77,14 +77,14 @@ fn G() {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @G() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %.loc14_12: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc14_12: init type = call constants.%Int(%.loc14_12) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc14_17: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc14_17: init type = call constants.%Int(%.loc14_17) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc14_22: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc14_22: init type = call constants.%Int(%.loc14_22) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_32.loc14_12: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc14_12: init type = call constants.%Int(%int_32.loc14_12) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_32.loc14_17: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc14_17: init type = call constants.%Int(%int_32.loc14_17) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_32.loc14_22: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc14_22: init type = call constants.%Int(%int_32.loc14_22) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc14_25.1: %tuple.type.1 = tuple_literal (%int.make_type_signed.loc14_12, %int.make_type_signed.loc14_17, %int.make_type_signed.loc14_22)
|
||||
// CHECK:STDOUT: %.loc14_28: Core.IntLiteral = int_value 2 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2]
|
||||
// CHECK:STDOUT: %.loc14_25.2: type = value_of_initializer %int.make_type_signed.loc14_12 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc14_25.3: type = converted %int.make_type_signed.loc14_12, %.loc14_25.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc14_25.4: type = value_of_initializer %int.make_type_signed.loc14_17 [template = constants.%i32]
|
||||
@@ -92,24 +92,24 @@ fn G() {
|
||||
// CHECK:STDOUT: %.loc14_25.6: type = value_of_initializer %int.make_type_signed.loc14_22 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc14_25.7: type = converted %int.make_type_signed.loc14_22, %.loc14_25.6 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc14_25.8: type = converted %.loc14_25.1, constants.%tuple.type.2 [template = constants.%tuple.type.2]
|
||||
// CHECK:STDOUT: %.loc14_29: type = array_type %.loc14_28, %tuple.type.2 [template = constants.%.3]
|
||||
// CHECK:STDOUT: %v.var: ref %.3 = var v
|
||||
// CHECK:STDOUT: %v: ref %.3 = bind_name v, %v.var
|
||||
// CHECK:STDOUT: %array_type: type = array_type %int_2, %tuple.type.2 [template = constants.%array_type]
|
||||
// CHECK:STDOUT: %v.var: ref %array_type = var v
|
||||
// CHECK:STDOUT: %v: ref %array_type = bind_name v, %v.var
|
||||
// CHECK:STDOUT: %F.ref.loc14_34: %F.type = name_ref F, file.%F.decl [template = constants.%F]
|
||||
// CHECK:STDOUT: %.loc14_42.3: ref %tuple.type.2 = splice_block %.loc14_42.2 {
|
||||
// CHECK:STDOUT: %.loc14_42.1: Core.IntLiteral = int_value 0 [template = constants.%.6]
|
||||
// CHECK:STDOUT: %.loc14_42.2: ref %tuple.type.2 = array_index %v.var, %.loc14_42.1
|
||||
// CHECK:STDOUT: %.loc14_42.2: ref %tuple.type.2 = splice_block %.loc14_42.1 {
|
||||
// CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0]
|
||||
// CHECK:STDOUT: %.loc14_42.1: ref %tuple.type.2 = array_index %v.var, %int_0
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %F.call.loc14_36: init %tuple.type.2 = call %F.ref.loc14_34() to %.loc14_42.3
|
||||
// CHECK:STDOUT: %F.call.loc14_36: init %tuple.type.2 = call %F.ref.loc14_34() to %.loc14_42.2
|
||||
// CHECK:STDOUT: %F.ref.loc14_39: %F.type = name_ref F, file.%F.decl [template = constants.%F]
|
||||
// CHECK:STDOUT: %.loc14_42.6: ref %tuple.type.2 = splice_block %.loc14_42.5 {
|
||||
// CHECK:STDOUT: %.loc14_42.4: Core.IntLiteral = int_value 1 [template = constants.%.7]
|
||||
// CHECK:STDOUT: %.loc14_42.5: ref %tuple.type.2 = array_index %v.var, %.loc14_42.4
|
||||
// CHECK:STDOUT: %.loc14_42.4: ref %tuple.type.2 = splice_block %.loc14_42.3 {
|
||||
// CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1]
|
||||
// CHECK:STDOUT: %.loc14_42.3: ref %tuple.type.2 = array_index %v.var, %int_1
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %F.call.loc14_41: init %tuple.type.2 = call %F.ref.loc14_39() to %.loc14_42.6
|
||||
// CHECK:STDOUT: %.loc14_42.7: %tuple.type.3 = tuple_literal (%F.call.loc14_36, %F.call.loc14_41)
|
||||
// CHECK:STDOUT: %.loc14_42.8: init %.3 = array_init (%F.call.loc14_36, %F.call.loc14_41) to %v.var
|
||||
// CHECK:STDOUT: %.loc14_43: init %.3 = converted %.loc14_42.7, %.loc14_42.8
|
||||
// CHECK:STDOUT: %F.call.loc14_41: init %tuple.type.2 = call %F.ref.loc14_39() to %.loc14_42.4
|
||||
// CHECK:STDOUT: %.loc14_42.5: %tuple.type.3 = tuple_literal (%F.call.loc14_36, %F.call.loc14_41)
|
||||
// CHECK:STDOUT: %.loc14_42.6: init %array_type = array_init (%F.call.loc14_36, %F.call.loc14_41) to %v.var
|
||||
// CHECK:STDOUT: %.loc14_43: init %array_type = converted %.loc14_42.5, %.loc14_42.6
|
||||
// CHECK:STDOUT: assign %v.var, %.loc14_43
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
+91
-91
@@ -19,33 +19,33 @@ fn G() {
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %G.type: type = fn_type @G [template]
|
||||
// CHECK:STDOUT: %G: %G.type = struct_value () [template]
|
||||
// CHECK:STDOUT: %.1: Core.IntLiteral = int_value 32 [template]
|
||||
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template]
|
||||
// CHECK:STDOUT: %Int.type: type = fn_type @Int [template]
|
||||
// CHECK:STDOUT: %Int: %Int.type = struct_value () [template]
|
||||
// CHECK:STDOUT: %i32: type = int_type signed, %.1 [template]
|
||||
// CHECK:STDOUT: %.2: Core.IntLiteral = int_value 3 [template]
|
||||
// CHECK:STDOUT: %.3: type = array_type %.2, %i32 [template]
|
||||
// CHECK:STDOUT: %.5: Core.IntLiteral = int_value 1 [template]
|
||||
// CHECK:STDOUT: %.6: Core.IntLiteral = int_value 2 [template]
|
||||
// CHECK:STDOUT: %i32: type = int_type signed, %int_32 [template]
|
||||
// CHECK:STDOUT: %int_3.1: Core.IntLiteral = int_value 3 [template]
|
||||
// CHECK:STDOUT: %array_type: type = array_type %int_3.1, %i32 [template]
|
||||
// CHECK:STDOUT: %int_1.1: Core.IntLiteral = int_value 1 [template]
|
||||
// CHECK:STDOUT: %int_2.1: Core.IntLiteral = int_value 2 [template]
|
||||
// CHECK:STDOUT: %tuple.type.1: type = tuple_type (Core.IntLiteral, Core.IntLiteral, Core.IntLiteral) [template]
|
||||
// CHECK:STDOUT: %.7: Core.IntLiteral = int_value 0 [template]
|
||||
// CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template]
|
||||
// CHECK:STDOUT: %Convert.type.2: type = fn_type @Convert.1, @ImplicitAs(%i32) [template]
|
||||
// CHECK:STDOUT: %Convert.type.14: type = fn_type @Convert.2, @impl.1(%.1) [template]
|
||||
// CHECK:STDOUT: %Convert.type.14: type = fn_type @Convert.2, @impl.1(%int_32) [template]
|
||||
// CHECK:STDOUT: %Convert.14: %Convert.type.14 = struct_value () [template]
|
||||
// CHECK:STDOUT: %.31: <witness> = interface_witness (%Convert.14) [template]
|
||||
// CHECK:STDOUT: %.32: <bound method> = bound_method %.5, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %.33: <specific function> = specific_function %.32, @Convert.2(%.1) [template]
|
||||
// CHECK:STDOUT: %.34: %i32 = int_value 1 [template]
|
||||
// CHECK:STDOUT: %.35: <bound method> = bound_method %.6, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %.36: <specific function> = specific_function %.35, @Convert.2(%.1) [template]
|
||||
// CHECK:STDOUT: %.37: %i32 = int_value 2 [template]
|
||||
// CHECK:STDOUT: %.38: <bound method> = bound_method %.2, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %.39: <specific function> = specific_function %.38, @Convert.2(%.1) [template]
|
||||
// CHECK:STDOUT: %.40: %i32 = int_value 3 [template]
|
||||
// CHECK:STDOUT: %array: %.3 = tuple_value (%.34, %.37, %.40) [template]
|
||||
// CHECK:STDOUT: %interface.9: <witness> = interface_witness (%Convert.14) [template]
|
||||
// CHECK:STDOUT: %Convert.bound.1: <bound method> = bound_method %int_1.1, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.1: <specific function> = specific_function %Convert.bound.1, @Convert.2(%int_32) [template]
|
||||
// CHECK:STDOUT: %int_1.2: %i32 = int_value 1 [template]
|
||||
// CHECK:STDOUT: %Convert.bound.2: <bound method> = bound_method %int_2.1, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.2: <specific function> = specific_function %Convert.bound.2, @Convert.2(%int_32) [template]
|
||||
// CHECK:STDOUT: %int_2.2: %i32 = int_value 2 [template]
|
||||
// CHECK:STDOUT: %Convert.bound.3: <bound method> = bound_method %int_3.1, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.3: <specific function> = specific_function %Convert.bound.3, @Convert.2(%int_32) [template]
|
||||
// CHECK:STDOUT: %int_3.2: %i32 = int_value 3 [template]
|
||||
// CHECK:STDOUT: %array: %array_type = tuple_value (%int_1.2, %int_2.2, %int_3.2) [template]
|
||||
// CHECK:STDOUT: %tuple.type.2: type = tuple_type (type, type, type) [template]
|
||||
// CHECK:STDOUT: %tuple.type.3: type = tuple_type (%i32, %i32, %i32) [template]
|
||||
// CHECK:STDOUT: %tuple: %tuple.type.3 = tuple_value (%.34, %.37, %.40) [template]
|
||||
// CHECK:STDOUT: %tuple: %tuple.type.3 = tuple_value (%int_1.2, %int_2.2, %int_3.2) [template]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -68,51 +68,51 @@ fn G() {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @G() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %.loc13_11.1: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc13: init type = call constants.%Int(%.loc13_11.1) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc13_16: Core.IntLiteral = int_value 3 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc13_11.2: type = value_of_initializer %int.make_type_signed.loc13 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc13_11.3: type = converted %int.make_type_signed.loc13, %.loc13_11.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc13_17: type = array_type %.loc13_16, %i32 [template = constants.%.3]
|
||||
// CHECK:STDOUT: %a.var: ref %.3 = var a
|
||||
// CHECK:STDOUT: %a: ref %.3 = bind_name a, %a.var
|
||||
// CHECK:STDOUT: %.loc13_22: Core.IntLiteral = int_value 1 [template = constants.%.5]
|
||||
// CHECK:STDOUT: %.loc13_25: Core.IntLiteral = int_value 2 [template = constants.%.6]
|
||||
// CHECK:STDOUT: %.loc13_28: Core.IntLiteral = int_value 3 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc13_29.1: %tuple.type.1 = tuple_literal (%.loc13_22, %.loc13_25, %.loc13_28)
|
||||
// CHECK:STDOUT: %.loc13_29.2: %Convert.type.2 = interface_witness_access constants.%.31, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc13_29.3: <bound method> = bound_method %.loc13_22, %.loc13_29.2 [template = constants.%.32]
|
||||
// CHECK:STDOUT: %.loc13_29.4: <specific function> = specific_function %.loc13_29.3, @Convert.2(constants.%.1) [template = constants.%.33]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc13_29.1: init %i32 = call %.loc13_29.4(%.loc13_22) [template = constants.%.34]
|
||||
// CHECK:STDOUT: %.loc13_29.5: init %i32 = converted %.loc13_22, %int.convert_checked.loc13_29.1 [template = constants.%.34]
|
||||
// CHECK:STDOUT: %.loc13_29.6: Core.IntLiteral = int_value 0 [template = constants.%.7]
|
||||
// CHECK:STDOUT: %.loc13_29.7: ref %i32 = array_index %a.var, %.loc13_29.6
|
||||
// CHECK:STDOUT: %.loc13_29.8: init %i32 = initialize_from %.loc13_29.5 to %.loc13_29.7 [template = constants.%.34]
|
||||
// CHECK:STDOUT: %.loc13_29.9: %Convert.type.2 = interface_witness_access constants.%.31, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc13_29.10: <bound method> = bound_method %.loc13_25, %.loc13_29.9 [template = constants.%.35]
|
||||
// CHECK:STDOUT: %.loc13_29.11: <specific function> = specific_function %.loc13_29.10, @Convert.2(constants.%.1) [template = constants.%.36]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc13_29.2: init %i32 = call %.loc13_29.11(%.loc13_25) [template = constants.%.37]
|
||||
// CHECK:STDOUT: %.loc13_29.12: init %i32 = converted %.loc13_25, %int.convert_checked.loc13_29.2 [template = constants.%.37]
|
||||
// CHECK:STDOUT: %.loc13_29.13: Core.IntLiteral = int_value 1 [template = constants.%.5]
|
||||
// CHECK:STDOUT: %.loc13_29.14: ref %i32 = array_index %a.var, %.loc13_29.13
|
||||
// CHECK:STDOUT: %.loc13_29.15: init %i32 = initialize_from %.loc13_29.12 to %.loc13_29.14 [template = constants.%.37]
|
||||
// CHECK:STDOUT: %.loc13_29.16: %Convert.type.2 = interface_witness_access constants.%.31, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc13_29.17: <bound method> = bound_method %.loc13_28, %.loc13_29.16 [template = constants.%.38]
|
||||
// CHECK:STDOUT: %.loc13_29.18: <specific function> = specific_function %.loc13_29.17, @Convert.2(constants.%.1) [template = constants.%.39]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc13_29.3: init %i32 = call %.loc13_29.18(%.loc13_28) [template = constants.%.40]
|
||||
// CHECK:STDOUT: %.loc13_29.19: init %i32 = converted %.loc13_28, %int.convert_checked.loc13_29.3 [template = constants.%.40]
|
||||
// CHECK:STDOUT: %.loc13_29.20: Core.IntLiteral = int_value 2 [template = constants.%.6]
|
||||
// CHECK:STDOUT: %.loc13_29.21: ref %i32 = array_index %a.var, %.loc13_29.20
|
||||
// CHECK:STDOUT: %.loc13_29.22: init %i32 = initialize_from %.loc13_29.19 to %.loc13_29.21 [template = constants.%.40]
|
||||
// CHECK:STDOUT: %.loc13_29.23: init %.3 = array_init (%.loc13_29.8, %.loc13_29.15, %.loc13_29.22) to %a.var [template = constants.%array]
|
||||
// CHECK:STDOUT: %.loc13_30: init %.3 = converted %.loc13_29.1, %.loc13_29.23 [template = constants.%array]
|
||||
// CHECK:STDOUT: %int_32.loc13: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc13: init type = call constants.%Int(%int_32.loc13) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_3.loc13_16: Core.IntLiteral = int_value 3 [template = constants.%int_3.1]
|
||||
// CHECK:STDOUT: %.loc13_11.1: type = value_of_initializer %int.make_type_signed.loc13 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc13_11.2: type = converted %int.make_type_signed.loc13, %.loc13_11.1 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %array_type: type = array_type %int_3.loc13_16, %i32 [template = constants.%array_type]
|
||||
// CHECK:STDOUT: %a.var: ref %array_type = var a
|
||||
// CHECK:STDOUT: %a: ref %array_type = bind_name a, %a.var
|
||||
// CHECK:STDOUT: %int_1.loc13_22: Core.IntLiteral = int_value 1 [template = constants.%int_1.1]
|
||||
// CHECK:STDOUT: %int_2.loc13_25: Core.IntLiteral = int_value 2 [template = constants.%int_2.1]
|
||||
// CHECK:STDOUT: %int_3.loc13_28: Core.IntLiteral = int_value 3 [template = constants.%int_3.1]
|
||||
// CHECK:STDOUT: %.loc13_29.1: %tuple.type.1 = tuple_literal (%int_1.loc13_22, %int_2.loc13_25, %int_3.loc13_28)
|
||||
// CHECK:STDOUT: %impl.elem0.loc13_29.1: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc13_29.1: <bound method> = bound_method %int_1.loc13_22, %impl.elem0.loc13_29.1 [template = constants.%Convert.bound.1]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc13_29.1: <specific function> = specific_function %Convert.bound.loc13_29.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.1]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc13_29.1: init %i32 = call %Convert.specific_fn.loc13_29.1(%int_1.loc13_22) [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %.loc13_29.2: init %i32 = converted %int_1.loc13_22, %int.convert_checked.loc13_29.1 [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0]
|
||||
// CHECK:STDOUT: %.loc13_29.3: ref %i32 = array_index %a.var, %int_0
|
||||
// CHECK:STDOUT: %.loc13_29.4: init %i32 = initialize_from %.loc13_29.2 to %.loc13_29.3 [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %impl.elem0.loc13_29.2: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc13_29.2: <bound method> = bound_method %int_2.loc13_25, %impl.elem0.loc13_29.2 [template = constants.%Convert.bound.2]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc13_29.2: <specific function> = specific_function %Convert.bound.loc13_29.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.2]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc13_29.2: init %i32 = call %Convert.specific_fn.loc13_29.2(%int_2.loc13_25) [template = constants.%int_2.2]
|
||||
// CHECK:STDOUT: %.loc13_29.5: init %i32 = converted %int_2.loc13_25, %int.convert_checked.loc13_29.2 [template = constants.%int_2.2]
|
||||
// CHECK:STDOUT: %int_1.loc13_29: Core.IntLiteral = int_value 1 [template = constants.%int_1.1]
|
||||
// CHECK:STDOUT: %.loc13_29.6: ref %i32 = array_index %a.var, %int_1.loc13_29
|
||||
// CHECK:STDOUT: %.loc13_29.7: init %i32 = initialize_from %.loc13_29.5 to %.loc13_29.6 [template = constants.%int_2.2]
|
||||
// CHECK:STDOUT: %impl.elem0.loc13_29.3: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc13_29.3: <bound method> = bound_method %int_3.loc13_28, %impl.elem0.loc13_29.3 [template = constants.%Convert.bound.3]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc13_29.3: <specific function> = specific_function %Convert.bound.loc13_29.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.3]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc13_29.3: init %i32 = call %Convert.specific_fn.loc13_29.3(%int_3.loc13_28) [template = constants.%int_3.2]
|
||||
// CHECK:STDOUT: %.loc13_29.8: init %i32 = converted %int_3.loc13_28, %int.convert_checked.loc13_29.3 [template = constants.%int_3.2]
|
||||
// CHECK:STDOUT: %int_2.loc13_29: Core.IntLiteral = int_value 2 [template = constants.%int_2.1]
|
||||
// CHECK:STDOUT: %.loc13_29.9: ref %i32 = array_index %a.var, %int_2.loc13_29
|
||||
// CHECK:STDOUT: %.loc13_29.10: init %i32 = initialize_from %.loc13_29.8 to %.loc13_29.9 [template = constants.%int_3.2]
|
||||
// CHECK:STDOUT: %.loc13_29.11: init %array_type = array_init (%.loc13_29.4, %.loc13_29.7, %.loc13_29.10) to %a.var [template = constants.%array]
|
||||
// CHECK:STDOUT: %.loc13_30: init %array_type = converted %.loc13_29.1, %.loc13_29.11 [template = constants.%array]
|
||||
// CHECK:STDOUT: assign %a.var, %.loc13_30
|
||||
// CHECK:STDOUT: %.loc14_11: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc14_11: init type = call constants.%Int(%.loc14_11) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc14_16: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc14_16: init type = call constants.%Int(%.loc14_16) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc14_21: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc14_21: init type = call constants.%Int(%.loc14_21) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_32.loc14_11: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc14_11: init type = call constants.%Int(%int_32.loc14_11) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_32.loc14_16: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc14_16: init type = call constants.%Int(%int_32.loc14_16) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_32.loc14_21: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc14_21: init type = call constants.%Int(%int_32.loc14_21) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc14_24.1: %tuple.type.2 = tuple_literal (%int.make_type_signed.loc14_11, %int.make_type_signed.loc14_16, %int.make_type_signed.loc14_21)
|
||||
// CHECK:STDOUT: %.loc14_24.2: type = value_of_initializer %int.make_type_signed.loc14_11 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc14_24.3: type = converted %int.make_type_signed.loc14_11, %.loc14_24.2 [template = constants.%i32]
|
||||
@@ -123,33 +123,33 @@ fn G() {
|
||||
// CHECK:STDOUT: %.loc14_24.8: type = converted %.loc14_24.1, constants.%tuple.type.3 [template = constants.%tuple.type.3]
|
||||
// CHECK:STDOUT: %b.var: ref %tuple.type.3 = var b
|
||||
// CHECK:STDOUT: %b: ref %tuple.type.3 = bind_name b, %b.var
|
||||
// CHECK:STDOUT: %.loc14_29: Core.IntLiteral = int_value 1 [template = constants.%.5]
|
||||
// CHECK:STDOUT: %.loc14_32: Core.IntLiteral = int_value 2 [template = constants.%.6]
|
||||
// CHECK:STDOUT: %.loc14_35: Core.IntLiteral = int_value 3 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc14_36.1: %tuple.type.1 = tuple_literal (%.loc14_29, %.loc14_32, %.loc14_35)
|
||||
// CHECK:STDOUT: %.loc14_36.2: %Convert.type.2 = interface_witness_access constants.%.31, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc14_36.3: <bound method> = bound_method %.loc14_29, %.loc14_36.2 [template = constants.%.32]
|
||||
// CHECK:STDOUT: %.loc14_36.4: <specific function> = specific_function %.loc14_36.3, @Convert.2(constants.%.1) [template = constants.%.33]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc14_36.1: init %i32 = call %.loc14_36.4(%.loc14_29) [template = constants.%.34]
|
||||
// CHECK:STDOUT: %.loc14_36.5: init %i32 = converted %.loc14_29, %int.convert_checked.loc14_36.1 [template = constants.%.34]
|
||||
// CHECK:STDOUT: %.loc14_36.6: ref %i32 = tuple_access %b.var, element0
|
||||
// CHECK:STDOUT: %.loc14_36.7: init %i32 = initialize_from %.loc14_36.5 to %.loc14_36.6 [template = constants.%.34]
|
||||
// CHECK:STDOUT: %.loc14_36.8: %Convert.type.2 = interface_witness_access constants.%.31, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc14_36.9: <bound method> = bound_method %.loc14_32, %.loc14_36.8 [template = constants.%.35]
|
||||
// CHECK:STDOUT: %.loc14_36.10: <specific function> = specific_function %.loc14_36.9, @Convert.2(constants.%.1) [template = constants.%.36]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc14_36.2: init %i32 = call %.loc14_36.10(%.loc14_32) [template = constants.%.37]
|
||||
// CHECK:STDOUT: %.loc14_36.11: init %i32 = converted %.loc14_32, %int.convert_checked.loc14_36.2 [template = constants.%.37]
|
||||
// CHECK:STDOUT: %.loc14_36.12: ref %i32 = tuple_access %b.var, element1
|
||||
// CHECK:STDOUT: %.loc14_36.13: init %i32 = initialize_from %.loc14_36.11 to %.loc14_36.12 [template = constants.%.37]
|
||||
// CHECK:STDOUT: %.loc14_36.14: %Convert.type.2 = interface_witness_access constants.%.31, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc14_36.15: <bound method> = bound_method %.loc14_35, %.loc14_36.14 [template = constants.%.38]
|
||||
// CHECK:STDOUT: %.loc14_36.16: <specific function> = specific_function %.loc14_36.15, @Convert.2(constants.%.1) [template = constants.%.39]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc14_36.3: init %i32 = call %.loc14_36.16(%.loc14_35) [template = constants.%.40]
|
||||
// CHECK:STDOUT: %.loc14_36.17: init %i32 = converted %.loc14_35, %int.convert_checked.loc14_36.3 [template = constants.%.40]
|
||||
// CHECK:STDOUT: %.loc14_36.18: ref %i32 = tuple_access %b.var, element2
|
||||
// CHECK:STDOUT: %.loc14_36.19: init %i32 = initialize_from %.loc14_36.17 to %.loc14_36.18 [template = constants.%.40]
|
||||
// CHECK:STDOUT: %.loc14_36.20: init %tuple.type.3 = tuple_init (%.loc14_36.7, %.loc14_36.13, %.loc14_36.19) to %b.var [template = constants.%tuple]
|
||||
// CHECK:STDOUT: %.loc14_37: init %tuple.type.3 = converted %.loc14_36.1, %.loc14_36.20 [template = constants.%tuple]
|
||||
// CHECK:STDOUT: %int_1.loc14: Core.IntLiteral = int_value 1 [template = constants.%int_1.1]
|
||||
// CHECK:STDOUT: %int_2.loc14: Core.IntLiteral = int_value 2 [template = constants.%int_2.1]
|
||||
// CHECK:STDOUT: %int_3.loc14: Core.IntLiteral = int_value 3 [template = constants.%int_3.1]
|
||||
// CHECK:STDOUT: %.loc14_36.1: %tuple.type.1 = tuple_literal (%int_1.loc14, %int_2.loc14, %int_3.loc14)
|
||||
// CHECK:STDOUT: %impl.elem0.loc14_36.1: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc14_36.1: <bound method> = bound_method %int_1.loc14, %impl.elem0.loc14_36.1 [template = constants.%Convert.bound.1]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc14_36.1: <specific function> = specific_function %Convert.bound.loc14_36.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.1]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc14_36.1: init %i32 = call %Convert.specific_fn.loc14_36.1(%int_1.loc14) [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %.loc14_36.2: init %i32 = converted %int_1.loc14, %int.convert_checked.loc14_36.1 [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %b.var, element0
|
||||
// CHECK:STDOUT: %.loc14_36.3: init %i32 = initialize_from %.loc14_36.2 to %tuple.elem0 [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %impl.elem0.loc14_36.2: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc14_36.2: <bound method> = bound_method %int_2.loc14, %impl.elem0.loc14_36.2 [template = constants.%Convert.bound.2]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc14_36.2: <specific function> = specific_function %Convert.bound.loc14_36.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.2]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc14_36.2: init %i32 = call %Convert.specific_fn.loc14_36.2(%int_2.loc14) [template = constants.%int_2.2]
|
||||
// CHECK:STDOUT: %.loc14_36.4: init %i32 = converted %int_2.loc14, %int.convert_checked.loc14_36.2 [template = constants.%int_2.2]
|
||||
// CHECK:STDOUT: %tuple.elem1: ref %i32 = tuple_access %b.var, element1
|
||||
// CHECK:STDOUT: %.loc14_36.5: init %i32 = initialize_from %.loc14_36.4 to %tuple.elem1 [template = constants.%int_2.2]
|
||||
// CHECK:STDOUT: %impl.elem0.loc14_36.3: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc14_36.3: <bound method> = bound_method %int_3.loc14, %impl.elem0.loc14_36.3 [template = constants.%Convert.bound.3]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc14_36.3: <specific function> = specific_function %Convert.bound.loc14_36.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.3]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc14_36.3: init %i32 = call %Convert.specific_fn.loc14_36.3(%int_3.loc14) [template = constants.%int_3.2]
|
||||
// CHECK:STDOUT: %.loc14_36.6: init %i32 = converted %int_3.loc14, %int.convert_checked.loc14_36.3 [template = constants.%int_3.2]
|
||||
// CHECK:STDOUT: %tuple.elem2: ref %i32 = tuple_access %b.var, element2
|
||||
// CHECK:STDOUT: %.loc14_36.7: init %i32 = initialize_from %.loc14_36.6 to %tuple.elem2 [template = constants.%int_3.2]
|
||||
// CHECK:STDOUT: %.loc14_36.8: init %tuple.type.3 = tuple_init (%.loc14_36.3, %.loc14_36.5, %.loc14_36.7) to %b.var [template = constants.%tuple]
|
||||
// CHECK:STDOUT: %.loc14_37: init %tuple.type.3 = converted %.loc14_36.1, %.loc14_36.8 [template = constants.%tuple]
|
||||
// CHECK:STDOUT: assign %b.var, %.loc14_37
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
+37
-37
@@ -17,28 +17,28 @@ fn Run() {
|
||||
// CHECK:STDOUT: --- assign_return_value.carbon
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %.1: Core.IntLiteral = int_value 32 [template]
|
||||
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template]
|
||||
// CHECK:STDOUT: %Int.type: type = fn_type @Int [template]
|
||||
// CHECK:STDOUT: %Int: %Int.type = struct_value () [template]
|
||||
// CHECK:STDOUT: %i32: type = int_type signed, %.1 [template]
|
||||
// CHECK:STDOUT: %i32: type = int_type signed, %int_32 [template]
|
||||
// CHECK:STDOUT: %tuple.type.1: type = tuple_type (type) [template]
|
||||
// CHECK:STDOUT: %tuple.type.2: type = tuple_type (%i32) [template]
|
||||
// CHECK:STDOUT: %F.type: type = fn_type @F [template]
|
||||
// CHECK:STDOUT: %F: %F.type = struct_value () [template]
|
||||
// CHECK:STDOUT: %.2: Core.IntLiteral = int_value 0 [template]
|
||||
// CHECK:STDOUT: %int_0.1: Core.IntLiteral = int_value 0 [template]
|
||||
// CHECK:STDOUT: %tuple.type.3: type = tuple_type (Core.IntLiteral) [template]
|
||||
// CHECK:STDOUT: %Convert.type.2: type = fn_type @Convert.1, @ImplicitAs(%i32) [template]
|
||||
// CHECK:STDOUT: %Convert.type.14: type = fn_type @Convert.2, @impl.1(%.1) [template]
|
||||
// CHECK:STDOUT: %Convert.type.14: type = fn_type @Convert.2, @impl.1(%int_32) [template]
|
||||
// CHECK:STDOUT: %Convert.14: %Convert.type.14 = struct_value () [template]
|
||||
// CHECK:STDOUT: %.26: <witness> = interface_witness (%Convert.14) [template]
|
||||
// CHECK:STDOUT: %.27: <bound method> = bound_method %.2, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %.28: <specific function> = specific_function %.27, @Convert.2(%.1) [template]
|
||||
// CHECK:STDOUT: %.29: %i32 = int_value 0 [template]
|
||||
// CHECK:STDOUT: %tuple: %tuple.type.2 = tuple_value (%.29) [template]
|
||||
// CHECK:STDOUT: %interface.9: <witness> = interface_witness (%Convert.14) [template]
|
||||
// CHECK:STDOUT: %Convert.bound: <bound method> = bound_method %int_0.1, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn: <specific function> = specific_function %Convert.bound, @Convert.2(%int_32) [template]
|
||||
// CHECK:STDOUT: %int_0.2: %i32 = int_value 0 [template]
|
||||
// CHECK:STDOUT: %tuple: %tuple.type.2 = tuple_value (%int_0.2) [template]
|
||||
// CHECK:STDOUT: %Run.type: type = fn_type @Run [template]
|
||||
// CHECK:STDOUT: %Run: %Run.type = struct_value () [template]
|
||||
// CHECK:STDOUT: %.30: Core.IntLiteral = int_value 1 [template]
|
||||
// CHECK:STDOUT: %.31: type = array_type %.30, %i32 [template]
|
||||
// CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template]
|
||||
// CHECK:STDOUT: %array_type: type = array_type %int_1, %i32 [template]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -61,8 +61,8 @@ fn Run() {
|
||||
// CHECK:STDOUT: %return.patt: %tuple.type.2 = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: %tuple.type.2 = out_param_pattern %return.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %.loc11_12: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed: init type = call constants.%Int(%.loc11_12) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed: init type = call constants.%Int(%int_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_16.1: %tuple.type.1 = tuple_literal (%int.make_type_signed)
|
||||
// CHECK:STDOUT: %.loc11_16.2: type = value_of_initializer %int.make_type_signed [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_16.3: type = converted %int.make_type_signed, %.loc11_16.2 [template = constants.%i32]
|
||||
@@ -75,40 +75,40 @@ fn Run() {
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @F() -> %tuple.type.2 {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %.loc11_28: Core.IntLiteral = int_value 0 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc11_30.1: %tuple.type.3 = tuple_literal (%.loc11_28)
|
||||
// CHECK:STDOUT: %.loc11_30.2: %Convert.type.2 = interface_witness_access constants.%.26, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc11_30.3: <bound method> = bound_method %.loc11_28, %.loc11_30.2 [template = constants.%.27]
|
||||
// CHECK:STDOUT: %.loc11_30.4: <specific function> = specific_function %.loc11_30.3, @Convert.2(constants.%.1) [template = constants.%.28]
|
||||
// CHECK:STDOUT: %int.convert_checked: init %i32 = call %.loc11_30.4(%.loc11_28) [template = constants.%.29]
|
||||
// CHECK:STDOUT: %.loc11_30.5: %i32 = value_of_initializer %int.convert_checked [template = constants.%.29]
|
||||
// CHECK:STDOUT: %.loc11_30.6: %i32 = converted %.loc11_28, %.loc11_30.5 [template = constants.%.29]
|
||||
// CHECK:STDOUT: %tuple: %tuple.type.2 = tuple_value (%.loc11_30.6) [template = constants.%tuple]
|
||||
// CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.1]
|
||||
// CHECK:STDOUT: %.loc11_30.1: %tuple.type.3 = tuple_literal (%int_0)
|
||||
// CHECK:STDOUT: %impl.elem0: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound: <bound method> = bound_method %int_0, %impl.elem0 [template = constants.%Convert.bound]
|
||||
// CHECK:STDOUT: %Convert.specific_fn: <specific function> = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn]
|
||||
// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_0) [template = constants.%int_0.2]
|
||||
// CHECK:STDOUT: %.loc11_30.2: %i32 = value_of_initializer %int.convert_checked [template = constants.%int_0.2]
|
||||
// CHECK:STDOUT: %.loc11_30.3: %i32 = converted %int_0, %.loc11_30.2 [template = constants.%int_0.2]
|
||||
// CHECK:STDOUT: %tuple: %tuple.type.2 = tuple_value (%.loc11_30.3) [template = constants.%tuple]
|
||||
// CHECK:STDOUT: %.loc11_31: %tuple.type.2 = converted %.loc11_30.1, %tuple [template = constants.%tuple]
|
||||
// CHECK:STDOUT: return %.loc11_31
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Run() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %.loc14_11.1: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed: init type = call constants.%Int(%.loc14_11.1) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc14_16: Core.IntLiteral = int_value 1 [template = constants.%.30]
|
||||
// CHECK:STDOUT: %.loc14_11.2: type = value_of_initializer %int.make_type_signed [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc14_11.3: type = converted %int.make_type_signed, %.loc14_11.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc14_17: type = array_type %.loc14_16, %i32 [template = constants.%.31]
|
||||
// CHECK:STDOUT: %t.var: ref %.31 = var t
|
||||
// CHECK:STDOUT: %t: ref %.31 = bind_name t, %t.var
|
||||
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed: init type = call constants.%Int(%int_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1]
|
||||
// CHECK:STDOUT: %.loc14_11.1: type = value_of_initializer %int.make_type_signed [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc14_11.2: type = converted %int.make_type_signed, %.loc14_11.1 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %array_type: type = array_type %int_1, %i32 [template = constants.%array_type]
|
||||
// CHECK:STDOUT: %t.var: ref %array_type = var t
|
||||
// CHECK:STDOUT: %t: ref %array_type = bind_name t, %t.var
|
||||
// CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F]
|
||||
// CHECK:STDOUT: %F.call: init %tuple.type.2 = call %F.ref()
|
||||
// CHECK:STDOUT: %.loc14_23.1: ref %tuple.type.2 = temporary_storage
|
||||
// CHECK:STDOUT: %.loc14_23.2: ref %tuple.type.2 = temporary %.loc14_23.1, %F.call
|
||||
// CHECK:STDOUT: %.loc14_23.3: ref %i32 = tuple_access %.loc14_23.2, element0
|
||||
// CHECK:STDOUT: %.loc14_23.4: %i32 = bind_value %.loc14_23.3
|
||||
// CHECK:STDOUT: %.loc14_23.5: Core.IntLiteral = int_value 0 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc14_23.6: ref %i32 = array_index %t.var, %.loc14_23.5
|
||||
// CHECK:STDOUT: %.loc14_23.7: init %i32 = initialize_from %.loc14_23.4 to %.loc14_23.6
|
||||
// CHECK:STDOUT: %.loc14_23.8: init %.31 = array_init (%.loc14_23.7) to %t.var
|
||||
// CHECK:STDOUT: %.loc14_24: init %.31 = converted %F.call, %.loc14_23.8
|
||||
// CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %.loc14_23.2, element0
|
||||
// CHECK:STDOUT: %.loc14_23.3: %i32 = bind_value %tuple.elem0
|
||||
// CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0.1]
|
||||
// CHECK:STDOUT: %.loc14_23.4: ref %i32 = array_index %t.var, %int_0
|
||||
// CHECK:STDOUT: %.loc14_23.5: init %i32 = initialize_from %.loc14_23.3 to %.loc14_23.4
|
||||
// CHECK:STDOUT: %.loc14_23.6: init %array_type = array_init (%.loc14_23.5) to %t.var
|
||||
// CHECK:STDOUT: %.loc14_24: init %array_type = converted %F.call, %.loc14_23.6
|
||||
// CHECK:STDOUT: assign %t.var, %.loc14_24
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
+77
-77
@@ -14,32 +14,32 @@ var b: [i32; 3] = a;
|
||||
// CHECK:STDOUT: --- assign_var.carbon
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %.1: Core.IntLiteral = int_value 32 [template]
|
||||
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template]
|
||||
// CHECK:STDOUT: %Int.type: type = fn_type @Int [template]
|
||||
// CHECK:STDOUT: %Int: %Int.type = struct_value () [template]
|
||||
// CHECK:STDOUT: %i32: type = int_type signed, %.1 [template]
|
||||
// CHECK:STDOUT: %i32: type = int_type signed, %int_32 [template]
|
||||
// CHECK:STDOUT: %tuple.type.1: type = tuple_type (type, type, type) [template]
|
||||
// CHECK:STDOUT: %tuple.type.2: type = tuple_type (%i32, %i32, %i32) [template]
|
||||
// CHECK:STDOUT: %.3: Core.IntLiteral = int_value 1 [template]
|
||||
// CHECK:STDOUT: %.4: Core.IntLiteral = int_value 2 [template]
|
||||
// CHECK:STDOUT: %.5: Core.IntLiteral = int_value 3 [template]
|
||||
// CHECK:STDOUT: %int_1.1: Core.IntLiteral = int_value 1 [template]
|
||||
// CHECK:STDOUT: %int_2.1: Core.IntLiteral = int_value 2 [template]
|
||||
// CHECK:STDOUT: %int_3.1: Core.IntLiteral = int_value 3 [template]
|
||||
// CHECK:STDOUT: %tuple.type.3: type = tuple_type (Core.IntLiteral, Core.IntLiteral, Core.IntLiteral) [template]
|
||||
// CHECK:STDOUT: %Convert.type.2: type = fn_type @Convert.1, @ImplicitAs(%i32) [template]
|
||||
// CHECK:STDOUT: %Convert.type.14: type = fn_type @Convert.2, @impl.1(%.1) [template]
|
||||
// CHECK:STDOUT: %Convert.type.14: type = fn_type @Convert.2, @impl.1(%int_32) [template]
|
||||
// CHECK:STDOUT: %Convert.14: %Convert.type.14 = struct_value () [template]
|
||||
// CHECK:STDOUT: %.29: <witness> = interface_witness (%Convert.14) [template]
|
||||
// CHECK:STDOUT: %.30: <bound method> = bound_method %.3, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %.31: <specific function> = specific_function %.30, @Convert.2(%.1) [template]
|
||||
// CHECK:STDOUT: %.32: %i32 = int_value 1 [template]
|
||||
// CHECK:STDOUT: %.33: <bound method> = bound_method %.4, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %.34: <specific function> = specific_function %.33, @Convert.2(%.1) [template]
|
||||
// CHECK:STDOUT: %.35: %i32 = int_value 2 [template]
|
||||
// CHECK:STDOUT: %.36: <bound method> = bound_method %.5, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %.37: <specific function> = specific_function %.36, @Convert.2(%.1) [template]
|
||||
// CHECK:STDOUT: %.38: %i32 = int_value 3 [template]
|
||||
// CHECK:STDOUT: %tuple: %tuple.type.2 = tuple_value (%.32, %.35, %.38) [template]
|
||||
// CHECK:STDOUT: %.39: type = array_type %.5, %i32 [template]
|
||||
// CHECK:STDOUT: %.41: Core.IntLiteral = int_value 0 [template]
|
||||
// CHECK:STDOUT: %interface.9: <witness> = interface_witness (%Convert.14) [template]
|
||||
// CHECK:STDOUT: %Convert.bound.1: <bound method> = bound_method %int_1.1, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.1: <specific function> = specific_function %Convert.bound.1, @Convert.2(%int_32) [template]
|
||||
// CHECK:STDOUT: %int_1.2: %i32 = int_value 1 [template]
|
||||
// CHECK:STDOUT: %Convert.bound.2: <bound method> = bound_method %int_2.1, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.2: <specific function> = specific_function %Convert.bound.2, @Convert.2(%int_32) [template]
|
||||
// CHECK:STDOUT: %int_2.2: %i32 = int_value 2 [template]
|
||||
// CHECK:STDOUT: %Convert.bound.3: <bound method> = bound_method %int_3.1, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.3: <specific function> = specific_function %Convert.bound.3, @Convert.2(%int_32) [template]
|
||||
// CHECK:STDOUT: %int_3.2: %i32 = int_value 3 [template]
|
||||
// CHECK:STDOUT: %tuple: %tuple.type.2 = tuple_value (%int_1.2, %int_2.2, %int_3.2) [template]
|
||||
// CHECK:STDOUT: %array_type: type = array_type %int_3.1, %i32 [template]
|
||||
// CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -58,12 +58,12 @@ var b: [i32; 3] = a;
|
||||
// CHECK:STDOUT: .b = %b
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %.loc11_9: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc11_9: init type = call constants.%Int(%.loc11_9) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_14: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc11_14: init type = call constants.%Int(%.loc11_14) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_19: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc11_19: init type = call constants.%Int(%.loc11_19) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_32.loc11_9: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc11_9: init type = call constants.%Int(%int_32.loc11_9) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_32.loc11_14: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc11_14: init type = call constants.%Int(%int_32.loc11_14) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_32.loc11_19: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc11_19: init type = call constants.%Int(%int_32.loc11_19) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_22.1: %tuple.type.1 = tuple_literal (%int.make_type_signed.loc11_9, %int.make_type_signed.loc11_14, %int.make_type_signed.loc11_19)
|
||||
// CHECK:STDOUT: %.loc11_22.2: type = value_of_initializer %int.make_type_signed.loc11_9 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_22.3: type = converted %int.make_type_signed.loc11_9, %.loc11_22.2 [template = constants.%i32]
|
||||
@@ -74,64 +74,64 @@ var b: [i32; 3] = a;
|
||||
// CHECK:STDOUT: %.loc11_22.8: type = converted %.loc11_22.1, constants.%tuple.type.2 [template = constants.%tuple.type.2]
|
||||
// CHECK:STDOUT: %a.var: ref %tuple.type.2 = var a
|
||||
// CHECK:STDOUT: %a: ref %tuple.type.2 = bind_name a, %a.var
|
||||
// CHECK:STDOUT: %.loc12_9.1: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc12: init type = call constants.%Int(%.loc12_9.1) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc12_14: Core.IntLiteral = int_value 3 [template = constants.%.5]
|
||||
// CHECK:STDOUT: %.loc12_9.2: type = value_of_initializer %int.make_type_signed.loc12 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc12_9.3: type = converted %int.make_type_signed.loc12, %.loc12_9.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc12_15: type = array_type %.loc12_14, %i32 [template = constants.%.39]
|
||||
// CHECK:STDOUT: %b.var: ref %.39 = var b
|
||||
// CHECK:STDOUT: %b: ref %.39 = bind_name b, %b.var
|
||||
// CHECK:STDOUT: %int_32.loc12: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc12: init type = call constants.%Int(%int_32.loc12) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3.1]
|
||||
// CHECK:STDOUT: %.loc12_9.1: type = value_of_initializer %int.make_type_signed.loc12 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc12_9.2: type = converted %int.make_type_signed.loc12, %.loc12_9.1 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %array_type: type = array_type %int_3, %i32 [template = constants.%array_type]
|
||||
// CHECK:STDOUT: %b.var: ref %array_type = var b
|
||||
// CHECK:STDOUT: %b: ref %array_type = bind_name b, %b.var
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @__global_init() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %.loc11_27: Core.IntLiteral = int_value 1 [template = constants.%.3]
|
||||
// CHECK:STDOUT: %.loc11_30: Core.IntLiteral = int_value 2 [template = constants.%.4]
|
||||
// CHECK:STDOUT: %.loc11_33: Core.IntLiteral = int_value 3 [template = constants.%.5]
|
||||
// CHECK:STDOUT: %.loc11_34.1: %tuple.type.3 = tuple_literal (%.loc11_27, %.loc11_30, %.loc11_33)
|
||||
// CHECK:STDOUT: %.loc11_34.2: %Convert.type.2 = interface_witness_access constants.%.29, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc11_34.3: <bound method> = bound_method %.loc11_27, %.loc11_34.2 [template = constants.%.30]
|
||||
// CHECK:STDOUT: %.loc11_34.4: <specific function> = specific_function %.loc11_34.3, @Convert.2(constants.%.1) [template = constants.%.31]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_34.1: init %i32 = call %.loc11_34.4(%.loc11_27) [template = constants.%.32]
|
||||
// CHECK:STDOUT: %.loc11_34.5: init %i32 = converted %.loc11_27, %int.convert_checked.loc11_34.1 [template = constants.%.32]
|
||||
// CHECK:STDOUT: %.loc11_34.6: ref %i32 = tuple_access file.%a.var, element0
|
||||
// CHECK:STDOUT: %.loc11_34.7: init %i32 = initialize_from %.loc11_34.5 to %.loc11_34.6 [template = constants.%.32]
|
||||
// CHECK:STDOUT: %.loc11_34.8: %Convert.type.2 = interface_witness_access constants.%.29, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc11_34.9: <bound method> = bound_method %.loc11_30, %.loc11_34.8 [template = constants.%.33]
|
||||
// CHECK:STDOUT: %.loc11_34.10: <specific function> = specific_function %.loc11_34.9, @Convert.2(constants.%.1) [template = constants.%.34]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_34.2: init %i32 = call %.loc11_34.10(%.loc11_30) [template = constants.%.35]
|
||||
// CHECK:STDOUT: %.loc11_34.11: init %i32 = converted %.loc11_30, %int.convert_checked.loc11_34.2 [template = constants.%.35]
|
||||
// CHECK:STDOUT: %.loc11_34.12: ref %i32 = tuple_access file.%a.var, element1
|
||||
// CHECK:STDOUT: %.loc11_34.13: init %i32 = initialize_from %.loc11_34.11 to %.loc11_34.12 [template = constants.%.35]
|
||||
// CHECK:STDOUT: %.loc11_34.14: %Convert.type.2 = interface_witness_access constants.%.29, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc11_34.15: <bound method> = bound_method %.loc11_33, %.loc11_34.14 [template = constants.%.36]
|
||||
// CHECK:STDOUT: %.loc11_34.16: <specific function> = specific_function %.loc11_34.15, @Convert.2(constants.%.1) [template = constants.%.37]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_34.3: init %i32 = call %.loc11_34.16(%.loc11_33) [template = constants.%.38]
|
||||
// CHECK:STDOUT: %.loc11_34.17: init %i32 = converted %.loc11_33, %int.convert_checked.loc11_34.3 [template = constants.%.38]
|
||||
// CHECK:STDOUT: %.loc11_34.18: ref %i32 = tuple_access file.%a.var, element2
|
||||
// CHECK:STDOUT: %.loc11_34.19: init %i32 = initialize_from %.loc11_34.17 to %.loc11_34.18 [template = constants.%.38]
|
||||
// CHECK:STDOUT: %.loc11_34.20: init %tuple.type.2 = tuple_init (%.loc11_34.7, %.loc11_34.13, %.loc11_34.19) to file.%a.var [template = constants.%tuple]
|
||||
// CHECK:STDOUT: %.loc11_35: init %tuple.type.2 = converted %.loc11_34.1, %.loc11_34.20 [template = constants.%tuple]
|
||||
// CHECK:STDOUT: %int_1.loc11: Core.IntLiteral = int_value 1 [template = constants.%int_1.1]
|
||||
// CHECK:STDOUT: %int_2.loc11: Core.IntLiteral = int_value 2 [template = constants.%int_2.1]
|
||||
// CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3.1]
|
||||
// CHECK:STDOUT: %.loc11_34.1: %tuple.type.3 = tuple_literal (%int_1.loc11, %int_2.loc11, %int_3)
|
||||
// CHECK:STDOUT: %impl.elem0.loc11_34.1: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc11_34.1: <bound method> = bound_method %int_1.loc11, %impl.elem0.loc11_34.1 [template = constants.%Convert.bound.1]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc11_34.1: <specific function> = specific_function %Convert.bound.loc11_34.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.1]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_34.1: init %i32 = call %Convert.specific_fn.loc11_34.1(%int_1.loc11) [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %.loc11_34.2: init %i32 = converted %int_1.loc11, %int.convert_checked.loc11_34.1 [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %tuple.elem0.loc11: ref %i32 = tuple_access file.%a.var, element0
|
||||
// CHECK:STDOUT: %.loc11_34.3: init %i32 = initialize_from %.loc11_34.2 to %tuple.elem0.loc11 [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %impl.elem0.loc11_34.2: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc11_34.2: <bound method> = bound_method %int_2.loc11, %impl.elem0.loc11_34.2 [template = constants.%Convert.bound.2]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc11_34.2: <specific function> = specific_function %Convert.bound.loc11_34.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.2]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_34.2: init %i32 = call %Convert.specific_fn.loc11_34.2(%int_2.loc11) [template = constants.%int_2.2]
|
||||
// CHECK:STDOUT: %.loc11_34.4: init %i32 = converted %int_2.loc11, %int.convert_checked.loc11_34.2 [template = constants.%int_2.2]
|
||||
// CHECK:STDOUT: %tuple.elem1.loc11: ref %i32 = tuple_access file.%a.var, element1
|
||||
// CHECK:STDOUT: %.loc11_34.5: init %i32 = initialize_from %.loc11_34.4 to %tuple.elem1.loc11 [template = constants.%int_2.2]
|
||||
// CHECK:STDOUT: %impl.elem0.loc11_34.3: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc11_34.3: <bound method> = bound_method %int_3, %impl.elem0.loc11_34.3 [template = constants.%Convert.bound.3]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc11_34.3: <specific function> = specific_function %Convert.bound.loc11_34.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.3]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_34.3: init %i32 = call %Convert.specific_fn.loc11_34.3(%int_3) [template = constants.%int_3.2]
|
||||
// CHECK:STDOUT: %.loc11_34.6: init %i32 = converted %int_3, %int.convert_checked.loc11_34.3 [template = constants.%int_3.2]
|
||||
// CHECK:STDOUT: %tuple.elem2.loc11: ref %i32 = tuple_access file.%a.var, element2
|
||||
// CHECK:STDOUT: %.loc11_34.7: init %i32 = initialize_from %.loc11_34.6 to %tuple.elem2.loc11 [template = constants.%int_3.2]
|
||||
// CHECK:STDOUT: %.loc11_34.8: init %tuple.type.2 = tuple_init (%.loc11_34.3, %.loc11_34.5, %.loc11_34.7) to file.%a.var [template = constants.%tuple]
|
||||
// CHECK:STDOUT: %.loc11_35: init %tuple.type.2 = converted %.loc11_34.1, %.loc11_34.8 [template = constants.%tuple]
|
||||
// CHECK:STDOUT: assign file.%a.var, %.loc11_35
|
||||
// CHECK:STDOUT: %a.ref: ref %tuple.type.2 = name_ref a, file.%a
|
||||
// CHECK:STDOUT: %.loc12_19.1: ref %i32 = tuple_access %a.ref, element0
|
||||
// CHECK:STDOUT: %.loc12_19.2: %i32 = bind_value %.loc12_19.1
|
||||
// CHECK:STDOUT: %.loc12_19.3: Core.IntLiteral = int_value 0 [template = constants.%.41]
|
||||
// CHECK:STDOUT: %.loc12_19.4: ref %i32 = array_index file.%b.var, %.loc12_19.3
|
||||
// CHECK:STDOUT: %.loc12_19.5: init %i32 = initialize_from %.loc12_19.2 to %.loc12_19.4
|
||||
// CHECK:STDOUT: %.loc12_19.6: ref %i32 = tuple_access %a.ref, element1
|
||||
// CHECK:STDOUT: %.loc12_19.7: %i32 = bind_value %.loc12_19.6
|
||||
// CHECK:STDOUT: %.loc12_19.8: Core.IntLiteral = int_value 1 [template = constants.%.3]
|
||||
// CHECK:STDOUT: %.loc12_19.9: ref %i32 = array_index file.%b.var, %.loc12_19.8
|
||||
// CHECK:STDOUT: %.loc12_19.10: init %i32 = initialize_from %.loc12_19.7 to %.loc12_19.9
|
||||
// CHECK:STDOUT: %.loc12_19.11: ref %i32 = tuple_access %a.ref, element2
|
||||
// CHECK:STDOUT: %.loc12_19.12: %i32 = bind_value %.loc12_19.11
|
||||
// CHECK:STDOUT: %.loc12_19.13: Core.IntLiteral = int_value 2 [template = constants.%.4]
|
||||
// CHECK:STDOUT: %.loc12_19.14: ref %i32 = array_index file.%b.var, %.loc12_19.13
|
||||
// CHECK:STDOUT: %.loc12_19.15: init %i32 = initialize_from %.loc12_19.12 to %.loc12_19.14
|
||||
// CHECK:STDOUT: %.loc12_19.16: init %.39 = array_init (%.loc12_19.5, %.loc12_19.10, %.loc12_19.15) to file.%b.var
|
||||
// CHECK:STDOUT: %.loc12_20: init %.39 = converted %a.ref, %.loc12_19.16
|
||||
// CHECK:STDOUT: %tuple.elem0.loc12: ref %i32 = tuple_access %a.ref, element0
|
||||
// CHECK:STDOUT: %.loc12_19.1: %i32 = bind_value %tuple.elem0.loc12
|
||||
// CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0]
|
||||
// CHECK:STDOUT: %.loc12_19.2: ref %i32 = array_index file.%b.var, %int_0
|
||||
// CHECK:STDOUT: %.loc12_19.3: init %i32 = initialize_from %.loc12_19.1 to %.loc12_19.2
|
||||
// CHECK:STDOUT: %tuple.elem1.loc12: ref %i32 = tuple_access %a.ref, element1
|
||||
// CHECK:STDOUT: %.loc12_19.4: %i32 = bind_value %tuple.elem1.loc12
|
||||
// CHECK:STDOUT: %int_1.loc12: Core.IntLiteral = int_value 1 [template = constants.%int_1.1]
|
||||
// CHECK:STDOUT: %.loc12_19.5: ref %i32 = array_index file.%b.var, %int_1.loc12
|
||||
// CHECK:STDOUT: %.loc12_19.6: init %i32 = initialize_from %.loc12_19.4 to %.loc12_19.5
|
||||
// CHECK:STDOUT: %tuple.elem2.loc12: ref %i32 = tuple_access %a.ref, element2
|
||||
// CHECK:STDOUT: %.loc12_19.7: %i32 = bind_value %tuple.elem2.loc12
|
||||
// CHECK:STDOUT: %int_2.loc12: Core.IntLiteral = int_value 2 [template = constants.%int_2.1]
|
||||
// CHECK:STDOUT: %.loc12_19.8: ref %i32 = array_index file.%b.var, %int_2.loc12
|
||||
// CHECK:STDOUT: %.loc12_19.9: init %i32 = initialize_from %.loc12_19.7 to %.loc12_19.8
|
||||
// CHECK:STDOUT: %.loc12_19.10: init %array_type = array_init (%.loc12_19.3, %.loc12_19.6, %.loc12_19.9) to file.%b.var
|
||||
// CHECK:STDOUT: %.loc12_20: init %array_type = converted %a.ref, %.loc12_19.10
|
||||
// CHECK:STDOUT: assign file.%b.var, %.loc12_20
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
+87
-87
@@ -15,39 +15,39 @@ var c: [(); 5] = ((), (), (), (), (),);
|
||||
// CHECK:STDOUT: --- base.carbon
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %.1: Core.IntLiteral = int_value 32 [template]
|
||||
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template]
|
||||
// CHECK:STDOUT: %Int.type: type = fn_type @Int [template]
|
||||
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template]
|
||||
// CHECK:STDOUT: %Int: %Int.type = struct_value () [template]
|
||||
// CHECK:STDOUT: %i32: type = int_type signed, %.1 [template]
|
||||
// CHECK:STDOUT: %.2: Core.IntLiteral = int_value 1 [template]
|
||||
// CHECK:STDOUT: %.3: type = array_type %.2, %i32 [template]
|
||||
// CHECK:STDOUT: %i32: type = int_type signed, %int_32 [template]
|
||||
// CHECK:STDOUT: %int_1.1: Core.IntLiteral = int_value 1 [template]
|
||||
// CHECK:STDOUT: %array_type.1: type = array_type %int_1.1, %i32 [template]
|
||||
// CHECK:STDOUT: %tuple.type.1: type = tuple_type (Core.IntLiteral) [template]
|
||||
// CHECK:STDOUT: %.5: Core.IntLiteral = int_value 0 [template]
|
||||
// CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template]
|
||||
// CHECK:STDOUT: %Convert.type.2: type = fn_type @Convert.1, @ImplicitAs(%i32) [template]
|
||||
// CHECK:STDOUT: %Convert.type.14: type = fn_type @Convert.2, @impl.1(%.1) [template]
|
||||
// CHECK:STDOUT: %Convert.type.14: type = fn_type @Convert.2, @impl.1(%int_32) [template]
|
||||
// CHECK:STDOUT: %Convert.14: %Convert.type.14 = struct_value () [template]
|
||||
// CHECK:STDOUT: %.29: <witness> = interface_witness (%Convert.14) [template]
|
||||
// CHECK:STDOUT: %.30: <bound method> = bound_method %.2, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %.31: <specific function> = specific_function %.30, @Convert.2(%.1) [template]
|
||||
// CHECK:STDOUT: %.32: %i32 = int_value 1 [template]
|
||||
// CHECK:STDOUT: %array.1: %.3 = tuple_value (%.32) [template]
|
||||
// CHECK:STDOUT: %.33: Core.IntLiteral = int_value 64 [template]
|
||||
// CHECK:STDOUT: %interface.9: <witness> = interface_witness (%Convert.14) [template]
|
||||
// CHECK:STDOUT: %Convert.bound: <bound method> = bound_method %int_1.1, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn: <specific function> = specific_function %Convert.bound, @Convert.2(%int_32) [template]
|
||||
// CHECK:STDOUT: %int_1.2: %i32 = int_value 1 [template]
|
||||
// CHECK:STDOUT: %array.1: %array_type.1 = tuple_value (%int_1.2) [template]
|
||||
// CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [template]
|
||||
// CHECK:STDOUT: %Float.type: type = fn_type @Float [template]
|
||||
// CHECK:STDOUT: %Float: %Float.type = struct_value () [template]
|
||||
// CHECK:STDOUT: %.34: Core.IntLiteral = int_value 2 [template]
|
||||
// CHECK:STDOUT: %.35: type = array_type %.34, f64 [template]
|
||||
// CHECK:STDOUT: %.37: f64 = float_literal 11.100000000000001 [template]
|
||||
// CHECK:STDOUT: %.38: f64 = float_literal 2.2000000000000002 [template]
|
||||
// CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template]
|
||||
// CHECK:STDOUT: %array_type.2: type = array_type %int_2, f64 [template]
|
||||
// CHECK:STDOUT: %float.1: f64 = float_literal 11.100000000000001 [template]
|
||||
// CHECK:STDOUT: %float.2: f64 = float_literal 2.2000000000000002 [template]
|
||||
// CHECK:STDOUT: %tuple.type.2: type = tuple_type (f64, f64) [template]
|
||||
// CHECK:STDOUT: %array.2: %.35 = tuple_value (%.37, %.38) [template]
|
||||
// CHECK:STDOUT: %.39: Core.IntLiteral = int_value 5 [template]
|
||||
// CHECK:STDOUT: %.40: type = array_type %.39, %empty_tuple.type [template]
|
||||
// CHECK:STDOUT: %array.2: %array_type.2 = tuple_value (%float.1, %float.2) [template]
|
||||
// CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [template]
|
||||
// CHECK:STDOUT: %array_type.3: type = array_type %int_5, %empty_tuple.type [template]
|
||||
// CHECK:STDOUT: %tuple.type.3: type = tuple_type (%empty_tuple.type, %empty_tuple.type, %empty_tuple.type, %empty_tuple.type, %empty_tuple.type) [template]
|
||||
// CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [template]
|
||||
// CHECK:STDOUT: %.42: Core.IntLiteral = int_value 3 [template]
|
||||
// CHECK:STDOUT: %.43: Core.IntLiteral = int_value 4 [template]
|
||||
// CHECK:STDOUT: %array.3: %.40 = tuple_value (%empty_tuple, %empty_tuple, %empty_tuple, %empty_tuple, %empty_tuple) [template]
|
||||
// CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template]
|
||||
// CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [template]
|
||||
// CHECK:STDOUT: %array.3: %array_type.3 = tuple_value (%empty_tuple, %empty_tuple, %empty_tuple, %empty_tuple, %empty_tuple) [template]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -68,56 +68,56 @@ var c: [(); 5] = ((), (), (), (), (),);
|
||||
// CHECK:STDOUT: .c = %c
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %.loc11_9.1: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed: init type = call constants.%Int(%.loc11_9.1) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_14: Core.IntLiteral = int_value 1 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc11_9.2: type = value_of_initializer %int.make_type_signed [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_9.3: type = converted %int.make_type_signed, %.loc11_9.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_15: type = array_type %.loc11_14, %i32 [template = constants.%.3]
|
||||
// CHECK:STDOUT: %a.var: ref %.3 = var a
|
||||
// CHECK:STDOUT: %a: ref %.3 = bind_name a, %a.var
|
||||
// CHECK:STDOUT: %.loc12_9.1: Core.IntLiteral = int_value 64 [template = constants.%.33]
|
||||
// CHECK:STDOUT: %float.make_type: init type = call constants.%Float(%.loc12_9.1) [template = f64]
|
||||
// CHECK:STDOUT: %.loc12_14: Core.IntLiteral = int_value 2 [template = constants.%.34]
|
||||
// CHECK:STDOUT: %.loc12_9.2: type = value_of_initializer %float.make_type [template = f64]
|
||||
// CHECK:STDOUT: %.loc12_9.3: type = converted %float.make_type, %.loc12_9.2 [template = f64]
|
||||
// CHECK:STDOUT: %.loc12_15: type = array_type %.loc12_14, f64 [template = constants.%.35]
|
||||
// CHECK:STDOUT: %b.var: ref %.35 = var b
|
||||
// CHECK:STDOUT: %b: ref %.35 = bind_name b, %b.var
|
||||
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed: init type = call constants.%Int(%int_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.1]
|
||||
// CHECK:STDOUT: %.loc11_9.1: type = value_of_initializer %int.make_type_signed [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_9.2: type = converted %int.make_type_signed, %.loc11_9.1 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %array_type.loc11: type = array_type %int_1, %i32 [template = constants.%array_type.1]
|
||||
// CHECK:STDOUT: %a.var: ref %array_type.1 = var a
|
||||
// CHECK:STDOUT: %a: ref %array_type.1 = bind_name a, %a.var
|
||||
// CHECK:STDOUT: %int_64: Core.IntLiteral = int_value 64 [template = constants.%int_64]
|
||||
// CHECK:STDOUT: %float.make_type: init type = call constants.%Float(%int_64) [template = f64]
|
||||
// CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2]
|
||||
// CHECK:STDOUT: %.loc12_9.1: type = value_of_initializer %float.make_type [template = f64]
|
||||
// CHECK:STDOUT: %.loc12_9.2: type = converted %float.make_type, %.loc12_9.1 [template = f64]
|
||||
// CHECK:STDOUT: %array_type.loc12: type = array_type %int_2, f64 [template = constants.%array_type.2]
|
||||
// CHECK:STDOUT: %b.var: ref %array_type.2 = var b
|
||||
// CHECK:STDOUT: %b: ref %array_type.2 = bind_name b, %b.var
|
||||
// CHECK:STDOUT: %.loc13_10.1: %empty_tuple.type = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc13_13: Core.IntLiteral = int_value 5 [template = constants.%.39]
|
||||
// CHECK:STDOUT: %int_5: Core.IntLiteral = int_value 5 [template = constants.%int_5]
|
||||
// CHECK:STDOUT: %.loc13_10.2: type = converted %.loc13_10.1, constants.%empty_tuple.type [template = constants.%empty_tuple.type]
|
||||
// CHECK:STDOUT: %.loc13_14: type = array_type %.loc13_13, %empty_tuple.type [template = constants.%.40]
|
||||
// CHECK:STDOUT: %c.var: ref %.40 = var c
|
||||
// CHECK:STDOUT: %c: ref %.40 = bind_name c, %c.var
|
||||
// CHECK:STDOUT: %array_type.loc13: type = array_type %int_5, %empty_tuple.type [template = constants.%array_type.3]
|
||||
// CHECK:STDOUT: %c.var: ref %array_type.3 = var c
|
||||
// CHECK:STDOUT: %c: ref %array_type.3 = bind_name c, %c.var
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @__global_init() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %.loc11_20: Core.IntLiteral = int_value 1 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc11_22.1: %tuple.type.1 = tuple_literal (%.loc11_20)
|
||||
// CHECK:STDOUT: %.loc11_22.2: %Convert.type.2 = interface_witness_access constants.%.29, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc11_22.3: <bound method> = bound_method %.loc11_20, %.loc11_22.2 [template = constants.%.30]
|
||||
// CHECK:STDOUT: %.loc11_22.4: <specific function> = specific_function %.loc11_22.3, @Convert.2(constants.%.1) [template = constants.%.31]
|
||||
// CHECK:STDOUT: %int.convert_checked: init %i32 = call %.loc11_22.4(%.loc11_20) [template = constants.%.32]
|
||||
// CHECK:STDOUT: %.loc11_22.5: init %i32 = converted %.loc11_20, %int.convert_checked [template = constants.%.32]
|
||||
// CHECK:STDOUT: %.loc11_22.6: Core.IntLiteral = int_value 0 [template = constants.%.5]
|
||||
// CHECK:STDOUT: %.loc11_22.7: ref %i32 = array_index file.%a.var, %.loc11_22.6
|
||||
// CHECK:STDOUT: %.loc11_22.8: init %i32 = initialize_from %.loc11_22.5 to %.loc11_22.7 [template = constants.%.32]
|
||||
// CHECK:STDOUT: %.loc11_22.9: init %.3 = array_init (%.loc11_22.8) to file.%a.var [template = constants.%array.1]
|
||||
// CHECK:STDOUT: %.loc11_23: init %.3 = converted %.loc11_22.1, %.loc11_22.9 [template = constants.%array.1]
|
||||
// CHECK:STDOUT: %int_1.loc11: Core.IntLiteral = int_value 1 [template = constants.%int_1.1]
|
||||
// CHECK:STDOUT: %.loc11_22.1: %tuple.type.1 = tuple_literal (%int_1.loc11)
|
||||
// CHECK:STDOUT: %impl.elem0: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound: <bound method> = bound_method %int_1.loc11, %impl.elem0 [template = constants.%Convert.bound]
|
||||
// CHECK:STDOUT: %Convert.specific_fn: <specific function> = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn]
|
||||
// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1.loc11) [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %.loc11_22.2: init %i32 = converted %int_1.loc11, %int.convert_checked [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %int_0.loc11: Core.IntLiteral = int_value 0 [template = constants.%int_0]
|
||||
// CHECK:STDOUT: %.loc11_22.3: ref %i32 = array_index file.%a.var, %int_0.loc11
|
||||
// CHECK:STDOUT: %.loc11_22.4: init %i32 = initialize_from %.loc11_22.2 to %.loc11_22.3 [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %.loc11_22.5: init %array_type.1 = array_init (%.loc11_22.4) to file.%a.var [template = constants.%array.1]
|
||||
// CHECK:STDOUT: %.loc11_23: init %array_type.1 = converted %.loc11_22.1, %.loc11_22.5 [template = constants.%array.1]
|
||||
// CHECK:STDOUT: assign file.%a.var, %.loc11_23
|
||||
// CHECK:STDOUT: %.loc12_20: f64 = float_literal 11.100000000000001 [template = constants.%.37]
|
||||
// CHECK:STDOUT: %.loc12_26: f64 = float_literal 2.2000000000000002 [template = constants.%.38]
|
||||
// CHECK:STDOUT: %.loc12_30.1: %tuple.type.2 = tuple_literal (%.loc12_20, %.loc12_26)
|
||||
// CHECK:STDOUT: %.loc12_30.2: Core.IntLiteral = int_value 0 [template = constants.%.5]
|
||||
// CHECK:STDOUT: %.loc12_30.3: ref f64 = array_index file.%b.var, %.loc12_30.2
|
||||
// CHECK:STDOUT: %.loc12_30.4: init f64 = initialize_from %.loc12_20 to %.loc12_30.3 [template = constants.%.37]
|
||||
// CHECK:STDOUT: %.loc12_30.5: Core.IntLiteral = int_value 1 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc12_30.6: ref f64 = array_index file.%b.var, %.loc12_30.5
|
||||
// CHECK:STDOUT: %.loc12_30.7: init f64 = initialize_from %.loc12_26 to %.loc12_30.6 [template = constants.%.38]
|
||||
// CHECK:STDOUT: %.loc12_30.8: init %.35 = array_init (%.loc12_30.4, %.loc12_30.7) to file.%b.var [template = constants.%array.2]
|
||||
// CHECK:STDOUT: %.loc12_31: init %.35 = converted %.loc12_30.1, %.loc12_30.8 [template = constants.%array.2]
|
||||
// CHECK:STDOUT: %float.loc12_20: f64 = float_literal 11.100000000000001 [template = constants.%float.1]
|
||||
// CHECK:STDOUT: %float.loc12_26: f64 = float_literal 2.2000000000000002 [template = constants.%float.2]
|
||||
// CHECK:STDOUT: %.loc12_30.1: %tuple.type.2 = tuple_literal (%float.loc12_20, %float.loc12_26)
|
||||
// CHECK:STDOUT: %int_0.loc12: Core.IntLiteral = int_value 0 [template = constants.%int_0]
|
||||
// CHECK:STDOUT: %.loc12_30.2: ref f64 = array_index file.%b.var, %int_0.loc12
|
||||
// CHECK:STDOUT: %.loc12_30.3: init f64 = initialize_from %float.loc12_20 to %.loc12_30.2 [template = constants.%float.1]
|
||||
// CHECK:STDOUT: %int_1.loc12: Core.IntLiteral = int_value 1 [template = constants.%int_1.1]
|
||||
// CHECK:STDOUT: %.loc12_30.4: ref f64 = array_index file.%b.var, %int_1.loc12
|
||||
// CHECK:STDOUT: %.loc12_30.5: init f64 = initialize_from %float.loc12_26 to %.loc12_30.4 [template = constants.%float.2]
|
||||
// CHECK:STDOUT: %.loc12_30.6: init %array_type.2 = array_init (%.loc12_30.3, %.loc12_30.5) to file.%b.var [template = constants.%array.2]
|
||||
// CHECK:STDOUT: %.loc12_31: init %array_type.2 = converted %.loc12_30.1, %.loc12_30.6 [template = constants.%array.2]
|
||||
// CHECK:STDOUT: assign file.%b.var, %.loc12_31
|
||||
// CHECK:STDOUT: %.loc13_20.1: %empty_tuple.type = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc13_24.1: %empty_tuple.type = tuple_literal ()
|
||||
@@ -125,28 +125,28 @@ var c: [(); 5] = ((), (), (), (), (),);
|
||||
// CHECK:STDOUT: %.loc13_32.1: %empty_tuple.type = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc13_36.1: %empty_tuple.type = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc13_38.1: %tuple.type.3 = tuple_literal (%.loc13_20.1, %.loc13_24.1, %.loc13_28.1, %.loc13_32.1, %.loc13_36.1)
|
||||
// CHECK:STDOUT: %.loc13_38.2: Core.IntLiteral = int_value 0 [template = constants.%.5]
|
||||
// CHECK:STDOUT: %.loc13_38.3: ref %empty_tuple.type = array_index file.%c.var, %.loc13_38.2
|
||||
// CHECK:STDOUT: %.loc13_20.2: init %empty_tuple.type = tuple_init () to %.loc13_38.3 [template = constants.%empty_tuple]
|
||||
// CHECK:STDOUT: %.loc13_38.4: init %empty_tuple.type = converted %.loc13_20.1, %.loc13_20.2 [template = constants.%empty_tuple]
|
||||
// CHECK:STDOUT: %.loc13_38.5: Core.IntLiteral = int_value 1 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc13_38.6: ref %empty_tuple.type = array_index file.%c.var, %.loc13_38.5
|
||||
// CHECK:STDOUT: %.loc13_24.2: init %empty_tuple.type = tuple_init () to %.loc13_38.6 [template = constants.%empty_tuple]
|
||||
// CHECK:STDOUT: %.loc13_38.7: init %empty_tuple.type = converted %.loc13_24.1, %.loc13_24.2 [template = constants.%empty_tuple]
|
||||
// CHECK:STDOUT: %.loc13_38.8: Core.IntLiteral = int_value 2 [template = constants.%.34]
|
||||
// CHECK:STDOUT: %.loc13_38.9: ref %empty_tuple.type = array_index file.%c.var, %.loc13_38.8
|
||||
// CHECK:STDOUT: %.loc13_28.2: init %empty_tuple.type = tuple_init () to %.loc13_38.9 [template = constants.%empty_tuple]
|
||||
// CHECK:STDOUT: %.loc13_38.10: init %empty_tuple.type = converted %.loc13_28.1, %.loc13_28.2 [template = constants.%empty_tuple]
|
||||
// CHECK:STDOUT: %.loc13_38.11: Core.IntLiteral = int_value 3 [template = constants.%.42]
|
||||
// CHECK:STDOUT: %.loc13_38.12: ref %empty_tuple.type = array_index file.%c.var, %.loc13_38.11
|
||||
// CHECK:STDOUT: %.loc13_32.2: init %empty_tuple.type = tuple_init () to %.loc13_38.12 [template = constants.%empty_tuple]
|
||||
// CHECK:STDOUT: %.loc13_38.13: init %empty_tuple.type = converted %.loc13_32.1, %.loc13_32.2 [template = constants.%empty_tuple]
|
||||
// CHECK:STDOUT: %.loc13_38.14: Core.IntLiteral = int_value 4 [template = constants.%.43]
|
||||
// CHECK:STDOUT: %.loc13_38.15: ref %empty_tuple.type = array_index file.%c.var, %.loc13_38.14
|
||||
// CHECK:STDOUT: %.loc13_36.2: init %empty_tuple.type = tuple_init () to %.loc13_38.15 [template = constants.%empty_tuple]
|
||||
// CHECK:STDOUT: %.loc13_38.16: init %empty_tuple.type = converted %.loc13_36.1, %.loc13_36.2 [template = constants.%empty_tuple]
|
||||
// CHECK:STDOUT: %.loc13_38.17: init %.40 = array_init (%.loc13_38.4, %.loc13_38.7, %.loc13_38.10, %.loc13_38.13, %.loc13_38.16) to file.%c.var [template = constants.%array.3]
|
||||
// CHECK:STDOUT: %.loc13_39: init %.40 = converted %.loc13_38.1, %.loc13_38.17 [template = constants.%array.3]
|
||||
// CHECK:STDOUT: %int_0.loc13: Core.IntLiteral = int_value 0 [template = constants.%int_0]
|
||||
// CHECK:STDOUT: %.loc13_38.2: ref %empty_tuple.type = array_index file.%c.var, %int_0.loc13
|
||||
// CHECK:STDOUT: %.loc13_20.2: init %empty_tuple.type = tuple_init () to %.loc13_38.2 [template = constants.%empty_tuple]
|
||||
// CHECK:STDOUT: %.loc13_38.3: init %empty_tuple.type = converted %.loc13_20.1, %.loc13_20.2 [template = constants.%empty_tuple]
|
||||
// CHECK:STDOUT: %int_1.loc13: Core.IntLiteral = int_value 1 [template = constants.%int_1.1]
|
||||
// CHECK:STDOUT: %.loc13_38.4: ref %empty_tuple.type = array_index file.%c.var, %int_1.loc13
|
||||
// CHECK:STDOUT: %.loc13_24.2: init %empty_tuple.type = tuple_init () to %.loc13_38.4 [template = constants.%empty_tuple]
|
||||
// CHECK:STDOUT: %.loc13_38.5: init %empty_tuple.type = converted %.loc13_24.1, %.loc13_24.2 [template = constants.%empty_tuple]
|
||||
// CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2]
|
||||
// CHECK:STDOUT: %.loc13_38.6: ref %empty_tuple.type = array_index file.%c.var, %int_2
|
||||
// CHECK:STDOUT: %.loc13_28.2: init %empty_tuple.type = tuple_init () to %.loc13_38.6 [template = constants.%empty_tuple]
|
||||
// CHECK:STDOUT: %.loc13_38.7: init %empty_tuple.type = converted %.loc13_28.1, %.loc13_28.2 [template = constants.%empty_tuple]
|
||||
// CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3]
|
||||
// CHECK:STDOUT: %.loc13_38.8: ref %empty_tuple.type = array_index file.%c.var, %int_3
|
||||
// CHECK:STDOUT: %.loc13_32.2: init %empty_tuple.type = tuple_init () to %.loc13_38.8 [template = constants.%empty_tuple]
|
||||
// CHECK:STDOUT: %.loc13_38.9: init %empty_tuple.type = converted %.loc13_32.1, %.loc13_32.2 [template = constants.%empty_tuple]
|
||||
// CHECK:STDOUT: %int_4: Core.IntLiteral = int_value 4 [template = constants.%int_4]
|
||||
// CHECK:STDOUT: %.loc13_38.10: ref %empty_tuple.type = array_index file.%c.var, %int_4
|
||||
// CHECK:STDOUT: %.loc13_36.2: init %empty_tuple.type = tuple_init () to %.loc13_38.10 [template = constants.%empty_tuple]
|
||||
// CHECK:STDOUT: %.loc13_38.11: init %empty_tuple.type = converted %.loc13_36.1, %.loc13_36.2 [template = constants.%empty_tuple]
|
||||
// CHECK:STDOUT: %.loc13_38.12: init %array_type.3 = array_init (%.loc13_38.3, %.loc13_38.5, %.loc13_38.7, %.loc13_38.9, %.loc13_38.11) to file.%c.var [template = constants.%array.3]
|
||||
// CHECK:STDOUT: %.loc13_39: init %array_type.3 = converted %.loc13_38.1, %.loc13_38.12 [template = constants.%array.3]
|
||||
// CHECK:STDOUT: assign file.%c.var, %.loc13_39
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
+145
-145
@@ -18,50 +18,50 @@ let c: [i32; ConvertToU32(3)]* = &a;
|
||||
// CHECK:STDOUT: --- canonicalize_index.carbon
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %.1: Core.IntLiteral = int_value 32 [template]
|
||||
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template]
|
||||
// CHECK:STDOUT: %Int.type: type = fn_type @Int [template]
|
||||
// CHECK:STDOUT: %Int: %Int.type = struct_value () [template]
|
||||
// CHECK:STDOUT: %i32: type = int_type signed, %.1 [template]
|
||||
// CHECK:STDOUT: %i32: type = int_type signed, %int_32 [template]
|
||||
// CHECK:STDOUT: %Add.type: type = fn_type @Add [template]
|
||||
// CHECK:STDOUT: %Add: %Add.type = struct_value () [template]
|
||||
// CHECK:STDOUT: %UInt.type: type = fn_type @UInt [template]
|
||||
// CHECK:STDOUT: %UInt: %UInt.type = struct_value () [template]
|
||||
// CHECK:STDOUT: %u32: type = int_type unsigned, %.1 [template]
|
||||
// CHECK:STDOUT: %u32: type = int_type unsigned, %int_32 [template]
|
||||
// CHECK:STDOUT: %ConvertToU32.type: type = fn_type @ConvertToU32 [template]
|
||||
// CHECK:STDOUT: %ConvertToU32: %ConvertToU32.type = struct_value () [template]
|
||||
// CHECK:STDOUT: %.2: Core.IntLiteral = int_value 1 [template]
|
||||
// CHECK:STDOUT: %.3: Core.IntLiteral = int_value 2 [template]
|
||||
// CHECK:STDOUT: %int_1.1: Core.IntLiteral = int_value 1 [template]
|
||||
// CHECK:STDOUT: %int_2.1: Core.IntLiteral = int_value 2 [template]
|
||||
// CHECK:STDOUT: %Convert.type.2: type = fn_type @Convert.1, @ImplicitAs(%i32) [template]
|
||||
// CHECK:STDOUT: %Convert.type.6: type = fn_type @Convert.1, @ImplicitAs(Core.IntLiteral) [template]
|
||||
// CHECK:STDOUT: %Convert.type.14: type = fn_type @Convert.2, @impl.1(%.1) [template]
|
||||
// CHECK:STDOUT: %Convert.type.14: type = fn_type @Convert.2, @impl.1(%int_32) [template]
|
||||
// CHECK:STDOUT: %Convert.14: %Convert.type.14 = struct_value () [template]
|
||||
// CHECK:STDOUT: %.27: <witness> = interface_witness (%Convert.14) [template]
|
||||
// CHECK:STDOUT: %.28: <bound method> = bound_method %.2, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %.29: <specific function> = specific_function %.28, @Convert.2(%.1) [template]
|
||||
// CHECK:STDOUT: %.30: %i32 = int_value 1 [template]
|
||||
// CHECK:STDOUT: %.31: <bound method> = bound_method %.3, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %.32: <specific function> = specific_function %.31, @Convert.2(%.1) [template]
|
||||
// CHECK:STDOUT: %.33: %i32 = int_value 2 [template]
|
||||
// CHECK:STDOUT: %.34: %i32 = int_value 3 [template]
|
||||
// CHECK:STDOUT: %Convert.type.15: type = fn_type @Convert.4, @impl.3(%.1) [template]
|
||||
// CHECK:STDOUT: %interface.9: <witness> = interface_witness (%Convert.14) [template]
|
||||
// CHECK:STDOUT: %Convert.bound.1: <bound method> = bound_method %int_1.1, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.1: <specific function> = specific_function %Convert.bound.1, @Convert.2(%int_32) [template]
|
||||
// CHECK:STDOUT: %int_1.2: %i32 = int_value 1 [template]
|
||||
// CHECK:STDOUT: %Convert.bound.2: <bound method> = bound_method %int_2.1, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.2: <specific function> = specific_function %Convert.bound.2, @Convert.2(%int_32) [template]
|
||||
// CHECK:STDOUT: %int_2.2: %i32 = int_value 2 [template]
|
||||
// CHECK:STDOUT: %int_3.1: %i32 = int_value 3 [template]
|
||||
// CHECK:STDOUT: %Convert.type.15: type = fn_type @Convert.4, @impl.3(%int_32) [template]
|
||||
// CHECK:STDOUT: %Convert.15: %Convert.type.15 = struct_value () [template]
|
||||
// CHECK:STDOUT: %.35: <witness> = interface_witness (%Convert.15) [template]
|
||||
// CHECK:STDOUT: %.36: <bound method> = bound_method %.34, %Convert.15 [template]
|
||||
// CHECK:STDOUT: %.37: <specific function> = specific_function %.36, @Convert.4(%.1) [template]
|
||||
// CHECK:STDOUT: %.38: Core.IntLiteral = int_value 3 [template]
|
||||
// CHECK:STDOUT: %.39: type = array_type %.38, %i32 [template]
|
||||
// CHECK:STDOUT: %.40: type = ptr_type %.39 [template]
|
||||
// CHECK:STDOUT: %interface.10: <witness> = interface_witness (%Convert.15) [template]
|
||||
// CHECK:STDOUT: %Convert.bound.3: <bound method> = bound_method %int_3.1, %Convert.15 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.3: <specific function> = specific_function %Convert.bound.3, @Convert.4(%int_32) [template]
|
||||
// CHECK:STDOUT: %int_3.2: Core.IntLiteral = int_value 3 [template]
|
||||
// CHECK:STDOUT: %array_type: type = array_type %int_3.2, %i32 [template]
|
||||
// CHECK:STDOUT: %ptr: type = ptr_type %array_type [template]
|
||||
// CHECK:STDOUT: %tuple.type: type = tuple_type (Core.IntLiteral, Core.IntLiteral, Core.IntLiteral) [template]
|
||||
// CHECK:STDOUT: %.41: Core.IntLiteral = int_value 0 [template]
|
||||
// CHECK:STDOUT: %.42: <bound method> = bound_method %.38, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %.43: <specific function> = specific_function %.42, @Convert.2(%.1) [template]
|
||||
// CHECK:STDOUT: %array: %.39 = tuple_value (%.30, %.33, %.34) [template]
|
||||
// CHECK:STDOUT: %.44: %u32 = int_value 3 [template]
|
||||
// CHECK:STDOUT: %Convert.type.16: type = fn_type @Convert.5, @impl.4(%.1) [template]
|
||||
// CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template]
|
||||
// CHECK:STDOUT: %Convert.bound.4: <bound method> = bound_method %int_3.2, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.4: <specific function> = specific_function %Convert.bound.4, @Convert.2(%int_32) [template]
|
||||
// CHECK:STDOUT: %array: %array_type = tuple_value (%int_1.2, %int_2.2, %int_3.1) [template]
|
||||
// CHECK:STDOUT: %int_3.3: %u32 = int_value 3 [template]
|
||||
// CHECK:STDOUT: %Convert.type.16: type = fn_type @Convert.5, @impl.4(%int_32) [template]
|
||||
// CHECK:STDOUT: %Convert.16: %Convert.type.16 = struct_value () [template]
|
||||
// CHECK:STDOUT: %.45: <witness> = interface_witness (%Convert.16) [template]
|
||||
// CHECK:STDOUT: %.46: <bound method> = bound_method %.44, %Convert.16 [template]
|
||||
// CHECK:STDOUT: %.47: <specific function> = specific_function %.46, @Convert.5(%.1) [template]
|
||||
// CHECK:STDOUT: %interface.11: <witness> = interface_witness (%Convert.16) [template]
|
||||
// CHECK:STDOUT: %Convert.bound.5: <bound method> = bound_method %int_3.3, %Convert.16 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.5: <specific function> = specific_function %Convert.bound.5, @Convert.5(%int_32) [template]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -92,18 +92,18 @@ let c: [i32; ConvertToU32(3)]* = &a;
|
||||
// CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: %i32 = out_param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %.loc11_11.1: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc11_11: init type = call constants.%Int(%.loc11_11.1) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_11.2: type = value_of_initializer %int.make_type_signed.loc11_11 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_11.3: type = converted %int.make_type_signed.loc11_11, %.loc11_11.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_19.1: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc11_19: init type = call constants.%Int(%.loc11_19.1) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_19.2: type = value_of_initializer %int.make_type_signed.loc11_19 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_19.3: type = converted %int.make_type_signed.loc11_19, %.loc11_19.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_27.1: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc11_27: init type = call constants.%Int(%.loc11_27.1) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_27.2: type = value_of_initializer %int.make_type_signed.loc11_27 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_27.3: type = converted %int.make_type_signed.loc11_27, %.loc11_27.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_32.loc11_11: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc11_11: init type = call constants.%Int(%int_32.loc11_11) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_11.1: type = value_of_initializer %int.make_type_signed.loc11_11 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_11.2: type = converted %int.make_type_signed.loc11_11, %.loc11_11.1 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_32.loc11_19: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc11_19: init type = call constants.%Int(%int_32.loc11_19) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_19.1: type = value_of_initializer %int.make_type_signed.loc11_19 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_19.2: type = converted %int.make_type_signed.loc11_19, %.loc11_19.1 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_32.loc11_27: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc11_27: init type = call constants.%Int(%int_32.loc11_27) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_27.1: type = value_of_initializer %int.make_type_signed.loc11_27 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_27.2: type = converted %int.make_type_signed.loc11_27, %.loc11_27.1 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %a.param: %i32 = value_param runtime_param0
|
||||
// CHECK:STDOUT: %a: %i32 = bind_name a, %a.param
|
||||
// CHECK:STDOUT: %b.param: %i32 = value_param runtime_param1
|
||||
@@ -117,80 +117,80 @@ let c: [i32; ConvertToU32(3)]* = &a;
|
||||
// CHECK:STDOUT: %return.patt: %u32 = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: %u32 = out_param_pattern %return.patt, runtime_param1
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %.loc12_20.1: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed: init type = call constants.%Int(%.loc12_20.1) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc12_20.2: type = value_of_initializer %int.make_type_signed [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc12_20.3: type = converted %int.make_type_signed, %.loc12_20.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc12_28.1: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_unsigned: init type = call constants.%UInt(%.loc12_28.1) [template = constants.%u32]
|
||||
// CHECK:STDOUT: %.loc12_28.2: type = value_of_initializer %int.make_type_unsigned [template = constants.%u32]
|
||||
// CHECK:STDOUT: %.loc12_28.3: type = converted %int.make_type_unsigned, %.loc12_28.2 [template = constants.%u32]
|
||||
// CHECK:STDOUT: %int_32.loc12_20: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed: init type = call constants.%Int(%int_32.loc12_20) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc12_20.1: type = value_of_initializer %int.make_type_signed [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc12_20.2: type = converted %int.make_type_signed, %.loc12_20.1 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_32.loc12_28: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_unsigned: init type = call constants.%UInt(%int_32.loc12_28) [template = constants.%u32]
|
||||
// CHECK:STDOUT: %.loc12_28.1: type = value_of_initializer %int.make_type_unsigned [template = constants.%u32]
|
||||
// CHECK:STDOUT: %.loc12_28.2: type = converted %int.make_type_unsigned, %.loc12_28.1 [template = constants.%u32]
|
||||
// CHECK:STDOUT: %a.param: %i32 = value_param runtime_param0
|
||||
// CHECK:STDOUT: %a: %i32 = bind_name a, %a.param
|
||||
// CHECK:STDOUT: %return.param: ref %u32 = out_param runtime_param1
|
||||
// CHECK:STDOUT: %return: ref %u32 = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc14_9.1: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc14: init type = call constants.%Int(%.loc14_9.1) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_32.loc14: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc14: init type = call constants.%Int(%int_32.loc14) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %Add.ref: %Add.type = name_ref Add, %Add.decl [template = constants.%Add]
|
||||
// CHECK:STDOUT: %.loc14_18.1: Core.IntLiteral = int_value 1 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc14_21.1: Core.IntLiteral = int_value 2 [template = constants.%.3]
|
||||
// CHECK:STDOUT: %.loc14_18.2: %Convert.type.2 = interface_witness_access constants.%.27, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc14_18.3: <bound method> = bound_method %.loc14_18.1, %.loc14_18.2 [template = constants.%.28]
|
||||
// CHECK:STDOUT: %.loc14_18.4: <specific function> = specific_function %.loc14_18.3, @Convert.2(constants.%.1) [template = constants.%.29]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc14_18: init %i32 = call %.loc14_18.4(%.loc14_18.1) [template = constants.%.30]
|
||||
// CHECK:STDOUT: %.loc14_18.5: %i32 = value_of_initializer %int.convert_checked.loc14_18 [template = constants.%.30]
|
||||
// CHECK:STDOUT: %.loc14_18.6: %i32 = converted %.loc14_18.1, %.loc14_18.5 [template = constants.%.30]
|
||||
// CHECK:STDOUT: %.loc14_21.2: %Convert.type.2 = interface_witness_access constants.%.27, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc14_21.3: <bound method> = bound_method %.loc14_21.1, %.loc14_21.2 [template = constants.%.31]
|
||||
// CHECK:STDOUT: %.loc14_21.4: <specific function> = specific_function %.loc14_21.3, @Convert.2(constants.%.1) [template = constants.%.32]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc14_21: init %i32 = call %.loc14_21.4(%.loc14_21.1) [template = constants.%.33]
|
||||
// CHECK:STDOUT: %.loc14_21.5: %i32 = value_of_initializer %int.convert_checked.loc14_21 [template = constants.%.33]
|
||||
// CHECK:STDOUT: %.loc14_21.6: %i32 = converted %.loc14_21.1, %.loc14_21.5 [template = constants.%.33]
|
||||
// CHECK:STDOUT: %int.sadd: init %i32 = call %Add.ref(%.loc14_18.6, %.loc14_21.6) [template = constants.%.34]
|
||||
// CHECK:STDOUT: %.loc14_9.2: type = value_of_initializer %int.make_type_signed.loc14 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc14_9.3: type = converted %int.make_type_signed.loc14, %.loc14_9.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc14_22.1: %Convert.type.6 = interface_witness_access constants.%.35, element0 [template = constants.%Convert.15]
|
||||
// CHECK:STDOUT: %.loc14_22.2: <bound method> = bound_method %int.sadd, %.loc14_22.1 [template = constants.%.36]
|
||||
// CHECK:STDOUT: %.loc14_22.3: <specific function> = specific_function %.loc14_22.2, @Convert.4(constants.%.1) [template = constants.%.37]
|
||||
// CHECK:STDOUT: %.loc14_22.4: %i32 = value_of_initializer %int.sadd [template = constants.%.34]
|
||||
// CHECK:STDOUT: %.loc14_22.5: %i32 = converted %int.sadd, %.loc14_22.4 [template = constants.%.34]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc14_22: init Core.IntLiteral = call %.loc14_22.3(%.loc14_22.5) [template = constants.%.38]
|
||||
// CHECK:STDOUT: %.loc14_22.6: Core.IntLiteral = value_of_initializer %int.convert_checked.loc14_22 [template = constants.%.38]
|
||||
// CHECK:STDOUT: %.loc14_22.7: Core.IntLiteral = converted %int.sadd, %.loc14_22.6 [template = constants.%.38]
|
||||
// CHECK:STDOUT: %.loc14_23: type = array_type %.loc14_22.7, %i32 [template = constants.%.39]
|
||||
// CHECK:STDOUT: %a.var: ref %.39 = var a
|
||||
// CHECK:STDOUT: %a: ref %.39 = bind_name a, %a.var
|
||||
// CHECK:STDOUT: %.loc15_9.1: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc15: init type = call constants.%Int(%.loc15_9.1) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc15_14: Core.IntLiteral = int_value 3 [template = constants.%.38]
|
||||
// CHECK:STDOUT: %.loc15_9.2: type = value_of_initializer %int.make_type_signed.loc15 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc15_9.3: type = converted %int.make_type_signed.loc15, %.loc15_9.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc15_15: type = array_type %.loc15_14, %i32 [template = constants.%.39]
|
||||
// CHECK:STDOUT: %.loc15_16: type = ptr_type %.39 [template = constants.%.40]
|
||||
// CHECK:STDOUT: %.loc16_9.1: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc16: init type = call constants.%Int(%.loc16_9.1) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.1]
|
||||
// CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2.1]
|
||||
// CHECK:STDOUT: %impl.elem0.loc14_18: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc14_18: <bound method> = bound_method %int_1, %impl.elem0.loc14_18 [template = constants.%Convert.bound.1]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc14_18: <specific function> = specific_function %Convert.bound.loc14_18, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.1]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc14_18: init %i32 = call %Convert.specific_fn.loc14_18(%int_1) [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %.loc14_18.1: %i32 = value_of_initializer %int.convert_checked.loc14_18 [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %.loc14_18.2: %i32 = converted %int_1, %.loc14_18.1 [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %impl.elem0.loc14_21: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc14_21: <bound method> = bound_method %int_2, %impl.elem0.loc14_21 [template = constants.%Convert.bound.2]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc14_21: <specific function> = specific_function %Convert.bound.loc14_21, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.2]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc14_21: init %i32 = call %Convert.specific_fn.loc14_21(%int_2) [template = constants.%int_2.2]
|
||||
// CHECK:STDOUT: %.loc14_21.1: %i32 = value_of_initializer %int.convert_checked.loc14_21 [template = constants.%int_2.2]
|
||||
// CHECK:STDOUT: %.loc14_21.2: %i32 = converted %int_2, %.loc14_21.1 [template = constants.%int_2.2]
|
||||
// CHECK:STDOUT: %int.sadd: init %i32 = call %Add.ref(%.loc14_18.2, %.loc14_21.2) [template = constants.%int_3.1]
|
||||
// CHECK:STDOUT: %.loc14_9.1: type = value_of_initializer %int.make_type_signed.loc14 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc14_9.2: type = converted %int.make_type_signed.loc14, %.loc14_9.1 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %impl.elem0.loc14_22: %Convert.type.6 = interface_witness_access constants.%interface.10, element0 [template = constants.%Convert.15]
|
||||
// CHECK:STDOUT: %Convert.bound.loc14_22: <bound method> = bound_method %int.sadd, %impl.elem0.loc14_22 [template = constants.%Convert.bound.3]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc14_22: <specific function> = specific_function %Convert.bound.loc14_22, @Convert.4(constants.%int_32) [template = constants.%Convert.specific_fn.3]
|
||||
// CHECK:STDOUT: %.loc14_22.1: %i32 = value_of_initializer %int.sadd [template = constants.%int_3.1]
|
||||
// CHECK:STDOUT: %.loc14_22.2: %i32 = converted %int.sadd, %.loc14_22.1 [template = constants.%int_3.1]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc14_22: init Core.IntLiteral = call %Convert.specific_fn.loc14_22(%.loc14_22.2) [template = constants.%int_3.2]
|
||||
// CHECK:STDOUT: %.loc14_22.3: Core.IntLiteral = value_of_initializer %int.convert_checked.loc14_22 [template = constants.%int_3.2]
|
||||
// CHECK:STDOUT: %.loc14_22.4: Core.IntLiteral = converted %int.sadd, %.loc14_22.3 [template = constants.%int_3.2]
|
||||
// CHECK:STDOUT: %array_type.loc14: type = array_type %.loc14_22.4, %i32 [template = constants.%array_type]
|
||||
// CHECK:STDOUT: %a.var: ref %array_type = var a
|
||||
// CHECK:STDOUT: %a: ref %array_type = bind_name a, %a.var
|
||||
// CHECK:STDOUT: %int_32.loc15: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc15: init type = call constants.%Int(%int_32.loc15) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_3.loc15: Core.IntLiteral = int_value 3 [template = constants.%int_3.2]
|
||||
// CHECK:STDOUT: %.loc15_9.1: type = value_of_initializer %int.make_type_signed.loc15 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc15_9.2: type = converted %int.make_type_signed.loc15, %.loc15_9.1 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %array_type.loc15: type = array_type %int_3.loc15, %i32 [template = constants.%array_type]
|
||||
// CHECK:STDOUT: %ptr.loc15: type = ptr_type %array_type [template = constants.%ptr]
|
||||
// CHECK:STDOUT: %int_32.loc16: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc16: init type = call constants.%Int(%int_32.loc16) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %ConvertToU32.ref: %ConvertToU32.type = name_ref ConvertToU32, %ConvertToU32.decl [template = constants.%ConvertToU32]
|
||||
// CHECK:STDOUT: %.loc16_27.1: Core.IntLiteral = int_value 3 [template = constants.%.38]
|
||||
// CHECK:STDOUT: %.loc16_27.2: %Convert.type.2 = interface_witness_access constants.%.27, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc16_27.3: <bound method> = bound_method %.loc16_27.1, %.loc16_27.2 [template = constants.%.42]
|
||||
// CHECK:STDOUT: %.loc16_27.4: <specific function> = specific_function %.loc16_27.3, @Convert.2(constants.%.1) [template = constants.%.43]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc16_27: init %i32 = call %.loc16_27.4(%.loc16_27.1) [template = constants.%.34]
|
||||
// CHECK:STDOUT: %.loc16_27.5: %i32 = value_of_initializer %int.convert_checked.loc16_27 [template = constants.%.34]
|
||||
// CHECK:STDOUT: %.loc16_27.6: %i32 = converted %.loc16_27.1, %.loc16_27.5 [template = constants.%.34]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc16_28.1: init %u32 = call %ConvertToU32.ref(%.loc16_27.6) [template = constants.%.44]
|
||||
// CHECK:STDOUT: %.loc16_9.2: type = value_of_initializer %int.make_type_signed.loc16 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc16_9.3: type = converted %int.make_type_signed.loc16, %.loc16_9.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc16_28.1: %Convert.type.6 = interface_witness_access constants.%.45, element0 [template = constants.%Convert.16]
|
||||
// CHECK:STDOUT: %.loc16_28.2: <bound method> = bound_method %int.convert_checked.loc16_28.1, %.loc16_28.1 [template = constants.%.46]
|
||||
// CHECK:STDOUT: %.loc16_28.3: <specific function> = specific_function %.loc16_28.2, @Convert.5(constants.%.1) [template = constants.%.47]
|
||||
// CHECK:STDOUT: %.loc16_28.4: %u32 = value_of_initializer %int.convert_checked.loc16_28.1 [template = constants.%.44]
|
||||
// CHECK:STDOUT: %.loc16_28.5: %u32 = converted %int.convert_checked.loc16_28.1, %.loc16_28.4 [template = constants.%.44]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc16_28.2: init Core.IntLiteral = call %.loc16_28.3(%.loc16_28.5) [template = constants.%.38]
|
||||
// CHECK:STDOUT: %.loc16_28.6: Core.IntLiteral = value_of_initializer %int.convert_checked.loc16_28.2 [template = constants.%.38]
|
||||
// CHECK:STDOUT: %.loc16_28.7: Core.IntLiteral = converted %int.convert_checked.loc16_28.1, %.loc16_28.6 [template = constants.%.38]
|
||||
// CHECK:STDOUT: %.loc16_29: type = array_type %.loc16_28.7, %i32 [template = constants.%.39]
|
||||
// CHECK:STDOUT: %.loc16_30: type = ptr_type %.39 [template = constants.%.40]
|
||||
// CHECK:STDOUT: %int_3.loc16: Core.IntLiteral = int_value 3 [template = constants.%int_3.2]
|
||||
// CHECK:STDOUT: %impl.elem0.loc16_27: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc16_27: <bound method> = bound_method %int_3.loc16, %impl.elem0.loc16_27 [template = constants.%Convert.bound.4]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc16_27: <specific function> = specific_function %Convert.bound.loc16_27, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.4]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc16_27: init %i32 = call %Convert.specific_fn.loc16_27(%int_3.loc16) [template = constants.%int_3.1]
|
||||
// CHECK:STDOUT: %.loc16_27.1: %i32 = value_of_initializer %int.convert_checked.loc16_27 [template = constants.%int_3.1]
|
||||
// CHECK:STDOUT: %.loc16_27.2: %i32 = converted %int_3.loc16, %.loc16_27.1 [template = constants.%int_3.1]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc16_28.1: init %u32 = call %ConvertToU32.ref(%.loc16_27.2) [template = constants.%int_3.3]
|
||||
// CHECK:STDOUT: %.loc16_9.1: type = value_of_initializer %int.make_type_signed.loc16 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc16_9.2: type = converted %int.make_type_signed.loc16, %.loc16_9.1 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %impl.elem0.loc16_28: %Convert.type.6 = interface_witness_access constants.%interface.11, element0 [template = constants.%Convert.16]
|
||||
// CHECK:STDOUT: %Convert.bound.loc16_28: <bound method> = bound_method %int.convert_checked.loc16_28.1, %impl.elem0.loc16_28 [template = constants.%Convert.bound.5]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc16_28: <specific function> = specific_function %Convert.bound.loc16_28, @Convert.5(constants.%int_32) [template = constants.%Convert.specific_fn.5]
|
||||
// CHECK:STDOUT: %.loc16_28.1: %u32 = value_of_initializer %int.convert_checked.loc16_28.1 [template = constants.%int_3.3]
|
||||
// CHECK:STDOUT: %.loc16_28.2: %u32 = converted %int.convert_checked.loc16_28.1, %.loc16_28.1 [template = constants.%int_3.3]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc16_28.2: init Core.IntLiteral = call %Convert.specific_fn.loc16_28(%.loc16_28.2) [template = constants.%int_3.2]
|
||||
// CHECK:STDOUT: %.loc16_28.3: Core.IntLiteral = value_of_initializer %int.convert_checked.loc16_28.2 [template = constants.%int_3.2]
|
||||
// CHECK:STDOUT: %.loc16_28.4: Core.IntLiteral = converted %int.convert_checked.loc16_28.1, %.loc16_28.3 [template = constants.%int_3.2]
|
||||
// CHECK:STDOUT: %array_type.loc16: type = array_type %.loc16_28.4, %i32 [template = constants.%array_type]
|
||||
// CHECK:STDOUT: %ptr.loc16: type = ptr_type %array_type [template = constants.%ptr]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @Add(%a.param_patt: %i32, %b.param_patt: %i32) -> %i32 = "int.sadd";
|
||||
@@ -199,43 +199,43 @@ let c: [i32; ConvertToU32(3)]* = &a;
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @__global_init() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %.loc14_28: Core.IntLiteral = int_value 1 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc14_31: Core.IntLiteral = int_value 2 [template = constants.%.3]
|
||||
// CHECK:STDOUT: %.loc14_34: Core.IntLiteral = int_value 3 [template = constants.%.38]
|
||||
// CHECK:STDOUT: %.loc14_35.1: %tuple.type = tuple_literal (%.loc14_28, %.loc14_31, %.loc14_34)
|
||||
// CHECK:STDOUT: %.loc14_35.2: %Convert.type.2 = interface_witness_access constants.%.27, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc14_35.3: <bound method> = bound_method %.loc14_28, %.loc14_35.2 [template = constants.%.28]
|
||||
// CHECK:STDOUT: %.loc14_35.4: <specific function> = specific_function %.loc14_35.3, @Convert.2(constants.%.1) [template = constants.%.29]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc14_35.1: init %i32 = call %.loc14_35.4(%.loc14_28) [template = constants.%.30]
|
||||
// CHECK:STDOUT: %.loc14_35.5: init %i32 = converted %.loc14_28, %int.convert_checked.loc14_35.1 [template = constants.%.30]
|
||||
// CHECK:STDOUT: %.loc14_35.6: Core.IntLiteral = int_value 0 [template = constants.%.41]
|
||||
// CHECK:STDOUT: %.loc14_35.7: ref %i32 = array_index file.%a.var, %.loc14_35.6
|
||||
// CHECK:STDOUT: %.loc14_35.8: init %i32 = initialize_from %.loc14_35.5 to %.loc14_35.7 [template = constants.%.30]
|
||||
// CHECK:STDOUT: %.loc14_35.9: %Convert.type.2 = interface_witness_access constants.%.27, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc14_35.10: <bound method> = bound_method %.loc14_31, %.loc14_35.9 [template = constants.%.31]
|
||||
// CHECK:STDOUT: %.loc14_35.11: <specific function> = specific_function %.loc14_35.10, @Convert.2(constants.%.1) [template = constants.%.32]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc14_35.2: init %i32 = call %.loc14_35.11(%.loc14_31) [template = constants.%.33]
|
||||
// CHECK:STDOUT: %.loc14_35.12: init %i32 = converted %.loc14_31, %int.convert_checked.loc14_35.2 [template = constants.%.33]
|
||||
// CHECK:STDOUT: %.loc14_35.13: Core.IntLiteral = int_value 1 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc14_35.14: ref %i32 = array_index file.%a.var, %.loc14_35.13
|
||||
// CHECK:STDOUT: %.loc14_35.15: init %i32 = initialize_from %.loc14_35.12 to %.loc14_35.14 [template = constants.%.33]
|
||||
// CHECK:STDOUT: %.loc14_35.16: %Convert.type.2 = interface_witness_access constants.%.27, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc14_35.17: <bound method> = bound_method %.loc14_34, %.loc14_35.16 [template = constants.%.42]
|
||||
// CHECK:STDOUT: %.loc14_35.18: <specific function> = specific_function %.loc14_35.17, @Convert.2(constants.%.1) [template = constants.%.43]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc14_35.3: init %i32 = call %.loc14_35.18(%.loc14_34) [template = constants.%.34]
|
||||
// CHECK:STDOUT: %.loc14_35.19: init %i32 = converted %.loc14_34, %int.convert_checked.loc14_35.3 [template = constants.%.34]
|
||||
// CHECK:STDOUT: %.loc14_35.20: Core.IntLiteral = int_value 2 [template = constants.%.3]
|
||||
// CHECK:STDOUT: %.loc14_35.21: ref %i32 = array_index file.%a.var, %.loc14_35.20
|
||||
// CHECK:STDOUT: %.loc14_35.22: init %i32 = initialize_from %.loc14_35.19 to %.loc14_35.21 [template = constants.%.34]
|
||||
// CHECK:STDOUT: %.loc14_35.23: init %.39 = array_init (%.loc14_35.8, %.loc14_35.15, %.loc14_35.22) to file.%a.var [template = constants.%array]
|
||||
// CHECK:STDOUT: %.loc14_36: init %.39 = converted %.loc14_35.1, %.loc14_35.23 [template = constants.%array]
|
||||
// CHECK:STDOUT: %int_1.loc14_28: Core.IntLiteral = int_value 1 [template = constants.%int_1.1]
|
||||
// CHECK:STDOUT: %int_2.loc14_31: Core.IntLiteral = int_value 2 [template = constants.%int_2.1]
|
||||
// CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3.2]
|
||||
// CHECK:STDOUT: %.loc14_35.1: %tuple.type = tuple_literal (%int_1.loc14_28, %int_2.loc14_31, %int_3)
|
||||
// CHECK:STDOUT: %impl.elem0.loc14_35.1: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc14_35.1: <bound method> = bound_method %int_1.loc14_28, %impl.elem0.loc14_35.1 [template = constants.%Convert.bound.1]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc14_35.1: <specific function> = specific_function %Convert.bound.loc14_35.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.1]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc14_35.1: init %i32 = call %Convert.specific_fn.loc14_35.1(%int_1.loc14_28) [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %.loc14_35.2: init %i32 = converted %int_1.loc14_28, %int.convert_checked.loc14_35.1 [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0]
|
||||
// CHECK:STDOUT: %.loc14_35.3: ref %i32 = array_index file.%a.var, %int_0
|
||||
// CHECK:STDOUT: %.loc14_35.4: init %i32 = initialize_from %.loc14_35.2 to %.loc14_35.3 [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %impl.elem0.loc14_35.2: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc14_35.2: <bound method> = bound_method %int_2.loc14_31, %impl.elem0.loc14_35.2 [template = constants.%Convert.bound.2]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc14_35.2: <specific function> = specific_function %Convert.bound.loc14_35.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.2]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc14_35.2: init %i32 = call %Convert.specific_fn.loc14_35.2(%int_2.loc14_31) [template = constants.%int_2.2]
|
||||
// CHECK:STDOUT: %.loc14_35.5: init %i32 = converted %int_2.loc14_31, %int.convert_checked.loc14_35.2 [template = constants.%int_2.2]
|
||||
// CHECK:STDOUT: %int_1.loc14_35: Core.IntLiteral = int_value 1 [template = constants.%int_1.1]
|
||||
// CHECK:STDOUT: %.loc14_35.6: ref %i32 = array_index file.%a.var, %int_1.loc14_35
|
||||
// CHECK:STDOUT: %.loc14_35.7: init %i32 = initialize_from %.loc14_35.5 to %.loc14_35.6 [template = constants.%int_2.2]
|
||||
// CHECK:STDOUT: %impl.elem0.loc14_35.3: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc14_35.3: <bound method> = bound_method %int_3, %impl.elem0.loc14_35.3 [template = constants.%Convert.bound.4]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc14_35.3: <specific function> = specific_function %Convert.bound.loc14_35.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.4]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc14_35.3: init %i32 = call %Convert.specific_fn.loc14_35.3(%int_3) [template = constants.%int_3.1]
|
||||
// CHECK:STDOUT: %.loc14_35.8: init %i32 = converted %int_3, %int.convert_checked.loc14_35.3 [template = constants.%int_3.1]
|
||||
// CHECK:STDOUT: %int_2.loc14_35: Core.IntLiteral = int_value 2 [template = constants.%int_2.1]
|
||||
// CHECK:STDOUT: %.loc14_35.9: ref %i32 = array_index file.%a.var, %int_2.loc14_35
|
||||
// CHECK:STDOUT: %.loc14_35.10: init %i32 = initialize_from %.loc14_35.8 to %.loc14_35.9 [template = constants.%int_3.1]
|
||||
// CHECK:STDOUT: %.loc14_35.11: init %array_type = array_init (%.loc14_35.4, %.loc14_35.7, %.loc14_35.10) to file.%a.var [template = constants.%array]
|
||||
// CHECK:STDOUT: %.loc14_36: init %array_type = converted %.loc14_35.1, %.loc14_35.11 [template = constants.%array]
|
||||
// CHECK:STDOUT: assign file.%a.var, %.loc14_36
|
||||
// CHECK:STDOUT: %a.ref.loc15: ref %.39 = name_ref a, file.%a
|
||||
// CHECK:STDOUT: %.loc15: %.40 = addr_of %a.ref.loc15
|
||||
// CHECK:STDOUT: %b: %.40 = bind_name b, %.loc15
|
||||
// CHECK:STDOUT: %a.ref.loc16: ref %.39 = name_ref a, file.%a
|
||||
// CHECK:STDOUT: %.loc16: %.40 = addr_of %a.ref.loc16
|
||||
// CHECK:STDOUT: %c: %.40 = bind_name c, %.loc16
|
||||
// CHECK:STDOUT: %a.ref.loc15: ref %array_type = name_ref a, file.%a
|
||||
// CHECK:STDOUT: %addr.loc15: %ptr = addr_of %a.ref.loc15
|
||||
// CHECK:STDOUT: %b: %ptr = bind_name b, %addr.loc15
|
||||
// CHECK:STDOUT: %a.ref.loc16: ref %array_type = name_ref a, file.%a
|
||||
// CHECK:STDOUT: %addr.loc16: %ptr = addr_of %a.ref.loc16
|
||||
// CHECK:STDOUT: %c: %ptr = bind_name c, %addr.loc16
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+43
-43
@@ -18,28 +18,28 @@ var a: [i32; Negate(1)];
|
||||
// CHECK:STDOUT: --- fail_bound_negative.carbon
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %.1: Core.IntLiteral = int_value 32 [template]
|
||||
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template]
|
||||
// CHECK:STDOUT: %Int.type: type = fn_type @Int [template]
|
||||
// CHECK:STDOUT: %Int: %Int.type = struct_value () [template]
|
||||
// CHECK:STDOUT: %i32: type = int_type signed, %.1 [template]
|
||||
// CHECK:STDOUT: %i32: type = int_type signed, %int_32 [template]
|
||||
// CHECK:STDOUT: %Negate.type: type = fn_type @Negate [template]
|
||||
// CHECK:STDOUT: %Negate: %Negate.type = struct_value () [template]
|
||||
// CHECK:STDOUT: %.2: Core.IntLiteral = int_value 1 [template]
|
||||
// CHECK:STDOUT: %int_1.1: Core.IntLiteral = int_value 1 [template]
|
||||
// CHECK:STDOUT: %Convert.type.2: type = fn_type @Convert.1, @ImplicitAs(%i32) [template]
|
||||
// CHECK:STDOUT: %Convert.type.6: type = fn_type @Convert.1, @ImplicitAs(Core.IntLiteral) [template]
|
||||
// CHECK:STDOUT: %Convert.type.14: type = fn_type @Convert.2, @impl.1(%.1) [template]
|
||||
// CHECK:STDOUT: %Convert.type.14: type = fn_type @Convert.2, @impl.1(%int_32) [template]
|
||||
// CHECK:STDOUT: %Convert.14: %Convert.type.14 = struct_value () [template]
|
||||
// CHECK:STDOUT: %.26: <witness> = interface_witness (%Convert.14) [template]
|
||||
// CHECK:STDOUT: %.27: <bound method> = bound_method %.2, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %.28: <specific function> = specific_function %.27, @Convert.2(%.1) [template]
|
||||
// CHECK:STDOUT: %.29: %i32 = int_value 1 [template]
|
||||
// CHECK:STDOUT: %.30: %i32 = int_value -1 [template]
|
||||
// CHECK:STDOUT: %Convert.type.15: type = fn_type @Convert.4, @impl.3(%.1) [template]
|
||||
// CHECK:STDOUT: %interface.9: <witness> = interface_witness (%Convert.14) [template]
|
||||
// CHECK:STDOUT: %Convert.bound.1: <bound method> = bound_method %int_1.1, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.1: <specific function> = specific_function %Convert.bound.1, @Convert.2(%int_32) [template]
|
||||
// CHECK:STDOUT: %int_1.2: %i32 = int_value 1 [template]
|
||||
// CHECK:STDOUT: %int_-1.1: %i32 = int_value -1 [template]
|
||||
// CHECK:STDOUT: %Convert.type.15: type = fn_type @Convert.4, @impl.3(%int_32) [template]
|
||||
// CHECK:STDOUT: %Convert.15: %Convert.type.15 = struct_value () [template]
|
||||
// CHECK:STDOUT: %.31: <witness> = interface_witness (%Convert.15) [template]
|
||||
// CHECK:STDOUT: %.32: <bound method> = bound_method %.30, %Convert.15 [template]
|
||||
// CHECK:STDOUT: %.33: <specific function> = specific_function %.32, @Convert.4(%.1) [template]
|
||||
// CHECK:STDOUT: %.34: Core.IntLiteral = int_value -1 [template]
|
||||
// CHECK:STDOUT: %interface.10: <witness> = interface_witness (%Convert.15) [template]
|
||||
// CHECK:STDOUT: %Convert.bound.2: <bound method> = bound_method %int_-1.1, %Convert.15 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.2: <specific function> = specific_function %Convert.bound.2, @Convert.4(%int_32) [template]
|
||||
// CHECK:STDOUT: %int_-1.2: Core.IntLiteral = int_value -1 [template]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -64,41 +64,41 @@ var a: [i32; Negate(1)];
|
||||
// CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: %i32 = out_param_pattern %return.patt, runtime_param1
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %.loc11_14.1: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc11_14: init type = call constants.%Int(%.loc11_14.1) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_14.2: type = value_of_initializer %int.make_type_signed.loc11_14 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_14.3: type = converted %int.make_type_signed.loc11_14, %.loc11_14.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_22.1: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc11_22: init type = call constants.%Int(%.loc11_22.1) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_22.2: type = value_of_initializer %int.make_type_signed.loc11_22 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_22.3: type = converted %int.make_type_signed.loc11_22, %.loc11_22.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_32.loc11_14: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc11_14: init type = call constants.%Int(%int_32.loc11_14) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_14.1: type = value_of_initializer %int.make_type_signed.loc11_14 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_14.2: type = converted %int.make_type_signed.loc11_14, %.loc11_14.1 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_32.loc11_22: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc11_22: init type = call constants.%Int(%int_32.loc11_22) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_22.1: type = value_of_initializer %int.make_type_signed.loc11_22 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_22.2: type = converted %int.make_type_signed.loc11_22, %.loc11_22.1 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %n.param: %i32 = value_param runtime_param0
|
||||
// CHECK:STDOUT: %n: %i32 = bind_name n, %n.param
|
||||
// CHECK:STDOUT: %return.param: ref %i32 = out_param runtime_param1
|
||||
// CHECK:STDOUT: %return: ref %i32 = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %.loc16_9.1: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed: init type = call constants.%Int(%.loc16_9.1) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed: init type = call constants.%Int(%int_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %Negate.ref: %Negate.type = name_ref Negate, %Negate.decl [template = constants.%Negate]
|
||||
// CHECK:STDOUT: %.loc16_21.1: Core.IntLiteral = int_value 1 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc16_21.2: %Convert.type.2 = interface_witness_access constants.%.26, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc16_21.3: <bound method> = bound_method %.loc16_21.1, %.loc16_21.2 [template = constants.%.27]
|
||||
// CHECK:STDOUT: %.loc16_21.4: <specific function> = specific_function %.loc16_21.3, @Convert.2(constants.%.1) [template = constants.%.28]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc16_21: init %i32 = call %.loc16_21.4(%.loc16_21.1) [template = constants.%.29]
|
||||
// CHECK:STDOUT: %.loc16_21.5: %i32 = value_of_initializer %int.convert_checked.loc16_21 [template = constants.%.29]
|
||||
// CHECK:STDOUT: %.loc16_21.6: %i32 = converted %.loc16_21.1, %.loc16_21.5 [template = constants.%.29]
|
||||
// CHECK:STDOUT: %int.snegate: init %i32 = call %Negate.ref(%.loc16_21.6) [template = constants.%.30]
|
||||
// CHECK:STDOUT: %.loc16_9.2: type = value_of_initializer %int.make_type_signed [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc16_9.3: type = converted %int.make_type_signed, %.loc16_9.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc16_22.1: %Convert.type.6 = interface_witness_access constants.%.31, element0 [template = constants.%Convert.15]
|
||||
// CHECK:STDOUT: %.loc16_22.2: <bound method> = bound_method %int.snegate, %.loc16_22.1 [template = constants.%.32]
|
||||
// CHECK:STDOUT: %.loc16_22.3: <specific function> = specific_function %.loc16_22.2, @Convert.4(constants.%.1) [template = constants.%.33]
|
||||
// CHECK:STDOUT: %.loc16_22.4: %i32 = value_of_initializer %int.snegate [template = constants.%.30]
|
||||
// CHECK:STDOUT: %.loc16_22.5: %i32 = converted %int.snegate, %.loc16_22.4 [template = constants.%.30]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc16_22: init Core.IntLiteral = call %.loc16_22.3(%.loc16_22.5) [template = constants.%.34]
|
||||
// CHECK:STDOUT: %.loc16_22.6: Core.IntLiteral = value_of_initializer %int.convert_checked.loc16_22 [template = constants.%.34]
|
||||
// CHECK:STDOUT: %.loc16_22.7: Core.IntLiteral = converted %int.snegate, %.loc16_22.6 [template = constants.%.34]
|
||||
// CHECK:STDOUT: %.loc16_23: type = array_type %.loc16_22.7, %i32 [template = <error>]
|
||||
// CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1.1]
|
||||
// CHECK:STDOUT: %impl.elem0.loc16_21: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc16_21: <bound method> = bound_method %int_1, %impl.elem0.loc16_21 [template = constants.%Convert.bound.1]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc16_21: <specific function> = specific_function %Convert.bound.loc16_21, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.1]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc16_21: init %i32 = call %Convert.specific_fn.loc16_21(%int_1) [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %.loc16_21.1: %i32 = value_of_initializer %int.convert_checked.loc16_21 [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %.loc16_21.2: %i32 = converted %int_1, %.loc16_21.1 [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %int.snegate: init %i32 = call %Negate.ref(%.loc16_21.2) [template = constants.%int_-1.1]
|
||||
// CHECK:STDOUT: %.loc16_9.1: type = value_of_initializer %int.make_type_signed [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc16_9.2: type = converted %int.make_type_signed, %.loc16_9.1 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %impl.elem0.loc16_22: %Convert.type.6 = interface_witness_access constants.%interface.10, element0 [template = constants.%Convert.15]
|
||||
// CHECK:STDOUT: %Convert.bound.loc16_22: <bound method> = bound_method %int.snegate, %impl.elem0.loc16_22 [template = constants.%Convert.bound.2]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc16_22: <specific function> = specific_function %Convert.bound.loc16_22, @Convert.4(constants.%int_32) [template = constants.%Convert.specific_fn.2]
|
||||
// CHECK:STDOUT: %.loc16_22.1: %i32 = value_of_initializer %int.snegate [template = constants.%int_-1.1]
|
||||
// CHECK:STDOUT: %.loc16_22.2: %i32 = converted %int.snegate, %.loc16_22.1 [template = constants.%int_-1.1]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc16_22: init Core.IntLiteral = call %Convert.specific_fn.loc16_22(%.loc16_22.2) [template = constants.%int_-1.2]
|
||||
// CHECK:STDOUT: %.loc16_22.3: Core.IntLiteral = value_of_initializer %int.convert_checked.loc16_22 [template = constants.%int_-1.2]
|
||||
// CHECK:STDOUT: %.loc16_22.4: Core.IntLiteral = converted %int.snegate, %.loc16_22.3 [template = constants.%int_-1.2]
|
||||
// CHECK:STDOUT: %array_type: type = array_type %.loc16_22.4, %i32 [template = <error>]
|
||||
// CHECK:STDOUT: %a.var: ref <error> = var a
|
||||
// CHECK:STDOUT: %a: ref <error> = bind_name a, %a.var
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
+14
-14
@@ -25,12 +25,12 @@ var b: [1; 39999999999999999993];
|
||||
// CHECK:STDOUT: --- fail_bound_overflow.carbon
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %.1: Core.IntLiteral = int_value 32 [template]
|
||||
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template]
|
||||
// CHECK:STDOUT: %Int.type: type = fn_type @Int [template]
|
||||
// CHECK:STDOUT: %Int: %Int.type = struct_value () [template]
|
||||
// CHECK:STDOUT: %i32: type = int_type signed, %.1 [template]
|
||||
// CHECK:STDOUT: %.2: Core.IntLiteral = int_value 39999999999999999993 [template]
|
||||
// CHECK:STDOUT: %.3: Core.IntLiteral = int_value 1 [template]
|
||||
// CHECK:STDOUT: %i32: type = int_type signed, %int_32 [template]
|
||||
// CHECK:STDOUT: %int_39999999999999999993: Core.IntLiteral = int_value 39999999999999999993 [template]
|
||||
// CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -49,18 +49,18 @@ var b: [1; 39999999999999999993];
|
||||
// CHECK:STDOUT: .b = %b
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %.loc15_9.1: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed: init type = call constants.%Int(%.loc15_9.1) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc15_14: Core.IntLiteral = int_value 39999999999999999993 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc15_9.2: type = value_of_initializer %int.make_type_signed [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc15_9.3: type = converted %int.make_type_signed, %.loc15_9.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc15_34: type = array_type %.loc15_14, %i32 [template = <error>]
|
||||
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed: init type = call constants.%Int(%int_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_39999999999999999993.loc15: Core.IntLiteral = int_value 39999999999999999993 [template = constants.%int_39999999999999999993]
|
||||
// CHECK:STDOUT: %.loc15_9.1: type = value_of_initializer %int.make_type_signed [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc15_9.2: type = converted %int.make_type_signed, %.loc15_9.1 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %array_type.loc15: type = array_type %int_39999999999999999993.loc15, %i32 [template = <error>]
|
||||
// CHECK:STDOUT: %a.var: ref <error> = var a
|
||||
// CHECK:STDOUT: %a: ref <error> = bind_name a, %a.var
|
||||
// CHECK:STDOUT: %.loc23_9.1: Core.IntLiteral = int_value 1 [template = constants.%.3]
|
||||
// CHECK:STDOUT: %.loc23_12: Core.IntLiteral = int_value 39999999999999999993 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc23_9.2: type = converted %.loc23_9.1, <error> [template = <error>]
|
||||
// CHECK:STDOUT: %.loc23_32: type = array_type %.loc23_12, <error> [template = <error>]
|
||||
// CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1]
|
||||
// CHECK:STDOUT: %int_39999999999999999993.loc23: Core.IntLiteral = int_value 39999999999999999993 [template = constants.%int_39999999999999999993]
|
||||
// CHECK:STDOUT: %.loc23: type = converted %int_1, <error> [template = <error>]
|
||||
// CHECK:STDOUT: %array_type.loc23: type = array_type %int_39999999999999999993.loc23, <error> [template = <error>]
|
||||
// CHECK:STDOUT: %b.var: ref <error> = var b
|
||||
// CHECK:STDOUT: %b: ref <error> = bind_name b, %b.var
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
+11
-11
@@ -24,10 +24,10 @@ var p: Incomplete* = &a[0];
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %Incomplete: type = class_type @Incomplete [template]
|
||||
// CHECK:STDOUT: %.1: Core.IntLiteral = int_value 1 [template]
|
||||
// CHECK:STDOUT: %.2: type = array_type %.1, %Incomplete [template]
|
||||
// CHECK:STDOUT: %.3: type = ptr_type %Incomplete [template]
|
||||
// CHECK:STDOUT: %.4: Core.IntLiteral = int_value 0 [template]
|
||||
// CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template]
|
||||
// CHECK:STDOUT: %array_type: type = array_type %int_1, %Incomplete [template]
|
||||
// CHECK:STDOUT: %ptr: type = ptr_type %Incomplete [template]
|
||||
// CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -47,14 +47,14 @@ var p: Incomplete* = &a[0];
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %Incomplete.decl: type = class_decl @Incomplete [template = constants.%Incomplete] {} {}
|
||||
// CHECK:STDOUT: %Incomplete.ref.loc19: type = name_ref Incomplete, %Incomplete.decl [template = constants.%Incomplete]
|
||||
// CHECK:STDOUT: %.loc19_21: Core.IntLiteral = int_value 1 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %.loc19_22: type = array_type %.loc19_21, %Incomplete [template = constants.%.2]
|
||||
// CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1]
|
||||
// CHECK:STDOUT: %array_type: type = array_type %int_1, %Incomplete [template = constants.%array_type]
|
||||
// CHECK:STDOUT: %a.var: ref <error> = var a
|
||||
// CHECK:STDOUT: %a: ref <error> = bind_name a, %a.var
|
||||
// CHECK:STDOUT: %Incomplete.ref.loc21: type = name_ref Incomplete, %Incomplete.decl [template = constants.%Incomplete]
|
||||
// CHECK:STDOUT: %.loc21: type = ptr_type %Incomplete [template = constants.%.3]
|
||||
// CHECK:STDOUT: %p.var: ref %.3 = var p
|
||||
// CHECK:STDOUT: %p: ref %.3 = bind_name p, %p.var
|
||||
// CHECK:STDOUT: %ptr: type = ptr_type %Incomplete [template = constants.%ptr]
|
||||
// CHECK:STDOUT: %p.var: ref %ptr = var p
|
||||
// CHECK:STDOUT: %p: ref %ptr = bind_name p, %p.var
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: class @Incomplete;
|
||||
@@ -62,8 +62,8 @@ var p: Incomplete* = &a[0];
|
||||
// CHECK:STDOUT: fn @__global_init() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %a.ref: ref <error> = name_ref a, file.%a
|
||||
// CHECK:STDOUT: %.loc21_25: Core.IntLiteral = int_value 0 [template = constants.%.4]
|
||||
// CHECK:STDOUT: %.loc21_22: <error> = addr_of <error> [template = <error>]
|
||||
// CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0]
|
||||
// CHECK:STDOUT: %addr: <error> = addr_of <error> [template = <error>]
|
||||
// CHECK:STDOUT: assign file.%p.var, <error>
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
+5
-5
@@ -19,7 +19,7 @@ var a: [1; 1];
|
||||
// CHECK:STDOUT: --- fail_invalid_type.carbon
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %.1: Core.IntLiteral = int_value 1 [template]
|
||||
// CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -36,10 +36,10 @@ var a: [1; 1];
|
||||
// CHECK:STDOUT: .a = %a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %.loc17_9.1: Core.IntLiteral = int_value 1 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %.loc17_12: Core.IntLiteral = int_value 1 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %.loc17_9.2: type = converted %.loc17_9.1, <error> [template = <error>]
|
||||
// CHECK:STDOUT: %.loc17_13: type = array_type %.loc17_12, <error> [template = <error>]
|
||||
// CHECK:STDOUT: %int_1.loc17_9: Core.IntLiteral = int_value 1 [template = constants.%int_1]
|
||||
// CHECK:STDOUT: %int_1.loc17_12: Core.IntLiteral = int_value 1 [template = constants.%int_1]
|
||||
// CHECK:STDOUT: %.loc17: type = converted %int_1.loc17_9, <error> [template = <error>]
|
||||
// CHECK:STDOUT: %array_type: type = array_type %int_1.loc17_12, <error> [template = <error>]
|
||||
// CHECK:STDOUT: %a.var: ref <error> = var a
|
||||
// CHECK:STDOUT: %a: ref <error> = bind_name a, %a.var
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
+18
-18
@@ -16,14 +16,14 @@ var a: [i32; 1] = (1, 2, 3);
|
||||
// CHECK:STDOUT: --- fail_out_of_bound.carbon
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %.1: Core.IntLiteral = int_value 32 [template]
|
||||
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template]
|
||||
// CHECK:STDOUT: %Int.type: type = fn_type @Int [template]
|
||||
// CHECK:STDOUT: %Int: %Int.type = struct_value () [template]
|
||||
// CHECK:STDOUT: %i32: type = int_type signed, %.1 [template]
|
||||
// CHECK:STDOUT: %.2: Core.IntLiteral = int_value 1 [template]
|
||||
// CHECK:STDOUT: %.3: type = array_type %.2, %i32 [template]
|
||||
// CHECK:STDOUT: %.5: Core.IntLiteral = int_value 2 [template]
|
||||
// CHECK:STDOUT: %.6: Core.IntLiteral = int_value 3 [template]
|
||||
// CHECK:STDOUT: %i32: type = int_type signed, %int_32 [template]
|
||||
// CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template]
|
||||
// CHECK:STDOUT: %array_type: type = array_type %int_1, %i32 [template]
|
||||
// CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template]
|
||||
// CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template]
|
||||
// CHECK:STDOUT: %tuple.type: type = tuple_type (Core.IntLiteral, Core.IntLiteral, Core.IntLiteral) [template]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
@@ -41,22 +41,22 @@ var a: [i32; 1] = (1, 2, 3);
|
||||
// CHECK:STDOUT: .a = %a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %.loc14_9.1: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed: init type = call constants.%Int(%.loc14_9.1) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc14_14: Core.IntLiteral = int_value 1 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc14_9.2: type = value_of_initializer %int.make_type_signed [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc14_9.3: type = converted %int.make_type_signed, %.loc14_9.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc14_15: type = array_type %.loc14_14, %i32 [template = constants.%.3]
|
||||
// CHECK:STDOUT: %a.var: ref %.3 = var a
|
||||
// CHECK:STDOUT: %a: ref %.3 = bind_name a, %a.var
|
||||
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed: init type = call constants.%Int(%int_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1]
|
||||
// CHECK:STDOUT: %.loc14_9.1: type = value_of_initializer %int.make_type_signed [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc14_9.2: type = converted %int.make_type_signed, %.loc14_9.1 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %array_type: type = array_type %int_1, %i32 [template = constants.%array_type]
|
||||
// CHECK:STDOUT: %a.var: ref %array_type = var a
|
||||
// CHECK:STDOUT: %a: ref %array_type = bind_name a, %a.var
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @__global_init() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %.loc14_20: Core.IntLiteral = int_value 1 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc14_23: Core.IntLiteral = int_value 2 [template = constants.%.5]
|
||||
// CHECK:STDOUT: %.loc14_26: Core.IntLiteral = int_value 3 [template = constants.%.6]
|
||||
// CHECK:STDOUT: %.loc14_27: %tuple.type = tuple_literal (%.loc14_20, %.loc14_23, %.loc14_26)
|
||||
// CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [template = constants.%int_1]
|
||||
// CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2]
|
||||
// CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3]
|
||||
// CHECK:STDOUT: %.loc14: %tuple.type = tuple_literal (%int_1, %int_2, %int_3)
|
||||
// CHECK:STDOUT: assign file.%a.var, <error>
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
@@ -17,32 +17,32 @@ var b: i32 = a[{.index = 3}.index];
|
||||
// CHECK:STDOUT: --- fail_out_of_bound_non_literal.carbon
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %.1: Core.IntLiteral = int_value 32 [template]
|
||||
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template]
|
||||
// CHECK:STDOUT: %Int.type: type = fn_type @Int [template]
|
||||
// CHECK:STDOUT: %Int: %Int.type = struct_value () [template]
|
||||
// CHECK:STDOUT: %i32: type = int_type signed, %.1 [template]
|
||||
// CHECK:STDOUT: %.2: Core.IntLiteral = int_value 3 [template]
|
||||
// CHECK:STDOUT: %.3: type = array_type %.2, %i32 [template]
|
||||
// CHECK:STDOUT: %.5: Core.IntLiteral = int_value 1 [template]
|
||||
// CHECK:STDOUT: %.6: Core.IntLiteral = int_value 2 [template]
|
||||
// CHECK:STDOUT: %i32: type = int_type signed, %int_32 [template]
|
||||
// CHECK:STDOUT: %int_3.1: Core.IntLiteral = int_value 3 [template]
|
||||
// CHECK:STDOUT: %array_type: type = array_type %int_3.1, %i32 [template]
|
||||
// CHECK:STDOUT: %int_1.1: Core.IntLiteral = int_value 1 [template]
|
||||
// CHECK:STDOUT: %int_2.1: Core.IntLiteral = int_value 2 [template]
|
||||
// CHECK:STDOUT: %tuple.type: type = tuple_type (Core.IntLiteral, Core.IntLiteral, Core.IntLiteral) [template]
|
||||
// CHECK:STDOUT: %.7: Core.IntLiteral = int_value 0 [template]
|
||||
// CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template]
|
||||
// CHECK:STDOUT: %Convert.type.2: type = fn_type @Convert.1, @ImplicitAs(%i32) [template]
|
||||
// CHECK:STDOUT: %Convert.type.14: type = fn_type @Convert.2, @impl.1(%.1) [template]
|
||||
// CHECK:STDOUT: %Convert.type.14: type = fn_type @Convert.2, @impl.1(%int_32) [template]
|
||||
// CHECK:STDOUT: %Convert.14: %Convert.type.14 = struct_value () [template]
|
||||
// CHECK:STDOUT: %.31: <witness> = interface_witness (%Convert.14) [template]
|
||||
// CHECK:STDOUT: %.32: <bound method> = bound_method %.5, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %.33: <specific function> = specific_function %.32, @Convert.2(%.1) [template]
|
||||
// CHECK:STDOUT: %.34: %i32 = int_value 1 [template]
|
||||
// CHECK:STDOUT: %.35: <bound method> = bound_method %.6, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %.36: <specific function> = specific_function %.35, @Convert.2(%.1) [template]
|
||||
// CHECK:STDOUT: %.37: %i32 = int_value 2 [template]
|
||||
// CHECK:STDOUT: %.38: <bound method> = bound_method %.2, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %.39: <specific function> = specific_function %.38, @Convert.2(%.1) [template]
|
||||
// CHECK:STDOUT: %.40: %i32 = int_value 3 [template]
|
||||
// CHECK:STDOUT: %array: %.3 = tuple_value (%.34, %.37, %.40) [template]
|
||||
// CHECK:STDOUT: %.41: type = struct_type {.index: Core.IntLiteral} [template]
|
||||
// CHECK:STDOUT: %struct: %.41 = struct_value (%.2) [template]
|
||||
// CHECK:STDOUT: %interface.9: <witness> = interface_witness (%Convert.14) [template]
|
||||
// CHECK:STDOUT: %Convert.bound.1: <bound method> = bound_method %int_1.1, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.1: <specific function> = specific_function %Convert.bound.1, @Convert.2(%int_32) [template]
|
||||
// CHECK:STDOUT: %int_1.2: %i32 = int_value 1 [template]
|
||||
// CHECK:STDOUT: %Convert.bound.2: <bound method> = bound_method %int_2.1, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.2: <specific function> = specific_function %Convert.bound.2, @Convert.2(%int_32) [template]
|
||||
// CHECK:STDOUT: %int_2.2: %i32 = int_value 2 [template]
|
||||
// CHECK:STDOUT: %Convert.bound.3: <bound method> = bound_method %int_3.1, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.3: <specific function> = specific_function %Convert.bound.3, @Convert.2(%int_32) [template]
|
||||
// CHECK:STDOUT: %int_3.2: %i32 = int_value 3 [template]
|
||||
// CHECK:STDOUT: %array: %array_type = tuple_value (%int_1.2, %int_2.2, %int_3.2) [template]
|
||||
// CHECK:STDOUT: %struct_type.index: type = struct_type {.index: Core.IntLiteral} [template]
|
||||
// CHECK:STDOUT: %struct: %struct_type.index = struct_value (%int_3.1) [template]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -61,74 +61,74 @@ var b: i32 = a[{.index = 3}.index];
|
||||
// CHECK:STDOUT: .b = %b
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %.loc11_9.1: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc11: init type = call constants.%Int(%.loc11_9.1) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_14: Core.IntLiteral = int_value 3 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc11_9.2: type = value_of_initializer %int.make_type_signed.loc11 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_9.3: type = converted %int.make_type_signed.loc11, %.loc11_9.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_15: type = array_type %.loc11_14, %i32 [template = constants.%.3]
|
||||
// CHECK:STDOUT: %a.var: ref %.3 = var a
|
||||
// CHECK:STDOUT: %a: ref %.3 = bind_name a, %a.var
|
||||
// CHECK:STDOUT: %.loc15_8.1: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc15: init type = call constants.%Int(%.loc15_8.1) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc15_8.2: type = value_of_initializer %int.make_type_signed.loc15 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc15_8.3: type = converted %int.make_type_signed.loc15, %.loc15_8.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_32.loc11: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc11: init type = call constants.%Int(%int_32.loc11) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3.1]
|
||||
// CHECK:STDOUT: %.loc11_9.1: type = value_of_initializer %int.make_type_signed.loc11 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_9.2: type = converted %int.make_type_signed.loc11, %.loc11_9.1 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %array_type: type = array_type %int_3, %i32 [template = constants.%array_type]
|
||||
// CHECK:STDOUT: %a.var: ref %array_type = var a
|
||||
// CHECK:STDOUT: %a: ref %array_type = bind_name a, %a.var
|
||||
// CHECK:STDOUT: %int_32.loc15: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc15: init type = call constants.%Int(%int_32.loc15) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc15_8.1: type = value_of_initializer %int.make_type_signed.loc15 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc15_8.2: type = converted %int.make_type_signed.loc15, %.loc15_8.1 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %b.var: ref %i32 = var b
|
||||
// CHECK:STDOUT: %b: ref %i32 = bind_name b, %b.var
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @__global_init() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %.loc11_20: Core.IntLiteral = int_value 1 [template = constants.%.5]
|
||||
// CHECK:STDOUT: %.loc11_23: Core.IntLiteral = int_value 2 [template = constants.%.6]
|
||||
// CHECK:STDOUT: %.loc11_26: Core.IntLiteral = int_value 3 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc11_27.1: %tuple.type = tuple_literal (%.loc11_20, %.loc11_23, %.loc11_26)
|
||||
// CHECK:STDOUT: %.loc11_27.2: %Convert.type.2 = interface_witness_access constants.%.31, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc11_27.3: <bound method> = bound_method %.loc11_20, %.loc11_27.2 [template = constants.%.32]
|
||||
// CHECK:STDOUT: %.loc11_27.4: <specific function> = specific_function %.loc11_27.3, @Convert.2(constants.%.1) [template = constants.%.33]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_27.1: init %i32 = call %.loc11_27.4(%.loc11_20) [template = constants.%.34]
|
||||
// CHECK:STDOUT: %.loc11_27.5: init %i32 = converted %.loc11_20, %int.convert_checked.loc11_27.1 [template = constants.%.34]
|
||||
// CHECK:STDOUT: %.loc11_27.6: Core.IntLiteral = int_value 0 [template = constants.%.7]
|
||||
// CHECK:STDOUT: %.loc11_27.7: ref %i32 = array_index file.%a.var, %.loc11_27.6
|
||||
// CHECK:STDOUT: %.loc11_27.8: init %i32 = initialize_from %.loc11_27.5 to %.loc11_27.7 [template = constants.%.34]
|
||||
// CHECK:STDOUT: %.loc11_27.9: %Convert.type.2 = interface_witness_access constants.%.31, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc11_27.10: <bound method> = bound_method %.loc11_23, %.loc11_27.9 [template = constants.%.35]
|
||||
// CHECK:STDOUT: %.loc11_27.11: <specific function> = specific_function %.loc11_27.10, @Convert.2(constants.%.1) [template = constants.%.36]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_27.2: init %i32 = call %.loc11_27.11(%.loc11_23) [template = constants.%.37]
|
||||
// CHECK:STDOUT: %.loc11_27.12: init %i32 = converted %.loc11_23, %int.convert_checked.loc11_27.2 [template = constants.%.37]
|
||||
// CHECK:STDOUT: %.loc11_27.13: Core.IntLiteral = int_value 1 [template = constants.%.5]
|
||||
// CHECK:STDOUT: %.loc11_27.14: ref %i32 = array_index file.%a.var, %.loc11_27.13
|
||||
// CHECK:STDOUT: %.loc11_27.15: init %i32 = initialize_from %.loc11_27.12 to %.loc11_27.14 [template = constants.%.37]
|
||||
// CHECK:STDOUT: %.loc11_27.16: %Convert.type.2 = interface_witness_access constants.%.31, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc11_27.17: <bound method> = bound_method %.loc11_26, %.loc11_27.16 [template = constants.%.38]
|
||||
// CHECK:STDOUT: %.loc11_27.18: <specific function> = specific_function %.loc11_27.17, @Convert.2(constants.%.1) [template = constants.%.39]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_27.3: init %i32 = call %.loc11_27.18(%.loc11_26) [template = constants.%.40]
|
||||
// CHECK:STDOUT: %.loc11_27.19: init %i32 = converted %.loc11_26, %int.convert_checked.loc11_27.3 [template = constants.%.40]
|
||||
// CHECK:STDOUT: %.loc11_27.20: Core.IntLiteral = int_value 2 [template = constants.%.6]
|
||||
// CHECK:STDOUT: %.loc11_27.21: ref %i32 = array_index file.%a.var, %.loc11_27.20
|
||||
// CHECK:STDOUT: %.loc11_27.22: init %i32 = initialize_from %.loc11_27.19 to %.loc11_27.21 [template = constants.%.40]
|
||||
// CHECK:STDOUT: %.loc11_27.23: init %.3 = array_init (%.loc11_27.8, %.loc11_27.15, %.loc11_27.22) to file.%a.var [template = constants.%array]
|
||||
// CHECK:STDOUT: %.loc11_28: init %.3 = converted %.loc11_27.1, %.loc11_27.23 [template = constants.%array]
|
||||
// CHECK:STDOUT: %int_1.loc11_20: Core.IntLiteral = int_value 1 [template = constants.%int_1.1]
|
||||
// CHECK:STDOUT: %int_2.loc11_23: Core.IntLiteral = int_value 2 [template = constants.%int_2.1]
|
||||
// CHECK:STDOUT: %int_3.loc11: Core.IntLiteral = int_value 3 [template = constants.%int_3.1]
|
||||
// CHECK:STDOUT: %.loc11_27.1: %tuple.type = tuple_literal (%int_1.loc11_20, %int_2.loc11_23, %int_3.loc11)
|
||||
// CHECK:STDOUT: %impl.elem0.loc11_27.1: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc11_27.1: <bound method> = bound_method %int_1.loc11_20, %impl.elem0.loc11_27.1 [template = constants.%Convert.bound.1]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc11_27.1: <specific function> = specific_function %Convert.bound.loc11_27.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.1]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_27.1: init %i32 = call %Convert.specific_fn.loc11_27.1(%int_1.loc11_20) [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %.loc11_27.2: init %i32 = converted %int_1.loc11_20, %int.convert_checked.loc11_27.1 [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0]
|
||||
// CHECK:STDOUT: %.loc11_27.3: ref %i32 = array_index file.%a.var, %int_0
|
||||
// CHECK:STDOUT: %.loc11_27.4: init %i32 = initialize_from %.loc11_27.2 to %.loc11_27.3 [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %impl.elem0.loc11_27.2: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc11_27.2: <bound method> = bound_method %int_2.loc11_23, %impl.elem0.loc11_27.2 [template = constants.%Convert.bound.2]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc11_27.2: <specific function> = specific_function %Convert.bound.loc11_27.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.2]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_27.2: init %i32 = call %Convert.specific_fn.loc11_27.2(%int_2.loc11_23) [template = constants.%int_2.2]
|
||||
// CHECK:STDOUT: %.loc11_27.5: init %i32 = converted %int_2.loc11_23, %int.convert_checked.loc11_27.2 [template = constants.%int_2.2]
|
||||
// CHECK:STDOUT: %int_1.loc11_27: Core.IntLiteral = int_value 1 [template = constants.%int_1.1]
|
||||
// CHECK:STDOUT: %.loc11_27.6: ref %i32 = array_index file.%a.var, %int_1.loc11_27
|
||||
// CHECK:STDOUT: %.loc11_27.7: init %i32 = initialize_from %.loc11_27.5 to %.loc11_27.6 [template = constants.%int_2.2]
|
||||
// CHECK:STDOUT: %impl.elem0.loc11_27.3: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc11_27.3: <bound method> = bound_method %int_3.loc11, %impl.elem0.loc11_27.3 [template = constants.%Convert.bound.3]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc11_27.3: <specific function> = specific_function %Convert.bound.loc11_27.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.3]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_27.3: init %i32 = call %Convert.specific_fn.loc11_27.3(%int_3.loc11) [template = constants.%int_3.2]
|
||||
// CHECK:STDOUT: %.loc11_27.8: init %i32 = converted %int_3.loc11, %int.convert_checked.loc11_27.3 [template = constants.%int_3.2]
|
||||
// CHECK:STDOUT: %int_2.loc11_27: Core.IntLiteral = int_value 2 [template = constants.%int_2.1]
|
||||
// CHECK:STDOUT: %.loc11_27.9: ref %i32 = array_index file.%a.var, %int_2.loc11_27
|
||||
// CHECK:STDOUT: %.loc11_27.10: init %i32 = initialize_from %.loc11_27.8 to %.loc11_27.9 [template = constants.%int_3.2]
|
||||
// CHECK:STDOUT: %.loc11_27.11: init %array_type = array_init (%.loc11_27.4, %.loc11_27.7, %.loc11_27.10) to file.%a.var [template = constants.%array]
|
||||
// CHECK:STDOUT: %.loc11_28: init %array_type = converted %.loc11_27.1, %.loc11_27.11 [template = constants.%array]
|
||||
// CHECK:STDOUT: assign file.%a.var, %.loc11_28
|
||||
// CHECK:STDOUT: %a.ref: ref %.3 = name_ref a, file.%a
|
||||
// CHECK:STDOUT: %.loc15_26: Core.IntLiteral = int_value 3 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc15_27.1: %.41 = struct_literal (%.loc15_26)
|
||||
// CHECK:STDOUT: %struct: %.41 = struct_value (%.loc15_26) [template = constants.%struct]
|
||||
// CHECK:STDOUT: %.loc15_27.2: %.41 = converted %.loc15_27.1, %struct [template = constants.%struct]
|
||||
// CHECK:STDOUT: %.loc15_28.1: Core.IntLiteral = struct_access %.loc15_27.2, element0 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc15_34.1: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed: init type = call constants.%Int(%.loc15_34.1) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc15_34.2: type = value_of_initializer %int.make_type_signed [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc15_34.3: type = converted %int.make_type_signed, %.loc15_34.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc15_28.2: %Convert.type.2 = interface_witness_access constants.%.31, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc15_28.3: <bound method> = bound_method %.loc15_28.1, %.loc15_28.2 [template = constants.%.38]
|
||||
// CHECK:STDOUT: %.loc15_28.4: <specific function> = specific_function %.loc15_28.3, @Convert.2(constants.%.1) [template = constants.%.39]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc15: init %i32 = call %.loc15_28.4(%.loc15_28.1) [template = constants.%.40]
|
||||
// CHECK:STDOUT: %.loc15_28.5: %i32 = value_of_initializer %int.convert_checked.loc15 [template = constants.%.40]
|
||||
// CHECK:STDOUT: %.loc15_28.6: %i32 = converted %.loc15_28.1, %.loc15_28.5 [template = constants.%.40]
|
||||
// CHECK:STDOUT: %.loc15_34.4: ref %i32 = array_index %a.ref, %.loc15_28.6 [template = <error>]
|
||||
// CHECK:STDOUT: %.loc15_34.5: %i32 = bind_value %.loc15_34.4
|
||||
// CHECK:STDOUT: assign file.%b.var, %.loc15_34.5
|
||||
// CHECK:STDOUT: %a.ref: ref %array_type = name_ref a, file.%a
|
||||
// CHECK:STDOUT: %int_3.loc15: Core.IntLiteral = int_value 3 [template = constants.%int_3.1]
|
||||
// CHECK:STDOUT: %.loc15_27.1: %struct_type.index = struct_literal (%int_3.loc15)
|
||||
// CHECK:STDOUT: %struct: %struct_type.index = struct_value (%int_3.loc15) [template = constants.%struct]
|
||||
// CHECK:STDOUT: %.loc15_27.2: %struct_type.index = converted %.loc15_27.1, %struct [template = constants.%struct]
|
||||
// CHECK:STDOUT: %.loc15_28.1: Core.IntLiteral = struct_access %.loc15_27.2, element0 [template = constants.%int_3.1]
|
||||
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed: init type = call constants.%Int(%int_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc15_34.1: type = value_of_initializer %int.make_type_signed [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc15_34.2: type = converted %int.make_type_signed, %.loc15_34.1 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %impl.elem0.loc15: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc15: <bound method> = bound_method %.loc15_28.1, %impl.elem0.loc15 [template = constants.%Convert.bound.3]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc15: <specific function> = specific_function %Convert.bound.loc15, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.3]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc15: init %i32 = call %Convert.specific_fn.loc15(%.loc15_28.1) [template = constants.%int_3.2]
|
||||
// CHECK:STDOUT: %.loc15_28.2: %i32 = value_of_initializer %int.convert_checked.loc15 [template = constants.%int_3.2]
|
||||
// CHECK:STDOUT: %.loc15_28.3: %i32 = converted %.loc15_28.1, %.loc15_28.2 [template = constants.%int_3.2]
|
||||
// CHECK:STDOUT: %.loc15_34.3: ref %i32 = array_index %a.ref, %.loc15_28.3 [template = <error>]
|
||||
// CHECK:STDOUT: %.loc15_34.4: %i32 = bind_value %.loc15_34.3
|
||||
// CHECK:STDOUT: assign file.%b.var, %.loc15_34.4
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+75
-75
@@ -42,27 +42,27 @@ var d: [i32; 3] = t2;
|
||||
// CHECK:STDOUT: --- fail_type_mismatch.carbon
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %.1: Core.IntLiteral = int_value 32 [template]
|
||||
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template]
|
||||
// CHECK:STDOUT: %Int.type: type = fn_type @Int [template]
|
||||
// CHECK:STDOUT: %Int: %Int.type = struct_value () [template]
|
||||
// CHECK:STDOUT: %i32: type = int_type signed, %.1 [template]
|
||||
// CHECK:STDOUT: %.2: Core.IntLiteral = int_value 3 [template]
|
||||
// CHECK:STDOUT: %.3: type = array_type %.2, %i32 [template]
|
||||
// CHECK:STDOUT: %.5: Core.IntLiteral = int_value 1 [template]
|
||||
// CHECK:STDOUT: %.7: String = string_literal "Hello" [template]
|
||||
// CHECK:STDOUT: %.8: String = string_literal "World" [template]
|
||||
// CHECK:STDOUT: %i32: type = int_type signed, %int_32 [template]
|
||||
// CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template]
|
||||
// CHECK:STDOUT: %array_type: type = array_type %int_3, %i32 [template]
|
||||
// CHECK:STDOUT: %int_1.1: Core.IntLiteral = int_value 1 [template]
|
||||
// CHECK:STDOUT: %str.1: String = string_literal "Hello" [template]
|
||||
// CHECK:STDOUT: %str.2: String = string_literal "World" [template]
|
||||
// CHECK:STDOUT: %tuple.type.1: type = tuple_type (Core.IntLiteral, String, String) [template]
|
||||
// CHECK:STDOUT: %.9: Core.IntLiteral = int_value 0 [template]
|
||||
// CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template]
|
||||
// CHECK:STDOUT: %Convert.type.2: type = fn_type @Convert.1, @ImplicitAs(%i32) [template]
|
||||
// CHECK:STDOUT: %Convert.type.14: type = fn_type @Convert.2, @impl.1(%.1) [template]
|
||||
// CHECK:STDOUT: %Convert.type.14: type = fn_type @Convert.2, @impl.1(%int_32) [template]
|
||||
// CHECK:STDOUT: %Convert.14: %Convert.type.14 = struct_value () [template]
|
||||
// CHECK:STDOUT: %.33: <witness> = interface_witness (%Convert.14) [template]
|
||||
// CHECK:STDOUT: %.34: <bound method> = bound_method %.5, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %.35: <specific function> = specific_function %.34, @Convert.2(%.1) [template]
|
||||
// CHECK:STDOUT: %.36: %i32 = int_value 1 [template]
|
||||
// CHECK:STDOUT: %interface.9: <witness> = interface_witness (%Convert.14) [template]
|
||||
// CHECK:STDOUT: %Convert.bound: <bound method> = bound_method %int_1.1, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn: <specific function> = specific_function %Convert.bound, @Convert.2(%int_32) [template]
|
||||
// CHECK:STDOUT: %int_1.2: %i32 = int_value 1 [template]
|
||||
// CHECK:STDOUT: %tuple.type.2: type = tuple_type (type, type, type) [template]
|
||||
// CHECK:STDOUT: %tuple.type.3: type = tuple_type (%i32, String, String) [template]
|
||||
// CHECK:STDOUT: %.38: Core.IntLiteral = int_value 2 [template]
|
||||
// CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template]
|
||||
// CHECK:STDOUT: %tuple.type.5: type = tuple_type (Core.IntLiteral, Core.IntLiteral) [template]
|
||||
// CHECK:STDOUT: %tuple.type.6: type = tuple_type (type, type) [template]
|
||||
// CHECK:STDOUT: %tuple.type.7: type = tuple_type (%i32, %i32) [template]
|
||||
@@ -88,42 +88,42 @@ var d: [i32; 3] = t2;
|
||||
// CHECK:STDOUT: .d = %d
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %.loc18_9.1: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc18: init type = call constants.%Int(%.loc18_9.1) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc18_14: Core.IntLiteral = int_value 3 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc18_9.2: type = value_of_initializer %int.make_type_signed.loc18 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc18_9.3: type = converted %int.make_type_signed.loc18, %.loc18_9.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc18_15: type = array_type %.loc18_14, %i32 [template = constants.%.3]
|
||||
// CHECK:STDOUT: %a.var: ref %.3 = var a
|
||||
// CHECK:STDOUT: %a: ref %.3 = bind_name a, %a.var
|
||||
// CHECK:STDOUT: %.loc20_10: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc20: init type = call constants.%Int(%.loc20_10) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_32.loc18: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc18: init type = call constants.%Int(%int_32.loc18) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_3.loc18: Core.IntLiteral = int_value 3 [template = constants.%int_3]
|
||||
// CHECK:STDOUT: %.loc18_9.1: type = value_of_initializer %int.make_type_signed.loc18 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc18_9.2: type = converted %int.make_type_signed.loc18, %.loc18_9.1 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %array_type.loc18: type = array_type %int_3.loc18, %i32 [template = constants.%array_type]
|
||||
// CHECK:STDOUT: %a.var: ref %array_type = var a
|
||||
// CHECK:STDOUT: %a: ref %array_type = bind_name a, %a.var
|
||||
// CHECK:STDOUT: %int_32.loc20: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc20: init type = call constants.%Int(%int_32.loc20) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc20_29.1: %tuple.type.2 = tuple_literal (%int.make_type_signed.loc20, String, String)
|
||||
// CHECK:STDOUT: %.loc20_29.2: type = value_of_initializer %int.make_type_signed.loc20 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc20_29.3: type = converted %int.make_type_signed.loc20, %.loc20_29.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc20_29.4: type = converted %.loc20_29.1, constants.%tuple.type.3 [template = constants.%tuple.type.3]
|
||||
// CHECK:STDOUT: %t1.var: ref %tuple.type.3 = var t1
|
||||
// CHECK:STDOUT: %t1: ref %tuple.type.3 = bind_name t1, %t1.var
|
||||
// CHECK:STDOUT: %.loc28_9.1: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc28: init type = call constants.%Int(%.loc28_9.1) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc28_14: Core.IntLiteral = int_value 3 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc28_9.2: type = value_of_initializer %int.make_type_signed.loc28 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc28_9.3: type = converted %int.make_type_signed.loc28, %.loc28_9.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc28_15: type = array_type %.loc28_14, %i32 [template = constants.%.3]
|
||||
// CHECK:STDOUT: %b.var: ref %.3 = var b
|
||||
// CHECK:STDOUT: %b: ref %.3 = bind_name b, %b.var
|
||||
// CHECK:STDOUT: %.loc34_9.1: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc34: init type = call constants.%Int(%.loc34_9.1) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc34_14: Core.IntLiteral = int_value 3 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc34_9.2: type = value_of_initializer %int.make_type_signed.loc34 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc34_9.3: type = converted %int.make_type_signed.loc34, %.loc34_9.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc34_15: type = array_type %.loc34_14, %i32 [template = constants.%.3]
|
||||
// CHECK:STDOUT: %c.var: ref %.3 = var c
|
||||
// CHECK:STDOUT: %c: ref %.3 = bind_name c, %c.var
|
||||
// CHECK:STDOUT: %.loc36_10: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc36_10: init type = call constants.%Int(%.loc36_10) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc36_15: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc36_15: init type = call constants.%Int(%.loc36_15) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_32.loc28: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc28: init type = call constants.%Int(%int_32.loc28) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_3.loc28: Core.IntLiteral = int_value 3 [template = constants.%int_3]
|
||||
// CHECK:STDOUT: %.loc28_9.1: type = value_of_initializer %int.make_type_signed.loc28 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc28_9.2: type = converted %int.make_type_signed.loc28, %.loc28_9.1 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %array_type.loc28: type = array_type %int_3.loc28, %i32 [template = constants.%array_type]
|
||||
// CHECK:STDOUT: %b.var: ref %array_type = var b
|
||||
// CHECK:STDOUT: %b: ref %array_type = bind_name b, %b.var
|
||||
// CHECK:STDOUT: %int_32.loc34: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc34: init type = call constants.%Int(%int_32.loc34) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_3.loc34: Core.IntLiteral = int_value 3 [template = constants.%int_3]
|
||||
// CHECK:STDOUT: %.loc34_9.1: type = value_of_initializer %int.make_type_signed.loc34 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc34_9.2: type = converted %int.make_type_signed.loc34, %.loc34_9.1 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %array_type.loc34: type = array_type %int_3.loc34, %i32 [template = constants.%array_type]
|
||||
// CHECK:STDOUT: %c.var: ref %array_type = var c
|
||||
// CHECK:STDOUT: %c: ref %array_type = bind_name c, %c.var
|
||||
// CHECK:STDOUT: %int_32.loc36_10: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc36_10: init type = call constants.%Int(%int_32.loc36_10) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_32.loc36_15: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc36_15: init type = call constants.%Int(%int_32.loc36_15) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc36_18.1: %tuple.type.6 = tuple_literal (%int.make_type_signed.loc36_10, %int.make_type_signed.loc36_15)
|
||||
// CHECK:STDOUT: %.loc36_18.2: type = value_of_initializer %int.make_type_signed.loc36_10 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc36_18.3: type = converted %int.make_type_signed.loc36_10, %.loc36_18.2 [template = constants.%i32]
|
||||
@@ -132,44 +132,44 @@ var d: [i32; 3] = t2;
|
||||
// CHECK:STDOUT: %.loc36_18.6: type = converted %.loc36_18.1, constants.%tuple.type.7 [template = constants.%tuple.type.7]
|
||||
// CHECK:STDOUT: %t2.var: ref %tuple.type.7 = var t2
|
||||
// CHECK:STDOUT: %t2: ref %tuple.type.7 = bind_name t2, %t2.var
|
||||
// CHECK:STDOUT: %.loc40_9.1: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc40: init type = call constants.%Int(%.loc40_9.1) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc40_14: Core.IntLiteral = int_value 3 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc40_9.2: type = value_of_initializer %int.make_type_signed.loc40 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc40_9.3: type = converted %int.make_type_signed.loc40, %.loc40_9.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc40_15: type = array_type %.loc40_14, %i32 [template = constants.%.3]
|
||||
// CHECK:STDOUT: %d.var: ref %.3 = var d
|
||||
// CHECK:STDOUT: %d: ref %.3 = bind_name d, %d.var
|
||||
// CHECK:STDOUT: %int_32.loc40: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc40: init type = call constants.%Int(%int_32.loc40) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_3.loc40: Core.IntLiteral = int_value 3 [template = constants.%int_3]
|
||||
// CHECK:STDOUT: %.loc40_9.1: type = value_of_initializer %int.make_type_signed.loc40 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc40_9.2: type = converted %int.make_type_signed.loc40, %.loc40_9.1 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %array_type.loc40: type = array_type %int_3.loc40, %i32 [template = constants.%array_type]
|
||||
// CHECK:STDOUT: %d.var: ref %array_type = var d
|
||||
// CHECK:STDOUT: %d: ref %array_type = bind_name d, %d.var
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @__global_init() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %.loc18_20: Core.IntLiteral = int_value 1 [template = constants.%.5]
|
||||
// CHECK:STDOUT: %.loc18_23: String = string_literal "Hello" [template = constants.%.7]
|
||||
// CHECK:STDOUT: %.loc18_32: String = string_literal "World" [template = constants.%.8]
|
||||
// CHECK:STDOUT: %.loc18_39.1: %tuple.type.1 = tuple_literal (%.loc18_20, %.loc18_23, %.loc18_32)
|
||||
// CHECK:STDOUT: %.loc18_39.2: %Convert.type.2 = interface_witness_access constants.%.33, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc18_39.3: <bound method> = bound_method %.loc18_20, %.loc18_39.2 [template = constants.%.34]
|
||||
// CHECK:STDOUT: %.loc18_39.4: <specific function> = specific_function %.loc18_39.3, @Convert.2(constants.%.1) [template = constants.%.35]
|
||||
// CHECK:STDOUT: %int.convert_checked: init %i32 = call %.loc18_39.4(%.loc18_20) [template = constants.%.36]
|
||||
// CHECK:STDOUT: %.loc18_39.5: init %i32 = converted %.loc18_20, %int.convert_checked [template = constants.%.36]
|
||||
// CHECK:STDOUT: %.loc18_39.6: Core.IntLiteral = int_value 0 [template = constants.%.9]
|
||||
// CHECK:STDOUT: %.loc18_39.7: ref %i32 = array_index file.%a.var, %.loc18_39.6
|
||||
// CHECK:STDOUT: %.loc18_39.8: init %i32 = initialize_from %.loc18_39.5 to %.loc18_39.7 [template = constants.%.36]
|
||||
// CHECK:STDOUT: %.loc18_39.9: %i32 = converted %.loc18_23, <error> [template = <error>]
|
||||
// CHECK:STDOUT: %int_1.loc18: Core.IntLiteral = int_value 1 [template = constants.%int_1.1]
|
||||
// CHECK:STDOUT: %str.loc18_23: String = string_literal "Hello" [template = constants.%str.1]
|
||||
// CHECK:STDOUT: %str.loc18_32: String = string_literal "World" [template = constants.%str.2]
|
||||
// CHECK:STDOUT: %.loc18_39.1: %tuple.type.1 = tuple_literal (%int_1.loc18, %str.loc18_23, %str.loc18_32)
|
||||
// CHECK:STDOUT: %impl.elem0: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound: <bound method> = bound_method %int_1.loc18, %impl.elem0 [template = constants.%Convert.bound]
|
||||
// CHECK:STDOUT: %Convert.specific_fn: <specific function> = specific_function %Convert.bound, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn]
|
||||
// CHECK:STDOUT: %int.convert_checked: init %i32 = call %Convert.specific_fn(%int_1.loc18) [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %.loc18_39.2: init %i32 = converted %int_1.loc18, %int.convert_checked [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %int_0.loc18: Core.IntLiteral = int_value 0 [template = constants.%int_0]
|
||||
// CHECK:STDOUT: %.loc18_39.3: ref %i32 = array_index file.%a.var, %int_0.loc18
|
||||
// CHECK:STDOUT: %.loc18_39.4: init %i32 = initialize_from %.loc18_39.2 to %.loc18_39.3 [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %.loc18_39.5: %i32 = converted %str.loc18_23, <error> [template = <error>]
|
||||
// CHECK:STDOUT: assign file.%a.var, <error>
|
||||
// CHECK:STDOUT: %t1.ref: ref %tuple.type.3 = name_ref t1, file.%t1
|
||||
// CHECK:STDOUT: %.loc28_19.1: ref %i32 = tuple_access %t1.ref, element0
|
||||
// CHECK:STDOUT: %.loc28_19.2: %i32 = bind_value %.loc28_19.1
|
||||
// CHECK:STDOUT: %.loc28_19.3: Core.IntLiteral = int_value 0 [template = constants.%.9]
|
||||
// CHECK:STDOUT: %.loc28_19.4: ref %i32 = array_index file.%b.var, %.loc28_19.3
|
||||
// CHECK:STDOUT: %.loc28_19.5: init %i32 = initialize_from %.loc28_19.2 to %.loc28_19.4
|
||||
// CHECK:STDOUT: %.loc28_19.6: ref String = tuple_access %t1.ref, element1
|
||||
// CHECK:STDOUT: %.loc28_19.7: %i32 = converted %.loc28_19.6, <error> [template = <error>]
|
||||
// CHECK:STDOUT: %tuple.elem0: ref %i32 = tuple_access %t1.ref, element0
|
||||
// CHECK:STDOUT: %.loc28_19.1: %i32 = bind_value %tuple.elem0
|
||||
// CHECK:STDOUT: %int_0.loc28: Core.IntLiteral = int_value 0 [template = constants.%int_0]
|
||||
// CHECK:STDOUT: %.loc28_19.2: ref %i32 = array_index file.%b.var, %int_0.loc28
|
||||
// CHECK:STDOUT: %.loc28_19.3: init %i32 = initialize_from %.loc28_19.1 to %.loc28_19.2
|
||||
// CHECK:STDOUT: %tuple.elem1: ref String = tuple_access %t1.ref, element1
|
||||
// CHECK:STDOUT: %.loc28_19.4: %i32 = converted %tuple.elem1, <error> [template = <error>]
|
||||
// CHECK:STDOUT: assign file.%b.var, <error>
|
||||
// CHECK:STDOUT: %.loc34_20: Core.IntLiteral = int_value 1 [template = constants.%.5]
|
||||
// CHECK:STDOUT: %.loc34_23: Core.IntLiteral = int_value 2 [template = constants.%.38]
|
||||
// CHECK:STDOUT: %.loc34_24: %tuple.type.5 = tuple_literal (%.loc34_20, %.loc34_23)
|
||||
// CHECK:STDOUT: %int_1.loc34: Core.IntLiteral = int_value 1 [template = constants.%int_1.1]
|
||||
// CHECK:STDOUT: %int_2: Core.IntLiteral = int_value 2 [template = constants.%int_2]
|
||||
// CHECK:STDOUT: %.loc34: %tuple.type.5 = tuple_literal (%int_1.loc34, %int_2)
|
||||
// CHECK:STDOUT: assign file.%c.var, <error>
|
||||
// CHECK:STDOUT: %t2.ref: ref %tuple.type.7 = name_ref t2, file.%t2
|
||||
// CHECK:STDOUT: assign file.%d.var, <error>
|
||||
|
||||
+92
-92
@@ -19,34 +19,34 @@ fn G() -> i32 {
|
||||
// CHECK:STDOUT: --- function_param.carbon
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %.1: Core.IntLiteral = int_value 32 [template]
|
||||
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template]
|
||||
// CHECK:STDOUT: %Int.type: type = fn_type @Int [template]
|
||||
// CHECK:STDOUT: %Int: %Int.type = struct_value () [template]
|
||||
// CHECK:STDOUT: %i32: type = int_type signed, %.1 [template]
|
||||
// CHECK:STDOUT: %.2: Core.IntLiteral = int_value 3 [template]
|
||||
// CHECK:STDOUT: %.3: type = array_type %.2, %i32 [template]
|
||||
// CHECK:STDOUT: %i32: type = int_type signed, %int_32 [template]
|
||||
// CHECK:STDOUT: %int_3.1: Core.IntLiteral = int_value 3 [template]
|
||||
// CHECK:STDOUT: %array_type: type = array_type %int_3.1, %i32 [template]
|
||||
// CHECK:STDOUT: %F.type: type = fn_type @F [template]
|
||||
// CHECK:STDOUT: %F: %F.type = struct_value () [template]
|
||||
// CHECK:STDOUT: %G.type: type = fn_type @G [template]
|
||||
// CHECK:STDOUT: %G: %G.type = struct_value () [template]
|
||||
// CHECK:STDOUT: %.5: Core.IntLiteral = int_value 1 [template]
|
||||
// CHECK:STDOUT: %.6: Core.IntLiteral = int_value 2 [template]
|
||||
// CHECK:STDOUT: %int_1.1: Core.IntLiteral = int_value 1 [template]
|
||||
// CHECK:STDOUT: %int_2.1: Core.IntLiteral = int_value 2 [template]
|
||||
// CHECK:STDOUT: %tuple.type: type = tuple_type (Core.IntLiteral, Core.IntLiteral, Core.IntLiteral) [template]
|
||||
// CHECK:STDOUT: %.7: Core.IntLiteral = int_value 0 [template]
|
||||
// CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template]
|
||||
// CHECK:STDOUT: %Convert.type.2: type = fn_type @Convert.1, @ImplicitAs(%i32) [template]
|
||||
// CHECK:STDOUT: %Convert.type.14: type = fn_type @Convert.2, @impl.1(%.1) [template]
|
||||
// CHECK:STDOUT: %Convert.type.14: type = fn_type @Convert.2, @impl.1(%int_32) [template]
|
||||
// CHECK:STDOUT: %Convert.14: %Convert.type.14 = struct_value () [template]
|
||||
// CHECK:STDOUT: %.31: <witness> = interface_witness (%Convert.14) [template]
|
||||
// CHECK:STDOUT: %.32: <bound method> = bound_method %.5, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %.33: <specific function> = specific_function %.32, @Convert.2(%.1) [template]
|
||||
// CHECK:STDOUT: %.34: %i32 = int_value 1 [template]
|
||||
// CHECK:STDOUT: %.35: <bound method> = bound_method %.6, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %.36: <specific function> = specific_function %.35, @Convert.2(%.1) [template]
|
||||
// CHECK:STDOUT: %.37: %i32 = int_value 2 [template]
|
||||
// CHECK:STDOUT: %.38: <bound method> = bound_method %.2, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %.39: <specific function> = specific_function %.38, @Convert.2(%.1) [template]
|
||||
// CHECK:STDOUT: %.40: %i32 = int_value 3 [template]
|
||||
// CHECK:STDOUT: %array: %.3 = tuple_value (%.34, %.37, %.40) [template]
|
||||
// CHECK:STDOUT: %interface.9: <witness> = interface_witness (%Convert.14) [template]
|
||||
// CHECK:STDOUT: %Convert.bound.1: <bound method> = bound_method %int_1.1, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.1: <specific function> = specific_function %Convert.bound.1, @Convert.2(%int_32) [template]
|
||||
// CHECK:STDOUT: %int_1.2: %i32 = int_value 1 [template]
|
||||
// CHECK:STDOUT: %Convert.bound.2: <bound method> = bound_method %int_2.1, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.2: <specific function> = specific_function %Convert.bound.2, @Convert.2(%int_32) [template]
|
||||
// CHECK:STDOUT: %int_2.2: %i32 = int_value 2 [template]
|
||||
// CHECK:STDOUT: %Convert.bound.3: <bound method> = bound_method %int_3.1, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.3: <specific function> = specific_function %Convert.bound.3, @Convert.2(%int_32) [template]
|
||||
// CHECK:STDOUT: %int_3.2: %i32 = int_value 3 [template]
|
||||
// CHECK:STDOUT: %array: %array_type = tuple_value (%int_1.2, %int_2.2, %int_3.2) [template]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -66,29 +66,29 @@ fn G() -> i32 {
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [template = constants.%F] {
|
||||
// CHECK:STDOUT: %arr.patt: %.3 = binding_pattern arr
|
||||
// CHECK:STDOUT: %arr.param_patt: %.3 = value_param_pattern %arr.patt, runtime_param0
|
||||
// CHECK:STDOUT: %arr.patt: %array_type = binding_pattern arr
|
||||
// CHECK:STDOUT: %arr.param_patt: %array_type = value_param_pattern %arr.patt, runtime_param0
|
||||
// CHECK:STDOUT: %i.patt: %i32 = binding_pattern i
|
||||
// CHECK:STDOUT: %i.param_patt: %i32 = value_param_pattern %i.patt, runtime_param1
|
||||
// CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: %i32 = out_param_pattern %return.patt, runtime_param2
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %.loc11_12.1: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc11_12: init type = call constants.%Int(%.loc11_12.1) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_17: Core.IntLiteral = int_value 3 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc11_12.2: type = value_of_initializer %int.make_type_signed.loc11_12 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_12.3: type = converted %int.make_type_signed.loc11_12, %.loc11_12.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_18: type = array_type %.loc11_17, %i32 [template = constants.%.3]
|
||||
// CHECK:STDOUT: %.loc11_24.1: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc11_24: init type = call constants.%Int(%.loc11_24.1) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_24.2: type = value_of_initializer %int.make_type_signed.loc11_24 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_24.3: type = converted %int.make_type_signed.loc11_24, %.loc11_24.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_32.1: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc11_32: init type = call constants.%Int(%.loc11_32.1) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_32.2: type = value_of_initializer %int.make_type_signed.loc11_32 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_32.3: type = converted %int.make_type_signed.loc11_32, %.loc11_32.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %arr.param: %.3 = value_param runtime_param0
|
||||
// CHECK:STDOUT: %arr: %.3 = bind_name arr, %arr.param
|
||||
// CHECK:STDOUT: %int_32.loc11_12: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc11_12: init type = call constants.%Int(%int_32.loc11_12) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3.1]
|
||||
// CHECK:STDOUT: %.loc11_12.1: type = value_of_initializer %int.make_type_signed.loc11_12 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_12.2: type = converted %int.make_type_signed.loc11_12, %.loc11_12.1 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %array_type: type = array_type %int_3, %i32 [template = constants.%array_type]
|
||||
// CHECK:STDOUT: %int_32.loc11_24: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc11_24: init type = call constants.%Int(%int_32.loc11_24) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_24.1: type = value_of_initializer %int.make_type_signed.loc11_24 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_24.2: type = converted %int.make_type_signed.loc11_24, %.loc11_24.1 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_32.loc11_32: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc11_32: init type = call constants.%Int(%int_32.loc11_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_32.1: type = value_of_initializer %int.make_type_signed.loc11_32 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_32.2: type = converted %int.make_type_signed.loc11_32, %.loc11_32.1 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %arr.param: %array_type = value_param runtime_param0
|
||||
// CHECK:STDOUT: %arr: %array_type = bind_name arr, %arr.param
|
||||
// CHECK:STDOUT: %i.param: %i32 = value_param runtime_param1
|
||||
// CHECK:STDOUT: %i: %i32 = bind_name i, %i.param
|
||||
// CHECK:STDOUT: %return.param: ref %i32 = out_param runtime_param2
|
||||
@@ -98,73 +98,73 @@ fn G() -> i32 {
|
||||
// CHECK:STDOUT: %return.patt: %i32 = return_slot_pattern
|
||||
// CHECK:STDOUT: %return.param_patt: %i32 = out_param_pattern %return.patt, runtime_param0
|
||||
// CHECK:STDOUT: } {
|
||||
// CHECK:STDOUT: %.loc15_11.1: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed: init type = call constants.%Int(%.loc15_11.1) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc15_11.2: type = value_of_initializer %int.make_type_signed [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc15_11.3: type = converted %int.make_type_signed, %.loc15_11.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed: init type = call constants.%Int(%int_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc15_11.1: type = value_of_initializer %int.make_type_signed [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc15_11.2: type = converted %int.make_type_signed, %.loc15_11.1 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %return.param: ref %i32 = out_param runtime_param0
|
||||
// CHECK:STDOUT: %return: ref %i32 = return_slot %return.param
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @F(%arr.param_patt: %.3, %i.param_patt: %i32) -> %i32 {
|
||||
// CHECK:STDOUT: fn @F(%arr.param_patt: %array_type, %i.param_patt: %i32) -> %i32 {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %arr.ref: %.3 = name_ref arr, %arr
|
||||
// CHECK:STDOUT: %arr.ref: %array_type = name_ref arr, %arr
|
||||
// CHECK:STDOUT: %i.ref: %i32 = name_ref i, %i
|
||||
// CHECK:STDOUT: %.loc12_15.1: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc12: init type = call constants.%Int(%.loc12_15.1) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc12_15.2: type = value_of_initializer %int.make_type_signed.loc12 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc12_15.3: type = converted %int.make_type_signed.loc12, %.loc12_15.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc12_15.4: ref %.3 = value_as_ref %arr.ref
|
||||
// CHECK:STDOUT: %.loc12_15.5: ref %i32 = array_index %.loc12_15.4, %i.ref
|
||||
// CHECK:STDOUT: %.loc12_15.6: %i32 = bind_value %.loc12_15.5
|
||||
// CHECK:STDOUT: return %.loc12_15.6
|
||||
// CHECK:STDOUT: %int_32.loc12: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc12: init type = call constants.%Int(%int_32.loc12) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc12_15.1: type = value_of_initializer %int.make_type_signed.loc12 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc12_15.2: type = converted %int.make_type_signed.loc12, %.loc12_15.1 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc12_15.3: ref %array_type = value_as_ref %arr.ref
|
||||
// CHECK:STDOUT: %.loc12_15.4: ref %i32 = array_index %.loc12_15.3, %i.ref
|
||||
// CHECK:STDOUT: %.loc12_15.5: %i32 = bind_value %.loc12_15.4
|
||||
// CHECK:STDOUT: return %.loc12_15.5
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @G() -> %i32 {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %F.ref: %F.type = name_ref F, file.%F.decl [template = constants.%F]
|
||||
// CHECK:STDOUT: %.loc16_13: Core.IntLiteral = int_value 1 [template = constants.%.5]
|
||||
// CHECK:STDOUT: %.loc16_16: Core.IntLiteral = int_value 2 [template = constants.%.6]
|
||||
// CHECK:STDOUT: %.loc16_19: Core.IntLiteral = int_value 3 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc16_20.1: %tuple.type = tuple_literal (%.loc16_13, %.loc16_16, %.loc16_19)
|
||||
// CHECK:STDOUT: %.loc16_23.1: Core.IntLiteral = int_value 1 [template = constants.%.5]
|
||||
// CHECK:STDOUT: %.loc16_20.2: %Convert.type.2 = interface_witness_access constants.%.31, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc16_20.3: <bound method> = bound_method %.loc16_13, %.loc16_20.2 [template = constants.%.32]
|
||||
// CHECK:STDOUT: %.loc16_20.4: <specific function> = specific_function %.loc16_20.3, @Convert.2(constants.%.1) [template = constants.%.33]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc16_20.1: init %i32 = call %.loc16_20.4(%.loc16_13) [template = constants.%.34]
|
||||
// CHECK:STDOUT: %.loc16_20.5: init %i32 = converted %.loc16_13, %int.convert_checked.loc16_20.1 [template = constants.%.34]
|
||||
// CHECK:STDOUT: %.loc16_20.6: ref %.3 = temporary_storage
|
||||
// CHECK:STDOUT: %.loc16_20.7: Core.IntLiteral = int_value 0 [template = constants.%.7]
|
||||
// CHECK:STDOUT: %.loc16_20.8: ref %i32 = array_index %.loc16_20.6, %.loc16_20.7
|
||||
// CHECK:STDOUT: %.loc16_20.9: init %i32 = initialize_from %.loc16_20.5 to %.loc16_20.8 [template = constants.%.34]
|
||||
// CHECK:STDOUT: %.loc16_20.10: %Convert.type.2 = interface_witness_access constants.%.31, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc16_20.11: <bound method> = bound_method %.loc16_16, %.loc16_20.10 [template = constants.%.35]
|
||||
// CHECK:STDOUT: %.loc16_20.12: <specific function> = specific_function %.loc16_20.11, @Convert.2(constants.%.1) [template = constants.%.36]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc16_20.2: init %i32 = call %.loc16_20.12(%.loc16_16) [template = constants.%.37]
|
||||
// CHECK:STDOUT: %.loc16_20.13: init %i32 = converted %.loc16_16, %int.convert_checked.loc16_20.2 [template = constants.%.37]
|
||||
// CHECK:STDOUT: %.loc16_20.14: Core.IntLiteral = int_value 1 [template = constants.%.5]
|
||||
// CHECK:STDOUT: %.loc16_20.15: ref %i32 = array_index %.loc16_20.6, %.loc16_20.14
|
||||
// CHECK:STDOUT: %.loc16_20.16: init %i32 = initialize_from %.loc16_20.13 to %.loc16_20.15 [template = constants.%.37]
|
||||
// CHECK:STDOUT: %.loc16_20.17: %Convert.type.2 = interface_witness_access constants.%.31, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc16_20.18: <bound method> = bound_method %.loc16_19, %.loc16_20.17 [template = constants.%.38]
|
||||
// CHECK:STDOUT: %.loc16_20.19: <specific function> = specific_function %.loc16_20.18, @Convert.2(constants.%.1) [template = constants.%.39]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc16_20.3: init %i32 = call %.loc16_20.19(%.loc16_19) [template = constants.%.40]
|
||||
// CHECK:STDOUT: %.loc16_20.20: init %i32 = converted %.loc16_19, %int.convert_checked.loc16_20.3 [template = constants.%.40]
|
||||
// CHECK:STDOUT: %.loc16_20.21: Core.IntLiteral = int_value 2 [template = constants.%.6]
|
||||
// CHECK:STDOUT: %.loc16_20.22: ref %i32 = array_index %.loc16_20.6, %.loc16_20.21
|
||||
// CHECK:STDOUT: %.loc16_20.23: init %i32 = initialize_from %.loc16_20.20 to %.loc16_20.22 [template = constants.%.40]
|
||||
// CHECK:STDOUT: %.loc16_20.24: init %.3 = array_init (%.loc16_20.9, %.loc16_20.16, %.loc16_20.23) to %.loc16_20.6 [template = constants.%array]
|
||||
// CHECK:STDOUT: %.loc16_20.25: init %.3 = converted %.loc16_20.1, %.loc16_20.24 [template = constants.%array]
|
||||
// CHECK:STDOUT: %.loc16_20.26: ref %.3 = temporary %.loc16_20.6, %.loc16_20.25
|
||||
// CHECK:STDOUT: %.loc16_20.27: %.3 = bind_value %.loc16_20.26
|
||||
// CHECK:STDOUT: %.loc16_23.2: %Convert.type.2 = interface_witness_access constants.%.31, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc16_23.3: <bound method> = bound_method %.loc16_23.1, %.loc16_23.2 [template = constants.%.32]
|
||||
// CHECK:STDOUT: %.loc16_23.4: <specific function> = specific_function %.loc16_23.3, @Convert.2(constants.%.1) [template = constants.%.33]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc16_23: init %i32 = call %.loc16_23.4(%.loc16_23.1) [template = constants.%.34]
|
||||
// CHECK:STDOUT: %.loc16_23.5: %i32 = value_of_initializer %int.convert_checked.loc16_23 [template = constants.%.34]
|
||||
// CHECK:STDOUT: %.loc16_23.6: %i32 = converted %.loc16_23.1, %.loc16_23.5 [template = constants.%.34]
|
||||
// CHECK:STDOUT: %F.call: init %i32 = call %F.ref(%.loc16_20.27, %.loc16_23.6)
|
||||
// CHECK:STDOUT: %int_1.loc16_13: Core.IntLiteral = int_value 1 [template = constants.%int_1.1]
|
||||
// CHECK:STDOUT: %int_2.loc16_16: Core.IntLiteral = int_value 2 [template = constants.%int_2.1]
|
||||
// CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3.1]
|
||||
// CHECK:STDOUT: %.loc16_20.1: %tuple.type = tuple_literal (%int_1.loc16_13, %int_2.loc16_16, %int_3)
|
||||
// CHECK:STDOUT: %int_1.loc16_23: Core.IntLiteral = int_value 1 [template = constants.%int_1.1]
|
||||
// CHECK:STDOUT: %impl.elem0.loc16_20.1: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc16_20.1: <bound method> = bound_method %int_1.loc16_13, %impl.elem0.loc16_20.1 [template = constants.%Convert.bound.1]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc16_20.1: <specific function> = specific_function %Convert.bound.loc16_20.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.1]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc16_20.1: init %i32 = call %Convert.specific_fn.loc16_20.1(%int_1.loc16_13) [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %.loc16_20.2: init %i32 = converted %int_1.loc16_13, %int.convert_checked.loc16_20.1 [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %.loc16_20.3: ref %array_type = temporary_storage
|
||||
// CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0]
|
||||
// CHECK:STDOUT: %.loc16_20.4: ref %i32 = array_index %.loc16_20.3, %int_0
|
||||
// CHECK:STDOUT: %.loc16_20.5: init %i32 = initialize_from %.loc16_20.2 to %.loc16_20.4 [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %impl.elem0.loc16_20.2: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc16_20.2: <bound method> = bound_method %int_2.loc16_16, %impl.elem0.loc16_20.2 [template = constants.%Convert.bound.2]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc16_20.2: <specific function> = specific_function %Convert.bound.loc16_20.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.2]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc16_20.2: init %i32 = call %Convert.specific_fn.loc16_20.2(%int_2.loc16_16) [template = constants.%int_2.2]
|
||||
// CHECK:STDOUT: %.loc16_20.6: init %i32 = converted %int_2.loc16_16, %int.convert_checked.loc16_20.2 [template = constants.%int_2.2]
|
||||
// CHECK:STDOUT: %int_1.loc16_20: Core.IntLiteral = int_value 1 [template = constants.%int_1.1]
|
||||
// CHECK:STDOUT: %.loc16_20.7: ref %i32 = array_index %.loc16_20.3, %int_1.loc16_20
|
||||
// CHECK:STDOUT: %.loc16_20.8: init %i32 = initialize_from %.loc16_20.6 to %.loc16_20.7 [template = constants.%int_2.2]
|
||||
// CHECK:STDOUT: %impl.elem0.loc16_20.3: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc16_20.3: <bound method> = bound_method %int_3, %impl.elem0.loc16_20.3 [template = constants.%Convert.bound.3]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc16_20.3: <specific function> = specific_function %Convert.bound.loc16_20.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.3]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc16_20.3: init %i32 = call %Convert.specific_fn.loc16_20.3(%int_3) [template = constants.%int_3.2]
|
||||
// CHECK:STDOUT: %.loc16_20.9: init %i32 = converted %int_3, %int.convert_checked.loc16_20.3 [template = constants.%int_3.2]
|
||||
// CHECK:STDOUT: %int_2.loc16_20: Core.IntLiteral = int_value 2 [template = constants.%int_2.1]
|
||||
// CHECK:STDOUT: %.loc16_20.10: ref %i32 = array_index %.loc16_20.3, %int_2.loc16_20
|
||||
// CHECK:STDOUT: %.loc16_20.11: init %i32 = initialize_from %.loc16_20.9 to %.loc16_20.10 [template = constants.%int_3.2]
|
||||
// CHECK:STDOUT: %.loc16_20.12: init %array_type = array_init (%.loc16_20.5, %.loc16_20.8, %.loc16_20.11) to %.loc16_20.3 [template = constants.%array]
|
||||
// CHECK:STDOUT: %.loc16_20.13: init %array_type = converted %.loc16_20.1, %.loc16_20.12 [template = constants.%array]
|
||||
// CHECK:STDOUT: %.loc16_20.14: ref %array_type = temporary %.loc16_20.3, %.loc16_20.13
|
||||
// CHECK:STDOUT: %.loc16_20.15: %array_type = bind_value %.loc16_20.14
|
||||
// CHECK:STDOUT: %impl.elem0.loc16_23: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc16_23: <bound method> = bound_method %int_1.loc16_23, %impl.elem0.loc16_23 [template = constants.%Convert.bound.1]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc16_23: <specific function> = specific_function %Convert.bound.loc16_23, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.1]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc16_23: init %i32 = call %Convert.specific_fn.loc16_23(%int_1.loc16_23) [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %.loc16_23.1: %i32 = value_of_initializer %int.convert_checked.loc16_23 [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %.loc16_23.2: %i32 = converted %int_1.loc16_23, %.loc16_23.1 [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %F.call: init %i32 = call %F.ref(%.loc16_20.15, %.loc16_23.2)
|
||||
// CHECK:STDOUT: %.loc16_25.1: %i32 = value_of_initializer %F.call
|
||||
// CHECK:STDOUT: %.loc16_25.2: %i32 = converted %F.call, %.loc16_25.1
|
||||
// CHECK:STDOUT: return %.loc16_25.2
|
||||
|
||||
+11
-11
@@ -21,9 +21,9 @@ fn G(T:! type) {
|
||||
// CHECK:STDOUT: %G.type: type = fn_type @G [template]
|
||||
// CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [template]
|
||||
// CHECK:STDOUT: %G: %G.type = struct_value () [template]
|
||||
// CHECK:STDOUT: %.1: Core.IntLiteral = int_value 0 [template]
|
||||
// CHECK:STDOUT: %.2: type = array_type %.1, %T [symbolic]
|
||||
// CHECK:STDOUT: %array: %.2 = tuple_value () [symbolic]
|
||||
// CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template]
|
||||
// CHECK:STDOUT: %array_type: type = array_type %int_0, %T [symbolic]
|
||||
// CHECK:STDOUT: %array: %array_type = tuple_value () [symbolic]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -53,19 +53,19 @@ fn G(T:! type) {
|
||||
// CHECK:STDOUT: %T.patt.loc11_6.2: type = symbolic_binding_pattern T, 0 [symbolic = %T.patt.loc11_6.2 (constants.%T.patt)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: !definition:
|
||||
// CHECK:STDOUT: %.loc13_17.2: type = array_type constants.%.1, @G.%T.loc11_6.2 (%T) [symbolic = %.loc13_17.2 (constants.%.2)]
|
||||
// CHECK:STDOUT: %array: @G.%.loc13_17.2 (%.2) = tuple_value () [symbolic = %array (constants.%array)]
|
||||
// CHECK:STDOUT: %array_type.loc13_17.2: type = array_type constants.%int_0, @G.%T.loc11_6.2 (%T) [symbolic = %array_type.loc13_17.2 (constants.%array_type)]
|
||||
// CHECK:STDOUT: %array: @G.%array_type.loc13_17.2 (%array_type) = tuple_value () [symbolic = %array (constants.%array)]
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn(%T.param_patt: type) {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %T.ref: type = name_ref T, %T.loc11_6.1 [symbolic = %T.loc11_6.2 (constants.%T)]
|
||||
// CHECK:STDOUT: %.loc13_16: Core.IntLiteral = int_value 0 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %.loc13_17.1: type = array_type %.loc13_16, %T [symbolic = %.loc13_17.2 (constants.%.2)]
|
||||
// CHECK:STDOUT: %arr.var: ref @G.%.loc13_17.2 (%.2) = var arr
|
||||
// CHECK:STDOUT: %arr: ref @G.%.loc13_17.2 (%.2) = bind_name arr, %arr.var
|
||||
// CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0]
|
||||
// CHECK:STDOUT: %array_type.loc13_17.1: type = array_type %int_0, %T [symbolic = %array_type.loc13_17.2 (constants.%array_type)]
|
||||
// CHECK:STDOUT: %arr.var: ref @G.%array_type.loc13_17.2 (%array_type) = var arr
|
||||
// CHECK:STDOUT: %arr: ref @G.%array_type.loc13_17.2 (%array_type) = bind_name arr, %arr.var
|
||||
// CHECK:STDOUT: %.loc13_22.1: %empty_tuple.type = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc13_22.2: init @G.%.loc13_17.2 (%.2) = array_init () to %arr.var [symbolic = %array (constants.%array)]
|
||||
// CHECK:STDOUT: %.loc13_23: init @G.%.loc13_17.2 (%.2) = converted %.loc13_22.1, %.loc13_22.2 [symbolic = %array (constants.%array)]
|
||||
// CHECK:STDOUT: %.loc13_22.2: init @G.%array_type.loc13_17.2 (%array_type) = array_init () to %arr.var [symbolic = %array (constants.%array)]
|
||||
// CHECK:STDOUT: %.loc13_23: init @G.%array_type.loc13_17.2 (%array_type) = converted %.loc13_22.1, %.loc13_22.2 [symbolic = %array (constants.%array)]
|
||||
// CHECK:STDOUT: assign %arr.var, %.loc13_23
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
+82
-82
@@ -14,32 +14,32 @@ var b: i32 = a[{.index = 2}.index];
|
||||
// CHECK:STDOUT: --- index_not_literal.carbon
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %.1: Core.IntLiteral = int_value 32 [template]
|
||||
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template]
|
||||
// CHECK:STDOUT: %Int.type: type = fn_type @Int [template]
|
||||
// CHECK:STDOUT: %Int: %Int.type = struct_value () [template]
|
||||
// CHECK:STDOUT: %i32: type = int_type signed, %.1 [template]
|
||||
// CHECK:STDOUT: %.2: Core.IntLiteral = int_value 3 [template]
|
||||
// CHECK:STDOUT: %.3: type = array_type %.2, %i32 [template]
|
||||
// CHECK:STDOUT: %.5: Core.IntLiteral = int_value 1 [template]
|
||||
// CHECK:STDOUT: %.6: Core.IntLiteral = int_value 2 [template]
|
||||
// CHECK:STDOUT: %i32: type = int_type signed, %int_32 [template]
|
||||
// CHECK:STDOUT: %int_3.1: Core.IntLiteral = int_value 3 [template]
|
||||
// CHECK:STDOUT: %array_type: type = array_type %int_3.1, %i32 [template]
|
||||
// CHECK:STDOUT: %int_1.1: Core.IntLiteral = int_value 1 [template]
|
||||
// CHECK:STDOUT: %int_2.1: Core.IntLiteral = int_value 2 [template]
|
||||
// CHECK:STDOUT: %tuple.type: type = tuple_type (Core.IntLiteral, Core.IntLiteral, Core.IntLiteral) [template]
|
||||
// CHECK:STDOUT: %.7: Core.IntLiteral = int_value 0 [template]
|
||||
// CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template]
|
||||
// CHECK:STDOUT: %Convert.type.2: type = fn_type @Convert.1, @ImplicitAs(%i32) [template]
|
||||
// CHECK:STDOUT: %Convert.type.14: type = fn_type @Convert.2, @impl.1(%.1) [template]
|
||||
// CHECK:STDOUT: %Convert.type.14: type = fn_type @Convert.2, @impl.1(%int_32) [template]
|
||||
// CHECK:STDOUT: %Convert.14: %Convert.type.14 = struct_value () [template]
|
||||
// CHECK:STDOUT: %.31: <witness> = interface_witness (%Convert.14) [template]
|
||||
// CHECK:STDOUT: %.32: <bound method> = bound_method %.5, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %.33: <specific function> = specific_function %.32, @Convert.2(%.1) [template]
|
||||
// CHECK:STDOUT: %.34: %i32 = int_value 1 [template]
|
||||
// CHECK:STDOUT: %.35: <bound method> = bound_method %.6, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %.36: <specific function> = specific_function %.35, @Convert.2(%.1) [template]
|
||||
// CHECK:STDOUT: %.37: %i32 = int_value 2 [template]
|
||||
// CHECK:STDOUT: %.38: <bound method> = bound_method %.2, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %.39: <specific function> = specific_function %.38, @Convert.2(%.1) [template]
|
||||
// CHECK:STDOUT: %.40: %i32 = int_value 3 [template]
|
||||
// CHECK:STDOUT: %array: %.3 = tuple_value (%.34, %.37, %.40) [template]
|
||||
// CHECK:STDOUT: %.41: type = struct_type {.index: Core.IntLiteral} [template]
|
||||
// CHECK:STDOUT: %struct: %.41 = struct_value (%.6) [template]
|
||||
// CHECK:STDOUT: %interface.9: <witness> = interface_witness (%Convert.14) [template]
|
||||
// CHECK:STDOUT: %Convert.bound.1: <bound method> = bound_method %int_1.1, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.1: <specific function> = specific_function %Convert.bound.1, @Convert.2(%int_32) [template]
|
||||
// CHECK:STDOUT: %int_1.2: %i32 = int_value 1 [template]
|
||||
// CHECK:STDOUT: %Convert.bound.2: <bound method> = bound_method %int_2.1, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.2: <specific function> = specific_function %Convert.bound.2, @Convert.2(%int_32) [template]
|
||||
// CHECK:STDOUT: %int_2.2: %i32 = int_value 2 [template]
|
||||
// CHECK:STDOUT: %Convert.bound.3: <bound method> = bound_method %int_3.1, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.3: <specific function> = specific_function %Convert.bound.3, @Convert.2(%int_32) [template]
|
||||
// CHECK:STDOUT: %int_3.2: %i32 = int_value 3 [template]
|
||||
// CHECK:STDOUT: %array: %array_type = tuple_value (%int_1.2, %int_2.2, %int_3.2) [template]
|
||||
// CHECK:STDOUT: %struct_type.index: type = struct_type {.index: Core.IntLiteral} [template]
|
||||
// CHECK:STDOUT: %struct: %struct_type.index = struct_value (%int_2.1) [template]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -58,74 +58,74 @@ var b: i32 = a[{.index = 2}.index];
|
||||
// CHECK:STDOUT: .b = %b
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %.loc11_9.1: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc11: init type = call constants.%Int(%.loc11_9.1) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_14: Core.IntLiteral = int_value 3 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc11_9.2: type = value_of_initializer %int.make_type_signed.loc11 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_9.3: type = converted %int.make_type_signed.loc11, %.loc11_9.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_15: type = array_type %.loc11_14, %i32 [template = constants.%.3]
|
||||
// CHECK:STDOUT: %a.var: ref %.3 = var a
|
||||
// CHECK:STDOUT: %a: ref %.3 = bind_name a, %a.var
|
||||
// CHECK:STDOUT: %.loc12_8.1: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc12: init type = call constants.%Int(%.loc12_8.1) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc12_8.2: type = value_of_initializer %int.make_type_signed.loc12 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc12_8.3: type = converted %int.make_type_signed.loc12, %.loc12_8.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_32.loc11: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc11: init type = call constants.%Int(%int_32.loc11) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3.1]
|
||||
// CHECK:STDOUT: %.loc11_9.1: type = value_of_initializer %int.make_type_signed.loc11 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_9.2: type = converted %int.make_type_signed.loc11, %.loc11_9.1 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %array_type: type = array_type %int_3, %i32 [template = constants.%array_type]
|
||||
// CHECK:STDOUT: %a.var: ref %array_type = var a
|
||||
// CHECK:STDOUT: %a: ref %array_type = bind_name a, %a.var
|
||||
// CHECK:STDOUT: %int_32.loc12: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed.loc12: init type = call constants.%Int(%int_32.loc12) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc12_8.1: type = value_of_initializer %int.make_type_signed.loc12 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc12_8.2: type = converted %int.make_type_signed.loc12, %.loc12_8.1 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %b.var: ref %i32 = var b
|
||||
// CHECK:STDOUT: %b: ref %i32 = bind_name b, %b.var
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @__global_init() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %.loc11_20: Core.IntLiteral = int_value 1 [template = constants.%.5]
|
||||
// CHECK:STDOUT: %.loc11_23: Core.IntLiteral = int_value 2 [template = constants.%.6]
|
||||
// CHECK:STDOUT: %.loc11_26: Core.IntLiteral = int_value 3 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc11_27.1: %tuple.type = tuple_literal (%.loc11_20, %.loc11_23, %.loc11_26)
|
||||
// CHECK:STDOUT: %.loc11_27.2: %Convert.type.2 = interface_witness_access constants.%.31, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc11_27.3: <bound method> = bound_method %.loc11_20, %.loc11_27.2 [template = constants.%.32]
|
||||
// CHECK:STDOUT: %.loc11_27.4: <specific function> = specific_function %.loc11_27.3, @Convert.2(constants.%.1) [template = constants.%.33]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_27.1: init %i32 = call %.loc11_27.4(%.loc11_20) [template = constants.%.34]
|
||||
// CHECK:STDOUT: %.loc11_27.5: init %i32 = converted %.loc11_20, %int.convert_checked.loc11_27.1 [template = constants.%.34]
|
||||
// CHECK:STDOUT: %.loc11_27.6: Core.IntLiteral = int_value 0 [template = constants.%.7]
|
||||
// CHECK:STDOUT: %.loc11_27.7: ref %i32 = array_index file.%a.var, %.loc11_27.6
|
||||
// CHECK:STDOUT: %.loc11_27.8: init %i32 = initialize_from %.loc11_27.5 to %.loc11_27.7 [template = constants.%.34]
|
||||
// CHECK:STDOUT: %.loc11_27.9: %Convert.type.2 = interface_witness_access constants.%.31, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc11_27.10: <bound method> = bound_method %.loc11_23, %.loc11_27.9 [template = constants.%.35]
|
||||
// CHECK:STDOUT: %.loc11_27.11: <specific function> = specific_function %.loc11_27.10, @Convert.2(constants.%.1) [template = constants.%.36]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_27.2: init %i32 = call %.loc11_27.11(%.loc11_23) [template = constants.%.37]
|
||||
// CHECK:STDOUT: %.loc11_27.12: init %i32 = converted %.loc11_23, %int.convert_checked.loc11_27.2 [template = constants.%.37]
|
||||
// CHECK:STDOUT: %.loc11_27.13: Core.IntLiteral = int_value 1 [template = constants.%.5]
|
||||
// CHECK:STDOUT: %.loc11_27.14: ref %i32 = array_index file.%a.var, %.loc11_27.13
|
||||
// CHECK:STDOUT: %.loc11_27.15: init %i32 = initialize_from %.loc11_27.12 to %.loc11_27.14 [template = constants.%.37]
|
||||
// CHECK:STDOUT: %.loc11_27.16: %Convert.type.2 = interface_witness_access constants.%.31, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc11_27.17: <bound method> = bound_method %.loc11_26, %.loc11_27.16 [template = constants.%.38]
|
||||
// CHECK:STDOUT: %.loc11_27.18: <specific function> = specific_function %.loc11_27.17, @Convert.2(constants.%.1) [template = constants.%.39]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_27.3: init %i32 = call %.loc11_27.18(%.loc11_26) [template = constants.%.40]
|
||||
// CHECK:STDOUT: %.loc11_27.19: init %i32 = converted %.loc11_26, %int.convert_checked.loc11_27.3 [template = constants.%.40]
|
||||
// CHECK:STDOUT: %.loc11_27.20: Core.IntLiteral = int_value 2 [template = constants.%.6]
|
||||
// CHECK:STDOUT: %.loc11_27.21: ref %i32 = array_index file.%a.var, %.loc11_27.20
|
||||
// CHECK:STDOUT: %.loc11_27.22: init %i32 = initialize_from %.loc11_27.19 to %.loc11_27.21 [template = constants.%.40]
|
||||
// CHECK:STDOUT: %.loc11_27.23: init %.3 = array_init (%.loc11_27.8, %.loc11_27.15, %.loc11_27.22) to file.%a.var [template = constants.%array]
|
||||
// CHECK:STDOUT: %.loc11_28: init %.3 = converted %.loc11_27.1, %.loc11_27.23 [template = constants.%array]
|
||||
// CHECK:STDOUT: %int_1.loc11_20: Core.IntLiteral = int_value 1 [template = constants.%int_1.1]
|
||||
// CHECK:STDOUT: %int_2.loc11_23: Core.IntLiteral = int_value 2 [template = constants.%int_2.1]
|
||||
// CHECK:STDOUT: %int_3: Core.IntLiteral = int_value 3 [template = constants.%int_3.1]
|
||||
// CHECK:STDOUT: %.loc11_27.1: %tuple.type = tuple_literal (%int_1.loc11_20, %int_2.loc11_23, %int_3)
|
||||
// CHECK:STDOUT: %impl.elem0.loc11_27.1: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc11_27.1: <bound method> = bound_method %int_1.loc11_20, %impl.elem0.loc11_27.1 [template = constants.%Convert.bound.1]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc11_27.1: <specific function> = specific_function %Convert.bound.loc11_27.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.1]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_27.1: init %i32 = call %Convert.specific_fn.loc11_27.1(%int_1.loc11_20) [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %.loc11_27.2: init %i32 = converted %int_1.loc11_20, %int.convert_checked.loc11_27.1 [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0]
|
||||
// CHECK:STDOUT: %.loc11_27.3: ref %i32 = array_index file.%a.var, %int_0
|
||||
// CHECK:STDOUT: %.loc11_27.4: init %i32 = initialize_from %.loc11_27.2 to %.loc11_27.3 [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %impl.elem0.loc11_27.2: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc11_27.2: <bound method> = bound_method %int_2.loc11_23, %impl.elem0.loc11_27.2 [template = constants.%Convert.bound.2]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc11_27.2: <specific function> = specific_function %Convert.bound.loc11_27.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.2]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_27.2: init %i32 = call %Convert.specific_fn.loc11_27.2(%int_2.loc11_23) [template = constants.%int_2.2]
|
||||
// CHECK:STDOUT: %.loc11_27.5: init %i32 = converted %int_2.loc11_23, %int.convert_checked.loc11_27.2 [template = constants.%int_2.2]
|
||||
// CHECK:STDOUT: %int_1.loc11_27: Core.IntLiteral = int_value 1 [template = constants.%int_1.1]
|
||||
// CHECK:STDOUT: %.loc11_27.6: ref %i32 = array_index file.%a.var, %int_1.loc11_27
|
||||
// CHECK:STDOUT: %.loc11_27.7: init %i32 = initialize_from %.loc11_27.5 to %.loc11_27.6 [template = constants.%int_2.2]
|
||||
// CHECK:STDOUT: %impl.elem0.loc11_27.3: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc11_27.3: <bound method> = bound_method %int_3, %impl.elem0.loc11_27.3 [template = constants.%Convert.bound.3]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc11_27.3: <specific function> = specific_function %Convert.bound.loc11_27.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.3]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_27.3: init %i32 = call %Convert.specific_fn.loc11_27.3(%int_3) [template = constants.%int_3.2]
|
||||
// CHECK:STDOUT: %.loc11_27.8: init %i32 = converted %int_3, %int.convert_checked.loc11_27.3 [template = constants.%int_3.2]
|
||||
// CHECK:STDOUT: %int_2.loc11_27: Core.IntLiteral = int_value 2 [template = constants.%int_2.1]
|
||||
// CHECK:STDOUT: %.loc11_27.9: ref %i32 = array_index file.%a.var, %int_2.loc11_27
|
||||
// CHECK:STDOUT: %.loc11_27.10: init %i32 = initialize_from %.loc11_27.8 to %.loc11_27.9 [template = constants.%int_3.2]
|
||||
// CHECK:STDOUT: %.loc11_27.11: init %array_type = array_init (%.loc11_27.4, %.loc11_27.7, %.loc11_27.10) to file.%a.var [template = constants.%array]
|
||||
// CHECK:STDOUT: %.loc11_28: init %array_type = converted %.loc11_27.1, %.loc11_27.11 [template = constants.%array]
|
||||
// CHECK:STDOUT: assign file.%a.var, %.loc11_28
|
||||
// CHECK:STDOUT: %a.ref: ref %.3 = name_ref a, file.%a
|
||||
// CHECK:STDOUT: %.loc12_26: Core.IntLiteral = int_value 2 [template = constants.%.6]
|
||||
// CHECK:STDOUT: %.loc12_27.1: %.41 = struct_literal (%.loc12_26)
|
||||
// CHECK:STDOUT: %struct: %.41 = struct_value (%.loc12_26) [template = constants.%struct]
|
||||
// CHECK:STDOUT: %.loc12_27.2: %.41 = converted %.loc12_27.1, %struct [template = constants.%struct]
|
||||
// CHECK:STDOUT: %.loc12_28.1: Core.IntLiteral = struct_access %.loc12_27.2, element0 [template = constants.%.6]
|
||||
// CHECK:STDOUT: %.loc12_34.1: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed: init type = call constants.%Int(%.loc12_34.1) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc12_34.2: type = value_of_initializer %int.make_type_signed [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc12_34.3: type = converted %int.make_type_signed, %.loc12_34.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc12_28.2: %Convert.type.2 = interface_witness_access constants.%.31, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc12_28.3: <bound method> = bound_method %.loc12_28.1, %.loc12_28.2 [template = constants.%.35]
|
||||
// CHECK:STDOUT: %.loc12_28.4: <specific function> = specific_function %.loc12_28.3, @Convert.2(constants.%.1) [template = constants.%.36]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc12: init %i32 = call %.loc12_28.4(%.loc12_28.1) [template = constants.%.37]
|
||||
// CHECK:STDOUT: %.loc12_28.5: %i32 = value_of_initializer %int.convert_checked.loc12 [template = constants.%.37]
|
||||
// CHECK:STDOUT: %.loc12_28.6: %i32 = converted %.loc12_28.1, %.loc12_28.5 [template = constants.%.37]
|
||||
// CHECK:STDOUT: %.loc12_34.4: ref %i32 = array_index %a.ref, %.loc12_28.6
|
||||
// CHECK:STDOUT: %.loc12_34.5: %i32 = bind_value %.loc12_34.4
|
||||
// CHECK:STDOUT: assign file.%b.var, %.loc12_34.5
|
||||
// CHECK:STDOUT: %a.ref: ref %array_type = name_ref a, file.%a
|
||||
// CHECK:STDOUT: %int_2.loc12: Core.IntLiteral = int_value 2 [template = constants.%int_2.1]
|
||||
// CHECK:STDOUT: %.loc12_27.1: %struct_type.index = struct_literal (%int_2.loc12)
|
||||
// CHECK:STDOUT: %struct: %struct_type.index = struct_value (%int_2.loc12) [template = constants.%struct]
|
||||
// CHECK:STDOUT: %.loc12_27.2: %struct_type.index = converted %.loc12_27.1, %struct [template = constants.%struct]
|
||||
// CHECK:STDOUT: %.loc12_28.1: Core.IntLiteral = struct_access %.loc12_27.2, element0 [template = constants.%int_2.1]
|
||||
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed: init type = call constants.%Int(%int_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc12_34.1: type = value_of_initializer %int.make_type_signed [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc12_34.2: type = converted %int.make_type_signed, %.loc12_34.1 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %impl.elem0.loc12: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc12: <bound method> = bound_method %.loc12_28.1, %impl.elem0.loc12 [template = constants.%Convert.bound.2]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc12: <specific function> = specific_function %Convert.bound.loc12, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.2]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc12: init %i32 = call %Convert.specific_fn.loc12(%.loc12_28.1) [template = constants.%int_2.2]
|
||||
// CHECK:STDOUT: %.loc12_28.2: %i32 = value_of_initializer %int.convert_checked.loc12 [template = constants.%int_2.2]
|
||||
// CHECK:STDOUT: %.loc12_28.3: %i32 = converted %.loc12_28.1, %.loc12_28.2 [template = constants.%int_2.2]
|
||||
// CHECK:STDOUT: %.loc12_34.3: ref %i32 = array_index %a.ref, %.loc12_28.3
|
||||
// CHECK:STDOUT: %.loc12_34.4: %i32 = bind_value %.loc12_34.3
|
||||
// CHECK:STDOUT: assign file.%b.var, %.loc12_34.4
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+135
-135
@@ -13,54 +13,54 @@ var a: [i32; 9] = (1, 2, 3, 4, 5, 6, 7, 8, 9);
|
||||
// CHECK:STDOUT: --- nine_elements.carbon
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: constants {
|
||||
// CHECK:STDOUT: %.1: Core.IntLiteral = int_value 32 [template]
|
||||
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template]
|
||||
// CHECK:STDOUT: %Int.type: type = fn_type @Int [template]
|
||||
// CHECK:STDOUT: %Int: %Int.type = struct_value () [template]
|
||||
// CHECK:STDOUT: %i32: type = int_type signed, %.1 [template]
|
||||
// CHECK:STDOUT: %.2: Core.IntLiteral = int_value 9 [template]
|
||||
// CHECK:STDOUT: %.3: type = array_type %.2, %i32 [template]
|
||||
// CHECK:STDOUT: %.5: Core.IntLiteral = int_value 1 [template]
|
||||
// CHECK:STDOUT: %.6: Core.IntLiteral = int_value 2 [template]
|
||||
// CHECK:STDOUT: %.7: Core.IntLiteral = int_value 3 [template]
|
||||
// CHECK:STDOUT: %.8: Core.IntLiteral = int_value 4 [template]
|
||||
// CHECK:STDOUT: %.9: Core.IntLiteral = int_value 5 [template]
|
||||
// CHECK:STDOUT: %.10: Core.IntLiteral = int_value 6 [template]
|
||||
// CHECK:STDOUT: %.11: Core.IntLiteral = int_value 7 [template]
|
||||
// CHECK:STDOUT: %.12: Core.IntLiteral = int_value 8 [template]
|
||||
// CHECK:STDOUT: %i32: type = int_type signed, %int_32 [template]
|
||||
// CHECK:STDOUT: %int_9.1: Core.IntLiteral = int_value 9 [template]
|
||||
// CHECK:STDOUT: %array_type: type = array_type %int_9.1, %i32 [template]
|
||||
// CHECK:STDOUT: %int_1.1: Core.IntLiteral = int_value 1 [template]
|
||||
// CHECK:STDOUT: %int_2.1: Core.IntLiteral = int_value 2 [template]
|
||||
// CHECK:STDOUT: %int_3.1: Core.IntLiteral = int_value 3 [template]
|
||||
// CHECK:STDOUT: %int_4.1: Core.IntLiteral = int_value 4 [template]
|
||||
// CHECK:STDOUT: %int_5.1: Core.IntLiteral = int_value 5 [template]
|
||||
// CHECK:STDOUT: %int_6.1: Core.IntLiteral = int_value 6 [template]
|
||||
// CHECK:STDOUT: %int_7.1: Core.IntLiteral = int_value 7 [template]
|
||||
// CHECK:STDOUT: %int_8.1: Core.IntLiteral = int_value 8 [template]
|
||||
// CHECK:STDOUT: %tuple.type: type = tuple_type (Core.IntLiteral, Core.IntLiteral, Core.IntLiteral, Core.IntLiteral, Core.IntLiteral, Core.IntLiteral, Core.IntLiteral, Core.IntLiteral, Core.IntLiteral) [template]
|
||||
// CHECK:STDOUT: %.13: Core.IntLiteral = int_value 0 [template]
|
||||
// CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template]
|
||||
// CHECK:STDOUT: %Convert.type.2: type = fn_type @Convert.1, @ImplicitAs(%i32) [template]
|
||||
// CHECK:STDOUT: %Convert.type.14: type = fn_type @Convert.2, @impl.1(%.1) [template]
|
||||
// CHECK:STDOUT: %Convert.type.14: type = fn_type @Convert.2, @impl.1(%int_32) [template]
|
||||
// CHECK:STDOUT: %Convert.14: %Convert.type.14 = struct_value () [template]
|
||||
// CHECK:STDOUT: %.37: <witness> = interface_witness (%Convert.14) [template]
|
||||
// CHECK:STDOUT: %.38: <bound method> = bound_method %.5, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %.39: <specific function> = specific_function %.38, @Convert.2(%.1) [template]
|
||||
// CHECK:STDOUT: %.40: %i32 = int_value 1 [template]
|
||||
// CHECK:STDOUT: %.41: <bound method> = bound_method %.6, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %.42: <specific function> = specific_function %.41, @Convert.2(%.1) [template]
|
||||
// CHECK:STDOUT: %.43: %i32 = int_value 2 [template]
|
||||
// CHECK:STDOUT: %.44: <bound method> = bound_method %.7, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %.45: <specific function> = specific_function %.44, @Convert.2(%.1) [template]
|
||||
// CHECK:STDOUT: %.46: %i32 = int_value 3 [template]
|
||||
// CHECK:STDOUT: %.47: <bound method> = bound_method %.8, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %.48: <specific function> = specific_function %.47, @Convert.2(%.1) [template]
|
||||
// CHECK:STDOUT: %.49: %i32 = int_value 4 [template]
|
||||
// CHECK:STDOUT: %.50: <bound method> = bound_method %.9, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %.51: <specific function> = specific_function %.50, @Convert.2(%.1) [template]
|
||||
// CHECK:STDOUT: %.52: %i32 = int_value 5 [template]
|
||||
// CHECK:STDOUT: %.53: <bound method> = bound_method %.10, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %.54: <specific function> = specific_function %.53, @Convert.2(%.1) [template]
|
||||
// CHECK:STDOUT: %.55: %i32 = int_value 6 [template]
|
||||
// CHECK:STDOUT: %.56: <bound method> = bound_method %.11, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %.57: <specific function> = specific_function %.56, @Convert.2(%.1) [template]
|
||||
// CHECK:STDOUT: %.58: %i32 = int_value 7 [template]
|
||||
// CHECK:STDOUT: %.59: <bound method> = bound_method %.12, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %.60: <specific function> = specific_function %.59, @Convert.2(%.1) [template]
|
||||
// CHECK:STDOUT: %.61: %i32 = int_value 8 [template]
|
||||
// CHECK:STDOUT: %.62: <bound method> = bound_method %.2, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %.63: <specific function> = specific_function %.62, @Convert.2(%.1) [template]
|
||||
// CHECK:STDOUT: %.64: %i32 = int_value 9 [template]
|
||||
// CHECK:STDOUT: %array: %.3 = tuple_value (%.40, %.43, %.46, %.49, %.52, %.55, %.58, %.61, %.64) [template]
|
||||
// CHECK:STDOUT: %interface.9: <witness> = interface_witness (%Convert.14) [template]
|
||||
// CHECK:STDOUT: %Convert.bound.1: <bound method> = bound_method %int_1.1, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.1: <specific function> = specific_function %Convert.bound.1, @Convert.2(%int_32) [template]
|
||||
// CHECK:STDOUT: %int_1.2: %i32 = int_value 1 [template]
|
||||
// CHECK:STDOUT: %Convert.bound.2: <bound method> = bound_method %int_2.1, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.2: <specific function> = specific_function %Convert.bound.2, @Convert.2(%int_32) [template]
|
||||
// CHECK:STDOUT: %int_2.2: %i32 = int_value 2 [template]
|
||||
// CHECK:STDOUT: %Convert.bound.3: <bound method> = bound_method %int_3.1, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.3: <specific function> = specific_function %Convert.bound.3, @Convert.2(%int_32) [template]
|
||||
// CHECK:STDOUT: %int_3.2: %i32 = int_value 3 [template]
|
||||
// CHECK:STDOUT: %Convert.bound.4: <bound method> = bound_method %int_4.1, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.4: <specific function> = specific_function %Convert.bound.4, @Convert.2(%int_32) [template]
|
||||
// CHECK:STDOUT: %int_4.2: %i32 = int_value 4 [template]
|
||||
// CHECK:STDOUT: %Convert.bound.5: <bound method> = bound_method %int_5.1, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.5: <specific function> = specific_function %Convert.bound.5, @Convert.2(%int_32) [template]
|
||||
// CHECK:STDOUT: %int_5.2: %i32 = int_value 5 [template]
|
||||
// CHECK:STDOUT: %Convert.bound.6: <bound method> = bound_method %int_6.1, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.6: <specific function> = specific_function %Convert.bound.6, @Convert.2(%int_32) [template]
|
||||
// CHECK:STDOUT: %int_6.2: %i32 = int_value 6 [template]
|
||||
// CHECK:STDOUT: %Convert.bound.7: <bound method> = bound_method %int_7.1, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.7: <specific function> = specific_function %Convert.bound.7, @Convert.2(%int_32) [template]
|
||||
// CHECK:STDOUT: %int_7.2: %i32 = int_value 7 [template]
|
||||
// CHECK:STDOUT: %Convert.bound.8: <bound method> = bound_method %int_8.1, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.8: <specific function> = specific_function %Convert.bound.8, @Convert.2(%int_32) [template]
|
||||
// CHECK:STDOUT: %int_8.2: %i32 = int_value 8 [template]
|
||||
// CHECK:STDOUT: %Convert.bound.9: <bound method> = bound_method %int_9.1, %Convert.14 [template]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.9: <specific function> = specific_function %Convert.bound.9, @Convert.2(%int_32) [template]
|
||||
// CHECK:STDOUT: %int_9.2: %i32 = int_value 9 [template]
|
||||
// CHECK:STDOUT: %array: %array_type = tuple_value (%int_1.2, %int_2.2, %int_3.2, %int_4.2, %int_5.2, %int_6.2, %int_7.2, %int_8.2, %int_9.2) [template]
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: imports {
|
||||
@@ -78,102 +78,102 @@ var a: [i32; 9] = (1, 2, 3, 4, 5, 6, 7, 8, 9);
|
||||
// CHECK:STDOUT: .a = %a
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %.loc11_9.1: Core.IntLiteral = int_value 32 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %int.make_type_signed: init type = call constants.%Int(%.loc11_9.1) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_14: Core.IntLiteral = int_value 9 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc11_9.2: type = value_of_initializer %int.make_type_signed [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_9.3: type = converted %int.make_type_signed, %.loc11_9.2 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_15: type = array_type %.loc11_14, %i32 [template = constants.%.3]
|
||||
// CHECK:STDOUT: %a.var: ref %.3 = var a
|
||||
// CHECK:STDOUT: %a: ref %.3 = bind_name a, %a.var
|
||||
// CHECK:STDOUT: %int_32: Core.IntLiteral = int_value 32 [template = constants.%int_32]
|
||||
// CHECK:STDOUT: %int.make_type_signed: init type = call constants.%Int(%int_32) [template = constants.%i32]
|
||||
// CHECK:STDOUT: %int_9: Core.IntLiteral = int_value 9 [template = constants.%int_9.1]
|
||||
// CHECK:STDOUT: %.loc11_9.1: type = value_of_initializer %int.make_type_signed [template = constants.%i32]
|
||||
// CHECK:STDOUT: %.loc11_9.2: type = converted %int.make_type_signed, %.loc11_9.1 [template = constants.%i32]
|
||||
// CHECK:STDOUT: %array_type: type = array_type %int_9, %i32 [template = constants.%array_type]
|
||||
// CHECK:STDOUT: %a.var: ref %array_type = var a
|
||||
// CHECK:STDOUT: %a: ref %array_type = bind_name a, %a.var
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
// CHECK:STDOUT: fn @__global_init() {
|
||||
// CHECK:STDOUT: !entry:
|
||||
// CHECK:STDOUT: %.loc11_20: Core.IntLiteral = int_value 1 [template = constants.%.5]
|
||||
// CHECK:STDOUT: %.loc11_23: Core.IntLiteral = int_value 2 [template = constants.%.6]
|
||||
// CHECK:STDOUT: %.loc11_26: Core.IntLiteral = int_value 3 [template = constants.%.7]
|
||||
// CHECK:STDOUT: %.loc11_29: Core.IntLiteral = int_value 4 [template = constants.%.8]
|
||||
// CHECK:STDOUT: %.loc11_32: Core.IntLiteral = int_value 5 [template = constants.%.9]
|
||||
// CHECK:STDOUT: %.loc11_35: Core.IntLiteral = int_value 6 [template = constants.%.10]
|
||||
// CHECK:STDOUT: %.loc11_38: Core.IntLiteral = int_value 7 [template = constants.%.11]
|
||||
// CHECK:STDOUT: %.loc11_41: Core.IntLiteral = int_value 8 [template = constants.%.12]
|
||||
// CHECK:STDOUT: %.loc11_44: Core.IntLiteral = int_value 9 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc11_45.1: %tuple.type = tuple_literal (%.loc11_20, %.loc11_23, %.loc11_26, %.loc11_29, %.loc11_32, %.loc11_35, %.loc11_38, %.loc11_41, %.loc11_44)
|
||||
// CHECK:STDOUT: %.loc11_45.2: %Convert.type.2 = interface_witness_access constants.%.37, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc11_45.3: <bound method> = bound_method %.loc11_20, %.loc11_45.2 [template = constants.%.38]
|
||||
// CHECK:STDOUT: %.loc11_45.4: <specific function> = specific_function %.loc11_45.3, @Convert.2(constants.%.1) [template = constants.%.39]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_45.1: init %i32 = call %.loc11_45.4(%.loc11_20) [template = constants.%.40]
|
||||
// CHECK:STDOUT: %.loc11_45.5: init %i32 = converted %.loc11_20, %int.convert_checked.loc11_45.1 [template = constants.%.40]
|
||||
// CHECK:STDOUT: %.loc11_45.6: Core.IntLiteral = int_value 0 [template = constants.%.13]
|
||||
// CHECK:STDOUT: %.loc11_45.7: ref %i32 = array_index file.%a.var, %.loc11_45.6
|
||||
// CHECK:STDOUT: %.loc11_45.8: init %i32 = initialize_from %.loc11_45.5 to %.loc11_45.7 [template = constants.%.40]
|
||||
// CHECK:STDOUT: %.loc11_45.9: %Convert.type.2 = interface_witness_access constants.%.37, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc11_45.10: <bound method> = bound_method %.loc11_23, %.loc11_45.9 [template = constants.%.41]
|
||||
// CHECK:STDOUT: %.loc11_45.11: <specific function> = specific_function %.loc11_45.10, @Convert.2(constants.%.1) [template = constants.%.42]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_45.2: init %i32 = call %.loc11_45.11(%.loc11_23) [template = constants.%.43]
|
||||
// CHECK:STDOUT: %.loc11_45.12: init %i32 = converted %.loc11_23, %int.convert_checked.loc11_45.2 [template = constants.%.43]
|
||||
// CHECK:STDOUT: %.loc11_45.13: Core.IntLiteral = int_value 1 [template = constants.%.5]
|
||||
// CHECK:STDOUT: %.loc11_45.14: ref %i32 = array_index file.%a.var, %.loc11_45.13
|
||||
// CHECK:STDOUT: %.loc11_45.15: init %i32 = initialize_from %.loc11_45.12 to %.loc11_45.14 [template = constants.%.43]
|
||||
// CHECK:STDOUT: %.loc11_45.16: %Convert.type.2 = interface_witness_access constants.%.37, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc11_45.17: <bound method> = bound_method %.loc11_26, %.loc11_45.16 [template = constants.%.44]
|
||||
// CHECK:STDOUT: %.loc11_45.18: <specific function> = specific_function %.loc11_45.17, @Convert.2(constants.%.1) [template = constants.%.45]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_45.3: init %i32 = call %.loc11_45.18(%.loc11_26) [template = constants.%.46]
|
||||
// CHECK:STDOUT: %.loc11_45.19: init %i32 = converted %.loc11_26, %int.convert_checked.loc11_45.3 [template = constants.%.46]
|
||||
// CHECK:STDOUT: %.loc11_45.20: Core.IntLiteral = int_value 2 [template = constants.%.6]
|
||||
// CHECK:STDOUT: %.loc11_45.21: ref %i32 = array_index file.%a.var, %.loc11_45.20
|
||||
// CHECK:STDOUT: %.loc11_45.22: init %i32 = initialize_from %.loc11_45.19 to %.loc11_45.21 [template = constants.%.46]
|
||||
// CHECK:STDOUT: %.loc11_45.23: %Convert.type.2 = interface_witness_access constants.%.37, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc11_45.24: <bound method> = bound_method %.loc11_29, %.loc11_45.23 [template = constants.%.47]
|
||||
// CHECK:STDOUT: %.loc11_45.25: <specific function> = specific_function %.loc11_45.24, @Convert.2(constants.%.1) [template = constants.%.48]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_45.4: init %i32 = call %.loc11_45.25(%.loc11_29) [template = constants.%.49]
|
||||
// CHECK:STDOUT: %.loc11_45.26: init %i32 = converted %.loc11_29, %int.convert_checked.loc11_45.4 [template = constants.%.49]
|
||||
// CHECK:STDOUT: %.loc11_45.27: Core.IntLiteral = int_value 3 [template = constants.%.7]
|
||||
// CHECK:STDOUT: %.loc11_45.28: ref %i32 = array_index file.%a.var, %.loc11_45.27
|
||||
// CHECK:STDOUT: %.loc11_45.29: init %i32 = initialize_from %.loc11_45.26 to %.loc11_45.28 [template = constants.%.49]
|
||||
// CHECK:STDOUT: %.loc11_45.30: %Convert.type.2 = interface_witness_access constants.%.37, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc11_45.31: <bound method> = bound_method %.loc11_32, %.loc11_45.30 [template = constants.%.50]
|
||||
// CHECK:STDOUT: %.loc11_45.32: <specific function> = specific_function %.loc11_45.31, @Convert.2(constants.%.1) [template = constants.%.51]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_45.5: init %i32 = call %.loc11_45.32(%.loc11_32) [template = constants.%.52]
|
||||
// CHECK:STDOUT: %.loc11_45.33: init %i32 = converted %.loc11_32, %int.convert_checked.loc11_45.5 [template = constants.%.52]
|
||||
// CHECK:STDOUT: %.loc11_45.34: Core.IntLiteral = int_value 4 [template = constants.%.8]
|
||||
// CHECK:STDOUT: %.loc11_45.35: ref %i32 = array_index file.%a.var, %.loc11_45.34
|
||||
// CHECK:STDOUT: %.loc11_45.36: init %i32 = initialize_from %.loc11_45.33 to %.loc11_45.35 [template = constants.%.52]
|
||||
// CHECK:STDOUT: %.loc11_45.37: %Convert.type.2 = interface_witness_access constants.%.37, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc11_45.38: <bound method> = bound_method %.loc11_35, %.loc11_45.37 [template = constants.%.53]
|
||||
// CHECK:STDOUT: %.loc11_45.39: <specific function> = specific_function %.loc11_45.38, @Convert.2(constants.%.1) [template = constants.%.54]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_45.6: init %i32 = call %.loc11_45.39(%.loc11_35) [template = constants.%.55]
|
||||
// CHECK:STDOUT: %.loc11_45.40: init %i32 = converted %.loc11_35, %int.convert_checked.loc11_45.6 [template = constants.%.55]
|
||||
// CHECK:STDOUT: %.loc11_45.41: Core.IntLiteral = int_value 5 [template = constants.%.9]
|
||||
// CHECK:STDOUT: %.loc11_45.42: ref %i32 = array_index file.%a.var, %.loc11_45.41
|
||||
// CHECK:STDOUT: %.loc11_45.43: init %i32 = initialize_from %.loc11_45.40 to %.loc11_45.42 [template = constants.%.55]
|
||||
// CHECK:STDOUT: %.loc11_45.44: %Convert.type.2 = interface_witness_access constants.%.37, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc11_45.45: <bound method> = bound_method %.loc11_38, %.loc11_45.44 [template = constants.%.56]
|
||||
// CHECK:STDOUT: %.loc11_45.46: <specific function> = specific_function %.loc11_45.45, @Convert.2(constants.%.1) [template = constants.%.57]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_45.7: init %i32 = call %.loc11_45.46(%.loc11_38) [template = constants.%.58]
|
||||
// CHECK:STDOUT: %.loc11_45.47: init %i32 = converted %.loc11_38, %int.convert_checked.loc11_45.7 [template = constants.%.58]
|
||||
// CHECK:STDOUT: %.loc11_45.48: Core.IntLiteral = int_value 6 [template = constants.%.10]
|
||||
// CHECK:STDOUT: %.loc11_45.49: ref %i32 = array_index file.%a.var, %.loc11_45.48
|
||||
// CHECK:STDOUT: %.loc11_45.50: init %i32 = initialize_from %.loc11_45.47 to %.loc11_45.49 [template = constants.%.58]
|
||||
// CHECK:STDOUT: %.loc11_45.51: %Convert.type.2 = interface_witness_access constants.%.37, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc11_45.52: <bound method> = bound_method %.loc11_41, %.loc11_45.51 [template = constants.%.59]
|
||||
// CHECK:STDOUT: %.loc11_45.53: <specific function> = specific_function %.loc11_45.52, @Convert.2(constants.%.1) [template = constants.%.60]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_45.8: init %i32 = call %.loc11_45.53(%.loc11_41) [template = constants.%.61]
|
||||
// CHECK:STDOUT: %.loc11_45.54: init %i32 = converted %.loc11_41, %int.convert_checked.loc11_45.8 [template = constants.%.61]
|
||||
// CHECK:STDOUT: %.loc11_45.55: Core.IntLiteral = int_value 7 [template = constants.%.11]
|
||||
// CHECK:STDOUT: %.loc11_45.56: ref %i32 = array_index file.%a.var, %.loc11_45.55
|
||||
// CHECK:STDOUT: %.loc11_45.57: init %i32 = initialize_from %.loc11_45.54 to %.loc11_45.56 [template = constants.%.61]
|
||||
// CHECK:STDOUT: %.loc11_45.58: %Convert.type.2 = interface_witness_access constants.%.37, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %.loc11_45.59: <bound method> = bound_method %.loc11_44, %.loc11_45.58 [template = constants.%.62]
|
||||
// CHECK:STDOUT: %.loc11_45.60: <specific function> = specific_function %.loc11_45.59, @Convert.2(constants.%.1) [template = constants.%.63]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_45.9: init %i32 = call %.loc11_45.60(%.loc11_44) [template = constants.%.64]
|
||||
// CHECK:STDOUT: %.loc11_45.61: init %i32 = converted %.loc11_44, %int.convert_checked.loc11_45.9 [template = constants.%.64]
|
||||
// CHECK:STDOUT: %.loc11_45.62: Core.IntLiteral = int_value 8 [template = constants.%.12]
|
||||
// CHECK:STDOUT: %.loc11_45.63: ref %i32 = array_index file.%a.var, %.loc11_45.62
|
||||
// CHECK:STDOUT: %.loc11_45.64: init %i32 = initialize_from %.loc11_45.61 to %.loc11_45.63 [template = constants.%.64]
|
||||
// CHECK:STDOUT: %.loc11_45.65: init %.3 = array_init (%.loc11_45.8, %.loc11_45.15, %.loc11_45.22, %.loc11_45.29, %.loc11_45.36, %.loc11_45.43, %.loc11_45.50, %.loc11_45.57, %.loc11_45.64) to file.%a.var [template = constants.%array]
|
||||
// CHECK:STDOUT: %.loc11_46: init %.3 = converted %.loc11_45.1, %.loc11_45.65 [template = constants.%array]
|
||||
// CHECK:STDOUT: %int_1.loc11_20: Core.IntLiteral = int_value 1 [template = constants.%int_1.1]
|
||||
// CHECK:STDOUT: %int_2.loc11_23: Core.IntLiteral = int_value 2 [template = constants.%int_2.1]
|
||||
// CHECK:STDOUT: %int_3.loc11_26: Core.IntLiteral = int_value 3 [template = constants.%int_3.1]
|
||||
// CHECK:STDOUT: %int_4.loc11_29: Core.IntLiteral = int_value 4 [template = constants.%int_4.1]
|
||||
// CHECK:STDOUT: %int_5.loc11_32: Core.IntLiteral = int_value 5 [template = constants.%int_5.1]
|
||||
// CHECK:STDOUT: %int_6.loc11_35: Core.IntLiteral = int_value 6 [template = constants.%int_6.1]
|
||||
// CHECK:STDOUT: %int_7.loc11_38: Core.IntLiteral = int_value 7 [template = constants.%int_7.1]
|
||||
// CHECK:STDOUT: %int_8.loc11_41: Core.IntLiteral = int_value 8 [template = constants.%int_8.1]
|
||||
// CHECK:STDOUT: %int_9: Core.IntLiteral = int_value 9 [template = constants.%int_9.1]
|
||||
// CHECK:STDOUT: %.loc11_45.1: %tuple.type = tuple_literal (%int_1.loc11_20, %int_2.loc11_23, %int_3.loc11_26, %int_4.loc11_29, %int_5.loc11_32, %int_6.loc11_35, %int_7.loc11_38, %int_8.loc11_41, %int_9)
|
||||
// CHECK:STDOUT: %impl.elem0.loc11_45.1: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc11_45.1: <bound method> = bound_method %int_1.loc11_20, %impl.elem0.loc11_45.1 [template = constants.%Convert.bound.1]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc11_45.1: <specific function> = specific_function %Convert.bound.loc11_45.1, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.1]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_45.1: init %i32 = call %Convert.specific_fn.loc11_45.1(%int_1.loc11_20) [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %.loc11_45.2: init %i32 = converted %int_1.loc11_20, %int.convert_checked.loc11_45.1 [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [template = constants.%int_0]
|
||||
// CHECK:STDOUT: %.loc11_45.3: ref %i32 = array_index file.%a.var, %int_0
|
||||
// CHECK:STDOUT: %.loc11_45.4: init %i32 = initialize_from %.loc11_45.2 to %.loc11_45.3 [template = constants.%int_1.2]
|
||||
// CHECK:STDOUT: %impl.elem0.loc11_45.2: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc11_45.2: <bound method> = bound_method %int_2.loc11_23, %impl.elem0.loc11_45.2 [template = constants.%Convert.bound.2]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc11_45.2: <specific function> = specific_function %Convert.bound.loc11_45.2, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.2]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_45.2: init %i32 = call %Convert.specific_fn.loc11_45.2(%int_2.loc11_23) [template = constants.%int_2.2]
|
||||
// CHECK:STDOUT: %.loc11_45.5: init %i32 = converted %int_2.loc11_23, %int.convert_checked.loc11_45.2 [template = constants.%int_2.2]
|
||||
// CHECK:STDOUT: %int_1.loc11_45: Core.IntLiteral = int_value 1 [template = constants.%int_1.1]
|
||||
// CHECK:STDOUT: %.loc11_45.6: ref %i32 = array_index file.%a.var, %int_1.loc11_45
|
||||
// CHECK:STDOUT: %.loc11_45.7: init %i32 = initialize_from %.loc11_45.5 to %.loc11_45.6 [template = constants.%int_2.2]
|
||||
// CHECK:STDOUT: %impl.elem0.loc11_45.3: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc11_45.3: <bound method> = bound_method %int_3.loc11_26, %impl.elem0.loc11_45.3 [template = constants.%Convert.bound.3]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc11_45.3: <specific function> = specific_function %Convert.bound.loc11_45.3, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.3]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_45.3: init %i32 = call %Convert.specific_fn.loc11_45.3(%int_3.loc11_26) [template = constants.%int_3.2]
|
||||
// CHECK:STDOUT: %.loc11_45.8: init %i32 = converted %int_3.loc11_26, %int.convert_checked.loc11_45.3 [template = constants.%int_3.2]
|
||||
// CHECK:STDOUT: %int_2.loc11_45: Core.IntLiteral = int_value 2 [template = constants.%int_2.1]
|
||||
// CHECK:STDOUT: %.loc11_45.9: ref %i32 = array_index file.%a.var, %int_2.loc11_45
|
||||
// CHECK:STDOUT: %.loc11_45.10: init %i32 = initialize_from %.loc11_45.8 to %.loc11_45.9 [template = constants.%int_3.2]
|
||||
// CHECK:STDOUT: %impl.elem0.loc11_45.4: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc11_45.4: <bound method> = bound_method %int_4.loc11_29, %impl.elem0.loc11_45.4 [template = constants.%Convert.bound.4]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc11_45.4: <specific function> = specific_function %Convert.bound.loc11_45.4, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.4]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_45.4: init %i32 = call %Convert.specific_fn.loc11_45.4(%int_4.loc11_29) [template = constants.%int_4.2]
|
||||
// CHECK:STDOUT: %.loc11_45.11: init %i32 = converted %int_4.loc11_29, %int.convert_checked.loc11_45.4 [template = constants.%int_4.2]
|
||||
// CHECK:STDOUT: %int_3.loc11_45: Core.IntLiteral = int_value 3 [template = constants.%int_3.1]
|
||||
// CHECK:STDOUT: %.loc11_45.12: ref %i32 = array_index file.%a.var, %int_3.loc11_45
|
||||
// CHECK:STDOUT: %.loc11_45.13: init %i32 = initialize_from %.loc11_45.11 to %.loc11_45.12 [template = constants.%int_4.2]
|
||||
// CHECK:STDOUT: %impl.elem0.loc11_45.5: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc11_45.5: <bound method> = bound_method %int_5.loc11_32, %impl.elem0.loc11_45.5 [template = constants.%Convert.bound.5]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc11_45.5: <specific function> = specific_function %Convert.bound.loc11_45.5, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.5]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_45.5: init %i32 = call %Convert.specific_fn.loc11_45.5(%int_5.loc11_32) [template = constants.%int_5.2]
|
||||
// CHECK:STDOUT: %.loc11_45.14: init %i32 = converted %int_5.loc11_32, %int.convert_checked.loc11_45.5 [template = constants.%int_5.2]
|
||||
// CHECK:STDOUT: %int_4.loc11_45: Core.IntLiteral = int_value 4 [template = constants.%int_4.1]
|
||||
// CHECK:STDOUT: %.loc11_45.15: ref %i32 = array_index file.%a.var, %int_4.loc11_45
|
||||
// CHECK:STDOUT: %.loc11_45.16: init %i32 = initialize_from %.loc11_45.14 to %.loc11_45.15 [template = constants.%int_5.2]
|
||||
// CHECK:STDOUT: %impl.elem0.loc11_45.6: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc11_45.6: <bound method> = bound_method %int_6.loc11_35, %impl.elem0.loc11_45.6 [template = constants.%Convert.bound.6]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc11_45.6: <specific function> = specific_function %Convert.bound.loc11_45.6, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.6]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_45.6: init %i32 = call %Convert.specific_fn.loc11_45.6(%int_6.loc11_35) [template = constants.%int_6.2]
|
||||
// CHECK:STDOUT: %.loc11_45.17: init %i32 = converted %int_6.loc11_35, %int.convert_checked.loc11_45.6 [template = constants.%int_6.2]
|
||||
// CHECK:STDOUT: %int_5.loc11_45: Core.IntLiteral = int_value 5 [template = constants.%int_5.1]
|
||||
// CHECK:STDOUT: %.loc11_45.18: ref %i32 = array_index file.%a.var, %int_5.loc11_45
|
||||
// CHECK:STDOUT: %.loc11_45.19: init %i32 = initialize_from %.loc11_45.17 to %.loc11_45.18 [template = constants.%int_6.2]
|
||||
// CHECK:STDOUT: %impl.elem0.loc11_45.7: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc11_45.7: <bound method> = bound_method %int_7.loc11_38, %impl.elem0.loc11_45.7 [template = constants.%Convert.bound.7]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc11_45.7: <specific function> = specific_function %Convert.bound.loc11_45.7, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.7]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_45.7: init %i32 = call %Convert.specific_fn.loc11_45.7(%int_7.loc11_38) [template = constants.%int_7.2]
|
||||
// CHECK:STDOUT: %.loc11_45.20: init %i32 = converted %int_7.loc11_38, %int.convert_checked.loc11_45.7 [template = constants.%int_7.2]
|
||||
// CHECK:STDOUT: %int_6.loc11_45: Core.IntLiteral = int_value 6 [template = constants.%int_6.1]
|
||||
// CHECK:STDOUT: %.loc11_45.21: ref %i32 = array_index file.%a.var, %int_6.loc11_45
|
||||
// CHECK:STDOUT: %.loc11_45.22: init %i32 = initialize_from %.loc11_45.20 to %.loc11_45.21 [template = constants.%int_7.2]
|
||||
// CHECK:STDOUT: %impl.elem0.loc11_45.8: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc11_45.8: <bound method> = bound_method %int_8.loc11_41, %impl.elem0.loc11_45.8 [template = constants.%Convert.bound.8]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc11_45.8: <specific function> = specific_function %Convert.bound.loc11_45.8, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.8]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_45.8: init %i32 = call %Convert.specific_fn.loc11_45.8(%int_8.loc11_41) [template = constants.%int_8.2]
|
||||
// CHECK:STDOUT: %.loc11_45.23: init %i32 = converted %int_8.loc11_41, %int.convert_checked.loc11_45.8 [template = constants.%int_8.2]
|
||||
// CHECK:STDOUT: %int_7.loc11_45: Core.IntLiteral = int_value 7 [template = constants.%int_7.1]
|
||||
// CHECK:STDOUT: %.loc11_45.24: ref %i32 = array_index file.%a.var, %int_7.loc11_45
|
||||
// CHECK:STDOUT: %.loc11_45.25: init %i32 = initialize_from %.loc11_45.23 to %.loc11_45.24 [template = constants.%int_8.2]
|
||||
// CHECK:STDOUT: %impl.elem0.loc11_45.9: %Convert.type.2 = interface_witness_access constants.%interface.9, element0 [template = constants.%Convert.14]
|
||||
// CHECK:STDOUT: %Convert.bound.loc11_45.9: <bound method> = bound_method %int_9, %impl.elem0.loc11_45.9 [template = constants.%Convert.bound.9]
|
||||
// CHECK:STDOUT: %Convert.specific_fn.loc11_45.9: <specific function> = specific_function %Convert.bound.loc11_45.9, @Convert.2(constants.%int_32) [template = constants.%Convert.specific_fn.9]
|
||||
// CHECK:STDOUT: %int.convert_checked.loc11_45.9: init %i32 = call %Convert.specific_fn.loc11_45.9(%int_9) [template = constants.%int_9.2]
|
||||
// CHECK:STDOUT: %.loc11_45.26: init %i32 = converted %int_9, %int.convert_checked.loc11_45.9 [template = constants.%int_9.2]
|
||||
// CHECK:STDOUT: %int_8.loc11_45: Core.IntLiteral = int_value 8 [template = constants.%int_8.1]
|
||||
// CHECK:STDOUT: %.loc11_45.27: ref %i32 = array_index file.%a.var, %int_8.loc11_45
|
||||
// CHECK:STDOUT: %.loc11_45.28: init %i32 = initialize_from %.loc11_45.26 to %.loc11_45.27 [template = constants.%int_9.2]
|
||||
// CHECK:STDOUT: %.loc11_45.29: init %array_type = array_init (%.loc11_45.4, %.loc11_45.7, %.loc11_45.10, %.loc11_45.13, %.loc11_45.16, %.loc11_45.19, %.loc11_45.22, %.loc11_45.25, %.loc11_45.28) to file.%a.var [template = constants.%array]
|
||||
// CHECK:STDOUT: %.loc11_46: init %array_type = converted %.loc11_45.1, %.loc11_45.29 [template = constants.%array]
|
||||
// CHECK:STDOUT: assign file.%a.var, %.loc11_46
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
|
||||
Reference in New Issue
Block a user