Lines Matching refs:Predicate
9 def HasV4T : Predicate<"Subtarget->hasV4TOps()">,
11 def NoV4T : Predicate<"!Subtarget->hasV4TOps()">;
12 def HasV5T : Predicate<"Subtarget->hasV5TOps()">,
14 def NoV5T : Predicate<"!Subtarget->hasV5TOps()">;
15 def HasV5TE : Predicate<"Subtarget->hasV5TEOps()">,
17 def HasV6 : Predicate<"Subtarget->hasV6Ops()">,
19 def NoV6 : Predicate<"!Subtarget->hasV6Ops()">;
20 def HasV6M : Predicate<"Subtarget->hasV6MOps()">,
23 def HasV8MBaseline : Predicate<"Subtarget->hasV8MBaselineOps()">,
26 def HasV8MMainline : Predicate<"Subtarget->hasV8MMainlineOps()">,
29 def HasV8_1MMainline : Predicate<"Subtarget->hasV8_1MMainlineOps()">,
32 def HasMVEInt : Predicate<"Subtarget->hasMVEIntegerOps()">,
35 def HasMVEFloat : Predicate<"Subtarget->hasMVEFloatOps()">,
38 def HasCDE : Predicate<"Subtarget->hasCDEOps()">,
41 def HasFPRegs : Predicate<"Subtarget->hasFPRegs()">,
44 def HasFPRegs16 : Predicate<"Subtarget->hasFPRegs16()">,
47 def HasNoFPRegs16 : Predicate<"!Subtarget->hasFPRegs16()">,
50 def HasFPRegs64 : Predicate<"Subtarget->hasFPRegs64()">,
53 def HasFPRegsV8_1M : Predicate<"Subtarget->hasFPRegs() && Subtarget->hasV8_1MMainlineOps()">,
56 def HasV6T2 : Predicate<"Subtarget->hasV6T2Ops()">,
58 def NoV6T2 : Predicate<"!Subtarget->hasV6T2Ops()">;
59 def HasV6K : Predicate<"Subtarget->hasV6KOps()">,
61 def NoV6K : Predicate<"!Subtarget->hasV6KOps()">;
62 def HasV7 : Predicate<"Subtarget->hasV7Ops()">,
64 def HasV8 : Predicate<"Subtarget->hasV8Ops()">,
66 def PreV8 : Predicate<"!Subtarget->hasV8Ops()">,
68 def HasV8_1a : Predicate<"Subtarget->hasV8_1aOps()">,
70 def HasV8_2a : Predicate<"Subtarget->hasV8_2aOps()">,
72 def HasV8_3a : Predicate<"Subtarget->hasV8_3aOps()">,
74 def HasV8_4a : Predicate<"Subtarget->hasV8_4aOps()">,
76 def HasV8_5a : Predicate<"Subtarget->hasV8_5aOps()">,
78 def HasV8_6a : Predicate<"Subtarget->hasV8_6aOps()">,
80 def HasV8_7a : Predicate<"Subtarget->hasV8_7aOps()">,
82 def NoVFP : Predicate<"!Subtarget->hasVFP2Base()">;
83 def HasVFP2 : Predicate<"Subtarget->hasVFP2Base()">,
85 def HasVFP3 : Predicate<"Subtarget->hasVFP3Base()">,
87 def HasVFP4 : Predicate<"Subtarget->hasVFP4Base()">,
89 def HasDPVFP : Predicate<"Subtarget->hasFP64()">,
92 def HasFPARMv8 : Predicate<"Subtarget->hasFPARMv8Base()">,
94 def HasNEON : Predicate<"Subtarget->hasNEON()">,
96 def HasSHA2 : Predicate<"Subtarget->hasSHA2()">,
98 def HasAES : Predicate<"Subtarget->hasAES()">,
100 def HasCrypto : Predicate<"Subtarget->hasCrypto()">,
102 def HasDotProd : Predicate<"Subtarget->hasDotProd()">,
104 def HasCRC : Predicate<"Subtarget->hasCRC()">,
106 def HasRAS : Predicate<"Subtarget->hasRAS()">,
108 def HasLOB : Predicate<"Subtarget->hasLOB()">,
110 def HasPACBTI : Predicate<"Subtarget->hasPACBTI()">,
112 def HasFP16 : Predicate<"Subtarget->hasFP16()">,
114 def HasFullFP16 : Predicate<"Subtarget->hasFullFP16()">,
116 def HasFP16FML : Predicate<"Subtarget->hasFP16FML()">,
118 def HasBF16 : Predicate<"Subtarget->hasBF16()">,
120 def HasMatMulInt8 : Predicate<"Subtarget->hasMatMulInt8()">,
122 def HasDivideInThumb : Predicate<"Subtarget->hasDivideInThumbMode()">,
124 def HasDivideInARM : Predicate<"Subtarget->hasDivideInARMMode()">,
126 def HasDSP : Predicate<"Subtarget->hasDSP()">,
128 def HasDB : Predicate<"Subtarget->hasDataBarrier()">,
131 def HasDFB : Predicate<"Subtarget->hasFullDataBarrier()">,
134 def HasV7Clrex : Predicate<"Subtarget->hasV7Clrex()">,
137 def HasAcquireRelease : Predicate<"Subtarget->hasAcquireRelease()">,
140 def HasMP : Predicate<"Subtarget->hasMPExtension()">,
143 def HasVirtualization: Predicate<"false">,
146 def HasTrustZone : Predicate<"Subtarget->hasTrustZone()">,
149 def Has8MSecExt : Predicate<"Subtarget->has8MSecExt()">,
152 def HasZCZ : Predicate<"Subtarget->hasZeroCycleZeroing()">;
153 def UseNEONForFP : Predicate<"Subtarget->useNEONForSinglePrecisionFP()">;
154 def DontUseNEONForFP : Predicate<"!Subtarget->useNEONForSinglePrecisionFP()">;
155 def IsThumb : Predicate<"Subtarget->isThumb()">,
157 def IsThumb1Only : Predicate<"Subtarget->isThumb1Only()">;
158 def IsThumb2 : Predicate<"Subtarget->isThumb2()">,
161 def IsMClass : Predicate<"Subtarget->isMClass()">,
163 def IsNotMClass : Predicate<"!Subtarget->isMClass()">,
166 def IsARM : Predicate<"!Subtarget->isThumb()">,
168 def IsMachO : Predicate<"Subtarget->isTargetMachO()">;
169 def IsNotMachO : Predicate<"!Subtarget->isTargetMachO()">;
170 def IsNaCl : Predicate<"Subtarget->isTargetNaCl()">;
171 def IsWindows : Predicate<"Subtarget->isTargetWindows()">;
172 def IsNotWindows : Predicate<"!Subtarget->isTargetWindows()">;
173 def IsReadTPTPIDRURW : Predicate<"Subtarget->isReadTPTPIDRURW()">;
174 def IsReadTPTPIDRURO : Predicate<"Subtarget->isReadTPTPIDRURO()">;
175 def IsReadTPTPIDRPRW : Predicate<"Subtarget->isReadTPTPIDRPRW()">;
176 def IsReadTPSoft : Predicate<"Subtarget->isReadTPSoft()">;
177 def UseNaClTrap : Predicate<"Subtarget->useNaClTrap()">,
179 def DontUseNaClTrap : Predicate<"!Subtarget->useNaClTrap()">;
182 Predicate<"false">,
188 def UseMovt : Predicate<"Subtarget->useMovt()">;
189 def DontUseMovt : Predicate<"!Subtarget->useMovt()">;
190 …def UseMovtInPic : Predicate<"Subtarget->useMovt() && Subtarget->allowPositionIndependentMovt(…
191 …def DontUseMovtInPic : Predicate<"!Subtarget->useMovt() || !Subtarget->allowPositionIndependentMov…
193 def UseFPVMLx: Predicate<"((Subtarget->useFPVMLx() &&"
196 def SLSBLRMitigation : Predicate<[{ MF->getSubtarget<ARMSubtarget>().hardenSlsBlr() }]>;
197 def NoSLSBLRMitigation : Predicate<[{ !MF->getSubtarget<ARMSubtarget>().hardenSlsBlr() }]>;
200 def UseMulOps : Predicate<"Subtarget->useMulOps()">;
206 def UseFusedMAC : Predicate<"TM.Options.AllowFPOpFusion =="
210 def HasFastVGETLNi32 : Predicate<"!Subtarget->hasSlowVGETLNi32()">;
211 def HasSlowVGETLNi32 : Predicate<"Subtarget->hasSlowVGETLNi32()">;
213 def HasFastVDUP32 : Predicate<"!Subtarget->hasSlowVDUP32()">;
214 def HasSlowVDUP32 : Predicate<"Subtarget->hasSlowVDUP32()">;
216 def UseVMOVSR : Predicate<"Subtarget->preferVMOVSR() ||"
218 def DontUseVMOVSR : Predicate<"!Subtarget->preferVMOVSR() &&"
222 def IsLE : Predicate<"MF->getDataLayout().isLittleEndian()">;
223 def IsBE : Predicate<"MF->getDataLayout().isBigEndian()">;
226 def GenExecuteOnly : Predicate<"Subtarget->genExecuteOnly()">;
227 def DontGenExecuteOnly : Predicate<"!Subtarget->genExecuteOnly()">;
228 def GenT1ExecuteOnly : Predicate<"Subtarget->genExecuteOnly() && "
232 def SignRetAddr : Predicate<[{ MF->getInfo<ARMFunctionInfo>()->shouldSignReturnAddress(true) }]>;
233 …def NoSignRetAddr : Predicate<[{ !MF->getInfo<ARMFunctionInfo>()->shouldSignReturnAddress(true) }]…
237 def HasSB : Predicate<"Subtarget->hasSB()">,
241 def HasCLRBHB : Predicate<"Subtarget->hasCLRBHB()">,