25 lines · plain
1; RUN: mlir-translate -import-llvm -split-input-file %s | FileCheck %s2 3define void @deref(i64 %0, ptr %1) {4 ; CHECK: llvm.inttoptr5 ; CHECK-SAME: dereferenceable<bytes = 4>6 %3 = inttoptr i64 %0 to ptr, !dereferenceable !07 ; CHECK: llvm.load8 ; CHECK-SAME: dereferenceable<bytes = 8>9 %4 = load ptr, ptr %1, align 8, !dereferenceable !110 ret void11}12 13define void @deref_or_null(i64 %0, ptr %1) {14 ; CHECK: llvm.inttoptr15 ; CHECK-SAME: dereferenceable<bytes = 4, mayBeNull = true>16 %3 = inttoptr i64 %0 to ptr, !dereferenceable_or_null !017 ; CHECK: llvm.load18 ; CHECK-SAME: dereferenceable<bytes = 8, mayBeNull = true>19 %4 = load ptr, ptr %1, align 8, !dereferenceable_or_null !120 ret void21}22 23!0 = !{i64 4}24!1 = !{i64 8}25