11// RUN: mlir-opt --split-input-file -pass-pipeline="builtin.module(convert-memref-to-spirv{bool-num-bits=8}, cse)" %s | FileCheck %s
2- // RUN: mlir-opt --split-input-file -pass-pipeline="builtin.module(convert-memref-to-spirv{bool-num-bits=8 use-64bit-index=true}, cse)" %s | FileCheck --check-prefix=CHECK64 %s
2+ // RUN: mlir-opt --split-input-file -pass-pipeline="builtin.module(convert-memref-to-spirv{bool-num-bits=8 use-64bit-index=true}, cse)" %s \
3+ // RUN: | FileCheck --check-prefix=CHECK64 %s
34
45// Check that with proper compute and storage extensions, we don't need to
56// perform special tricks.
@@ -424,14 +425,14 @@ func.func @cast_to_static_zero_elems(%arg: memref<?xf32, #spirv.storage_class<Cr
424425// -----
425426
426427module attributes {
427- spirv.target_env = #spirv.target_env <#spirv.vce <v1.0 , [Kernel , Int64 , Addresses ], []>, #spirv.resource_limits <>>
428+ spirv.target_env = #spirv.target_env <#spirv.vce <v1.5 , [Kernel , Int64 , Addresses , PhysicalStorageBufferAddresses ], []>, #spirv.resource_limits <>>
428429} {
429430// CHECK-LABEL: func @extract_aligned_pointer_as_index_kernel
430431func.func @extract_aligned_pointer_as_index_kernel (%m: memref <?xf32 , #spirv.storage_class <CrossWorkgroup >>) -> index {
431432 %0 = memref.extract_aligned_pointer_as_index %m: memref <?xf32 , #spirv.storage_class <CrossWorkgroup >> -> index
432433 // CHECK: %[[I32:.*]] = spirv.ConvertPtrToU {{%.*}} : !spirv.ptr<f32, CrossWorkgroup> to i32
433- // CHECK64: %[[I64:.*]] = spirv.ConvertPtrToU {{%.*}} : !spirv.ptr<f32, CrossWorkgroup> to i64
434434 // CHECK: %[[R:.*]] = builtin.unrealized_conversion_cast %[[I32]] : i32 to index
435+ // CHECK64: %[[I64:.*]] = spirv.ConvertPtrToU {{%.*}} : !spirv.ptr<f32, CrossWorkgroup> to i64
435436 // CHECK64: %[[R:.*]] = builtin.unrealized_conversion_cast %[[I64]] : i64 to index
436437
437438 // CHECK: return %[[R:.*]] : index
@@ -442,14 +443,14 @@ func.func @extract_aligned_pointer_as_index_kernel(%m: memref<?xf32, #spirv.stor
442443// -----
443444
444445module attributes {
445- spirv.target_env = #spirv.target_env <#spirv.vce <v1.0 , [Shader , Int64 , Addresses ], []>, #spirv.resource_limits <>>
446+ spirv.target_env = #spirv.target_env <#spirv.vce <v1.5 , [Shader , Int64 , Addresses , PhysicalStorageBufferAddresses ], []>, #spirv.resource_limits <>>
446447} {
447448// CHECK-LABEL: func @extract_aligned_pointer_as_index_shader
448449func.func @extract_aligned_pointer_as_index_shader (%m: memref <?xf32 , #spirv.storage_class <CrossWorkgroup >>) -> index {
449450 %0 = memref.extract_aligned_pointer_as_index %m: memref <?xf32 , #spirv.storage_class <CrossWorkgroup >> -> index
450451 // CHECK: %[[I32:.*]] = spirv.ConvertPtrToU {{%.*}} : !spirv.ptr<!spirv.struct<(!spirv.rtarray<f32>)>, CrossWorkgroup> to i32
451- // CHECK64: %[[I64:.*]] = spirv.ConvertPtrToU {{%.*}} : !spirv.ptr<!spirv.struct<(!spirv.rtarray<f32>)>, CrossWorkgroup> to i64
452452 // CHECK: %[[R:.*]] = builtin.unrealized_conversion_cast %[[I32]] : i32 to index
453+ // CHECK64: %[[I64:.*]] = spirv.ConvertPtrToU {{%.*}} : !spirv.ptr<!spirv.struct<(!spirv.rtarray<f32>)>, CrossWorkgroup> to i64
453454 // CHECK64: %[[R:.*]] = builtin.unrealized_conversion_cast %[[I64]] : i64 to index
454455
455456 // CHECK: return %[[R:.*]] : index
0 commit comments