3
3
// RUN: fir-opt --split-input-file --fir-to-llvm-ir="target=i386-unknown-linux-gnu" %s | FileCheck %s --check-prefixes=CHECK,CHECK-COMDAT,GENERIC
4
4
// RUN: fir-opt --split-input-file --fir-to-llvm-ir="target=powerpc64le-unknown-linux-gnu" %s | FileCheck %s --check-prefixes=CHECK,CHECK-COMDAT,GENERIC
5
5
// RUN: fir-opt --split-input-file --fir-to-llvm-ir="target=x86_64-pc-win32" %s | FileCheck %s --check-prefixes=CHECK,CHECK-COMDAT,GENERIC
6
- // RUN: fir-opt --split-input-file --fir-to-llvm-ir="target=aarch64-apple-darwin" %s | FileCheck %s --check-prefixes=CHECK,CHECK-NO-COMDAT,GENERIC
7
- // RUN: fir-opt --split-input-file --fir-to-llvm-ir="target=amdgcn-amd-amdhsa, datalayout=e-p:64:64-p1:64:64-p2:32:32-p3:32:32-p4:64:64-p5:32:32-p6:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5-P0 " %s | FileCheck -check-prefixes=CHECK,AMDGPU %s
6
+ // RUN: fir-opt --split-input-file --fir-to-llvm-ir="target=aarch64-apple-darwin" %s | FileCheck %s --check-prefixes=CHECK,CHECK-NO-COMDAT,GENERIC
7
+ // RUN: fir-opt --split-input-file --fir-to-llvm-ir="target=amdgcn-amd-amdhsa, datalayout=e-p:64:64-p1:64:64-p2:32:32-p3:32:32-p4:64:64-p5:32:32-p6:32:32-p7:160:256:256:32-p8:128:128-p9:192:256:256:32- i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-v2048:2048-n32:64-S32-A5-G1-ni:7:8:9 " %s | FileCheck -check-prefixes=CHECK,AMDGPU %s
8
8
9
9
//===================================================
10
10
// SUMMARY: Tests for FIR --> LLVM MLIR conversion
@@ -17,7 +17,10 @@ fir.global @g_i0 : i32 {
17
17
fir.has_value %1 : i32
18
18
}
19
19
20
- // CHECK: llvm.mlir.global external @g_i0() {addr_space = 0 : i32} : i32 {
20
+ // CHECK: llvm.mlir.global external @g_i0()
21
+ // GENERIC-SAME: {addr_space = 0 : i32}
22
+ // AMDGPU-SAME: {addr_space = 1 : i32}
23
+ // CHECK-SAME: i32 {
21
24
// CHECK: %[[C0:.*]] = llvm.mlir.constant(0 : i32) : i32
22
25
// CHECK: llvm.return %[[C0]] : i32
23
26
// CHECK: }
@@ -29,25 +32,37 @@ fir.global @g_ci5 constant : i32 {
29
32
fir.has_value %c : i32
30
33
}
31
34
32
- // CHECK: llvm.mlir.global external constant @g_ci5() {addr_space = 0 : i32} : i32 {
35
+ // CHECK: llvm.mlir.global external constant @g_ci5()
36
+ // GENERIC-SAME: {addr_space = 0 : i32}
37
+ // AMDGPU-SAME: {addr_space = 1 : i32}
38
+ // CHECK-SAME: i32 {
33
39
// CHECK: %[[C5:.*]] = llvm.mlir.constant(5 : i32) : i32
34
40
// CHECK: llvm.return %[[C5]] : i32
35
41
// CHECK: }
36
42
37
43
// -----
38
44
39
45
fir.global internal @i_i515 (515:i32) : i32
40
- // CHECK: llvm.mlir.global internal @i_i515(515 : i32) {addr_space = 0 : i32} : i32
46
+ // CHECK: llvm.mlir.global internal @i_i515(515 : i32)
47
+ // GENERIC-SAME: {addr_space = 0 : i32}
48
+ // AMDGPU-SAME: {addr_space = 1 : i32}
49
+ // CHECK-SAME: : i32
41
50
42
51
// -----
43
52
44
53
fir.global common @C_i511 (0:i32) : i32
45
- // CHECK: llvm.mlir.global common @C_i511(0 : i32) {addr_space = 0 : i32} : i32
54
+ // CHECK: llvm.mlir.global common @C_i511(0 : i32)
55
+ // GENERIC-SAME: {addr_space = 0 : i32}
56
+ // AMDGPU-SAME: {addr_space = 1 : i32}
57
+ // CHECK-SAME: : i32
46
58
47
59
// -----
48
60
49
61
fir.global weak @w_i86 (86:i32) : i32
50
- // CHECK: llvm.mlir.global weak @w_i86(86 : i32) {addr_space = 0 : i32} : i32
62
+ // CHECK: llvm.mlir.global weak @w_i86(86 : i32)
63
+ // GENERIC-SAME: {addr_space = 0 : i32}
64
+ // AMDGPU-SAME: {addr_space = 1 : i32}
65
+ // CHECK-SAME: : i32
51
66
52
67
// -----
53
68
@@ -69,9 +84,13 @@ fir.global @symbol : i64 {
69
84
fir.has_value %0 : i64
70
85
}
71
86
72
- // CHECK: %{{.*}} = llvm.mlir.addressof @[[SYMBOL:.*]] : !llvm.ptr
87
+ // CHECK: %[[ADDROF:.*]] = llvm.mlir.addressof @[[SYMBOL:.*]] : !llvm.ptr
88
+ // AMDGPU: %{{.*}} = llvm.addrspacecast %[[ADDROF]] : !llvm.ptr<1> to !llvm.ptr
73
89
74
- // CHECK: llvm.mlir.global external @[[SYMBOL]] () {addr_space = 0 : i32} : i64 {
90
+ // CHECK: llvm.mlir.global external @[[SYMBOL]] ()
91
+ // GENERIC-SAME: {addr_space = 0 : i32}
92
+ // AMDGPU-SAME: {addr_space = 1 : i32}
93
+ // CHECK-SAME: i64 {
75
94
// CHECK: %{{.*}} = llvm.mlir.constant(1 : i64) : i64
76
95
// CHECK: llvm.return %{{.*}} : i64
77
96
// CHECK: }
@@ -88,7 +107,10 @@ fir.global internal @_QEmultiarray : !fir.array<32x32xi32> {
88
107
fir.has_value %2 : !fir.array<32x32xi32>
89
108
}
90
109
91
- // CHECK: llvm.mlir.global internal @_QEmultiarray() {addr_space = 0 : i32} : !llvm.array<32 x array<32 x i32>> {
110
+ // CHECK: llvm.mlir.global internal @_QEmultiarray()
111
+ // GENERIC-SAME: {addr_space = 0 : i32}
112
+ // AMDGPU-SAME: {addr_space = 1 : i32}
113
+ // CHECK-SAME: : !llvm.array<32 x array<32 x i32>> {
92
114
// CHECK: %[[CST:.*]] = llvm.mlir.constant(dense<1> : vector<32x32xi32>) : !llvm.array<32 x array<32 x i32>>
93
115
// CHECK: llvm.return %[[CST]] : !llvm.array<32 x array<32 x i32>>
94
116
// CHECK: }
@@ -105,7 +127,10 @@ fir.global internal @_QEmultiarray : !fir.array<32xi32> {
105
127
fir.has_value %2 : !fir.array<32xi32>
106
128
}
107
129
108
- // CHECK: llvm.mlir.global internal @_QEmultiarray() {addr_space = 0 : i32} : !llvm.array<32 x i32> {
130
+ // CHECK: llvm.mlir.global internal @_QEmultiarray()
131
+ // GENERIC-SAME: {addr_space = 0 : i32}
132
+ // AMDGPU-SAME: {addr_space = 1 : i32}
133
+ // CHECK-SAME: : !llvm.array<32 x i32> {
109
134
// CHECK: %[[CST:.*]] = llvm.mlir.constant(1 : i32) : i32
110
135
// CHECK: %{{.*}} = llvm.mlir.undef : !llvm.array<32 x i32>
111
136
// CHECK: %{{.*}} = llvm.insertvalue %[[CST]], %{{.*}}[5] : !llvm.array<32 x i32>
@@ -1801,7 +1826,9 @@ func.func @embox1(%arg0: !fir.ref<!fir.type<_QMtest_dinitTtseq{i:i32}>>) {
1801
1826
// CHECK: %{{.*}} = llvm.insertvalue %[[VERSION]], %{{.*}}[2] : !llvm.struct<(ptr, i64, i32, i8, i8, i8, i8, ptr, array<1 x i64>)>
1802
1827
// CHECK: %[[TYPE_CODE_I8:.*]] = llvm.trunc %[[TYPE_CODE]] : i32 to i8
1803
1828
// CHECK: %{{.*}} = llvm.insertvalue %[[TYPE_CODE_I8]], %{{.*}}[4] : !llvm.struct<(ptr, i{{.*}}, i{{.*}}, i{{.*}}, i{{.*}}, i{{.*}}, i{{.*}}, ptr, array<1 x i{{.*}}>)>
1804
- // CHECK: %[[TDESC:.*]] = llvm.mlir.addressof @_QMtest_dinitE.dt.tseq : !llvm.ptr
1829
+ // GENERIC: %[[TDESC:.*]] = llvm.mlir.addressof @_QMtest_dinitE.dt.tseq : !llvm.ptr
1830
+ // AMDGPU: %[[ADDROF:.*]] = llvm.mlir.addressof @_QMtest_dinitE.dt.tseq : !llvm.ptr<1>
1831
+ // AMDGPU: %[[TDESC:.*]] = llvm.addrspacecast %[[ADDROF]] : !llvm.ptr<1> to !llvm.ptr
1805
1832
// CHECK: %{{.*}} = llvm.insertvalue %[[TDESC]], %{{.*}}[7] : !llvm.struct<(ptr, i{{.*}}, i{{.*}}, i{{.*}}, i{{.*}}, i{{.*}}, i{{.*}}, ptr, array<1 x i{{.*}}>)>
1806
1833
1807
1834
// -----
@@ -2824,7 +2851,10 @@ func.func @coordinate_array_unknown_size_1d(%arg0: !fir.ptr<!fir.array<? x i32>>
2824
2851
2825
2852
fir.global common @c_(dense<0> : vector<4294967296xi8>) : !fir.array<4294967296xi8>
2826
2853
2827
- // CHECK: llvm.mlir.global common @c_(dense<0> : vector<4294967296xi8>) {addr_space = 0 : i32} : !llvm.array<4294967296 x i8>
2854
+ // CHECK: llvm.mlir.global common @c_(dense<0> : vector<4294967296xi8>)
2855
+ // GENERIC-SAME: {addr_space = 0 : i32}
2856
+ // AMDGPU-SAME: {addr_space = 1 : i32}
2857
+ // CHECK-SAME: !llvm.array<4294967296 x i8>
2828
2858
2829
2859
// -----
2830
2860
0 commit comments