Skip to content

Commit 9e1d538

Browse files
sparker-armyuxuanchen1997
authored andcommitted
[WebAssembly] Ofast pmin/pmax pattern matchers (#100107)
Summary: With fast-math, the ordered setcc nodes are converted to setcc nodes which do not care about NaNs, so add patterns that use setlt, setle, setgt and setge. Test Plan: Reviewers: Subscribers: Tasks: Tags: Differential Revision: https://phabricator.intern.facebook.com/D60250651
1 parent 79ec1ea commit 9e1d538

File tree

3 files changed

+432
-28
lines changed

3 files changed

+432
-28
lines changed

llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1270,7 +1270,11 @@ def pmin : PatFrags<(ops node:$lhs, node:$rhs), [
12701270
(vselect (setolt $rhs, $lhs), $rhs, $lhs),
12711271
(vselect (setole $rhs, $lhs), $rhs, $lhs),
12721272
(vselect (setogt $lhs, $rhs), $rhs, $lhs),
1273-
(vselect (setoge $lhs, $rhs), $rhs, $lhs)
1273+
(vselect (setoge $lhs, $rhs), $rhs, $lhs),
1274+
(vselect (setlt $lhs, $rhs), $lhs, $rhs),
1275+
(vselect (setle $lhs, $rhs), $lhs, $rhs),
1276+
(vselect (setgt $lhs, $rhs), $rhs, $lhs),
1277+
(vselect (setge $lhs, $rhs), $rhs, $lhs)
12741278
]>;
12751279
defm PMIN : SIMDBinaryFP<pmin, "pmin", 234>;
12761280

@@ -1279,7 +1283,11 @@ def pmax : PatFrags<(ops node:$lhs, node:$rhs), [
12791283
(vselect (setogt $rhs, $lhs), $rhs, $lhs),
12801284
(vselect (setoge $rhs, $lhs), $rhs, $lhs),
12811285
(vselect (setolt $lhs, $rhs), $rhs, $lhs),
1282-
(vselect (setole $lhs, $rhs), $rhs, $lhs)
1286+
(vselect (setole $lhs, $rhs), $rhs, $lhs),
1287+
(vselect (setgt $lhs, $rhs), $lhs, $rhs),
1288+
(vselect (setge $lhs, $rhs), $lhs, $rhs),
1289+
(vselect (setlt $lhs, $rhs), $rhs, $lhs),
1290+
(vselect (setle $lhs, $rhs), $rhs, $lhs)
12831291
]>;
12841292
defm PMAX : SIMDBinaryFP<pmax, "pmax", 235>;
12851293

0 commit comments

Comments
 (0)