brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.2 KiB · 112d923 Raw
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