reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
6231 SDValue BitWidthC = DAG.getConstant(VT.getScalarSizeInBits(), sdl, VT); 6231 SDValue BitWidthC = DAG.getConstant(VT.getScalarSizeInBits(), sdl, VT); 6232 SDValue Zero = DAG.getConstant(0, sdl, VT); 6233 SDValue ShAmt = DAG.getNode(ISD::UREM, sdl, VT, Z, BitWidthC); 6236 if (TLI.isOperationLegalOrCustom(FunnelOpcode, VT)) { 6237 setValue(&I, DAG.getNode(FunnelOpcode, sdl, VT, X, Y, Z)); 6244 if (X == Y && isPowerOf2_32(VT.getScalarSizeInBits())) { 6246 if (TLI.isOperationLegalOrCustom(RotateOpcode, VT)) { 6247 setValue(&I, DAG.getNode(RotateOpcode, sdl, VT, X, Z)); 6253 if (TLI.isOperationLegalOrCustom(RotateOpcode, VT)) { 6255 SDValue NegShAmt = DAG.getNode(ISD::SUB, sdl, VT, Zero, Z); 6256 setValue(&I, DAG.getNode(RotateOpcode, sdl, VT, X, NegShAmt)); 6262 SDValue NegZ = DAG.getNode(ISD::SUB, sdl, VT, Zero, Z); 6263 SDValue NShAmt = DAG.getNode(ISD::UREM, sdl, VT, NegZ, BitWidthC); 6264 SDValue ShX = DAG.getNode(ISD::SHL, sdl, VT, X, IsFSHL ? ShAmt : NShAmt); 6265 SDValue ShY = DAG.getNode(ISD::SRL, sdl, VT, X, IsFSHL ? NShAmt : ShAmt); 6266 setValue(&I, DAG.getNode(ISD::OR, sdl, VT, ShX, ShY)); 6272 SDValue InvShAmt = DAG.getNode(ISD::SUB, sdl, VT, BitWidthC, ShAmt); 6273 SDValue ShX = DAG.getNode(ISD::SHL, sdl, VT, X, IsFSHL ? ShAmt : InvShAmt); 6274 SDValue ShY = DAG.getNode(ISD::SRL, sdl, VT, Y, IsFSHL ? InvShAmt : ShAmt); 6275 SDValue Or = DAG.getNode(ISD::OR, sdl, VT, ShX, ShY); 6280 if (VT.isVector()) 6281 CCVT = EVT::getVectorVT(*Context, CCVT, VT.getVectorNumElements()); 6286 setValue(&I, DAG.getSelect(sdl, VT, IsZeroShift, IsFSHL ? X : Y, Or));