blob: 22cbcd8a79736f154dfc6493a1aa3a273968f8cd [file] [log] [blame]
// RUN: %target-swift-frontend %s -g -emit-ir -o - | %FileCheck %s
sil_stage canonical
import Builtin
import Swift
sil [ossa] @square : $@convention(thin) (Int32) -> Int32 {
bb0(%0 : $Int32):
debug_value %0 : $Int32, let, name "x" // id: %1
%3 = struct_extract %0 : $Int32, #Int32._value // user: %6
%4 = struct_extract %0 : $Int32, #Int32._value // user: %6
%5 = integer_literal $Builtin.Int1, -1 // user: %6
%6 = builtin "smul_with_overflow_Int32"(%3 : $Builtin.Int32, %4 : $Builtin.Int32, %5 : $Builtin.Int1) : $(Builtin.Int32, Builtin.Int1) // users: %7, %8
%7 = tuple_extract %6 : $(Builtin.Int32, Builtin.Int1), 0 // user: %10
%8 = tuple_extract %6 : $(Builtin.Int32, Builtin.Int1), 1 // user: %9
cond_fail %8 : $Builtin.Int1 // id: %9
%10 = struct $Int32 (%7 : $Builtin.Int32) // user: %11
// CHECK: ret i32 %{{.*}}, !dbg ![[LOC:.*]]
// CHECK: ![[LOC]] = !DILocation(line: [[@LINE+1]],
return %10 : $Int32 // id: %11
}