[PATCH] D104782: [AArch64] Custom lower <4 x i8> loads
Dave Green via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Jun 23 07:50:30 PDT 2021
dmgreen added inline comments.
================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:1129
+
+ setLoadExtAction(ISD::SEXTLOAD, MVT::v4i32, MVT::v4i8, Custom);
+ setLoadExtAction(ISD::ZEXTLOAD, MVT::v4i32, MVT::v4i8, Custom);
----------------
What about v4i16 as well? And EXTLOAD (which is probably fine to treat as a ZEXTLOAD).
================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:4481
+ SelectionDAG &DAG) const {
+ SDLoc Dl(Op);
+ LoadSDNode *LoadNode = cast<LoadSDNode>(Op);
----------------
It may be worth checking or asserting that the type is v4i32/v4i16.
Also DL is more common.
================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:4502
+ SDValue BC = DAG.getNode(ISD::BITCAST, Dl, MVT::v8i8, Vec);
+ SDValue Ext = DAG.getNode(ExtType, Dl, MVT::v8i16, BC,
+ DAG.getValueType(MVT::v8i8));
----------------
SIGN_EXTEND/ZERO_EXTEND do not need a second VT argument, I don't believe.
================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:4506
+ DAG.getConstant(0, Dl, MVT::i64));
+ Ext = DAG.getNode(ISD::SIGN_EXTEND, Dl, MVT::v4i32, Ext,
+ DAG.getValueType(MVT::v4i16));
----------------
ISD::SIGN_EXTEND > ExtType?
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D104782/new/
https://reviews.llvm.org/D104782
More information about the llvm-commits
mailing list