Ensure SplitEdge to return the new block between the two given blocks
[llvm-project.git] / mlir / test / Dialect / SPIRV / availability.mlir
blob322cc533c826f8dac96b6ea2a335a7734e11f659
1 // RUN: mlir-opt -mlir-disable-threading -test-spirv-op-availability %s | FileCheck %s
3 // CHECK-LABEL: iadd
4 func @iadd(%arg: i32) -> i32 {
5   // CHECK: min version: v1.0
6   // CHECK: max version: v1.5
7   // CHECK: extensions: [ ]
8   // CHECK: capabilities: [ ]
9   %0 = spv.IAdd %arg, %arg: i32
10   return %0: i32
13 // CHECK: atomic_compare_exchange_weak
14 func @atomic_compare_exchange_weak(%ptr: !spv.ptr<i32, Workgroup>, %value: i32, %comparator: i32) -> i32 {
15   // CHECK: min version: v1.0
16   // CHECK: max version: v1.3
17   // CHECK: extensions: [ ]
18   // CHECK: capabilities: [ [Kernel] ]
19   %0 = spv.AtomicCompareExchangeWeak "Workgroup" "Release" "Acquire" %ptr, %value, %comparator: !spv.ptr<i32, Workgroup>
20   return %0: i32
23 // CHECK-LABEL: subgroup_ballot
24 func @subgroup_ballot(%predicate: i1) -> vector<4xi32> {
25   // CHECK: min version: v1.3
26   // CHECK: max version: v1.5
27   // CHECK: extensions: [ ]
28   // CHECK: capabilities: [ [GroupNonUniformBallot] ]
29   %0 = spv.GroupNonUniformBallot "Workgroup" %predicate : vector<4xi32>
30   return %0: vector<4xi32>
33 // CHECK-LABEL: module_logical_glsl450
34 func @module_logical_glsl450() {
35   // CHECK: spv.module min version: v1.0
36   // CHECK: spv.module max version: v1.5
37   // CHECK: spv.module extensions: [ ]
38   // CHECK: spv.module capabilities: [ [Shader] ]
39   spv.module Logical GLSL450 { }
40   return
43 // CHECK-LABEL: module_physical_storage_buffer64_vulkan
44 func @module_physical_storage_buffer64_vulkan() {
45   // CHECK: spv.module min version: v1.0
46   // CHECK: spv.module max version: v1.5
47   // CHECK: spv.module extensions: [ [SPV_EXT_physical_storage_buffer, SPV_KHR_physical_storage_buffer] [SPV_KHR_vulkan_memory_model] ]
48   // CHECK: spv.module capabilities: [ [PhysicalStorageBufferAddresses] [VulkanMemoryModel] ]
49   spv.module PhysicalStorageBuffer64 Vulkan { }
50   return