[PATCH] D73092: [VE] i<N> and fp32/64 arguments, return values and constants

Matt Arsenault via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 21 04:51:54 PST 2020


arsenm added inline comments.


================
Comment at: llvm/lib/Target/VE/VEISelLowering.cpp:94
+    // in the high bits of the register.
+    if (VA.getValVT() == MVT::i32 && VA.needsCustom()) {
+      OutVal = DAG.getNode(ISD::SHL, DL, MVT::i64, OutVal,
----------------
I think this bit is the most interesting part to test here, but I don't see a test for this


================
Comment at: llvm/lib/Target/VE/VEInstrInfo.td:420-423
+def : Pat<(sext_inreg I32:$src, i1),
+          (SRAri (SLAri $src, 31), 31)>;
+def : Pat<(sext_inreg I64:$src, i1),
+          (SRAXri (SLLri $src, 63), 63)>;
----------------
If you're just going to implement these with the shifts, you're probably better off making these expand instead for the combining value


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D73092/new/

https://reviews.llvm.org/D73092





More information about the llvm-commits mailing list