• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/contrib/llvm-project/llvm/lib/Target/X86/

Lines Matching refs:BEXTR

1967 // matched to a BEXTR later. Returns false if the simplification is performed.
1978 // Only do this if BEXTR will be matched by matchBEXTRFromAndImm.
2300 // Try to fold the mask and shift into BEXTR and scale.
3274 // See if this is an X & Mask that we can match to BEXTR/BZHI.
3285 // BEXTR is BMI instruction, BZHI is BMI2 instruction. We need at least one.
3298 // Else, if we only have BMI1's BEXTR, we require one-use.
3490 // Else, emitting BEXTR requires one more step.
3491 // The 'control' of BEXTR has the pattern of:
3529 // And finally, form the BEXTR itself.
3530 SDValue Extract = CurDAG->getNode(X86ISD::BEXTR, DL, XVT, X, Control);
3544 // See if this is an (X >> C1) & C2 that we can match to BEXTR/BEXTRI.
3553 // we should only do this if the BEXTR instruction is implemented well.
3557 // BEXTR?
3590 // TODO: If we are able to fold a load, BEXTR might still be better than AH.
3599 // BZHI, if available, is always fast, unlike BEXTR. But even if we decide
3600 // that we can't use BEXTR, it is only worthwhile using BZHI if the mask
3610 // If we can't make use of BEXTR then we can't fuse shift+mask stages.
3619 // The 'control' of BEXTR has the pattern of:
3628 assert(Subtarget->hasBMI() && "We must have BMI1's BEXTR then.");
3748 // so we are not afraid that we might mess up BZHI/BEXTR pattern.
5117 // If we are comparing (and (shr X, C, Mask) with 0, emit a BEXTR followed
5120 // TODO: Should we check the users and use the BEXTR flags directly?
5125 SDValue BEXTR = SDValue(NewNode, 0);
5126 NewNode = CurDAG->getMachineNode(TestOpc, dl, MVT::i32, BEXTR, BEXTR);