Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

SIMD.int8x16

Cette fonction est expérimentale
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

Le type de données SIMD.Int8x16 représente un vecteur sur 128 bits, divisés en 16 voies, chacune stockant des entiers signés exprimés sur 8 bits.

SIMD.Int8x16

SIMD.Int8x16 dans un registre SIMD sur 128 bits.

Syntaxe

SIMD.Int8x16(s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15);

Paramètres

s[0-15] Facultatif
Un entier qui définit la valeur à utiliser pour la voie, la valeur par défaut est 0.

Constructeurs

En plus des constructeurs simples, l'API SIMD fournit les constructeurs suivants.

SIMD.Int8x16.splat()
Crée un Int8x16 dont toutes les voies reçoivent une valeur donnée.

On notera qu'il est possible de convertir des données depuis un autre type SIMD vers Int8x16.

Note : Les types SIMD ne fonctionnent pas avec l'opérateur new, en effet les valeurs SIMD ne sont pas des valeurs « objectifiées » (à la différence des chaînes qu'on peut créer avec  String(s) et new String(s)).

var v = new SIMD.Int8x16(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); 
// TypeError: SIMD.Int8x16 is not a constructor
var w = new SIMD.Int8x16.splat(3);
// TypeError: SIMD.Int8x16.splat is not a constructor

Il faut écrire :

var v = SIMD.Int8x16(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);
var w = SIMD.Int8x16.splat(3);

Opérations

Pour réaliser des opérations avec des types de données SIMD, il est nécessaire d'utiliser des opération SIMD.

Vérification des types SIMD

SIMD.Int8x16.check()
Renvoie un nouvel Int8x16 si le paramètre passé est un type de donnée SIMD valide et si c'est le même que Int8x16. Sinon, cette méthode lèvera une exception TypeError.

Accéder aux voies et les modifier

SIMD.Int8x16.extractLane()
Renvoie la valeur d'une voie donnée.
SIMD.Int8x16.replaceLane()
Renvoie un nouveau vecteur Int8x16 dont la voie donnée a été remplacée par la valeur fournie.

Chargement et enregistrement depuis des tableaux typés

SIMD.Int8x16.load()
Renvoie une nouvelle instance Int8x16 dont les voies sont chargées avec les valeurs d'un tableau typé.
SIMD.Int8x16.store()
Enregistre un Int8x16 dans un tableau typé.

Opérations arithmétiques

SIMD.Int8x16.add()
Renvoie un nouvel Int8x16 avec la somme des voies (a + b).
SIMD.Int8x16.addSaturate()
Renvoie un nouvel Int8x16 avec la somme des voies (a + b) dont le résultat est ramené dans l'intervalle si nécessaire.
SIMD.Int8x16.mul()
Renvoieun nouvel Int8x16 avec la multiplication des voies (a * b).
SIMD.Int8x16.neg()
Renvoieun nouvel Int8x16 avec les valeurs opposées des voies.
SIMD.Int8x16.sub()
Renvoie un nouvel Int8x16 avec la soustraction des voies (a - b).
SIMD.Int8x16.subSaturate()
Renvoie un nouvel Int8x16 avec la différence des voies (a - b) dont le résultat est ramené dans l'intervalle si nécessaire

Mélange et permutation

SIMD.Int8x16.shuffle()
Renvoie un nouvel Int8x16 dont les valeurs des voies ont été mélangées à partir de deux vecteurs.
SIMD.Int8x16.swizzle()
Renvoie un nouvel Int8x16 dont les valeurs des voies ont été permutées

Sélections

SIMD.Int8x16.select()
Renvoie une nouvelle instance dont les valeurs des voies sont un mélange des différentes voies en fonction d'un masque de sélection.

Comparaisons

SIMD.Int8x16.equal()
Renvoie un masque de sélection selon le résultat de a == b.
SIMD.Int8x16.notEqual()
Renvoie un masque de sélection selon le résultat de a != b.
SIMD.Int8x16.lessThan()
Renvoie un masque de sélection selon le résultat de a < b.
SIMD.Int8x16.lessThanOrEqual()
Renvoie un masque de sélection selon le résultat de a <= b.
SIMD.Int8x16.greaterThan()
Renvoie un masque de sélection selon le résultat de a > b.
SIMD.Int8x16.greaterThanOrEqual()
Renvoie un masque de sélection selon le résultat de a >= b.

Opérations logiques

SIMD.Int8x16.and()
Renvoie un nouvel Int8x16 dont les voies sont le résultat d'un ET logique sur les voies des instances fournies (a & b).
SIMD.Int8x16.or()
Renvoie un nouvel Int8x16 dont les voies sont le résultat d'un OU logique sur les voies des instances fournies (a | b).
SIMD.Int8x16.xor()
Renvoie un nouvel Int8x16 dont les voies sont le résultat d'un XOR logique sur les voies des instances fournies (a ^ b).
SIMD.Int8x16.not()
Renvoie un nouvel Int8x16 dont les voies sont le résultat d'un NON logique sur les voies des instances fournies (~a).

Opérations de décalage

SIMD.Int8x16.shiftLeftByScalar()
Renvoie un nouvel Int8x16 dont les valeurs des voies sont décalées à gauche d'un certain nombre de bits (a << bits).
SIMD.Int8x16.shiftRightByScalar()
Renvoie un nouvel Int8x16 dont les valeurs des voies sont décalées à droite d'un certain nombre de bits.

Conversion

SIMD.Int8x16.fromFloat32x4Bits()
Crée un nouveau type de donnée Int8x16 avec une copie binaire à partir d'un float32x4.
SIMD.Int8x16.fromFloat64x2Bits()
Crée un nouveau type de donnée Int8x16 avec une copie binaire à partir d'un float64x2.
SIMD.Int8x16.fromInt32x4Bits()
Crée un nouveau type de donnée Int8x16 avec une copie binaire à partir d'un Int32x4.
SIMD.Int8x16.fromInt16x8Bits()
Crée un nouveau type de donnée Int8x16 à partir d'une copie binaire d'un vecteur Int16x8.
SIMD.Int8x16.fromUint32x4Bits()
Crée un nouveau type de donnée Int8x16 à partir d'une copie binaire d'un vecteur Uint32x4.
SIMD.Int8x16.fromUint16x8Bits()
Crée un nouveau type de donnée Int8x16 à partir d'une copie binaire d'un vecteur Uint16x8.
SIMD.Int8x16.fromUint8x16Bits()
Crée un nouveau type de donnée Int8x16 à partir d'une copie binaire d'un vecteur Uint8x16.

Prototype du SIMD

Les méthodes et propriétés suivantes sont rattachées à SIMD.Int8x16.prototype.

SIMD.Int8x16.prototype.constructor
Définit la fonction qui crée le prototype de l'objet SIMD
SIMD.Int8x16.prototype.toLocaleString()
Renvoie une chaîne localisée représentant le type SIMD et ses éléments. Elle surcharge la méthode Object.prototype.toLocaleString().
SIMD.Int8x16.prototype.toString()
Renvoie une chaîne représentant le type SIMD et ses éléments. Elle surcharge la méthode Object.prototype.toString().
SIMD.Int8x16.prototype.valueOf()
Renvoie la valeur primitive de l'objet SIMD.
SIMD.Int8x16.prototype.toSource()
Renvoie une chaîne de caractère représentant le code source. Elle surcharge la méthode Object.prototype.toSource().

Exemples

SIMD.Int8x16(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16);
 // Int8x16[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
SIMD.Int8x16(1, 2);
 // Int8x16[1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
SIMD.Int8x16();
 // Int8x16[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]

Spécifications

Spécification Statut Commentaires
SIMD
La définition de 'Int8x16' dans cette spécification.
Projet Définition initiale.

Compatibilité des navigateurs

Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari
Support simple Pas de support Nightly build Pas de support Pas de support Pas de support
Fonctionnalité Android Chrome pour Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Support simple Pas de support Pas de support Nightly build Pas de support Pas de support Pas de support

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : SphinxKnight
 Dernière mise à jour par : SphinxKnight,