Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions mlir/include/mlir/Dialect/AMDGPU/IR/AMDGPU.td
Original file line number Diff line number Diff line change
Expand Up @@ -237,8 +237,8 @@ def AMDGPU_FatRawBufferCastOp :
Arguments<(ins AnyMemRef:$source,
Optional<I32>:$validBytes,
Optional<I<14>>:$cacheSwizzleStride,
DefaultValuedProp<BoolProp, "true">:$boundsCheck,
UnitProp:$resetOffset)>,
DefaultValuedAttr<BoolAttr, "true">:$boundsCheck,
UnitAttr:$resetOffset)>,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pls, add a TODO somewhere nearby

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added a TODO, but not sure this is best spot, let me know if you can think of a better spot :)

Results<(outs AnyMemRef:$result)> {
let summary = "Create a raw buffer fat pointer that matches `memref`";
let description = [{
Expand Down
27 changes: 26 additions & 1 deletion mlir/test/python/dialects/amdgpu.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# This is just a smoke test that the dialect is functional.

from mlir.ir import *
from mlir.dialects import amdgpu, arith, memref
from mlir.dialects import amdgpu, func


def constructAndPrintInModule(f):
Expand All @@ -20,3 +20,28 @@ def constructAndPrintInModule(f):
def testSmoke():
# CHECK: amdgpu.lds_barrier
amdgpu.LDSBarrierOp()


# CHECK-LABEL: testFatRawBufferCastOpParams
@constructAndPrintInModule
def testFatRawBufferCastOpParams():
memref_type = MemRefType.get(
[ShapedType.get_dynamic_size(), ShapedType.get_dynamic_size()],
F32Type.get(),
)
f = func.FuncOp(
"test_raw_buffer_cast_params", ([memref_type], [])
)
with InsertionPoint(f.add_entry_block()):
block_args = f.arguments
amdgpu.FatRawBufferCastOp(block_args[0])
amdgpu.FatRawBufferCastOp(block_args[0], resetOffset=True)
amdgpu.FatRawBufferCastOp(block_args[0], boundsCheck=False)
amdgpu.FatRawBufferCastOp(block_args[0], boundsCheck=False, resetOffset=True)
func.ReturnOp([])

#CHECK: func.func @test_raw_buffer_cast_params(%[[ARG0:.+]]: memref<?x?xf32>) {
#CHECK: amdgpu.fat_raw_buffer_cast %[[ARG0]] : memref<?x?xf32> to memref<?x?xf32, #amdgpu.address_space<fat_raw_buffer>>
#CHECK-NEXT: amdgpu.fat_raw_buffer_cast %[[ARG0]] resetOffset : memref<?x?xf32> to memref<?x?xf32, #amdgpu.address_space<fat_raw_buffer>>
#CHECK-NEXT: amdgpu.fat_raw_buffer_cast %[[ARG0]] boundsCheck(false) : memref<?x?xf32> to memref<?x?xf32, #amdgpu.address_space<fat_raw_buffer>>
#CHECK-NEXT: amdgpu.fat_raw_buffer_cast %[[ARG0]] boundsCheck(false) resetOffset : memref<?x?xf32> to memref<?x?xf32, #amdgpu.address_space<fat_raw_buffer>>
Loading