diff --git a/mlir/test/Target/SPIRV/memory-ops.mlir b/mlir/test/Target/SPIRV/memory-ops.mlir --- a/mlir/test/Target/SPIRV/memory-ops.mlir +++ b/mlir/test/Target/SPIRV/memory-ops.mlir @@ -1,15 +1,25 @@ // RUN: mlir-translate -test-spirv-roundtrip -split-input-file %s | FileCheck %s -// CHECK: spv.func {{@.*}}([[ARG1:%.*]]: !spv.ptr, [[ARG2:%.*]]: !spv.ptr) "None" { -// CHECK-NEXT: [[VALUE:%.*]] = spv.Load "Input" [[ARG1]] : f32 -// CHECK-NEXT: spv.Store "Output" [[ARG2]], [[VALUE]] : f32 spv.module Logical GLSL450 requires #spv.vce { + // CHECK-LABEL: spv.func @load_store + // CHECK-SAME: ([[ARG1:%.*]]: !spv.ptr, [[ARG2:%.*]]: !spv.ptr) spv.func @load_store(%arg0 : !spv.ptr, %arg1 : !spv.ptr) "None" { + // CHECK-NEXT: [[VALUE:%.*]] = spv.Load "Input" [[ARG1]] : f32 %1 = spv.Load "Input" %arg0 : f32 + // CHECK-NEXT: spv.Store "Output" [[ARG2]], [[VALUE]] : f32 spv.Store "Output" %arg1, %1 : f32 spv.Return } + + // CHECK-LABEL: spv.func @load_store_memory_operands + spv.func @load_store_memory_operands(%arg0 : !spv.ptr, %arg1 : !spv.ptr) "None" { + // CHECK: spv.Load "Input" %{{.+}} ["Volatile|Aligned", 4] : f32 + %1 = spv.Load "Input" %arg0 ["Volatile|Aligned", 4]: f32 + // CHECK: spv.Store "Output" %{{.+}}, %{{.+}} ["Volatile|Aligned", 4] : f32 + spv.Store "Output" %arg1, %1 ["Volatile|Aligned", 4]: f32 + spv.Return + } } // -----