brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · 6e7f031 Raw
25 lines · plain
1// RUN: mlir-translate -mlir-to-llvmir -split-input-file %s | FileCheck %s2 3llvm.func @deref(%arg0: i64, %arg1: !llvm.ptr) {4  // CHECK: inttoptr {{.*}} !dereferenceable [[D0:![0-9]+]]5  %0 = llvm.inttoptr %arg0 dereferenceable<bytes = 4> : i64 to !llvm.ptr6  %1 = llvm.load %0 {alignment = 4 : i64} : !llvm.ptr -> i327  // CHECK: load {{.*}} !dereferenceable [[D1:![0-9]+]]8  %2 = llvm.load %arg1 dereferenceable<bytes = 8> {alignment = 8 : i64} : !llvm.ptr -> !llvm.ptr9  llvm.store %1, %2 {alignment = 4 : i64} : i32, !llvm.ptr10  llvm.return11}12 13llvm.func @deref_or_null(%arg0: i64, %arg1: !llvm.ptr) {14  // CHECK: inttoptr {{.*}} !dereferenceable_or_null [[D0]]15  %0 = llvm.inttoptr %arg0 dereferenceable<bytes = 4, mayBeNull = true> : i64 to !llvm.ptr16  %1 = llvm.load %0 {alignment = 4 : i64} : !llvm.ptr -> i3217  // CHECK: load {{.*}} !dereferenceable_or_null [[D1]]18  %2 = llvm.load %arg1 dereferenceable<bytes = 8, mayBeNull = true> {alignment = 8 : i64} : !llvm.ptr -> !llvm.ptr19  llvm.store %1, %2 {alignment = 4 : i64} : i32, !llvm.ptr20  llvm.return21}22 23// CHECK: [[D0]] = !{i64 4}24// CHECK: [[D1]] = !{i64 8}25