+static void do_vmskltz(vec_t *Vd, vec_t *Vj, int bit, int n)
+{
+ switch (bit) {
+ case 8:
+ Vd->H[0] |= ((0x80 & Vj->B[n]) == 0) << n;
+ break;
+ case 16:
+ Vd->H[0] |= ((0x8000 & Vj->H[n]) == 0) << n;
+ break;
+ case 32:
+ Vd->H[0] |= ((0x80000000 & Vj->W[n]) == 0) << n;
+ break;
+ case 64:
+ Vd->H[0] |= ((0x8000000000000000 & Vj->D[n]) == 0) << n;
+ break;
+ default:
+ g_assert_not_reached();
+ }
+}
+
+static void do_vmskgez(vec_t *Vd, vec_t *Vj, int bit, int n)
+{
+ Vd->H[0] |= !((0x80 & Vj->B[n]) == 0) << n;
+}
+
+static void do_vmsknz(vec_t *Vd, vec_t *Vj, int bit, int n)
+{
+ Vd->H[0] |= (Vj->B[n] == 0) << n;
+}