How to build a schedule with a specific executor

This is how the schedule looks like ones lowered:

@main = primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
  attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
  buffers = {C: Buffer(C_2: Pointer(int8), int8, [1, 1, 1, 8], []),
             B: Buffer(B_2: Pointer(int8), int8, [1, 1, 8, 8], []),
             A: Buffer(A_2: Pointer(int8), int8, [1, 1, 1, 8], [])}
  buffer_map = {A_1: A, B_1: B, C_1: C} {
  for (ci: int32, 0, 8) {
    C_2[ci] = 0i8
    for (ki: int32, 0, 8) {
      C_2[ci] = ((int8*)C_2[ci] + ((int8*)A_2[ki]*(int8*)B_2[((ci*8) + ki)]))
    }
  }
}