美文网首页
Hexagon v60 hvx 指令:sign/zero ext

Hexagon v60 hvx 指令:sign/zero ext

作者: ccix | 来源:发表于2017-09-15 15:37 被阅读0次

    1、vdd.h = vsxt(Vu.b)  对每个元素进行符号扩展

    vdd.h = vzxt(Vu.b) 对每个元素进行补0扩展

    需要注意是交叉来做的

    Intrinsics

    Vdd.h=vsxt(Vu.b) HVX_VectorPair Q6_Wh_vsxt_Vb(HVX_Vector Vu)

    Vdd.uh=vzxt(Vu.ub) HVX_VectorPair Q6_Wuh_vzxt_Vub(HVX_Vector Vu)

    Vdd.uw=vzxt(Vu.uh) HVX_VectorPair Q6_Wuw_vzxt_Vuh(HVX_Vector Vu)

    Vdd.w=vsxt(Vu.h) HVX_VectorPair Q6_Ww_vsxt_Vh(HVX_Vector Vu)

    2、矢量指令一般是将矢量寄存器中的每个 element 公平对待,并行处理,比较少将整个矢量寄存器中的bit位当作一个整体来处理,但是我们有时候又有这样的需求,比如求一个矢量寄存器中的最大最小值,对整个矢量寄存器进行整体移位(valign 最多移 7 个 Bytes)等。而用下面的两条指令组合起来可以实现任意字节的矢量寄存器拼接:

    Vd = vror(Vu, Rt)

    Vd = vmux(Qt4, Vu, Vv)

    相关文章

      网友评论

          本文标题:Hexagon v60 hvx 指令:sign/zero ext

          本文链接:https://www.haomeiwen.com/subject/cjgwkxtx.html