Home | History | Annotate | Download | only in SelectionDAG

Lines Matching refs:BSWAP

2716 /// MatchBSwapHWord - Match (a >> 8) | (a << 8) as (bswap a) >> 16
2726 if (!TLI.isOperationLegal(ISD::BSWAP, VT))
2805 SDValue Res = DAG.getNode(ISD::BSWAP, N->getDebugLoc(), VT, N00);
2882 /// MatchBSwapHWord - Match a 32-bit packed halfword bswap. That is
2884 /// => (rotl (bswap x), 16)
2892 if (!TLI.isOperationLegal(ISD::BSWAP, VT))
2939 SDValue BSwap = DAG.getNode(ISD::BSWAP, N->getDebugLoc(), VT,
2942 // Result of the bswap should be rotated by 16. If it's not legal, than
2946 return DAG.getNode(ISD::ROTL, N->getDebugLoc(), VT, BSwap, ShAmt);
2948 return DAG.getNode(ISD::ROTR, N->getDebugLoc(), VT, BSwap, ShAmt);
2950 DAG.getNode(ISD::SHL, N->getDebugLoc(), VT, BSwap, ShAmt),
2951 DAG.getNode(ISD::SRL, N->getDebugLoc(), VT, BSwap, ShAmt));
2990 // Recognize halfword bswaps as (bswap + rotl 16) or (bswap + shl 16)
2991 SDValue BSwap = MatchBSwapHWord(N, N0, N1);
2992 if (BSwap.getNode() != 0)
2993 return BSwap;
2994 BSwap = MatchBSwapHWordLow(N, N0, N1);
2995 if (BSwap.getNode() != 0)
2996 return BSwap;
5159 // Form (sext_inreg (bswap >> 16)) or (sext_inreg (rotl (bswap) 16))
5161 SDValue BSwap = MatchBSwapHWordLow(N0.getNode(), N0.getOperand(0),
5163 if (BSwap.getNode() != 0)
5165 BSwap, N1);