aboutsummaryrefslogtreecommitdiff
path: root/mlir/test/python/dialects/amdgpu.py
blob: b479576dac093713e79a3d708ab94c69c620fdf8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# RUN: %PYTHON %s | FileCheck %s
# This is just a smoke test that the dialect is functional.

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


def constructAndPrintInModule(f):
    print("\nTEST:", f.__name__)
    with Context(), Location.unknown():
        module = Module.create()
        with InsertionPoint(module.body):
            f()
        print(module)
    return f


# CHECK-LABEL: testSmoke
@constructAndPrintInModule
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>>