xref: /llvm-project/flang/test/Fir/global.fir (revision cc3c6b61095a47687858b21e93d1a2fc3a6e192b)
1// RUN: tco %s | FileCheck %s
2// RUN: %flang_fc1 -emit-llvm  %s -o - | FileCheck %s
3
4// CHECK: @g_i0 = global i32 0
5fir.global @g_i0 : i32 {
6  %1 = arith.constant 0 : i32
7  fir.has_value %1 : i32
8}
9
10// CHECK: @g_i2 = global i32 2
11fir.global @g_i2 : i32 {
12  %1 = arith.constant 2 : i32
13  fir.has_value %1 : i32
14}
15
16// CHECK: @g_ci5 = constant i32 5
17fir.global @g_ci5 constant : i32 {
18  %c = arith.constant 5 : i32
19  fir.has_value %c : i32
20}
21
22// CHECK: @i_i515 = internal global i32 515
23fir.global internal @i_i515 (515:i32) : i32
24
25// CHECK: @C_i511 = common global i32 0
26fir.global common @C_i511 (0:i32) : i32
27
28// CHECK: @w_i86 = weak global i32 86
29fir.global weak @w_i86 (86:i32) : i32
30
31// CHECK: @str1 = global [6 x i8] c"Hello!"
32fir.global @str1 : !fir.char<1,6> {
33  %1 = fir.string_lit "Hello!"(6) : !fir.char<1,6>
34  fir.has_value %1 : !fir.char<1,6>
35}
36
37// CHECK: @_QEmask = internal global [32 x i32] [i32 1, i32 1
38fir.global internal @_QEmask : !fir.array<32xi32> {
39  %c0_i32 = arith.constant 1 : i32
40  %0 = fir.undefined !fir.array<32xi32>
41  %2 = fir.insert_on_range %0, %c0_i32 from (0) to (31) : (!fir.array<32xi32>, i32) -> !fir.array<32xi32>
42  fir.has_value %2 : !fir.array<32xi32>
43}
44
45// CHECK: @_QEmultiarray = internal global [32 x [32 x i32]]
46fir.global internal @_QEmultiarray : !fir.array<32x32xi32> {
47  %c0_i32 = arith.constant 1 : i32
48  %0 = fir.undefined !fir.array<32x32xi32>
49  %2 = fir.insert_on_range %0, %c0_i32 from (0,0) to (31,31) : (!fir.array<32x32xi32>, i32) -> !fir.array<32x32xi32>
50  fir.has_value %2 : !fir.array<32x32xi32>
51}
52
53// CHECK: @_QEmasklogical = internal global [32768 x i32] [i32 -1, i32 -1,
54fir.global internal @_QEmasklogical : !fir.array<32768x!fir.logical<4>> {
55  %true = arith.constant true
56  %0 = fir.undefined !fir.array<32768x!fir.logical<4>>
57  %1 = fir.convert %true : (i1) -> !fir.logical<4>
58  %2 = fir.insert_on_range %0, %1 from (0) to (32767) : (!fir.array<32768x!fir.logical<4>>, !fir.logical<4>) -> !fir.array<32768x!fir.logical<4>>
59  fir.has_value %2 : !fir.array<32768x!fir.logical<4>>
60}
61