XVSUBHU $14, X1, X2 // 22b88c76
XVSUBWU $15, X1, X2 // 223c8d76
XVSUBVU $16, X1, X2 // 22c08d76
+
+ // [X]VILV{L/H}{B,H,W,V} instructions
+ VILVLB V1, V2, V3 // 43041a71
+ VILVLH V1, V2, V3 // 43841a71
+ VILVLW V1, V2, V3 // 43041b71
+ VILVLV V1, V2, V3 // 43841b71
+ VILVHB V1, V2, V3 // 43041c71
+ VILVHH V1, V2, V3 // 43841c71
+ VILVHW V1, V2, V3 // 43041d71
+ VILVHV V1, V2, V3 // 43841d71
+ XVILVLB X3, X2, X1 // 410c1a75
+ XVILVLH X3, X2, X1 // 418c1a75
+ XVILVLW X3, X2, X1 // 410c1b75
+ XVILVLV X3, X2, X1 // 418c1b75
+ XVILVHB X3, X2, X1 // 410c1c75
+ XVILVHH X3, X2, X1 // 418c1c75
+ XVILVHW X3, X2, X1 // 410c1d75
+ XVILVHV X3, X2, X1 // 418c1d75
opset(AVSEQH, r0)
opset(AVSEQW, r0)
opset(AVSEQV, r0)
+ opset(AVILVLB, r0)
+ opset(AVILVLH, r0)
+ opset(AVILVLW, r0)
+ opset(AVILVLV, r0)
+ opset(AVILVHB, r0)
+ opset(AVILVHH, r0)
+ opset(AVILVHW, r0)
+ opset(AVILVHV, r0)
case AXVSEQB:
opset(AXVSEQH, r0)
opset(AXVSEQW, r0)
opset(AXVSEQV, r0)
+ opset(AXVILVLB, r0)
+ opset(AXVILVLH, r0)
+ opset(AXVILVLW, r0)
+ opset(AXVILVLV, r0)
+ opset(AXVILVHB, r0)
+ opset(AXVILVHH, r0)
+ opset(AXVILVHW, r0)
+ opset(AXVILVHV, r0)
case AVPCNTB:
opset(AVPCNTH, r0)
return 0xe81b << 15 // xvsub.d
case AXVSUBQ:
return 0xea5b << 15 // xvsub.q
+ case AVILVLB:
+ return 0xe234 << 15 // vilvl.b
+ case AVILVLH:
+ return 0xe235 << 15 // vilvl.h
+ case AVILVLW:
+ return 0xe236 << 15 // vilvl.w
+ case AVILVLV:
+ return 0xe237 << 15 // vilvl.d
+ case AVILVHB:
+ return 0xe238 << 15 // vilvh.b
+ case AVILVHH:
+ return 0xe239 << 15 // vilvh.h
+ case AVILVHW:
+ return 0xe23a << 15 // vilvh.w
+ case AVILVHV:
+ return 0xe23b << 15 // vilvh.d
+ case AXVILVLB:
+ return 0xea34 << 15 // xvilvl.b
+ case AXVILVLH:
+ return 0xea35 << 15 // xvilvl.h
+ case AXVILVLW:
+ return 0xea36 << 15 // xvilvl.w
+ case AXVILVLV:
+ return 0xea37 << 15 // xvilvl.d
+ case AXVILVHB:
+ return 0xea38 << 15 // xvilvh.b
+ case AXVILVHH:
+ return 0xea39 << 15 // xvilvh.h
+ case AXVILVHW:
+ return 0xea3a << 15 // xvilvh.w
+ case AXVILVHV:
+ return 0xea3b << 15 // xvilvh.d
}
if a < 0 {