Add x86 SIMD encoding for icmp sgt

This commit is contained in:
Andrew Brown
2019-10-24 17:07:42 -07:00
parent 6f35273055
commit c454c3c771
4 changed files with 82 additions and 15 deletions

View File

@@ -0,0 +1,27 @@
test binemit
set enable_simd
target x86_64 skylake
function %icmp_sgt_i8x16(i8x16, i8x16) -> b8x16 {
ebb0(v0: i8x16 [%xmm2], v1: i8x16 [%xmm1]):
[-, %xmm2] v2 = icmp sgt v0, v1 ; bin: 66 0f 64 d1
return v2
}
function %icmp_sgt_i16x8(i16x8, i16x8) -> b16x8 {
ebb0(v0: i16x8 [%xmm4], v1: i16x8 [%xmm3]):
[-, %xmm4] v2 = icmp sgt v0, v1 ; bin: 66 0f 65 e3
return v2
}
function %icmp_sgt_i32x4(i32x4, i32x4) -> b32x4 {
ebb0(v0: i32x4 [%xmm6], v1: i32x4 [%xmm5]):
[-, %xmm6] v2 = icmp sgt v0, v1 ; bin: 66 0f 66 f5
return v2
}
function %icmp_sgt_i64x2(i64x2, i64x2) -> b64x2 {
ebb0(v0: i64x2 [%xmm0], v1: i64x2 [%xmm7]):
[-, %xmm0] v2 = icmp sgt v0, v1 ; bin: 66 0f 38 37 c7
return v2
}

View File

@@ -43,3 +43,26 @@ ebb0:
return v5
}
; run
function %icmp_sgt_i8x16() -> b1 {
ebb0:
v0 = vconst.i8x16 [0 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0]
v1 = vconst.i8x16 [1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0xff]
v2 = icmp sgt v0, v1
v3 = raw_bitcast.i8x16 v2
v4 = vconst.i8x16 [0 0 0xff 0 0 0 0 0 0 0 0 0 0 0 0 0xff]
v7 = icmp eq v3, v4
v8 = vall_true v7
return v8
}
; run
function %icmp_sgt_i64x2() -> b1 {
ebb0:
v0 = vconst.i64x2 [0 -42]
v1 = vconst.i64x2 [-1 -43]
v2 = icmp sgt v0, v1
v8 = vall_true v2
return v8
}
; run