15 lines · plain
1// RUN: mlir-opt -convert-xegpu-to-xevm %s | FileCheck %s2 3gpu.module @test_kernel {4 // CHECK-LABEL: func.func @dpas(5 // CHECK-SAME: %[[ARG0:.*]]: vector<8xf16>, %[[ARG1:.*]]: vector<16xf16>, %[[ARG2:.*]]: vector<8xf32>6 func.func @dpas(%a_loaded: vector<8xf16>, %b_loaded: vector<16xf16>, %c_loaded: vector<8xf32>) -> vector<8xf32> {7 // Loads are checked in a separate test.8 // CHECK: %[[D:.*]] = xevm.mma %[[ARG0]], %[[ARG1]], %[[ARG2]] {shape = <m = 8, n = 16, k = 16>, types = <d = f32, a = f16, b = f16, c = f32>}9 // CHECK-SAME: : (vector<8xf16>, vector<16xf16>, vector<8xf32>) -> vector<8xf32>10 %d = xegpu.dpas %a_loaded, %b_loaded, %c_loaded11 : vector<8xf16>, vector<16xf16>, vector<8xf32> -> vector<8xf32>12 return %d : vector<8xf32>13 }14}15