brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.6 KiB · 7ce54f3 Raw
142 lines · plain
1// RUN: mlir-opt %s -split-input-file --verify-roundtrip | FileCheck %s2 3llvm.func internal @callee() -> !llvm.ptr attributes {dso_local} {4  %0 = llvm.mlir.zero : !llvm.ptr5  llvm.return %0 : !llvm.ptr6}7 8llvm.mlir.alias external @foo_alias : !llvm.ptr {9  %0 = llvm.mlir.addressof @callee : !llvm.ptr10  llvm.return %0 : !llvm.ptr11}12 13llvm.mlir.alias external @_ZTV1D : !llvm.struct<(array<3 x ptr>)> {14  %0 = llvm.mlir.addressof @callee : !llvm.ptr15  llvm.return %0 : !llvm.ptr16}17 18// CHECK: llvm.mlir.alias external @foo_alias : !llvm.ptr {19// CHECK:   %[[ADDR:.*]] = llvm.mlir.addressof @callee : !llvm.ptr20// CHECK:   llvm.return %[[ADDR]] : !llvm.ptr21// CHECK: }22// CHECK: llvm.mlir.alias external @_ZTV1D : !llvm.struct<(array<3 x ptr>)> {23// CHECK:   %[[ADDR:.*]] = llvm.mlir.addressof @callee : !llvm.ptr24// CHECK:   llvm.return %[[ADDR]] : !llvm.ptr25// CHECK: }26 27// -----28 29llvm.mlir.global weak_odr @zed(42 : i32) : i3230 31llvm.mlir.alias weak_odr @foo : i32 {32  %0 = llvm.mlir.addressof @zed : !llvm.ptr33  llvm.return %0 : !llvm.ptr34}35 36llvm.mlir.alias weak_odr @foo2 : i16 {37  %0 = llvm.mlir.addressof @zed : !llvm.ptr38  llvm.return %0 : !llvm.ptr39}40 41// CHECK: llvm.mlir.alias weak_odr @foo : i32 {42// CHECK:   %[[ADDR:.*]] = llvm.mlir.addressof @zed : !llvm.ptr43// CHECK:   llvm.return %[[ADDR]] : !llvm.ptr44// CHECK: }45// CHECK: llvm.mlir.alias weak_odr @foo2 : i16 {46// CHECK:   %[[ADDR:.*]] = llvm.mlir.addressof @zed : !llvm.ptr47// CHECK:   llvm.return %[[ADDR]] : !llvm.ptr48// CHECK: }49 50// -----51 52llvm.mlir.global private constant @glob.private(dense<0> : tensor<32xi32>) : !llvm.array<32 x i32>53 54llvm.mlir.alias linkonce_odr hidden @glob {dso_local} : !llvm.array<32 x i32> {55  %0 = llvm.mlir.constant(1234 : i64) : i6456  %1 = llvm.mlir.addressof @glob.private : !llvm.ptr57  %2 = llvm.ptrtoint %1 : !llvm.ptr to i6458  %3 = llvm.add %2, %0 : i6459  %4 = llvm.inttoptr %3 : i64 to !llvm.ptr60  llvm.return %4 : !llvm.ptr61}62 63// CHECK: llvm.mlir.global private constant @glob.private(dense<0> : tensor<32xi32>)64// CHECK: llvm.mlir.alias linkonce_odr hidden @glob {dso_local} : !llvm.array<32 x i32> {65// CHECK:   %[[CST:.*]] = llvm.mlir.constant(1234 : i64) : i6466// CHECK:   %[[ADDR:.*]] = llvm.mlir.addressof @glob.private : !llvm.ptr67// CHECK:   %[[INTADDR:.*]] = llvm.ptrtoint %[[ADDR]] : !llvm.ptr to i6468// CHECK:   %[[BACKTOPTR:.*]] = llvm.add %[[INTADDR]], %[[CST]] : i6469// CHECK:   %[[RET_ADDR:.*]]  = llvm.inttoptr %[[BACKTOPTR]] : i64 to !llvm.ptr70// CHECK:   llvm.return %[[RET_ADDR]] : !llvm.ptr71// CHECK: }72 73// -----74 75llvm.mlir.global external @v1(0 : i32) : i3276llvm.mlir.alias external @a3 : i32 {77  %0 = llvm.mlir.addressof @v1 : !llvm.ptr78  %1 = llvm.addrspacecast %0 : !llvm.ptr to !llvm.ptr<2>79  llvm.return %1 : !llvm.ptr<2>80}81 82// CHECK: llvm.mlir.alias external @a3 : i32 {83// CHECK:   %[[ADDR:.*]] = llvm.mlir.addressof @v1 : !llvm.ptr84// CHECK:   %1 = llvm.addrspacecast %[[ADDR]] : !llvm.ptr to !llvm.ptr<2>85// CHECK:   llvm.return %1 : !llvm.ptr<2>86// CHECK: }87 88// -----89 90llvm.mlir.global private @g1(0 : i32) {dso_local} : i3291 92llvm.mlir.alias private @a1 {dso_local} : i32 {93  %0 = llvm.mlir.addressof @g1 : !llvm.ptr94  llvm.return %0 : !llvm.ptr95}96 97llvm.mlir.global internal constant @g2() : !llvm.ptr {98  %0 = llvm.mlir.addressof @a1 : !llvm.ptr99  llvm.return %0 : !llvm.ptr100}101 102llvm.mlir.alias private @a2 {dso_local} : !llvm.ptr {103  %0 = llvm.mlir.addressof @a1 : !llvm.ptr104  llvm.return %0 : !llvm.ptr105}106 107llvm.mlir.global internal constant @g3() : !llvm.ptr {108  %0 = llvm.mlir.addressof @a2 : !llvm.ptr109  llvm.return %0 : !llvm.ptr110}111 112// CHECK: llvm.mlir.alias private @a1 {dso_local} : i32 {113// CHECK:   %[[ADDR:.*]] = llvm.mlir.addressof @g1 : !llvm.ptr114// CHECK:   llvm.return %[[ADDR]] : !llvm.ptr115// CHECK: }116// CHECK: llvm.mlir.global internal constant @g2()117// CHECK:   %[[ADDR:.*]] = llvm.mlir.addressof @a1 : !llvm.ptr118// CHECK:   llvm.return %[[ADDR]] : !llvm.ptr119// CHECK: }120// CHECK: llvm.mlir.alias private @a2 {dso_local} : !llvm.ptr {121// CHECK:   %[[ADDR:.*]] = llvm.mlir.addressof @a1 : !llvm.ptr122// CHECK:   llvm.return %[[ADDR]] : !llvm.ptr123// CHECK: }124// CHECK: llvm.mlir.global internal constant @g3()125// CHECK:   %[[ADDR:.*]] = llvm.mlir.addressof @a2 : !llvm.ptr126// CHECK:   llvm.return %[[ADDR]] : !llvm.ptr127// CHECK: }128 129// -----130 131llvm.mlir.global private @g30(0 : i32) {dso_local} : i32132 133llvm.mlir.alias private thread_local unnamed_addr @a30 {dso_local} : i32 {134  %0 = llvm.mlir.addressof @g30 : !llvm.ptr135  llvm.return %0 : !llvm.ptr136}137 138// CHECK: llvm.mlir.alias private thread_local unnamed_addr @a30 {dso_local} : i32 {139// CHECK:   %0 = llvm.mlir.addressof @g30 : !llvm.ptr140// CHECK:   llvm.return %0 : !llvm.ptr141// CHECK: }142