diff options
Diffstat (limited to 'mlir/test/Target/LLVMIR/import.ll')
-rw-r--r-- | mlir/test/Target/LLVMIR/import.ll | 49 |
1 files changed, 35 insertions, 14 deletions
diff --git a/mlir/test/Target/LLVMIR/import.ll b/mlir/test/Target/LLVMIR/import.ll index c1deb500d1cf..35176a301b88 100644 --- a/mlir/test/Target/LLVMIR/import.ll +++ b/mlir/test/Target/LLVMIR/import.ll @@ -13,14 +13,14 @@ ; CHECK: llvm.mlir.global external @g5() : vector<8xi32> @g5 = external global <8 x i32> -; CHECK: llvm.mlir.global private @alig32(42 : i64) {alignment = 32 : i64} : i64 +; CHECK: llvm.mlir.global private @alig32(42 : i64) {alignment = 32 : i64, dso_local} : i64 @alig32 = private global i64 42, align 32 -; CHECK: llvm.mlir.global private @alig64(42 : i64) {alignment = 64 : i64} : i64 +; CHECK: llvm.mlir.global private @alig64(42 : i64) {alignment = 64 : i64, dso_local} : i64 @alig64 = private global i64 42, align 64 @g4 = external global i32, align 8 -; CHECK: llvm.mlir.global internal constant @int_gep() : !llvm.ptr<i32> { +; CHECK: llvm.mlir.global internal constant @int_gep() {dso_local} : !llvm.ptr<i32> { ; CHECK-DAG: %[[addr:[0-9]+]] = llvm.mlir.addressof @g4 : !llvm.ptr<i32> ; CHECK-DAG: %[[c2:[0-9]+]] = llvm.mlir.constant(2 : i32) : i32 ; CHECK-NEXT: %[[gepinit:[0-9]+]] = llvm.getelementptr %[[addr]][%[[c2]]] : (!llvm.ptr<i32>, i32) -> !llvm.ptr<i32> @@ -29,12 +29,33 @@ @int_gep = internal constant i32* getelementptr (i32, i32* @g4, i32 2) ; +; dso_local attribute +; + +; CHECK: llvm.mlir.global external @dso_local_var() {dso_local} : !llvm.struct<"struct.s", (struct<"struct.t", ()>, i64)> +@dso_local_var = external dso_local global %struct.s + +; +; thread_local attribute +; + +; CHECK: llvm.mlir.global external thread_local @thread_local_var() : !llvm.struct<"struct.s", (struct<"struct.t", ()>, i64)> +@thread_local_var = external thread_local global %struct.s + +; +; addr_space attribute +; + +; CHECK: llvm.mlir.global external @addr_space_var(0 : i32) {addr_space = 6 : i32} : i32 +@addr_space_var = addrspace(6) global i32 0 + +; ; Linkage attribute. ; -; CHECK: llvm.mlir.global private @private(42 : i32) : i32 +; CHECK: llvm.mlir.global private @private(42 : i32) {dso_local} : i32 @private = private global i32 42 -; CHECK: llvm.mlir.global internal @internal(42 : i32) : i32 +; CHECK: llvm.mlir.global internal @internal(42 : i32) {dso_local} : i32 @internal = internal global i32 42 ; CHECK: llvm.mlir.global available_externally @available_externally(42 : i32) : i32 @available_externally = available_externally global i32 42 @@ -60,33 +81,33 @@ ; -; CHECK: llvm.mlir.global private constant @no_unnamed_addr(42 : i64) : i64 +; CHECK: llvm.mlir.global private constant @no_unnamed_addr(42 : i64) {dso_local} : i64 @no_unnamed_addr = private constant i64 42 -; CHECK: llvm.mlir.global private local_unnamed_addr constant @local_unnamed_addr(42 : i64) : i64 +; CHECK: llvm.mlir.global private local_unnamed_addr constant @local_unnamed_addr(42 : i64) {dso_local} : i64 @local_unnamed_addr = private local_unnamed_addr constant i64 42 -; CHECK: llvm.mlir.global private unnamed_addr constant @unnamed_addr(42 : i64) : i64 +; CHECK: llvm.mlir.global private unnamed_addr constant @unnamed_addr(42 : i64) {dso_local} : i64 @unnamed_addr = private unnamed_addr constant i64 42 ; ; Section attribute ; -; CHECK: llvm.mlir.global internal constant @sectionvar("teststring") {section = ".mysection"} +; CHECK: llvm.mlir.global internal constant @sectionvar("teststring") {dso_local, section = ".mysection"} @sectionvar = internal constant [10 x i8] c"teststring", section ".mysection" ; ; Sequential constants. ; -; CHECK: llvm.mlir.global internal constant @vector_constant(dense<[1, 2]> : vector<2xi32>) : vector<2xi32> +; CHECK: llvm.mlir.global internal constant @vector_constant(dense<[1, 2]> : vector<2xi32>) {dso_local} : vector<2xi32> @vector_constant = internal constant <2 x i32> <i32 1, i32 2> -; CHECK: llvm.mlir.global internal constant @array_constant(dense<[1.000000e+00, 2.000000e+00]> : tensor<2xf32>) : !llvm.array<2 x f32> +; CHECK: llvm.mlir.global internal constant @array_constant(dense<[1.000000e+00, 2.000000e+00]> : tensor<2xf32>) {dso_local} : !llvm.array<2 x f32> @array_constant = internal constant [2 x float] [float 1., float 2.] -; CHECK: llvm.mlir.global internal constant @nested_array_constant(dense<[{{\[}}1, 2], [3, 4]]> : tensor<2x2xi32>) : !llvm.array<2 x array<2 x i32>> +; CHECK: llvm.mlir.global internal constant @nested_array_constant(dense<[{{\[}}1, 2], [3, 4]]> : tensor<2x2xi32>) {dso_local} : !llvm.array<2 x array<2 x i32>> @nested_array_constant = internal constant [2 x [2 x i32]] [[2 x i32] [i32 1, i32 2], [2 x i32] [i32 3, i32 4]] -; CHECK: llvm.mlir.global internal constant @nested_array_constant3(dense<[{{\[}}[1, 2], [3, 4]]]> : tensor<1x2x2xi32>) : !llvm.array<1 x array<2 x array<2 x i32>>> +; CHECK: llvm.mlir.global internal constant @nested_array_constant3(dense<[{{\[}}[1, 2], [3, 4]]]> : tensor<1x2x2xi32>) {dso_local} : !llvm.array<1 x array<2 x array<2 x i32>>> @nested_array_constant3 = internal constant [1 x [2 x [2 x i32]]] [[2 x [2 x i32]] [[2 x i32] [i32 1, i32 2], [2 x i32] [i32 3, i32 4]]] -; CHECK: llvm.mlir.global internal constant @nested_array_vector(dense<[{{\[}}[1, 2], [3, 4]]]> : vector<1x2x2xi32>) : !llvm.array<1 x array<2 x vector<2xi32>>> +; CHECK: llvm.mlir.global internal constant @nested_array_vector(dense<[{{\[}}[1, 2], [3, 4]]]> : vector<1x2x2xi32>) {dso_local} : !llvm.array<1 x array<2 x vector<2xi32>>> @nested_array_vector = internal constant [1 x [2 x <2 x i32>]] [[2 x <2 x i32>] [<2 x i32> <i32 1, i32 2>, <2 x i32> <i32 3, i32 4>]] ; |