blob: 5636194d13ec244c3405f1bbfd220918937d61e7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
// RUN: cir-opt %s | FileCheck %s
!s32i = !cir.int<s, 32>
!s64i = !cir.int<s, 64>
!u32i = !cir.int<u, 32>
!u64i = !cir.int<u, 64>
module {
// void empty() { }
cir.func @empty() {
cir.return
}
// CHECK: cir.func{{.*}} @empty() {
// CHECK: cir.return
// CHECK: }
// void voidret() { return; }
cir.func @voidret() {
cir.return
}
// CHECK: cir.func{{.*}} @voidret() {
// CHECK: cir.return
// CHECK: }
// int intfunc() { return 42; }
cir.func @intfunc() -> !s32i {
%0 = cir.const #cir.int<42> : !s32i
cir.return %0 : !s32i
}
// CHECK: cir.func{{.*}} @intfunc() -> !s32i {
// CHECK: %[[VAL:.*]] = cir.const #cir.int<42> : !s32i
// CHECK: cir.return %[[VAL]] : !s32i
// CHECK: }
// Should print/parse function aliases.
cir.func @a_empty() alias(@empty)
// CHECK: cir.func @a_empty() alias(@empty)
// int scopes() {
// {
// {
// return 99;
// }
// }
//}
cir.func @scopes() -> !s32i {
cir.scope {
cir.scope {
%0 = cir.const #cir.int<99> : !s32i
cir.return %0 : !s32i
}
}
cir.trap
}
// CHECK: cir.func{{.*}} @scopes() -> !s32i {
// CHECK: cir.scope {
// CHECK: cir.scope {
// CHECK: %[[VAL:.*]] = cir.const #cir.int<99> : !s32i
// CHECK: cir.return %[[VAL]] : !s32i
// CHECK: }
// CHECK: }
// CHECK: cir.trap
// CHECK: }
// long longfunc() { return 42l; }
cir.func @longfunc() -> !s64i {
%0 = cir.const #cir.int<42> : !s64i
cir.return %0 : !s64i
}
// CHECK: cir.func{{.*}} @longfunc() -> !s64i
// CHECK: %0 = cir.const #cir.int<42> : !s64i
// CHECK: cir.return %0 : !s64i
// CHECK: }
// unsigned unsignedfunc() { return 42u; }
cir.func @unsignedfunc() -> !u32i {
%0 = cir.const #cir.int<42> : !u32i
cir.return %0 : !u32i
}
// CHECK: cir.func{{.*}} @unsignedfunc() -> !u32i
// CHECK: %[[VAL:.*]] = cir.const #cir.int<42> : !u32i
// CHECK: cir.return %[[VAL]] : !u32i
// CHECK: }
// unsigned long long ullfunc() { return 42ull; }
cir.func @ullfunc() -> !u64i {
%0 = cir.const #cir.int<42> : !u64i
cir.return %0 : !u64i
}
// CHECK: cir.func{{.*}} @ullfunc() -> !u64i
// CHECK: %[[VAL:.*]] = cir.const #cir.int<42> : !u64i
// CHECK: cir.return %[[VAL:.*]] : !u64i
// CHECK: }
}
|