[PATCH] D77590: [ARM] MVE saturating truncates
Sjoerd Meijer via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 7 12:32:26 PDT 2020
SjoerdMeijer added a comment.
About the tests: if I haven't missed anything, I don't see any VQMOVNT variants being generated?
================
Comment at: llvm/lib/Target/ARM/ARMISelLowering.cpp:14758
+ return SDValue();
+
+ auto IsSignedSaturate = [&](SDNode *Min, SDNode *Max) {
----------------
Can we do an early exit here?
if (VT != MVT::v4i32 || VT != MVT::v8i16)
return SDValue();
I think that then also saves a few else-clauses in the different if-elseif-else statements below.
================
Comment at: llvm/lib/Target/ARM/ARMISelLowering.cpp:14796
+
+ // Create a VQMONVB, Signed extended in to the top half. That extend will
+ // hopefully be removed if only the bottom bits are demanded (though a
----------------
Typo? `VQMONVB` -> `VQMOVB`?
Also: top half -> bottom half?
================
Comment at: llvm/lib/Target/ARM/ARMISelLowering.cpp:14840
+
+ // Create a VQMONVB, ZExt in to the top half with an AND. That extend will
+ // hopefully be removed if only the bottom bits are demanded (though a
----------------
now starting to doubt if I read the ARMARM correct, but same typo here?
================
Comment at: llvm/lib/Target/ARM/ARMISelLowering.h:205
+ // MVE Saturating truncates
+ VQMOVNs,
----------------
nit: perhaps a comment explaining more what the opcode is:
// Vector (V) Saturating (Q) Move and Narrow (N), signed/unsigned (s/u)
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D77590/new/
https://reviews.llvm.org/D77590
More information about the llvm-commits
mailing list