{ [global: ] // %0 "self" // users: %4, %3, %2, %1 bb0(%0 : $A): debug_value %0 : $A, let, name "self", argno 1, implicit // id: %1 debug_value %0 : $A, let, name "self", argno 1, implicit // id: %2 %3 = struct_extract %0 : $A, #A.val1 // user: %5 %4 = struct_extract %0 : $A, #A.val2 // user: %6 %5 = struct_extract %3 : $Int, #Int._value // user: %8 %6 = struct_extract %4 : $Int, #Int._value // user: %8 %7 = integer_literal $Builtin.Int1, -1 // user: %8 %8 = builtin "sadd_with_overflow_Int64"(%5 : $Builtin.Int64, %6 : $Builtin.Int64, %7 : $Builtin.Int1) : $(Builtin.Int64, Builtin.Int1) // users: %10, %9 %9 = tuple_extract %8 : $(Builtin.Int64, Builtin.Int1), 0 // user: %12 %10 = tuple_extract %8 : $(Builtin.Int64, Builtin.Int1), 1 // user: %11 cond_fail %10 : $Builtin.Int1, "arithmetic overflow" // id: %11 %12 = struct $Int (%9 : $Builtin.Int64) // user: %13 return %12 : $Int // id: %13 } // end sil function '$s7ModuleA1AV1gSiyF' Ϟδϡʔϧ"ͷϑΝΠϧΛ4*-Ͱग़ྗ ( ͕ΠϯϥΠϯԽ͞Ε͍ͯΔ͜ͱ͕֬ೝͰ͖Δ