33// RUN: fir-opt --split-input-file --fir-to-llvm-ir="target=i386-unknown-linux-gnu" %s | FileCheck %s --check-prefixes=CHECK,CHECK-COMDAT,GENERIC
44// RUN: fir-opt --split-input-file --fir-to-llvm-ir="target=powerpc64le-unknown-linux-gnu" %s | FileCheck %s --check-prefixes=CHECK,CHECK-COMDAT,GENERIC
55// 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
88
99//===================================================
1010// SUMMARY: Tests for FIR --> LLVM MLIR conversion
@@ -17,7 +17,10 @@ fir.global @g_i0 : i32 {
1717 fir.has_value %1 : i32
1818}
1919
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 {
2124// CHECK: %[[C0:.*]] = llvm.mlir.constant(0 : i32) : i32
2225// CHECK: llvm.return %[[C0]] : i32
2326// CHECK: }
@@ -29,25 +32,37 @@ fir.global @g_ci5 constant : i32 {
2932 fir.has_value %c : i32
3033}
3134
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 {
3339// CHECK: %[[C5:.*]] = llvm.mlir.constant(5 : i32) : i32
3440// CHECK: llvm.return %[[C5]] : i32
3541// CHECK: }
3642
3743// -----
3844
3945fir.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
4150
4251// -----
4352
4453fir.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
4658
4759// -----
4860
4961fir.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
5166
5267// -----
5368
@@ -69,9 +84,13 @@ fir.global @symbol : i64 {
6984 fir.has_value %0 : i64
7085}
7186
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
7389
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 {
7594// CHECK: %{{.*}} = llvm.mlir.constant(1 : i64) : i64
7695// CHECK: llvm.return %{{.*}} : i64
7796// CHECK: }
@@ -88,7 +107,10 @@ fir.global internal @_QEmultiarray : !fir.array<32x32xi32> {
88107 fir.has_value %2 : !fir.array<32x32xi32>
89108}
90109
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>> {
92114// CHECK: %[[CST:.*]] = llvm.mlir.constant(dense<1> : vector<32x32xi32>) : !llvm.array<32 x array<32 x i32>>
93115// CHECK: llvm.return %[[CST]] : !llvm.array<32 x array<32 x i32>>
94116// CHECK: }
@@ -105,7 +127,10 @@ fir.global internal @_QEmultiarray : !fir.array<32xi32> {
105127 fir.has_value %2 : !fir.array<32xi32>
106128}
107129
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> {
109134// CHECK: %[[CST:.*]] = llvm.mlir.constant(1 : i32) : i32
110135// CHECK: %{{.*}} = llvm.mlir.undef : !llvm.array<32 x i32>
111136// 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}>>) {
18011826// CHECK: %{{.*}} = llvm.insertvalue %[[VERSION]], %{{.*}}[2] : !llvm.struct<(ptr, i64, i32, i8, i8, i8, i8, ptr, array<1 x i64>)>
18021827// CHECK: %[[TYPE_CODE_I8:.*]] = llvm.trunc %[[TYPE_CODE]] : i32 to i8
18031828// 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
18051832// CHECK: %{{.*}} = llvm.insertvalue %[[TDESC]], %{{.*}}[7] : !llvm.struct<(ptr, i{{.*}}, i{{.*}}, i{{.*}}, i{{.*}}, i{{.*}}, i{{.*}}, ptr, array<1 x i{{.*}}>)>
18061833
18071834// -----
@@ -2824,7 +2851,10 @@ func.func @coordinate_array_unknown_size_1d(%arg0: !fir.ptr<!fir.array<? x i32>>
28242851
28252852fir.global common @c_(dense<0> : vector<4294967296xi8>) : !fir.array<4294967296xi8>
28262853
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>
28282858
28292859// -----
28302860
0 commit comments