1
1
// 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
3
4
4
5
// Check that with proper compute and storage extensions, we don't need to
5
6
// perform special tricks.
@@ -424,14 +425,14 @@ func.func @cast_to_static_zero_elems(%arg: memref<?xf32, #spirv.storage_class<Cr
424
425
// -----
425
426
426
427
module 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 <>>
428
429
} {
429
430
// CHECK-LABEL: func @extract_aligned_pointer_as_index_kernel
430
431
func.func @extract_aligned_pointer_as_index_kernel (%m: memref <?xf32 , #spirv.storage_class <CrossWorkgroup >>) -> index {
431
432
%0 = memref.extract_aligned_pointer_as_index %m: memref <?xf32 , #spirv.storage_class <CrossWorkgroup >> -> index
432
433
// CHECK: %[[I32:.*]] = spirv.ConvertPtrToU {{%.*}} : !spirv.ptr<f32, CrossWorkgroup> to i32
433
- // CHECK64: %[[I64:.*]] = spirv.ConvertPtrToU {{%.*}} : !spirv.ptr<f32, CrossWorkgroup> to i64
434
434
// CHECK: %[[R:.*]] = builtin.unrealized_conversion_cast %[[I32]] : i32 to index
435
+ // CHECK64: %[[I64:.*]] = spirv.ConvertPtrToU {{%.*}} : !spirv.ptr<f32, CrossWorkgroup> to i64
435
436
// CHECK64: %[[R:.*]] = builtin.unrealized_conversion_cast %[[I64]] : i64 to index
436
437
437
438
// CHECK: return %[[R:.*]] : index
@@ -442,14 +443,14 @@ func.func @extract_aligned_pointer_as_index_kernel(%m: memref<?xf32, #spirv.stor
442
443
// -----
443
444
444
445
module 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 <>>
446
447
} {
447
448
// CHECK-LABEL: func @extract_aligned_pointer_as_index_shader
448
449
func.func @extract_aligned_pointer_as_index_shader (%m: memref <?xf32 , #spirv.storage_class <CrossWorkgroup >>) -> index {
449
450
%0 = memref.extract_aligned_pointer_as_index %m: memref <?xf32 , #spirv.storage_class <CrossWorkgroup >> -> index
450
451
// 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
452
452
// 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
453
454
// CHECK64: %[[R:.*]] = builtin.unrealized_conversion_cast %[[I64]] : i64 to index
454
455
455
456
// CHECK: return %[[R:.*]] : index
0 commit comments