blob: ba0b33f5573bfd51dec24ab060791d8552fb0380 [file] [log] [blame]
func @elementwise(%arg0 : memref<?x99x?x?xf32>,
%arg1 : memref<?x99x?x?xf32>,
%arg2 : memref<?x99x?x?xf32>,
%m0 : memref<99x200xf32>,
%m1 : memref<200x11xf32>,
%m2 : memref<99x11xf32>,
%v0 : vector<99x99x101x103xf32>,
%aaa : memref<3x3x3xvector<8x128xf32>>) -> memref<?x99x?x?xf32>
{
// "lair.HLadd"(%arg2, %arg0, %arg1) : (memref<?x99x?x?xf32>, memref<?x99x?x?xf32>, memref<?x99x?x?xf32>) -> ()
// "lair.HLsub"(%arg2, %arg0, %arg1) : (memref<?x99x?x?xf32>, memref<?x99x?x?xf32>, memref<?x99x?x?xf32>) -> ()
// "lair.HLmul"(%arg2, %arg0, %arg1) : (memref<?x99x?x?xf32>, memref<?x99x?x?xf32>, memref<?x99x?x?xf32>) -> ()
// "lair.HLdot"(%arg2, %arg0, %arg1) : (memref<?x99x?x?xf32>, memref<?x99x?x?xf32>, memref<?x99x?x?xf32>) -> ()
// "lair.HLmatmul"(%m2, %m0, %m1) : (memref<99x11xf32>, memref<99x200xf32>, memref<200x11xf32>) -> ()
%n = "lavm.neg"(%v0) : (vector<99x99x101x103xf32>) -> vector<99x99x101x103xf32>
%x = "lavm.add"(%v0, %v0) : (vector<99x99x101x103xf32>, vector<99x99x101x103xf32>) -> vector<99x99x101x103xf32>
%y = "lavm.sub"(%v0, %v0) : (vector<99x99x101x103xf32>, vector<99x99x101x103xf32>) -> vector<99x99x101x103xf32>
// %x = "lavm.add"(%arg1, %arg2) : (memref<?x99x?x?xf32>, memref<?x99x?x?xf32>) -> memref<?x99x?x?xf32>
%z = "lavm.mul"(%arg1, %arg2) : (memref<?x99x?x?xf32>, memref<?x99x?x?xf32>) -> memref<?x99x?x?xf32>
%w = "lavm.dot"(%arg1, %arg2) : (memref<?x99x?x?xf32>, memref<?x99x?x?xf32>) -> memref<?x99x?x?xf32>
%m = "lavm.matmul"(%m0, %m1) : (memref<99x200xf32>, memref<200x11xf32>) -> memref<99x11xf32>
// %c0 = constant 0 : index
// %vzero = tpu.vimm.f32 0.0
// affine.for %i0 = 0 to 3 {
// affine.for %i1 = 0 to 3 {
// affine.store %vzero, %aaa[%i0, %i1, %c0] : memref<3x3x3xvector<8x128xf32>>
// }
// }
return %arg2 : memref<?x99x?x?xf32>
}