# Use of Instruction instead of LLVM intrinsic in Tensorize schedule #13850

**URL:** <https://discuss.tvm.apache.org/t/use-of-instruction-instead-of-llvm-intrinsic-in-tensorize-schedule-13850/14252>\
**Category:** Development\
**Created:** [January 26, 2023, 7:04pm UTC](https://discuss.tvm.apache.org/t/use-of-instruction-instead-of-llvm-intrinsic-in-tensorize-schedule-13850/14252 "2023-01-26T19:04:45Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Darshancg123](https://discuss.tvm.apache.org/letter_avatar_proxy/v4/letter/d/e9c0ed/32.png) [@Darshancg123](https://discuss.tvm.apache.org/u/Darshancg123)\
**Post date:** [January 26, 2023, 7:04pm UTC](https://discuss.tvm.apache.org/t/use-of-instruction-instead-of-llvm-intrinsic-in-tensorize-schedule-13850/14252/1 "2023-01-26T19:04:45Z")

</div>

|Hi TVM team,

I am writing a custom operator in TVM and adding a Tensorize schedule for its execution. I See that we can use the LLVM intrinsics(for example:` llvm.aarch64.neon.uaddlp`, `llvm.aarch64.neon.addp`) through **tvm.tir.call\_llvm\_pure\_intrin()** call. I just wanted to know if we can use directly the instruction instead of Intrinsic(for example: %3 = `mul <8 x i16> %1, %0` for `vmulq_u16`).

Look forward to your reply.

Thanks

---

<div class="post-metadata">

**Author:** ![masahi](https://discuss.tvm.apache.org/user_avatar/discuss.tvm.apache.org/masahi/32/74_2.png) [@masahi](https://discuss.tvm.apache.org/u/masahi)\
**Post date:** [January 27, 2023, 4:27am UTC](https://discuss.tvm.apache.org/t/use-of-instruction-instead-of-llvm-intrinsic-in-tensorize-schedule-13850/14252/2 "2023-01-27T04:27:25Z")

</div>

It’s ugly but possible. See the change to `arm_cpu/tensor_intrin.py` in [https://github.com/apache/tvm/pull/5754](https://github.com/apache/tvm/pull/5754). Note that we no longer have this code in `main`.
