Skip to content

Commit e7f349f

Browse files
vbgleponier
authored andcommitted
x86: exit VPBLENDVB
1 parent 21e0893 commit e7f349f

File tree

6 files changed

+12
-30
lines changed

6 files changed

+12
-30
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@
55
- Consider LHS array variables as assigned
66
([PR #1214](https://github.com/jasmin-lang/jasmin/pull/1214)).
77

8+
## Other changes
9+
10+
- The deprecated x86 intrinsic `#VPBLENDVB` has been removed
11+
([PR #1208](https://github.com/jasmin-lang/jasmin/pull/1208)).
12+
813
# Jasmin 2025.06.0 — Nancy, 2025-06-18
914

1015
## New features

compiler/src/pretyping.ml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1607,7 +1607,6 @@ Deprecated intrinsic operators map (old name -> new name)
16071607
*)
16081608
let deprecated_intrinsic =
16091609
let m = Ms.empty in
1610-
let m = Ms.add "VPBLENDVB" "BLENDV" m in
16111610
Ms.add "VPMOVMSKB" "MOVEMASK" m
16121611

16131612
(**

compiler/src/x86_arch_full.ml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,6 @@ module X86_core = struct
158158
| VPANDN _ -> true
159159
| VPAVG _ -> true
160160
| VPBLEND _ -> true
161-
| VPBLENDVB _ -> true
162161
| VPBROADCAST _ -> true
163162
| VPCLMULQDQ _ -> true
164163
| VPCMPEQ _ -> true

compiler/tests/success/x86-64/vpblendvb.jazz

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ fn test_vpblendvb(reg u64 rp) {
66
f0 = #set0_256();
77
f1 = #set0_256();
88
m = #set0_256();
9-
f0 = #VPBLENDVB_256(f0, f1, m);
9+
f0 = #BLENDV_32u8(f0, f1, m);
1010
[:u256 rp] = f0;
1111

1212
h0 = #set0_128();
1313
h1 = #set0_128();
1414
n = #set0_128();
15-
h0 = #VPBLENDVB_128(h0, h1, n);
15+
h0 = #BLENDV_16u8(h0, h1, n);
1616
[:u128 rp + 32] = h0;
1717
}
1818

eclib/JModel_x86.ec

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -552,25 +552,18 @@ abbrev [-printing] VPBLEND_8u32 = VPBLENDD_256.
552552
553553
(* ------------------------------------------------------------------- *)
554554
(*
555-
| VPBLENDVB `(wsize)
555+
| BLENDV of velem & vsize
556556
*)
557-
op VPBLENDVB_128 (v1 v2 m: W128.t) : W128.t =
557+
op BLENDV_16u8 (v1 v2 m: W128.t) : W128.t =
558558
let choose = fun n =>
559559
let w = if msb (m \bits8 n) then v2 else v1 in
560560
w \bits8 n in
561561
pack16 [choose 0; choose 1; choose 2; choose 3; choose 4; choose 5; choose 6; choose 7;
562562
choose 8; choose 9; choose 10; choose 11; choose 12; choose 13; choose 14; choose 15].
563563
564-
op VPBLENDVB_256 (v1 v2 m: W256.t) : W256.t =
565-
pack2 [VPBLENDVB_128 (v1 \bits128 0) (v2 \bits128 0) (m \bits128 0);
566-
VPBLENDVB_128 (v1 \bits128 1) (v2 \bits128 1) (m \bits128 1)].
567-
568-
(* ------------------------------------------------------------------- *)
569-
(*
570-
| BLENDV of velem & vsize
571-
*)
572-
abbrev BLENDV_16u8 = VPBLENDVB_128.
573-
abbrev BLENDV_32u8 = VPBLENDVB_256.
564+
op BLENDV_32u8 (v1 v2 m: W256.t) : W256.t =
565+
pack2 [BLENDV_16u8 (v1 \bits128 0) (v2 \bits128 0) (m \bits128 0);
566+
BLENDV_16u8 (v1 \bits128 1) (v2 \bits128 1) (m \bits128 1)].
574567
575568
op BLENDV_4u32 (v1 v2 m: W128.t) : W128.t =
576569
let choose = fun n =>

proofs/compiler/x86_instr_decl.v

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,6 @@ Variant x86_op : Type :=
130130
| VPSHUFHW `(wsize)
131131
| VPSHUFLW `(wsize)
132132
| VPBLEND `(velem) `(wsize)
133-
| VPBLENDVB `(wsize) (* Deprecated: use BLENDV instead *)
134133
| BLENDV of velem & wsize (* vpblendvb, vblendvps, vblendvpd *)
135134
| VPACKUS `(velem) `(wsize)
136135
| VPACKSS `(velem) `(wsize)
@@ -1559,17 +1558,6 @@ Definition Ox86_VPBLEND_instr :=
15591558

15601559
Definition check_xmm_xmm_xmmm_xmm (_:wsize) := [:: [:: xmm; xmm; xmmm true; xmm]].
15611560

1562-
(* TODO: remove in 2025.AA.0 *)
1563-
Definition x86_VPBLENDVB sz (x y m: word sz) : tpl (w_ty sz) :=
1564-
wpblendvb x y m.
1565-
1566-
(* TODO: remove in 2025.AA.0 *)
1567-
Definition Ox86_VPBLENDVB_instr :=
1568-
(fun sz => mk_instr_safe
1569-
(pp_sz "VPBLENDVB" sz) (w3_ty sz) (w_ty sz) [:: Eu 1; Eu 2; Eu 3] [:: Eu 0] MSB_CLEAR
1570-
(@x86_VPBLENDVB sz) (check_xmm_xmm_xmmm_xmm sz) 4 (size_128_256 sz)
1571-
(pp_name "vpblendvb" sz), ("VPBLENDVB"%string, prim_128_256 VPBLENDVB)).
1572-
15731561
Definition x86_BLENDV ve sz (x y m: word sz) : tpl (w_ty sz) :=
15741562
blendv ve x y m.
15751563

@@ -2214,7 +2202,6 @@ Definition x86_instr_desc o : instr_desc_t :=
22142202
| VPUNPCKH sz sz' => Ox86_VPUNPCKH_instr.1 sz sz'
22152203
| VPUNPCKL sz sz' => Ox86_VPUNPCKL_instr.1 sz sz'
22162204
| VPBLEND ve sz => Ox86_VPBLEND_instr.1 ve sz
2217-
| VPBLENDVB sz => Ox86_VPBLENDVB_instr.1 sz
22182205
| BLENDV ve sz => Ox86_BLENDV_instr.1 ve sz
22192206
| VPACKUS ve sz => Ox86_VPACKUS_instr.1 ve sz
22202207
| VPACKSS ve sz => Ox86_VPACKSS_instr.1 ve sz
@@ -2371,7 +2358,6 @@ Definition x86_prim_string :=
23712358
Ox86_VPUNPCKH_instr.2;
23722359
Ox86_VPUNPCKL_instr.2;
23732360
Ox86_VPBLEND_instr.2;
2374-
Ox86_VPBLENDVB_instr.2;
23752361
Ox86_BLENDV_instr.2;
23762362
Ox86_VPACKUS_instr.2;
23772363
Ox86_VPACKSS_instr.2;

0 commit comments

Comments
 (0)