[PATCH] [PATCH][ARM] Fix issue with UMLAL (unsigned multiple accumulate long) lowering

Jyoti Allur jyoti.allur at samsung.com
Wed Jun 3 09:11:32 PDT 2015


Hi Matthias,
I have just realized that this is incorrect.

  EVT VT = MULOp.getValueType();
      unsigned VTBits = VT.getSizeInBits();
      FinalOpc = (VTBits & 0x8000) ? ARMISD::SMLAL : ARMISD::UMLAL;
  }

method to choose FinalOpc is incorrect as VTBits only contains size not the actual result of MUL.
ISD::MUL does not indicate if its signed multiply or unsigned multiply thus making it difficult to choose SMLAL or UMLAL.
I need to be able to check if one of the operands of ISD::MUL were sign extended or not to assign SMLAL. But this information is not available in backend, it is available in DAGCombining though.Seem to have hit a roadblock, any suggestion would of help to close.


REPOSITORY
  rL LLVM

http://reviews.llvm.org/D9881

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/






More information about the llvm-commits mailing list