Leverage f32x4.pmin and f32x4.pmax WAsm SIMD instructions

Warning: this change makes XNNPACK binaries for WebAssembly SIMD incompatible with Chrome versions earlier than 87
PiperOrigin-RevId: 397776648
diff --git a/src/f32-spmm/gen/16x1-minmax-wasmsimd-x86-x2.c b/src/f32-spmm/gen/16x1-minmax-wasmsimd-x86-x2.c
index c137a59..824d48a 100644
--- a/src/f32-spmm/gen/16x1-minmax-wasmsimd-x86-x2.c
+++ b/src/f32-spmm/gen/16x1-minmax-wasmsimd-x86-x2.c
@@ -98,14 +98,14 @@
           vaccCDEF = wasm_f32x4_add(vaccCDEF, wasm_f32x4_mul(viCDEF, vw));
         } while (--nnz != 0);
       }
-      v128_t vout0123 = wasm_v128_bitselect(vacc0123, vmax, wasm_f32x4_le(vacc0123, vmax));
-      v128_t vout4567 = wasm_v128_bitselect(vacc4567, vmax, wasm_f32x4_le(vacc4567, vmax));
-      v128_t vout89AB = wasm_v128_bitselect(vacc89AB, vmax, wasm_f32x4_le(vacc89AB, vmax));
-      v128_t voutCDEF = wasm_v128_bitselect(vaccCDEF, vmax, wasm_f32x4_le(vaccCDEF, vmax));
-      vout0123 = wasm_v128_bitselect(vmin, vout0123, wasm_f32x4_lt(vout0123, vmin));
-      vout4567 = wasm_v128_bitselect(vmin, vout4567, wasm_f32x4_lt(vout4567, vmin));
-      vout89AB = wasm_v128_bitselect(vmin, vout89AB, wasm_f32x4_lt(vout89AB, vmin));
-      voutCDEF = wasm_v128_bitselect(vmin, voutCDEF, wasm_f32x4_lt(voutCDEF, vmin));
+      v128_t vout0123 = wasm_f32x4_pmin(vmax, vacc0123);
+      v128_t vout4567 = wasm_f32x4_pmin(vmax, vacc4567);
+      v128_t vout89AB = wasm_f32x4_pmin(vmax, vacc89AB);
+      v128_t voutCDEF = wasm_f32x4_pmin(vmax, vaccCDEF);
+      vout0123 = wasm_f32x4_pmax(vmin, vout0123);
+      vout4567 = wasm_f32x4_pmax(vmin, vout4567);
+      vout89AB = wasm_f32x4_pmax(vmin, vout89AB);
+      voutCDEF = wasm_f32x4_pmax(vmin, voutCDEF);
       wasm_v128_store(output, vout0123);
       wasm_v128_store(output + 4, vout4567);
       wasm_v128_store(output + 8, vout89AB);
@@ -138,10 +138,10 @@
             vacc4567 = wasm_f32x4_add(vacc4567, wasm_f32x4_mul(vi4567, vw));
           } while (--nnz != 0);
         }
-        v128_t vout0123 = wasm_v128_bitselect(vacc0123, vmax, wasm_f32x4_le(vacc0123, vmax));
-        v128_t vout4567 = wasm_v128_bitselect(vacc4567, vmax, wasm_f32x4_le(vacc4567, vmax));
-        vout0123 = wasm_v128_bitselect(vmin, vout0123, wasm_f32x4_lt(vout0123, vmin));
-        vout4567 = wasm_v128_bitselect(vmin, vout4567, wasm_f32x4_lt(vout4567, vmin));
+        v128_t vout0123 = wasm_f32x4_pmin(vmax, vacc0123);
+        v128_t vout4567 = wasm_f32x4_pmin(vmax, vacc4567);
+        vout0123 = wasm_f32x4_pmax(vmin, vout0123);
+        vout4567 = wasm_f32x4_pmax(vmin, vout4567);
         wasm_v128_store(output, vout0123);
 
         wasm_v128_store(output + 4, vout4567);
@@ -168,8 +168,8 @@
             vacc0123 = wasm_f32x4_add(vacc0123, wasm_f32x4_mul(vi0123, vw));
           } while (--nnz != 0);
         }
-        v128_t vout0123 = wasm_v128_bitselect(vacc0123, vmax, wasm_f32x4_le(vacc0123, vmax));
-        vout0123 = wasm_v128_bitselect(vmin, vout0123, wasm_f32x4_lt(vout0123, vmin));
+        v128_t vout0123 = wasm_f32x4_pmin(vmax, vacc0123);
+        vout0123 = wasm_f32x4_pmax(vmin, vout0123);
         wasm_v128_store(output, vout0123);
 
         output = (float*restrict) ((uintptr_t) output + output_stride);
@@ -195,8 +195,8 @@
             vacc01 = wasm_f32x4_add(vacc01, wasm_f32x4_mul(vi01, vw));
           } while (--nnz != 0);
         }
-        v128_t vout01 = wasm_v128_bitselect(vacc01, vmax, wasm_f32x4_le(vacc01, vmax));
-        vout01 = wasm_v128_bitselect(vmin, vout01, wasm_f32x4_lt(vout01, vmin));
+        v128_t vout01 = wasm_f32x4_pmin(vmax, vacc01);
+        vout01 = wasm_f32x4_pmax(vmin, vout01);
         *((double*) output) = wasm_f64x2_extract_lane(vout01, 0);
 
         output = (float*restrict) ((uintptr_t) output + output_stride);
@@ -222,8 +222,8 @@
             vacc0 = wasm_f32x4_add(vacc0, wasm_f32x4_mul(vi0, vw));
           } while (--nnz != 0);
         }
-        v128_t vout0 = wasm_v128_bitselect(vacc0, vmax, wasm_f32x4_le(vacc0, vmax));
-        vout0 = wasm_v128_bitselect(vmin, vout0, wasm_f32x4_lt(vout0, vmin));
+        v128_t vout0 = wasm_f32x4_pmin(vmax, vacc0);
+        vout0 = wasm_f32x4_pmax(vmin, vout0);
         *output = wasm_f32x4_extract_lane(vout0, 0);
 
         output = (float*restrict) ((uintptr_t) output + output_stride);