; SIMD128-LABEL: min_unordered_v4f32:
; SIMD128: .functype min_unordered_v4f32 (v128) -> (v128)
; SIMD128-NEXT: # %bb.0:
-; SIMD128-NEXT: v128.const $push3=, 0x1.4p2, 0x1.4p2, 0x1.4p2, 0x1.4p2
-; SIMD128-NEXT: local.tee $push2=, $1=, $pop3
-; SIMD128-NEXT: f32x4.gt $push0=, $0, $1
-; SIMD128-NEXT: v128.bitselect $push1=, $pop2, $0, $pop0
+; SIMD128-NEXT: v128.const $push0=, 0x1.4p2, 0x1.4p2, 0x1.4p2, 0x1.4p2
+; SIMD128-NEXT: f32x4.pmin $push1=, $pop0, $0
; SIMD128-NEXT: return $pop1
;
; SIMD128-FAST-LABEL: min_unordered_v4f32:
; SIMD128-FAST: .functype min_unordered_v4f32 (v128) -> (v128)
; SIMD128-FAST-NEXT: # %bb.0:
-; SIMD128-FAST-NEXT: v128.const $push3=, 0x1.4p2, 0x1.4p2, 0x1.4p2, 0x1.4p2
-; SIMD128-FAST-NEXT: local.tee $push2=, $1=, $pop3
-; SIMD128-FAST-NEXT: f32x4.gt $push1=, $0, $1
-; SIMD128-FAST-NEXT: v128.bitselect $push0=, $pop2, $0, $pop1
+; SIMD128-FAST-NEXT: v128.const $push1=, 0x1.4p2, 0x1.4p2, 0x1.4p2, 0x1.4p2
+; SIMD128-FAST-NEXT: f32x4.pmin $push0=, $pop1, $0
; SIMD128-FAST-NEXT: return $pop0
;
; NO-SIMD128-LABEL: min_unordered_v4f32:
; SIMD128: .functype max_unordered_v4f32 (v128) -> (v128)
; SIMD128-NEXT: # %bb.0:
; SIMD128-NEXT: v128.const $push0=, 0x1.4p2, 0x1.4p2, 0x1.4p2, 0x1.4p2
-; SIMD128-NEXT: f32x4.pmax $push1=, $0, $pop0
+; SIMD128-NEXT: f32x4.pmax $push1=, $pop0, $0
; SIMD128-NEXT: return $pop1
;
; SIMD128-FAST-LABEL: max_unordered_v4f32:
; SIMD128-FAST: .functype max_unordered_v4f32 (v128) -> (v128)
; SIMD128-FAST-NEXT: # %bb.0:
; SIMD128-FAST-NEXT: v128.const $push1=, 0x1.4p2, 0x1.4p2, 0x1.4p2, 0x1.4p2
-; SIMD128-FAST-NEXT: f32x4.pmax $push0=, $0, $pop1
+; SIMD128-FAST-NEXT: f32x4.pmax $push0=, $pop1, $0
; SIMD128-FAST-NEXT: return $pop0
;
; NO-SIMD128-LABEL: max_unordered_v4f32:
; SIMD128-LABEL: min_ordered_v4f32:
; SIMD128: .functype min_ordered_v4f32 (v128) -> (v128)
; SIMD128-NEXT: # %bb.0:
-; SIMD128-NEXT: v128.const $push3=, 0x1.4p2, 0x1.4p2, 0x1.4p2, 0x1.4p2
-; SIMD128-NEXT: local.tee $push2=, $1=, $pop3
-; SIMD128-NEXT: f32x4.le $push0=, $1, $0
-; SIMD128-NEXT: v128.bitselect $push1=, $pop2, $0, $pop0
+; SIMD128-NEXT: v128.const $push0=, 0x1.4p2, 0x1.4p2, 0x1.4p2, 0x1.4p2
+; SIMD128-NEXT: f32x4.pmin $push1=, $pop0, $0
; SIMD128-NEXT: return $pop1
;
; SIMD128-FAST-LABEL: min_ordered_v4f32:
; SIMD128-FAST: .functype min_ordered_v4f32 (v128) -> (v128)
; SIMD128-FAST-NEXT: # %bb.0:
-; SIMD128-FAST-NEXT: v128.const $push3=, 0x1.4p2, 0x1.4p2, 0x1.4p2, 0x1.4p2
-; SIMD128-FAST-NEXT: local.tee $push2=, $1=, $pop3
-; SIMD128-FAST-NEXT: f32x4.le $push1=, $1, $0
-; SIMD128-FAST-NEXT: v128.bitselect $push0=, $pop2, $0, $pop1
+; SIMD128-FAST-NEXT: v128.const $push1=, 0x1.4p2, 0x1.4p2, 0x1.4p2, 0x1.4p2
+; SIMD128-FAST-NEXT: f32x4.pmin $push0=, $pop1, $0
; SIMD128-FAST-NEXT: return $pop0
;
; NO-SIMD128-LABEL: min_ordered_v4f32:
; SIMD128-LABEL: max_ordered_v4f32:
; SIMD128: .functype max_ordered_v4f32 (v128) -> (v128)
; SIMD128-NEXT: # %bb.0:
-; SIMD128-NEXT: v128.const $push3=, 0x1.4p2, 0x1.4p2, 0x1.4p2, 0x1.4p2
-; SIMD128-NEXT: local.tee $push2=, $1=, $pop3
-; SIMD128-NEXT: f32x4.ge $push0=, $1, $0
-; SIMD128-NEXT: v128.bitselect $push1=, $pop2, $0, $pop0
+; SIMD128-NEXT: v128.const $push0=, 0x1.4p2, 0x1.4p2, 0x1.4p2, 0x1.4p2
+; SIMD128-NEXT: f32x4.pmax $push1=, $pop0, $0
; SIMD128-NEXT: return $pop1
;
; SIMD128-FAST-LABEL: max_ordered_v4f32:
; SIMD128-FAST: .functype max_ordered_v4f32 (v128) -> (v128)
; SIMD128-FAST-NEXT: # %bb.0:
-; SIMD128-FAST-NEXT: v128.const $push3=, 0x1.4p2, 0x1.4p2, 0x1.4p2, 0x1.4p2
-; SIMD128-FAST-NEXT: local.tee $push2=, $1=, $pop3
-; SIMD128-FAST-NEXT: f32x4.ge $push1=, $1, $0
-; SIMD128-FAST-NEXT: v128.bitselect $push0=, $pop2, $0, $pop1
+; SIMD128-FAST-NEXT: v128.const $push1=, 0x1.4p2, 0x1.4p2, 0x1.4p2, 0x1.4p2
+; SIMD128-FAST-NEXT: f32x4.pmax $push0=, $pop1, $0
; SIMD128-FAST-NEXT: return $pop0
;
; NO-SIMD128-LABEL: max_ordered_v4f32:
; SIMD128-LABEL: pmin_v4f32:
; SIMD128: .functype pmin_v4f32 (v128, v128) -> (v128)
; SIMD128-NEXT: # %bb.0:
-; SIMD128-NEXT: f32x4.pmin $push0=, $0, $1
+; SIMD128-NEXT: f32x4.pmin $push0=, $1, $0
; SIMD128-NEXT: return $pop0
;
; SIMD128-FAST-LABEL: pmin_v4f32:
; SIMD128-FAST: .functype pmin_v4f32 (v128, v128) -> (v128)
; SIMD128-FAST-NEXT: # %bb.0:
-; SIMD128-FAST-NEXT: f32x4.pmin $push0=, $0, $1
+; SIMD128-FAST-NEXT: f32x4.pmin $push0=, $1, $0
; SIMD128-FAST-NEXT: return $pop0
;
; NO-SIMD128-LABEL: pmin_v4f32:
; SIMD128-LABEL: pmax_v4f32:
; SIMD128: .functype pmax_v4f32 (v128, v128) -> (v128)
; SIMD128-NEXT: # %bb.0:
-; SIMD128-NEXT: f32x4.pmax $push0=, $0, $1
+; SIMD128-NEXT: f32x4.pmax $push0=, $1, $0
; SIMD128-NEXT: return $pop0
;
; SIMD128-FAST-LABEL: pmax_v4f32:
; SIMD128-FAST: .functype pmax_v4f32 (v128, v128) -> (v128)
; SIMD128-FAST-NEXT: # %bb.0:
-; SIMD128-FAST-NEXT: f32x4.pmax $push0=, $0, $1
+; SIMD128-FAST-NEXT: f32x4.pmax $push0=, $1, $0
; SIMD128-FAST-NEXT: return $pop0
;
; NO-SIMD128-LABEL: pmax_v4f32:
; SIMD128-LABEL: min_unordered_v2f64:
; SIMD128: .functype min_unordered_v2f64 (v128) -> (v128)
; SIMD128-NEXT: # %bb.0:
-; SIMD128-NEXT: v128.const $push3=, 0x1.4p2, 0x1.4p2
-; SIMD128-NEXT: local.tee $push2=, $1=, $pop3
-; SIMD128-NEXT: f64x2.gt $push0=, $0, $1
-; SIMD128-NEXT: v128.bitselect $push1=, $pop2, $0, $pop0
+; SIMD128-NEXT: v128.const $push0=, 0x1.4p2, 0x1.4p2
+; SIMD128-NEXT: f64x2.pmin $push1=, $pop0, $0
; SIMD128-NEXT: return $pop1
;
; SIMD128-FAST-LABEL: min_unordered_v2f64:
; SIMD128-FAST: .functype min_unordered_v2f64 (v128) -> (v128)
; SIMD128-FAST-NEXT: # %bb.0:
-; SIMD128-FAST-NEXT: v128.const $push3=, 0x1.4p2, 0x1.4p2
-; SIMD128-FAST-NEXT: local.tee $push2=, $1=, $pop3
-; SIMD128-FAST-NEXT: f64x2.gt $push1=, $0, $1
-; SIMD128-FAST-NEXT: v128.bitselect $push0=, $pop2, $0, $pop1
+; SIMD128-FAST-NEXT: v128.const $push1=, 0x1.4p2, 0x1.4p2
+; SIMD128-FAST-NEXT: f64x2.pmin $push0=, $pop1, $0
; SIMD128-FAST-NEXT: return $pop0
;
; NO-SIMD128-LABEL: min_unordered_v2f64:
; SIMD128: .functype max_unordered_v2f64 (v128) -> (v128)
; SIMD128-NEXT: # %bb.0:
; SIMD128-NEXT: v128.const $push0=, 0x1.4p2, 0x1.4p2
-; SIMD128-NEXT: f64x2.pmax $push1=, $0, $pop0
+; SIMD128-NEXT: f64x2.pmax $push1=, $pop0, $0
; SIMD128-NEXT: return $pop1
;
; SIMD128-FAST-LABEL: max_unordered_v2f64:
; SIMD128-FAST: .functype max_unordered_v2f64 (v128) -> (v128)
; SIMD128-FAST-NEXT: # %bb.0:
; SIMD128-FAST-NEXT: v128.const $push1=, 0x1.4p2, 0x1.4p2
-; SIMD128-FAST-NEXT: f64x2.pmax $push0=, $0, $pop1
+; SIMD128-FAST-NEXT: f64x2.pmax $push0=, $pop1, $0
; SIMD128-FAST-NEXT: return $pop0
;
; NO-SIMD128-LABEL: max_unordered_v2f64:
; SIMD128-LABEL: min_ordered_v2f64:
; SIMD128: .functype min_ordered_v2f64 (v128) -> (v128)
; SIMD128-NEXT: # %bb.0:
-; SIMD128-NEXT: v128.const $push3=, 0x1.4p2, 0x1.4p2
-; SIMD128-NEXT: local.tee $push2=, $1=, $pop3
-; SIMD128-NEXT: f64x2.le $push0=, $1, $0
-; SIMD128-NEXT: v128.bitselect $push1=, $pop2, $0, $pop0
+; SIMD128-NEXT: v128.const $push0=, 0x1.4p2, 0x1.4p2
+; SIMD128-NEXT: f64x2.pmin $push1=, $pop0, $0
; SIMD128-NEXT: return $pop1
;
; SIMD128-FAST-LABEL: min_ordered_v2f64:
; SIMD128-FAST: .functype min_ordered_v2f64 (v128) -> (v128)
; SIMD128-FAST-NEXT: # %bb.0:
-; SIMD128-FAST-NEXT: v128.const $push3=, 0x1.4p2, 0x1.4p2
-; SIMD128-FAST-NEXT: local.tee $push2=, $1=, $pop3
-; SIMD128-FAST-NEXT: f64x2.le $push1=, $1, $0
-; SIMD128-FAST-NEXT: v128.bitselect $push0=, $pop2, $0, $pop1
+; SIMD128-FAST-NEXT: v128.const $push1=, 0x1.4p2, 0x1.4p2
+; SIMD128-FAST-NEXT: f64x2.pmin $push0=, $pop1, $0
; SIMD128-FAST-NEXT: return $pop0
;
; NO-SIMD128-LABEL: min_ordered_v2f64:
; SIMD128-LABEL: max_ordered_v2f64:
; SIMD128: .functype max_ordered_v2f64 (v128) -> (v128)
; SIMD128-NEXT: # %bb.0:
-; SIMD128-NEXT: v128.const $push3=, 0x1.4p2, 0x1.4p2
-; SIMD128-NEXT: local.tee $push2=, $1=, $pop3
-; SIMD128-NEXT: f64x2.ge $push0=, $1, $0
-; SIMD128-NEXT: v128.bitselect $push1=, $pop2, $0, $pop0
+; SIMD128-NEXT: v128.const $push0=, 0x1.4p2, 0x1.4p2
+; SIMD128-NEXT: f64x2.pmax $push1=, $pop0, $0
; SIMD128-NEXT: return $pop1
;
; SIMD128-FAST-LABEL: max_ordered_v2f64:
; SIMD128-FAST: .functype max_ordered_v2f64 (v128) -> (v128)
; SIMD128-FAST-NEXT: # %bb.0:
-; SIMD128-FAST-NEXT: v128.const $push3=, 0x1.4p2, 0x1.4p2
-; SIMD128-FAST-NEXT: local.tee $push2=, $1=, $pop3
-; SIMD128-FAST-NEXT: f64x2.ge $push1=, $1, $0
-; SIMD128-FAST-NEXT: v128.bitselect $push0=, $pop2, $0, $pop1
+; SIMD128-FAST-NEXT: v128.const $push1=, 0x1.4p2, 0x1.4p2
+; SIMD128-FAST-NEXT: f64x2.pmax $push0=, $pop1, $0
; SIMD128-FAST-NEXT: return $pop0
;
; NO-SIMD128-LABEL: max_ordered_v2f64:
; SIMD128-LABEL: pmin_v2f64:
; SIMD128: .functype pmin_v2f64 (v128, v128) -> (v128)
; SIMD128-NEXT: # %bb.0:
-; SIMD128-NEXT: f64x2.pmin $push0=, $0, $1
+; SIMD128-NEXT: f64x2.pmin $push0=, $1, $0
; SIMD128-NEXT: return $pop0
;
; SIMD128-FAST-LABEL: pmin_v2f64:
; SIMD128-FAST: .functype pmin_v2f64 (v128, v128) -> (v128)
; SIMD128-FAST-NEXT: # %bb.0:
-; SIMD128-FAST-NEXT: f64x2.pmin $push0=, $0, $1
+; SIMD128-FAST-NEXT: f64x2.pmin $push0=, $1, $0
; SIMD128-FAST-NEXT: return $pop0
;
; NO-SIMD128-LABEL: pmin_v2f64:
; SIMD128-LABEL: pmax_v2f64:
; SIMD128: .functype pmax_v2f64 (v128, v128) -> (v128)
; SIMD128-NEXT: # %bb.0:
-; SIMD128-NEXT: f64x2.pmax $push0=, $0, $1
+; SIMD128-NEXT: f64x2.pmax $push0=, $1, $0
; SIMD128-NEXT: return $pop0
;
; SIMD128-FAST-LABEL: pmax_v2f64:
; SIMD128-FAST: .functype pmax_v2f64 (v128, v128) -> (v128)
; SIMD128-FAST-NEXT: # %bb.0:
-; SIMD128-FAST-NEXT: f64x2.pmax $push0=, $0, $1
+; SIMD128-FAST-NEXT: f64x2.pmax $push0=, $1, $0
; SIMD128-FAST-NEXT: return $pop0
;
; NO-SIMD128-LABEL: pmax_v2f64: