Add x86 unpack instructions
This commit is contained in:
@@ -95,3 +95,17 @@ block0:
|
||||
[-, %xmm0] v4 = x86_pshufb v1, v3 ; bin: 66 41 0f 38 00 c4
|
||||
return
|
||||
}
|
||||
|
||||
;; pack/unpack
|
||||
|
||||
function %unpack_high_i8x16(i8x16, i8x16) {
|
||||
block0(v0: i8x16 [%xmm0], v1: i8x16 [%xmm12]):
|
||||
[-, %xmm0] v2 = x86_punpckh v0, v1 ; bin: 66 41 0f 68 c4
|
||||
return
|
||||
}
|
||||
|
||||
function %unpack_low_i32x4(i32x4, i32x4) {
|
||||
block0(v0: i32x4 [%xmm7], v1: i32x4 [%xmm6]):
|
||||
[-, %xmm7] v2 = x86_punpckl v0, v1 ; bin: 66 0f 62 fe
|
||||
return
|
||||
}
|
||||
|
||||
@@ -192,3 +192,16 @@ block0:
|
||||
return v5
|
||||
}
|
||||
; run
|
||||
|
||||
function %unpack_low() -> b1 {
|
||||
block0:
|
||||
v0 = vconst.i32x4 [0 1 2 3]
|
||||
v1 = vconst.i32x4 [4 5 6 7]
|
||||
v2 = x86_punpckl v0, v1
|
||||
|
||||
v3 = vconst.i32x4 [0 4 1 5]
|
||||
v4 = icmp eq v2, v3
|
||||
v5 = vall_true v4
|
||||
return v5
|
||||
}
|
||||
; run
|
||||
|
||||
Reference in New Issue
Block a user