x64: Migrate iadd_pairwise to ISLE (#4718)
* Add a test for iadd_pairwise with swiden input
* Implement iadd_pairwise for swiden_{low,high} input
* Add a test case for iadd_pairwise with uwiden input
* Implement iadd_pairwise with uwiden
This commit is contained in:
@@ -2582,6 +2582,10 @@
|
||||
dst))))
|
||||
dst))
|
||||
|
||||
(decl x64_pmaddubsw (Xmm XmmMem) Xmm)
|
||||
(rule (x64_pmaddubsw src1 src2)
|
||||
(xmm_rm_r $I8X16 (SseOpcode.Pmaddubsw) src1 src2))
|
||||
|
||||
;; Helper for creating `insertps` instructions.
|
||||
(decl x64_insertps (Xmm XmmMem u8) Xmm)
|
||||
(rule (x64_insertps src1 src2 lane)
|
||||
@@ -3255,6 +3259,20 @@
|
||||
(ConsumesFlags.ConsumesFlagsSideEffect
|
||||
(MInst.JmpTableSeq idx tmp1 tmp2 default_target jt_targets)))))
|
||||
|
||||
;;;; iadd_pairwise constants ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(decl iadd_pairwise_mul_const_16 () VCodeConstant)
|
||||
(extern constructor iadd_pairwise_mul_const_16 iadd_pairwise_mul_const_16)
|
||||
|
||||
(decl iadd_pairwise_mul_const_32 () VCodeConstant)
|
||||
(extern constructor iadd_pairwise_mul_const_32 iadd_pairwise_mul_const_32)
|
||||
|
||||
(decl iadd_pairwise_xor_const_32 () VCodeConstant)
|
||||
(extern constructor iadd_pairwise_xor_const_32 iadd_pairwise_xor_const_32)
|
||||
|
||||
(decl iadd_pairwise_addd_const_32 () VCodeConstant)
|
||||
(extern constructor iadd_pairwise_addd_const_32 iadd_pairwise_addd_const_32)
|
||||
|
||||
;;;; Comparisons ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(type IcmpCondResult (enum (Condition (producer ProducesFlags) (cc CC))))
|
||||
|
||||
Reference in New Issue
Block a user