-
Notifications
You must be signed in to change notification settings - Fork 10.5k
/
Copy pathsimple.sil
23 lines (19 loc) · 1019 Bytes
/
simple.sil
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// RUN: %target-build-swift %s -g -emit-ir -o - | FileCheck %s
sil_stage canonical
import Builtin
import Swift
sil @square : $@thin (Int32) -> Int32 {
bb0(%0 : $Int32):
debug_value %0 : $Int32 // let 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]] = !MDLocation(line: [[@LINE+1]],
return %10 : $Int32 // id: %11
}