54 lines · plain
1// RUN: mlir-translate --split-input-file -mlir-to-llvmir %s | FileCheck %s2 3module {4 llvm.func spir_funccc @_Z8prefetchPU3AS1Kcm(!llvm.ptr<1>, i64)5 llvm.func @prefetch(%arg0: !llvm.ptr<1>) {6 %0 = llvm.mlir.constant(1 : i64) : i647 // CHECK-LABEL: call spir_func void @_Z8prefetchPU3AS1Kcm8 // CHECK-SAME: !spirv.DecorationCacheControlINTEL ![[DECO1:.*]]9 llvm.call spir_funccc @_Z8prefetchPU3AS1Kcm(%arg0, %0)10 {function_type = !llvm.func<void (ptr<1>, i64)>, linkage = #llvm.linkage<external>,11 no_unwind, sym_name = "_Z8prefetchPU3AS1Kcm", visibility_ = 0 : i64,12 xevm.DecorationCacheControl = [[6442 : i32, 0 : i32, 1 : i32, 0 : i32], [6442 : i32, 1 : i32, 1 : i32, 0 : i32]]}13 : (!llvm.ptr<1>, i64) -> ()14 llvm.return15 }16}17 18// CHECK: ![[DECO1]] = !{![[DECO2:.*]], ![[DECO3:.*]]}19// CHECK: ![[DECO2]] = !{i32 6442, i32 0, i32 1, i32 0}20// CHECK: ![[DECO3]] = !{i32 6442, i32 1, i32 1, i32 0}21 22// -----23module {24 // CHECK-LABEL: define i32 @load(ptr addrspace(1)25 // CHECK-SAME: %[[ARG0:.*]]) {26 llvm.func @load(%arg0: !llvm.ptr<1>) -> i32 {27 // CHECK: load i32, ptr addrspace(1) %[[ARG0]], align 4,28 // CHECK-SAME: !spirv.DecorationCacheControlINTEL ![[DECO1:.*]]29 %0 = llvm.load %arg0 {xevm.DecorationCacheControl = [[6442 : i32, 0 : i32, 1 : i32, 0 : i32], [6442 : i32, 1 : i32, 1 : i32, 0 : i32]]} : !llvm.ptr<1> -> i3230 llvm.return %0 : i3231 }32}33 34// CHECK: ![[DECO1]] = !{![[DECO2:.*]], ![[DECO3:.*]]}35// CHECK: ![[DECO2]] = !{i32 6442, i32 0, i32 1, i32 0}36// CHECK: ![[DECO3]] = !{i32 6442, i32 1, i32 1, i32 0}37 38// -----39module {40 // CHECK-LABEL: define void @store(ptr addrspace(1)41 // CHECK-SAME: %[[ARG0:.*]], i32 %[[ARG1:.*]]) {42 llvm.func @store(%arg0: !llvm.ptr<1>, %arg1: i32) {43 // CHECK: store i32 %[[ARG1]], ptr addrspace(1) %[[ARG0]], align 4,44 // CHECK-SAME: !spirv.DecorationCacheControlINTEL ![[DECO1:.*]]45 llvm.store %arg1, %arg0 {xevm.DecorationCacheControl = [[6443 : i32, 0 : i32, 2 : i32, 0 : i32], [6443 : i32, 1 : i32, 2 : i32, 0 : i32]]} : i32, !llvm.ptr<1>46 llvm.return47 }48}49 50// CHECK: ![[DECO1]] = !{![[DECO2:.*]], ![[DECO3:.*]]}51// CHECK: ![[DECO2]] = !{i32 6443, i32 0, i32 2, i32 0}52// CHECK: ![[DECO3]] = !{i32 6443, i32 1, i32 2, i32 0}53 54