| 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> |
| } |