add vpsadbw, vpalignr and vpsubusb to sb-simd

This commit is contained in:
arthur 2026-07-20 08:21:14 +02:00 committed by Stas Boukarev
parent a7e50f3c4a
commit c315c378e4
2 changed files with 13 additions and 1 deletions

View file

@ -96,6 +96,7 @@
(two-arg-u8.32-min #:vpminub (u8.32) (u8.32 u8.32) :cost 2 :associative t)
(two-arg-u8.32+ #:vpaddb (u8.32) (u8.32 u8.32) :cost 2 :associative t)
(two-arg-u8.32- #:vpsubb (u8.32) (u8.32 u8.32) :cost 2)
(two-arg-u8.32-sat- #:vpsubusb (u8.32) (u8.32 u8.32) :cost 2)
(two-arg-u8.32= #:vpcmpeqb (u8.32) (u8.32 u8.32) :cost 1 :associative t)
(two-arg-u8.32/= nil (u8.32) (u8.32 u8.32) :cost 2 :associative t :encoding :fake-vop)
(two-arg-u8.32>~ #:vpcmpgtb (u8.32) (u8.32 u8.32) :cost 1)
@ -110,7 +111,11 @@
(u8.32-movemask #:vpmovmskb (u32) (u8.32) :cost 1)
(u8.32-shuffle #:vpshufb (u8.32) (u8.32 u8.32) :cost 1)
(u8.32-insert-u8.16 #:vinserti128 (u8.32) (u8.32 u8.16 imm8) :cost 1)
(u8.16-from-u8.32 #:vextracti128 (u8.16) (u8.32 imm1) :cost 1)
(u8.16-from-u8.32 #:vextracti128 (u8.16) (u8.32 imm1) :cost 1)
(u8.16-sad #:vpsadbw (u64.4) (u8.16 u8.16) :cost 1)
(u8.32-sad #:vpsadbw (u64.4) (u8.32 u8.32) :cost 1)
(u8.16-alignr #:vpalignr (u8.16) (u8.16 u8.16 imm8) :cost 1)
(u8.32-alignr #:vpalignr (u8.32) (u8.32 u8.32 imm8) :cost 1)
(u8.32-permute128 #:vperm2i128 (u8.32) (u8.32 u8.32 imm8) :cost 1)
;; u16.16
(make-u16.16 nil (u16.16) (u16 u16 u16 u16 u16 u16 u16 u16 u16 u16 u16 u16 u16 u16 u16 u16) :cost 1 :encoding :fake-vop)
@ -241,6 +246,8 @@
(s8.32-sign #:vpsignb (s8.32) (s8.32 s8.32) :cost 1)
(s8.32-broadcastvec #:vpbroadcastb (s8.32) (s8.32) :cost 1)
(s8.16-from-s8.32 #:vextracti128 (s8.16) (s8.32 imm1) :cost 1)
(s8.16-sad #:vpsadbw (u64.4) (s8.16 s8.16) :cost 1)
(s8.32-sad #:vpsadbw (u64.4) (s8.32 s8.32) :cost 1)
(s8.32-insert-s8.16 #:vinserti128 (s8.32) (s8.32 s8.16 imm1) :cost 1)
(s8.32-permute128 #:vperm2i128 (s8.32) (s8.32 s8.32 imm8) :cost 1)
;; s16.16

View file

@ -1764,11 +1764,13 @@
#8#
#9=
(:export
#:two-arg-u8.32-sat-
;; f32.8
;; f64.4
#:f64.4-reverse
#:f64.4-permute4x64
;; u8.16
#:u8.16-alignr
;; u16.8
;; u32.4
#:u32.4-shiftl
@ -1779,6 +1781,7 @@
;; s8.16
;; s16.8
;; s32.4
#:s8.16-sad
#:s32.4-shiftl
#:s32.4-shiftr
;; s64.2
@ -1802,6 +1805,8 @@
#:u8.32>=
#:u8.32<=
#:u8.32-avg
#:u8.32-sad
#:u8.32-alignr
#:u8.32-packus
#:u8.32-unpackhi
#:u8.32-unpacklo