# HLX ISA quick reference The quick reference lists HLX instruction syntax grouped by instruction category. ## [Halfword absolute value](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-halfword-absolute-value) - Ld16.uh=abs(Lu16.h) - Ld16.h=abs(Lu16.h):sat ## [Halfword and word add/subtract](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-halfword-and-word-add-subtract) - Ldd16.w=add(Luu16.w,Lv16.h) - Ldd16.w=add(Luu16.w,Lv16.uh) - Ldd16.w=sub(Luu16.w,Lv16.h) - Ldd16.w=sub(Luu16.w,Lv16.uh) ## [Halfword widening add/subtract](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-halfword-widening-add-subtract) - Ldd16.w=add(Lu16.uh,Lv16.uh) - Ldd16.w=sub(Lu16.uh,Lv16.uh) ## [Halfword add/subtract](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-halfword-add-subtract) - Ld16.h=add(Lu16.h,Lv16.h) - Ld16.h=add(Lu16.h,Lv16.h):sat - Ld16.uh=add(Lu16.uh,Lv16.uh):sat - Ld16.uh=add(Lu16.h,Lv16.h):sat - Ld16.h=sub(Lu16.h,Lv16.h) - Ld16.h=sub(Lu16.h,Lv16.h):sat - Ld16.uh=sub(Lu16.uh,Lv16.uh):sat - Ld16.uh=sub(Lu16.h,Lv16.h):sat ## [Assign](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-assign) - Ld16.h=Lu16.h - Ldd16.w=Luu16.w ## [Halfword compare](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-halfword-compare) - Ld16.h=cmp.gt(Lu16.uh, Lv16.uh) - Ld16.h=cmp.gt(Lu16.h, Lv16.h) ## [Halfword to word convert](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-halfword-to-word-convert) - Ldd16.uw=zxt(Lu16.uh) - Ldd16.w=sxt(Lu16.h) ## [Logical operations](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-logical-operations) - Ld16=and(Lu16,Lv16) - Ld16=or(Lu16,Lv16) - Ld16=xor(Lu16,Lv16) - Ld16=not(Lu16) - Ld16=andn(Lu16,Lv16) - Ld16=orn(Lu16,Lv16) ## [Halfword min/max](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-halfword-min-max) - Ld16.uh=max(Lu16.uh,Lv16.uh) - Ld16.uh=min(Lu16.uh,Lv16.uh) - Ld16.h=max(Lu16.h,Lv16.h) - Ld16.h=min(Lu16.h,Lv16.h) ## [Mux select](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-mux-select) - Lx16.h=mux(Lx16.h,Lu16.h,Lv16.h) ## [Splat value](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-splat-value) - Ld16.h=Rt.h - Ld16.h=#s5 - Ld16.uh=#u5 - Ldd16.w=Rt.w ## [Absolute value of difference](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-absolute-value-of-difference) - Ld16.uh=absdiff(Lu16.h,Lv16.h) - Ld16.uh=absdiff(Lu16.uh,Lv16.uh) - Ldd16.uw=absdiff(Luu16.w,Lvv16.w) - Ldd16.uw=absdiff(Luu16.uw,Lvv16.uw) ## [Average](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-average) - Ld16.h=avg(Lu16.h,Lv16.h) - Ld16.h=avg(Lu16.h,Lv16.h):rnd - Ldd16.w=avg(Luu16.w,Lvv16.w) - Ldd16.w=avg(Luu16.w,Lvv16.w):rnd - Ld16.uh=avg(Lu16.uh,Lv16.uh) - Ld16.uh=avg(Lu16.uh,Lv16.uh):rnd - Ldd16.uw=avg(Luu16.uw,Lvv16.uw) - Ldd16.uw=avg(Luu16.uw,Lvv16.uw):rnd ## [Byte converts](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-byte-converts) - Ld16.b=packhi(Lu16.h,Lv16.h) - Ld16.b=packlo(Lu16.h,Lv16.h) - Ldd16.h=unpackhi(Lu16.b) - Ldd16.h=unpacklo(Lu16.b) ## [Bit counting](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-bit-counting) - Ld16.h=sub(ilog2(Lu16.h),#u4) - Ld16.h=sub(ilog2(Lu16.uh),#u4) - Ld16.h=sub(ilog2(Luu16.w),#u5) - Ld16.h=sub(ilog2(Luu16.uw),#u5) ## [Lookup table](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-lookup-table) - Ld16.h=lut4(Lu16.uh,Rtt.h) - Ldd16.w=lut4(Lu16.uh,Rtt.uh):>>1 - Ldd16.w=lut4(Lu16.uh,Rtt.uh):>>1:neg - Ld16.h=lut4(Lu16.uh,Rtt.h):mask ## [Negative average](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-negative-average) - Ld16.h=navg(Lu16.h,Lv16.h) - Ldd16.w=navg(Luu16.w,Lvv16.w) - Ld16.h=navg(Lu16.uh,Lv16.uh) - Ldd16.w=navg(Luu16.uw,Lvv16.uw) ## [Load - tmp](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-load-tmp) - Ld16.tmp=mem(Rs) - if (Pv) Ld16.tmp=mem(Rs) - Ld16.tmp=mem(Rx++#s3) - if (Pv) Ld16.tmp=mem(Rx++#s3) - Ld16.tmp=mem(Rx++Mu) - if (Pv) Ld16.tmp=mem(Rx++Mu) ## [Multiply-add with high or low](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-multiply-add-with-high-or-low) - Lxx16.uw=add(mpy(Lu16.uh,Rt.uh),lo(Lxx16).uh) - Lxx16.uw=add(mpy(Lu16.uh,Lv16.uh),lo(Lxx16).uh) - Lxx16.w=add(mpy(Lu16.h,Rt.uh),lo(Lxx16).uh) - Lxx16.w=add(mpy(Lu16.h,Lv16.uh),lo(Lxx16).uh) - Lxx16.uw=add(mpy(Lu16.uh,Rt.uh),hi(Lxx16).uh) - Lxx16.uw=add(mpy(Lu16.uh,Lv16.uh),hi(Lxx16).uh) - Lxx16.uw=add(mpy(Lu16.h,Rt.uh),hi(Lxx16).uh) - Lxx16.uw=add(mpy(Lu16.h,Lv16.uh),hi(Lxx16).uh) - Lxx16.uw=add(mpy(Lu16.uh,hi(Lxx16).uh),Rt.w) - Lxx16.uw=add(mpy(Lu16.uh,hi(Lxx16).uh),Lvv16.w) - Lxx16.w=add(mpy(Lu16.uh,hi(Lxx16).h),Rt.w) - Lxx16.w=add(mpy(Lu16.uh,hi(Lxx16).h),Lvv16.w) ## [Multiply-add](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-multiply-add) - Lxx16.w+=mpy(Lu16.uh,Rt.uh) - Lxx16.w+=mpy(Lu16.uh,Lv16.uh) - Lxx16.w+=mpy(Lu16.h,Rt.uh) - Lxx16.w+=mpy(Lu16.h,Lv16.uh) - Lxx16.w+=mpy(Lu16.h,Rt.h) - Lxx16.w+=mpy(Lu16.h,Lv16.h) ## [Halfword to word multiply](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-halfword-to-word-multiply) - Ldd16.uw=mpy(Lu16.uh,Rt.uh) - Ldd16.uw=mpy(Lu16.uh,Lv16.uh) - Ldd16.w=mpy(Lu16.h,Rt.uh) - Ldd16.w=mpy(Lu16.h,Lv16.uh) - Ldd16.w=mpy(Lu16.h,Rt.h) - Ldd16.w=mpy(Lu16.h,Lv16.h) ## [Paired and word absolute value](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-paired-and-word-absolute-value) - Ldd16.uw=abs(Luu16.w) - Ldd16.w=abs(Luu16.w):sat - Ldd16.uh=abs(Luu16.h) - Ldd16.h=abs(Luu16.h):sat ## [Paired halfword add/subtract](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-paired-halfword-add-subtract) - Ldd16.h=add(Luu16.h,Lvv16.h) - Ldd16.h=add(Luu16.h,Lvv16.h):sat - Ldd16.uh=add(Luu16.uh,Lvv16.uh):sat - Ldd16.uh=add(Luu16.h,Lvv16.h):sat - Ldd16.h=sub(Luu16.h,Lvv16.h) - Ldd16.h=sub(Luu16.h,Lvv16.h):sat - Ldd16.uh=sub(Luu16.uh,Lvv16.uh):sat - Ldd16.uh=sub(Luu16.h,Lvv16.h):sat ## [Word add/subtract](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-word-add-subtract) - Ldd16.w=add(Luu16.w,Lvv16.w) - Ldd16.w=add(Luu16.w,Lvv16.w):sat - Ldd16.uw=add(Luu16.uw,Lvv16.uw):sat - Ldd16.uw=add(Luu16.w,Lvv16.w):sat - Ldd16.w=sub(Luu16.w,Lvv16.w) - Ldd16.w=sub(Luu16.w,Lvv16.w):sat - Ldd16.uw=sub(Luu16.uw,Lvv16.uw):sat - Ldd16.uw=sub(Luu16.w,Lvv16.w):sat ## [Word logical operations](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-word-logical-operations) - Ldd16=and(Luu16,Lvv16) - Ldd16=or(Luu16,Lvv16) - Ldd16=xor(Luu16,Lvv16) - Ldd16=andn(Luu16,Lvv16) - Ldd16=orn(Luu16,Lvv16) - Ldd16=not(Luu16) ## [Paired halfword logical compare](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-paired-halfword-logical-compare) - Ldd16.h=cmp.gt(Luu16.h, Lvv16.h) - Ldd16.h=cmp.gt(Luu16.uh, Lvv16.uh) ## [Word compare](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-word-compare) - Ldd16.w=cmp.gt(Luu16.w, Lvv16.w) - Ldd16.w=cmp.gt(Luu16.uw, Lvv16.uw) ## [Combine](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-combine) - Ldd16=combine(Lu16,Lv16) ## [Word min/max](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-word-min-max) - Ldd16.w=min(Luu16.w,Lvv16.w) - Ldd16.uw=min(Luu16.uw,Lvv16.uw) - Ldd16.w=max(Luu16.w,Lvv16.w) - Ldd16.uw=max(Luu16.uw,Lvv16.uw) ## [Paired halfword min/max](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-paired-halfword-min-max) - Ldd16.h=min(Luu16.h,Lvv16.h) - Ldd16.uh=min(Luu16.uh,Lvv16.uh) - Ldd16.h=max(Luu16.h,Lvv16.h) - Ldd16.uh=max(Luu16.uh,Lvv16.uh) ## [Halfword bidirectional shift](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-halfword-bidirectional-shift) - Ld16.uh=shr(Lu16.uh,Lv16.h) - Ld16.uh=shr(Lu16.uh,Rt.h) - Ld16.h=shr(Lu16.h,Lv16.h) - Ld16.h=shr(Lu16.h,Rt.h) ## [Word to halfword narrowing bidirectional shift](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-word-to-halfword-narrowing-bidirectional-shift) - Ld16.h=shr(Luu16.w,Lv16.h):sat - Ld16.h=shr(Luu16.w,Lv16.h):rnd:sat - Ld16.h=shr(Luu16.w,Rt.h):sat - Ld16.h=shr(Luu16.w,Rt.h):rnd:sat - Ld16.uh=shr(Luu16.uw,Lv16.h):sat - Ld16.uh=shr(Luu16.uw,Lv16.h):rnd:sat - Ld16.uh=shr(Luu16.uw,Rt.h):sat - Ld16.uh=shr(Luu16.uw,Rt.h):rnd:sat - Ld16.uh=shr(Luu16.w,Lv16.h):sat - Ld16.uh=shr(Luu16.w,Lv16.h):rnd:sat - Ld16.uh=shr(Luu16.w,Rt.h):sat - Ld16.uh=shr(Luu16.w,Rt.h):rnd:sat ## [Word bidirectional shift](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-word-bidirectional-shift) - Ldd16.uw=shr(Luu16.uw,Lv16.h) - Ldd16.uw=shr(Luu16.uw,Rt.h) - Ldd16.w=shr(Luu16.w,Lv16.h) - Ldd16.w=shr(Luu16.w,Rt.h) ## [Word to halfword narrowing right shift](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-word-to-halfword-narrowing-right-shift) - Ld16.h=shr(Luu16.w,Lv16.uh) - Ld16.h=shr(Luu16.w,Rt.uh) ## [Halfword bidirectional shift add](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-halfword-bidirectional-shift-add) - Lx16.h+=shr(Lu16.uh,Lv16.h) - Lx16.h+=shr(Lu16.uh,Rt.h) - Lx16.h+=shr(Lu16.h,Lv16.h) - Lx16.h+=shr(Lu16.h,Rt.h) ## [Word bidirectional shift add](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-word-bidirectional-shift-add) - Lxx16.w+=shr(Luu16.uw,Lv16.h) - Lxx16.w+=shr(Luu16.uw,Rt.h) - Lxx16.w+=shr(Luu16.w,Lv16.h) - Lxx16.w+=shr(Luu16.w,Rt.h) ## [Store - new](https://docs.qualcomm.com/doc/80-N3040-23/topic/hlx-instruction-set.html#v85-hlx-store-new) - mem(Rs)=Ku16.new - if (Pv) mem(Rs)=Ku16.new - mem(Rx++#s3)=Ku16.new - if (Pv) mem(Rx++#s3)=Ku16.new - mem(Rx++Mu)=Kt16.new - if (Pv) mem(Rx++Mu)=Kt16.new Last Published: Oct 06, 2026 [Previous Topic HLX PMU events](https://docs.qualcomm.com/bundle/publicresource/80-N3040-23/topics/hlx-pmu-events.md) [Next Topic Previous PRMs](https://docs.qualcomm.com/bundle/publicresource/80-N3040-23/topics/prm_index.md)