reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

gen/lib/Target/ARM/ARMGenDAGISel.inc
53861   case 0: return (Subtarget->hasV6Ops()) && (!Subtarget->isThumb());
53861   case 0: return (Subtarget->hasV6Ops()) && (!Subtarget->isThumb());
53862   case 1: return (Subtarget->isThumb2());
53863   case 2: return (Subtarget->hasDSP()) && (Subtarget->isThumb2());
53863   case 2: return (Subtarget->hasDSP()) && (Subtarget->isThumb2());
53864   case 3: return (Subtarget->hasV6T2Ops()) && (!Subtarget->isThumb());
53864   case 3: return (Subtarget->hasV6T2Ops()) && (!Subtarget->isThumb());
53865   case 4: return (!Subtarget->isThumb());
53866   case 5: return (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb());
53866   case 5: return (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb());
53867   case 6: return (Subtarget->isThumb()) && (Subtarget->isThumb1Only());
53867   case 6: return (Subtarget->isThumb()) && (Subtarget->isThumb1Only());
53868   case 7: return (Subtarget->hasNEON());
53869   case 8: return (Subtarget->hasMVEIntegerOps());
53870   case 9: return (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps());
53870   case 9: return (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps());
53870   case 9: return (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps());
53871   case 10: return (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps());
53871   case 10: return (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps());
53871   case 10: return (Subtarget->hasDSP()) && (Subtarget->isThumb2()) && (Subtarget->useMulOps());
53872   case 11: return (Subtarget->hasV8MBaselineOps());
53873   case 12: return (Subtarget->hasV6Ops()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps());
53873   case 12: return (Subtarget->hasV6Ops()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps());
53873   case 12: return (Subtarget->hasV6Ops()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps());
53874   case 13: return (!Subtarget->isThumb()) && (!Subtarget->hasV6Ops());
53874   case 13: return (!Subtarget->isThumb()) && (!Subtarget->hasV6Ops());
53875   case 14: return (Subtarget->isThumb2()) && (Subtarget->useMulOps());
53875   case 14: return (Subtarget->isThumb2()) && (Subtarget->useMulOps());
53876   case 15: return (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (Subtarget->isThumb());
53876   case 15: return (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (Subtarget->isThumb());
53876   case 15: return (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (Subtarget->isThumb());
53877   case 16: return (Subtarget->hasV6Ops()) && (Subtarget->isThumb()) && (Subtarget->isThumb1Only());
53877   case 16: return (Subtarget->hasV6Ops()) && (Subtarget->isThumb()) && (Subtarget->isThumb1Only());
53877   case 16: return (Subtarget->hasV6Ops()) && (Subtarget->isThumb()) && (Subtarget->isThumb1Only());
53878   case 17: return (Subtarget->hasMVEFloatOps());
53879   case 18: return (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (!Subtarget->isThumb());
53879   case 18: return (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (!Subtarget->isThumb());
53879   case 18: return (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (!Subtarget->isThumb());
53880   case 19: return (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (Subtarget->isThumb2());
53880   case 19: return (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (Subtarget->isThumb2());
53880   case 19: return (Subtarget->hasCRC()) && (Subtarget->hasV8Ops()) && (Subtarget->isThumb2());
53881   case 20: return (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb());
53881   case 20: return (Subtarget->hasV5TEOps()) && (!Subtarget->isThumb());
53882   case 21: return (Subtarget->hasFullFP16());
53883   case 22: return (Subtarget->hasFPARMv8Base());
53884   case 23: return (Subtarget->hasFP64()) && (Subtarget->hasFPARMv8Base());
53884   case 23: return (Subtarget->hasFP64()) && (Subtarget->hasFPARMv8Base());
53885   case 24: return (Subtarget->hasNEON()) && (Subtarget->hasV8Ops());
53885   case 24: return (Subtarget->hasNEON()) && (Subtarget->hasV8Ops());
53886   case 25: return (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops());
53886   case 25: return (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops());
53886   case 25: return (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (Subtarget->hasV8Ops());
53887   case 26: return (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base());
53887   case 26: return (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base());
53888   case 27: return (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base());
53888   case 27: return (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base());
53889   case 28: return (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps());
53889   case 28: return (Subtarget->hasNEON()) && (Subtarget->hasV8_1aOps());
53890   case 29: return (Subtarget->hasDotProd());
53891   case 30: return (Subtarget->hasFullFP16()) && (Subtarget->hasNEON());
53891   case 30: return (Subtarget->hasFullFP16()) && (Subtarget->hasNEON());
53892   case 31: return (Subtarget->hasCrypto()) && (Subtarget->hasV8Ops());
53892   case 31: return (Subtarget->hasCrypto()) && (Subtarget->hasV8Ops());
53893   case 32: return (Subtarget->hasFP16()) && (Subtarget->hasNEON());
53893   case 32: return (Subtarget->hasFP16()) && (Subtarget->hasNEON());
53894   case 33: return (Subtarget->hasFPRegs());
53895   case 34: return (Subtarget->hasNEON()) && (MF->getDataLayout().isLittleEndian());
53896   case 35: return (Subtarget->hasNEON()) && (MF->getDataLayout().isBigEndian());
53897   case 36: return (Subtarget->hasFPRegs16());
53898   case 37: return (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isLittleEndian());
53899   case 38: return (Subtarget->hasMVEIntegerOps()) && (MF->getDataLayout().isBigEndian());
53900   case 39: return (Subtarget->hasVFP2Base());
53901   case 40: return (!Subtarget->isThumb()) && (!Subtarget->hasV8Ops());
53901   case 40: return (!Subtarget->isThumb()) && (!Subtarget->hasV8Ops());
53902   case 41: return (Subtarget->isThumb2()) && (!Subtarget->hasV8Ops());
53902   case 41: return (Subtarget->isThumb2()) && (!Subtarget->hasV8Ops());
53903   case 42: return (Subtarget->isThumb()) && (Subtarget->isTargetWindows());
53903   case 42: return (Subtarget->isThumb()) && (Subtarget->isTargetWindows());
53904   case 43: return (Subtarget->isThumb());
53905   case 44: return (Subtarget->hasV6MOps()) && (Subtarget->isThumb());
53905   case 44: return (Subtarget->hasV6MOps()) && (Subtarget->isThumb());
53906   case 45: return (Subtarget->hasV7Ops()) && (!Subtarget->isThumb());
53906   case 45: return (Subtarget->hasV7Ops()) && (!Subtarget->isThumb());
53907   case 46: return (Subtarget->hasDataBarrier()) && (!Subtarget->isThumb());
53907   case 46: return (Subtarget->hasDataBarrier()) && (!Subtarget->isThumb());
53908   case 47: return (Subtarget->hasDataBarrier()) && (Subtarget->isThumb());
53908   case 47: return (Subtarget->hasDataBarrier()) && (Subtarget->isThumb());
53909   case 48: return (Subtarget->hasV6KOps()) && (!Subtarget->isThumb());
53909   case 48: return (Subtarget->hasV6KOps()) && (!Subtarget->isThumb());
53910   case 49: return (Subtarget->hasV7Clrex()) && (Subtarget->isThumb());
53910   case 49: return (Subtarget->hasV7Clrex()) && (Subtarget->isThumb());
53911   case 50: return (Subtarget->hasMPExtension()) && (Subtarget->hasV7Ops()) && (Subtarget->isThumb2());
53911   case 50: return (Subtarget->hasMPExtension()) && (Subtarget->hasV7Ops()) && (Subtarget->isThumb2());
53911   case 50: return (Subtarget->hasMPExtension()) && (Subtarget->hasV7Ops()) && (Subtarget->isThumb2());
53912   case 51: return (Subtarget->hasMPExtension()) && (Subtarget->hasV7Ops()) && (!Subtarget->isThumb());
53912   case 51: return (Subtarget->hasMPExtension()) && (Subtarget->hasV7Ops()) && (!Subtarget->isThumb());
53912   case 51: return (Subtarget->hasMPExtension()) && (Subtarget->hasV7Ops()) && (!Subtarget->isThumb());
53913   case 52: return (Subtarget->hasV7Ops()) && (Subtarget->isThumb2());
53913   case 52: return (Subtarget->hasV7Ops()) && (Subtarget->isThumb2());
53914   case 53: return (Subtarget->hasV8_1MMainlineOps());
53915   case 54: return (Subtarget->hasFPRegs64());
53916   case 55: return (!Subtarget->useMovt() || !Subtarget->allowPositionIndependentMovt()) && (!Subtarget->isThumb());
53916   case 55: return (!Subtarget->useMovt() || !Subtarget->allowPositionIndependentMovt()) && (!Subtarget->isThumb());
53916   case 55: return (!Subtarget->useMovt() || !Subtarget->allowPositionIndependentMovt()) && (!Subtarget->isThumb());
53917   case 56: return (!Subtarget->isThumb()) && (Subtarget->useMovt() && Subtarget->allowPositionIndependentMovt());
53917   case 56: return (!Subtarget->isThumb()) && (Subtarget->useMovt() && Subtarget->allowPositionIndependentMovt());
53917   case 56: return (!Subtarget->isThumb()) && (Subtarget->useMovt() && Subtarget->allowPositionIndependentMovt());
53918   case 57: return (MF->getDataLayout().isLittleEndian()) && (Subtarget->isThumb()) && (Subtarget->isThumb1Only());
53918   case 57: return (MF->getDataLayout().isLittleEndian()) && (Subtarget->isThumb()) && (Subtarget->isThumb1Only());
53919   case 58: return (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (!Subtarget->isThumb());
53919   case 58: return (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (!Subtarget->isThumb());
53919   case 58: return (Subtarget->hasAcquireRelease()) && (Subtarget->hasV7Clrex()) && (!Subtarget->isThumb());
53920   case 59: return (Subtarget->hasV6T2Ops()) && (Subtarget->isThumb2());
53920   case 59: return (Subtarget->hasV6T2Ops()) && (Subtarget->isThumb2());
53921   case 60: return (Subtarget->hasV5TOps()) && (!Subtarget->isThumb());
53921   case 60: return (Subtarget->hasV5TOps()) && (!Subtarget->isThumb());
53922   case 61: return (!Subtarget->isThumb()) && (!Subtarget->hasV6Ops()) && (Subtarget->useMulOps());
53922   case 61: return (!Subtarget->isThumb()) && (!Subtarget->hasV6Ops()) && (Subtarget->useMulOps());
53922   case 61: return (!Subtarget->isThumb()) && (!Subtarget->hasV6Ops()) && (Subtarget->useMulOps());
53923   case 62: return (Subtarget->hasV6T2Ops()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps());
53923   case 62: return (Subtarget->hasV6T2Ops()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps());
53923   case 62: return (Subtarget->hasV6T2Ops()) && (!Subtarget->isThumb()) && (Subtarget->useMulOps());
53924   case 63: return (Subtarget->isThumb1Only());
53925   case 64: return (!Subtarget->isMClass()) && (Subtarget->isThumb2());
53925   case 64: return (!Subtarget->isMClass()) && (Subtarget->isThumb2());
53926   case 65: return (Subtarget->hasMVEIntegerOps()) && (Subtarget->hasV8_1MMainlineOps());
53926   case 65: return (Subtarget->hasMVEIntegerOps()) && (Subtarget->hasV8_1MMainlineOps());
53927   case 66: return (Subtarget->hasV5TOps()) && (Subtarget->isThumb());
53927   case 66: return (Subtarget->hasV5TOps()) && (Subtarget->isThumb());
53928   case 67: return (Subtarget->hasV4TOps()) && (!Subtarget->isThumb());
53928   case 67: return (Subtarget->hasV4TOps()) && (!Subtarget->isThumb());
53929   case 68: return (!Subtarget->isThumb()) && (!Subtarget->hasV4TOps());
53929   case 68: return (!Subtarget->isThumb()) && (!Subtarget->hasV4TOps());
53930   case 69: return (!Subtarget->useMovt()) && (!Subtarget->isThumb());
53930   case 69: return (!Subtarget->useMovt()) && (!Subtarget->isThumb());
53931   case 70: return (!Subtarget->isThumb()) && (Subtarget->useMovt());
53931   case 70: return (!Subtarget->isThumb()) && (Subtarget->useMovt());
53932   case 71: return (!Subtarget->useMovt()) && (Subtarget->isThumb());
53932   case 71: return (!Subtarget->useMovt()) && (Subtarget->isThumb());
53933   case 72: return (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb()) && (Subtarget->useMovt());
53933   case 72: return (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb()) && (Subtarget->useMovt());
53933   case 72: return (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb()) && (Subtarget->useMovt());
53934   case 73: return (Subtarget->isThumb2()) && (Subtarget->useMovt());
53934   case 73: return (Subtarget->isThumb2()) && (Subtarget->useMovt());
53935   case 74: return (!Subtarget->useMovt() || !Subtarget->allowPositionIndependentMovt()) && (Subtarget->isThumb());
53935   case 74: return (!Subtarget->useMovt() || !Subtarget->allowPositionIndependentMovt()) && (Subtarget->isThumb());
53935   case 74: return (!Subtarget->useMovt() || !Subtarget->allowPositionIndependentMovt()) && (Subtarget->isThumb());
53936   case 75: return (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb()) && (Subtarget->useMovt() && Subtarget->allowPositionIndependentMovt());
53936   case 75: return (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb()) && (Subtarget->useMovt() && Subtarget->allowPositionIndependentMovt());
53936   case 75: return (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb()) && (Subtarget->useMovt() && Subtarget->allowPositionIndependentMovt());
53936   case 75: return (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb()) && (Subtarget->useMovt() && Subtarget->allowPositionIndependentMovt());
53937   case 76: return (Subtarget->isThumb2()) && (Subtarget->useMovt() && Subtarget->allowPositionIndependentMovt());
53937   case 76: return (Subtarget->isThumb2()) && (Subtarget->useMovt() && Subtarget->allowPositionIndependentMovt());
53937   case 76: return (Subtarget->isThumb2()) && (Subtarget->useMovt() && Subtarget->allowPositionIndependentMovt());
53938   case 77: return (Subtarget->hasFPRegs()) && (!Subtarget->hasSlowVGETLNi32());
53938   case 77: return (Subtarget->hasFPRegs()) && (!Subtarget->hasSlowVGETLNi32());
53939   case 78: return (Subtarget->hasNEON()) && (Subtarget->hasSlowVGETLNi32());
53939   case 78: return (Subtarget->hasNEON()) && (Subtarget->hasSlowVGETLNi32());
53940   case 79: return (!Subtarget->hasSlowVGETLNi32()) && (Subtarget->hasNEON());
53940   case 79: return (!Subtarget->hasSlowVGETLNi32()) && (Subtarget->hasNEON());
53941   case 80: return (Subtarget->hasNEON()) && (Subtarget->useNEONForSinglePrecisionFP());
53941   case 80: return (Subtarget->hasNEON()) && (Subtarget->useNEONForSinglePrecisionFP());
53942   case 81: return (Subtarget->isThumb()) && (Subtarget->useMovt());
53942   case 81: return (Subtarget->isThumb()) && (Subtarget->useMovt());
53943   case 82: return (!Subtarget->isThumb()) && (Subtarget->useNaClTrap());
53943   case 82: return (!Subtarget->isThumb()) && (Subtarget->useNaClTrap());
53944   case 83: return (!Subtarget->useNaClTrap()) && (!Subtarget->isThumb());
53944   case 83: return (!Subtarget->useNaClTrap()) && (!Subtarget->isThumb());
53945   case 84: return (!Subtarget->isThumb()) && (!Subtarget->hasV5TOps());
53945   case 84: return (!Subtarget->isThumb()) && (!Subtarget->hasV5TOps());
53946   case 85: return (Subtarget->isThumb()) && (!Subtarget->hasV5TOps());
53946   case 85: return (Subtarget->isThumb()) && (!Subtarget->hasV5TOps());
53947   case 86: return (Subtarget->hasDivideInARMMode()) && (!Subtarget->isThumb());
53947   case 86: return (Subtarget->hasDivideInARMMode()) && (!Subtarget->isThumb());
53948   case 87: return (Subtarget->hasDivideInThumbMode()) && (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb());
53948   case 87: return (Subtarget->hasDivideInThumbMode()) && (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb());
53948   case 87: return (Subtarget->hasDivideInThumbMode()) && (Subtarget->hasV8MBaselineOps()) && (Subtarget->isThumb());
53949   case 88: return (!Subtarget->isThumb()) && (!Subtarget->isReadTPHard());
53949   case 88: return (!Subtarget->isThumb()) && (!Subtarget->isReadTPHard());
53950   case 89: return (!Subtarget->isThumb()) && (Subtarget->isReadTPHard());
53950   case 89: return (!Subtarget->isThumb()) && (Subtarget->isReadTPHard());
53951   case 90: return (!Subtarget->isTargetWindows()) && (Subtarget->isThumb());
53951   case 90: return (!Subtarget->isTargetWindows()) && (Subtarget->isThumb());
53952   case 91: return (Subtarget->hasFPRegs()) && (Subtarget->preferVMOVSR() ||!Subtarget->useNEONForSinglePrecisionFP());
53952   case 91: return (Subtarget->hasFPRegs()) && (Subtarget->preferVMOVSR() ||!Subtarget->useNEONForSinglePrecisionFP());
53952   case 91: return (Subtarget->hasFPRegs()) && (Subtarget->preferVMOVSR() ||!Subtarget->useNEONForSinglePrecisionFP());
53953   case 92: return (!Subtarget->preferVMOVSR() &&Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasNEON());
53953   case 92: return (!Subtarget->preferVMOVSR() &&Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasNEON());
53953   case 92: return (!Subtarget->preferVMOVSR() &&Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasNEON());
53954   case 93: return (Subtarget->hasFP16());
53955   case 94: return (Subtarget->hasVFP2Base()) && (!Subtarget->isThumb());
53955   case 94: return (Subtarget->hasVFP2Base()) && (!Subtarget->isThumb());
53956   case 95: return (!Subtarget->isThumb()) && (!Subtarget->hasVFP2Base());
53956   case 95: return (!Subtarget->isThumb()) && (!Subtarget->hasVFP2Base());
53957   case 96: return (Subtarget->hasVFP2Base()) && (Subtarget->isThumb2());
53957   case 96: return (Subtarget->hasVFP2Base()) && (Subtarget->isThumb2());
53958   case 97: return (Subtarget->isThumb2()) && (!Subtarget->hasVFP2Base());
53958   case 97: return (Subtarget->isThumb2()) && (!Subtarget->hasVFP2Base());
53959   case 98: return (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()));
53959   case 98: return (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()));
53959   case 98: return (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()));
53959   case 98: return (Subtarget->hasFP64()) && (Subtarget->hasVFP2Base()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()));
53960   case 99: return (Subtarget->hasFP64()) && (Subtarget->hasVFP4Base()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx());
53960   case 99: return (Subtarget->hasFP64()) && (Subtarget->hasVFP4Base()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx());
53960   case 99: return (Subtarget->hasFP64()) && (Subtarget->hasVFP4Base()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx());
53960   case 99: return (Subtarget->hasFP64()) && (Subtarget->hasVFP4Base()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx());
53960   case 99: return (Subtarget->hasFP64()) && (Subtarget->hasVFP4Base()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx());
53961   case 100: return (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()));
53961   case 100: return (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()));
53961   case 100: return (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()));
53961   case 100: return (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP2Base()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()));
53962   case 101: return (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP4Base()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx());
53962   case 101: return (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP4Base()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx());
53962   case 101: return (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP4Base()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx());
53962   case 101: return (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP4Base()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx());
53962   case 101: return (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasVFP4Base()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx());
53963   case 102: return (Subtarget->hasFullFP16()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()));
53963   case 102: return (Subtarget->hasFullFP16()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()));
53963   case 102: return (Subtarget->hasFullFP16()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()));
53964   case 103: return (Subtarget->hasFullFP16()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx());
53964   case 103: return (Subtarget->hasFullFP16()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx());
53964   case 103: return (Subtarget->hasFullFP16()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx());
53964   case 103: return (Subtarget->hasFullFP16()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx());
53965   case 104: return (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasFullFP16()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()));
53965   case 104: return (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasFullFP16()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()));
53965   case 104: return (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasFullFP16()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()));
53965   case 104: return (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasFullFP16()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()));
53966   case 105: return (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasFullFP16()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx());
53966   case 105: return (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasFullFP16()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx());
53966   case 105: return (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasFullFP16()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx());
53966   case 105: return (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasFullFP16()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx());
53966   case 105: return (!Subtarget->useNEONForSinglePrecisionFP()) && (Subtarget->hasFullFP16()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx());
53967   case 106: return (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize())) && (Subtarget->useNEONForSinglePrecisionFP());
53967   case 106: return (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize())) && (Subtarget->useNEONForSinglePrecisionFP());
53967   case 106: return (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize())) && (Subtarget->useNEONForSinglePrecisionFP());
53967   case 106: return (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize())) && (Subtarget->useNEONForSinglePrecisionFP());
53968   case 107: return (Subtarget->hasVFP4Base()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx()) && (Subtarget->useNEONForSinglePrecisionFP());
53968   case 107: return (Subtarget->hasVFP4Base()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx()) && (Subtarget->useNEONForSinglePrecisionFP());
53968   case 107: return (Subtarget->hasVFP4Base()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx()) && (Subtarget->useNEONForSinglePrecisionFP());
53968   case 107: return (Subtarget->hasVFP4Base()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx()) && (Subtarget->useNEONForSinglePrecisionFP());
53968   case 107: return (Subtarget->hasVFP4Base()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx()) && (Subtarget->useNEONForSinglePrecisionFP());
53969   case 108: return (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()));
53969   case 108: return (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()));
53969   case 108: return (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()));
53970   case 109: return (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()));
53970   case 109: return (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()));
53970   case 109: return (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()));
53970   case 109: return (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && (((Subtarget->useFPVMLx() &&  TM.Options.AllowFPOpFusion != FPOpFusion::Fast) ||Subtarget->hasMinSize()));
53971   case 110: return (Subtarget->hasNEON()) && (Subtarget->hasVFP4Base()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx());
53971   case 110: return (Subtarget->hasNEON()) && (Subtarget->hasVFP4Base()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx());
53971   case 110: return (Subtarget->hasNEON()) && (Subtarget->hasVFP4Base()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx());
53971   case 110: return (Subtarget->hasNEON()) && (Subtarget->hasVFP4Base()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx());
53971   case 110: return (Subtarget->hasNEON()) && (Subtarget->hasVFP4Base()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx());
53972   case 111: return (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx());
53972   case 111: return (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx());
53972   case 111: return (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx());
53972   case 111: return (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx());
53972   case 111: return (Subtarget->hasFullFP16()) && (Subtarget->hasNEON()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx());
53973   case 112: return (Subtarget->hasMVEFloatOps()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx());
53973   case 112: return (Subtarget->hasMVEFloatOps()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx());
53973   case 112: return (Subtarget->hasMVEFloatOps()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx());
53973   case 112: return (Subtarget->hasMVEFloatOps()) && ((TM.Options.AllowFPOpFusion == FPOpFusion::Fast &&  Subtarget->hasVFP4Base()) && !Subtarget->isTargetDarwin() &&Subtarget->useFPVMLx());
53974   case 113: return (Subtarget->hasFP64()) && (Subtarget->hasVFP4Base());
53974   case 113: return (Subtarget->hasFP64()) && (Subtarget->hasVFP4Base());
53975   case 114: return (Subtarget->hasVFP4Base());
53976   case 115: return (Subtarget->hasNEON()) && (Subtarget->hasVFP4Base());
53976   case 115: return (Subtarget->hasNEON()) && (Subtarget->hasVFP4Base());
53977   case 116: return (Subtarget->hasFP64()) && (!TM.Options.HonorSignDependentRoundingFPMath());
53979   case 118: return (Subtarget->hasFP64()) && (Subtarget->hasVFP3Base());
53979   case 118: return (Subtarget->hasFP64()) && (Subtarget->hasVFP3Base());
53980   case 119: return (Subtarget->hasVFP3Base());
53981   case 120: return (Subtarget->hasVFP2Base()) && (Subtarget->preferVMOVSR() ||!Subtarget->useNEONForSinglePrecisionFP());
53981   case 120: return (Subtarget->hasVFP2Base()) && (Subtarget->preferVMOVSR() ||!Subtarget->useNEONForSinglePrecisionFP());
53981   case 120: return (Subtarget->hasVFP2Base()) && (Subtarget->preferVMOVSR() ||!Subtarget->useNEONForSinglePrecisionFP());
53982   case 121: return (Subtarget->hasZeroCycleZeroing());
53983   case 122: return (!Subtarget->hasSlowVDUP32()) && (Subtarget->hasNEON());
53983   case 122: return (!Subtarget->hasSlowVDUP32()) && (Subtarget->hasNEON());
53984   case 123: return (Subtarget->hasNEON()) && (Subtarget->hasSlowVDUP32());
53984   case 123: return (Subtarget->hasNEON()) && (Subtarget->hasSlowVDUP32());
54724   if (Subtarget->useMovt())
lib/Target/ARM/ARMISelDAGToDAG.cpp
   63     Subtarget = &MF.getSubtarget<ARMSubtarget>();
  347   if (!Subtarget->hasV6T2Ops())
  350   bool isThumb2 = Subtarget->isThumb();
  436   if (!Subtarget->hasVMLxHazards())
  477   if (!Subtarget->isLikeA9() && !Subtarget->isSwift())
  477   if (!Subtarget->isLikeA9() && !Subtarget->isSwift())
  483          (ShAmt == 2 || (Subtarget->isSwift() && ShAmt == 1));
  515   unsigned OldCost = ConstantMaterializationCost(MulConstVal, Subtarget);
  516   unsigned NewCost = ConstantMaterializationCost(NewMulConstVal, Subtarget);
  656       ((!Subtarget->isLikeA9() && !Subtarget->isSwift()) || N.hasOneUse())) {
  656       ((!Subtarget->isLikeA9() && !Subtarget->isSwift()) || N.hasOneUse())) {
  720       !(Subtarget->isLikeA9() || Subtarget->isSwift() ||
  720       !(Subtarget->isLikeA9() || Subtarget->isSwift() ||
 1639   bool IsLE = Subtarget->isLittle();
 2634   if (!Subtarget->hasV6T2Ops())
 2638     ? (Subtarget->isThumb() ? ARM::t2SBFX : ARM::SBFX)
 2639     : (Subtarget->isThumb() ? ARM::t2UBFX : ARM::UBFX);
 2669           if (Subtarget->isThumb()) {
 2784   if (Subtarget->isThumb1Only())
 2801     unsigned Opcode = Subtarget->isThumb2() ? ARM::t2ABS : ARM::ABS;
 2849   if (!Subtarget->isThumb())
 2877     if (Subtarget->isThumb2()) {
 2906   } else if (!Subtarget->hasV6T2Ops()) {
 2940     if (Subtarget->isThumb1Only() && ST->isUnindexed()) {
 2987     if (ConstantMaterializationCost(Val, Subtarget) > 2) {
 2993       if (Subtarget->isThumb()) {
 3035     if (Subtarget->isThumb1Only()) {
 3045       unsigned Opc = ((Subtarget->isThumb() && Subtarget->hasThumb2()) ?
 3045       unsigned Opc = ((Subtarget->isThumb() && Subtarget->hasThumb2()) ?
 3064     if (Subtarget->isThumb1Only())
 3077         if (Subtarget->isThumb()) {
 3096         if (Subtarget->isThumb()) {
 3118     if (N1C && N1C->hasOneUse() && Subtarget->isThumb()) {
 3126         Subtarget->hasThumb2() && (is_t2_so_imm(Imm) || is_t2_so_imm_not(Imm));
 3128           ConstantMaterializationCost(Imm, Subtarget) >
 3129               ConstantMaterializationCost(~Imm, Subtarget)) {
 3139         if (!Subtarget->hasThumb2()) {
 3164     unsigned Opc = (Subtarget->isThumb() && Subtarget->hasThumb2())
 3164     unsigned Opc = (Subtarget->isThumb() && Subtarget->hasThumb2())
 3166       : (Subtarget->hasV6T2Ops() ? ARM::MOVTi16 : 0);
 3195     unsigned Opc = Subtarget->isThumb() ? ARM::t2UMAAL : ARM::UMAAL;
 3204     if (Subtarget->isThumb()) {
 3217                          Subtarget->hasV6Ops() ? ARM::UMLAL : ARM::UMLALv5, dl,
 3223     if (Subtarget->isThumb()) {
 3236                          Subtarget->hasV6Ops() ? ARM::SMLAL : ARM::SMLALv5, dl,
 3242     if (!Subtarget->hasV6Ops() || !Subtarget->hasDSP())
 3242     if (!Subtarget->hasV6Ops() || !Subtarget->hasDSP())
 3251     if (Subtarget->isThumb())
 3252       assert(Subtarget->hasThumb2() &&
 3265     unsigned Opc = Subtarget->isThumb2() ? ARM::t2SMMLS : ARM::SMMLS;
 3273     if (Subtarget->hasMVEIntegerOps() && tryMVEIndexedLoad(N))
 3275     if (Subtarget->isThumb() && Subtarget->hasThumb2()) {
 3275     if (Subtarget->isThumb() && Subtarget->hasThumb2()) {
 3278     } else if (Subtarget->isThumb()) {
 3322     unsigned Opc = Subtarget->isThumb() ?
 3323       ((Subtarget->hasThumb2()) ? ARM::t2Bcc : ARM::tBcc) : ARM::Bcc;
 3405     if (C && C->getSExtValue() < 0 && Subtarget->isThumb()) {
 3414         if (Subtarget->isThumb2()) {
 3809       if (Subtarget->isThumb())
 3840       bool isThumb = Subtarget->isThumb() && Subtarget->hasV8MBaselineOps();
 3840       bool isThumb = Subtarget->isThumb() && Subtarget->hasV8MBaselineOps();
 3907       bool isThumb = Subtarget->isThumb() && Subtarget->hasThumb2();
 3907       bool isThumb = Subtarget->isThumb() && Subtarget->hasThumb2();
 4417   bool IsThumb2 = Subtarget->isThumb2();
 4476     if (!Subtarget->hasVFP2Base())
 4478     if (Opcode == ARM::VMRS_MVFR2 && !Subtarget->hasFPARMv8Base())
 4491   if (Subtarget->isMClass()) {
 4492     int SYSmValue = getMClassRegisterMask(SpecialReg, Subtarget);
 4532   bool IsThumb2 = Subtarget->isThumb2();
 4587     if (!Subtarget->hasVFP2Base())
 4602   if (Subtarget->isMClass()) {
 4603     int SYSmValue = getMClassRegisterMask(SpecialReg, Subtarget);