[mlir][py] Enable loading only specified dialects during creation. (#121421)
[llvm-project.git] / mlir / test / Target / SPIRV / function-decorations.mlir
blobef627145aac3e4c2b427335528d4bfb17981c61a
1 // RUN: mlir-translate -no-implicit-module -test-spirv-roundtrip -split-input-file -verify-diagnostics %s | FileCheck %s
3 spirv.module Logical GLSL450 requires #spirv.vce<v1.0, [Shader, Linkage], []> {
4     spirv.func @linkage_attr_test_kernel()  "DontInline"  attributes {}  {
5         %uchar_0 = spirv.Constant 0 : i8
6         %ushort_1 = spirv.Constant 1 : i16
7         %uint_0 = spirv.Constant 0 : i32
8         spirv.FunctionCall @outside.func.with.linkage(%uchar_0):(i8) -> ()
9         spirv.Return
10     }
11     // CHECK: linkage_attributes = #spirv.linkage_attributes<linkage_name = "outside.func", linkage_type = <Import>>
12     spirv.func @outside.func.with.linkage(%arg0 : i8) -> () "Pure" attributes {
13       linkage_attributes=#spirv.linkage_attributes<
14         linkage_name="outside.func",
15         linkage_type=<Import>
16       >
17     }
18     spirv.func @inside.func() -> () "Pure" attributes {} {spirv.Return}
21 // -----
23 spirv.module PhysicalStorageBuffer64 GLSL450 requires #spirv.vce<v1.0,
24     [Shader, PhysicalStorageBufferAddresses], [SPV_KHR_physical_storage_buffer]> {
25   // CHECK-LABEL: spirv.func @func_arg_decoration_aliased(%{{.*}}: !spirv.ptr<i32, PhysicalStorageBuffer> {spirv.decoration = #spirv.decoration<Aliased>})
26   spirv.func @func_arg_decoration_aliased(
27       %arg0 : !spirv.ptr<i32, PhysicalStorageBuffer> { spirv.decoration = #spirv.decoration<Aliased> }
28   ) "None" {
29     spirv.Return
30   }
33 // -----
35 spirv.module PhysicalStorageBuffer64 GLSL450 requires #spirv.vce<v1.0,
36     [Shader, PhysicalStorageBufferAddresses], [SPV_KHR_physical_storage_buffer]> {
37   // CHECK-LABEL: spirv.func @func_arg_decoration_restrict(%{{.*}}: !spirv.ptr<i32, PhysicalStorageBuffer> {spirv.decoration = #spirv.decoration<Restrict>})
38   spirv.func @func_arg_decoration_restrict(
39       %arg0 : !spirv.ptr<i32,PhysicalStorageBuffer> { spirv.decoration = #spirv.decoration<Restrict> }
40   ) "None" {
41     spirv.Return
42   }
45 // -----
47 spirv.module PhysicalStorageBuffer64 GLSL450 requires #spirv.vce<v1.0,
48     [Shader, PhysicalStorageBufferAddresses], [SPV_KHR_physical_storage_buffer]> {
49   // CHECK-LABEL: spirv.func @func_arg_decoration_aliased_pointer(%{{.*}}: !spirv.ptr<!spirv.ptr<i32, PhysicalStorageBuffer>, Generic> {spirv.decoration = #spirv.decoration<AliasedPointer>})
50   spirv.func @func_arg_decoration_aliased_pointer(
51       %arg0 : !spirv.ptr<!spirv.ptr<i32,PhysicalStorageBuffer>, Generic> { spirv.decoration = #spirv.decoration<AliasedPointer> }
52   ) "None" {
53     spirv.Return
54   }
57 // -----
59 spirv.module PhysicalStorageBuffer64 GLSL450 requires #spirv.vce<v1.0,
60     [Shader, PhysicalStorageBufferAddresses], [SPV_KHR_physical_storage_buffer]> {
61   // CHECK-LABEL: spirv.func @func_arg_decoration_restrict_pointer(%{{.*}}: !spirv.ptr<!spirv.ptr<i32, PhysicalStorageBuffer>, Generic> {spirv.decoration = #spirv.decoration<RestrictPointer>})
62   spirv.func @func_arg_decoration_restrict_pointer(
63       %arg0 : !spirv.ptr<!spirv.ptr<i32,PhysicalStorageBuffer>, Generic> { spirv.decoration = #spirv.decoration<RestrictPointer> }
64   ) "None" {
65     spirv.Return
66   }
69 // -----
71 spirv.module PhysicalStorageBuffer64 GLSL450 requires #spirv.vce<v1.0,
72     [Shader, PhysicalStorageBufferAddresses], [SPV_KHR_physical_storage_buffer]> {
73   // CHECK-LABEL: spirv.func @fn1(%{{.*}}: i32, %{{.*}}: !spirv.ptr<i32, PhysicalStorageBuffer> {spirv.decoration = #spirv.decoration<Aliased>})
74   spirv.func @fn1(
75       %arg0: i32,
76       %arg1: !spirv.ptr<i32, PhysicalStorageBuffer> { spirv.decoration = #spirv.decoration<Aliased> }
77   ) "None" {
78     spirv.Return
79   }
81   // CHECK-LABEL: spirv.func @fn2(%{{.*}}: !spirv.ptr<i32, PhysicalStorageBuffer> {spirv.decoration = #spirv.decoration<Aliased>}, %{{.*}}: !spirv.ptr<i32, PhysicalStorageBuffer> {spirv.decoration = #spirv.decoration<Restrict>})
82   spirv.func @fn2(
83       %arg0: !spirv.ptr<i32, PhysicalStorageBuffer> { spirv.decoration = #spirv.decoration<Aliased> },
84       %arg1: !spirv.ptr<i32, PhysicalStorageBuffer> { spirv.decoration = #spirv.decoration<Restrict>}
85   ) "None" {
86     spirv.Return
87   }