How to use `IRBuilder` to narraw `int16` to `int8` with saturating on arm cpu?

How to use IRBuilder to narraw int16 to int8 with saturating ?

I’m working on using tvm to generate code like below:

int8 a;
int8 b;
int8 c = narrow_&_saturate_to_int8((int16) a * int(int16) b)

neon assembly code:

	vld1.8			{d16}, [r9:64], r1
	vld1.8			{d18}, [r4:64], r1
	vmull.s8		q1, d18, d17
	vqmovn.s16		d18, q1
	vst1.8			{d18}, [r5:128], lr

TVM Question: