Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

pmin: Wasm SIMD arithmetische Anweisung

Die pmin-Anweisung vergleicht zwei unterschiedlichen Interpretationen von gleitkommazahlen in v128 und liefert eine neue Interpretation zurück, bei der jede Ausgabespalte auf die kleinere der entsprechenden Eingabespalten gesetzt wird. Sie ist definiert als b < a ? b : a, was bedeutet, dass NaN im ersten Operanden an die Ausgabe weitergeleitet wird, während NaN im zweiten Operanden nicht weitergeleitet wird — im Gegensatz zu min, das NaN von beiden Operanden weiterleitet.

Probieren Sie es aus

(module
  (import "console" "log" (func $log (param f32)))
  (func $main
    ;; load two v128 f32x4s onto the stack
    v128.const f32x4 52.6 101.2 78.0 9.9
    v128.const f32x4 51.9 102.0 78.1 -0.9

    ;; return a f32x4 containing the smallest values from each input lane
    f32x4.pmin
    f32x4.extract_lane 3 ;; Extract a single lane
    call $log ;; log the result
  )
  (start $main)
)
const url = "{%wasm-url%}";
await WebAssembly.instantiateStreaming(fetch(url), { console });

Syntax

value_type.pmin
value_type

Der Werttyp, auf dem die Anweisung ausgeführt wird. Die folgenden Typen unterstützen pmin:

  • f32x4
  • f64x2
pmin

Die pmin-Anweisung. Muss immer nach dem value_type und einem Punkt (.) stehen.

Typ

[input1, input2] -> [output]
input1

Der erste Eingabewert.

input2

Der zweite Eingabewert.

output

Der Ausgabewert.

Binärcodierung

Anweisung Binärformat Beispieltext => binär
f32x4.pmin 0xfd 234:u32 f32x4.pmin => 0xfd 0xea 0x01
f64x2.pmin 0xfd 246:u32 f64x2.pmin => 0xfd 0xf6 0x01

Siehe auch