Lines Matching defs:RC
76 /// class \p RC.
79 const TargetRegisterClass *RC) const;
107 getLargestLegalSuperClass(const TargetRegisterClass *RC,
144 /// a cross register class copy, return the specified RC. Returns NULL if it
147 getCrossCopyRegClass(const TargetRegisterClass *RC) const override;
198 static bool isSGPRClass(const TargetRegisterClass *RC) {
199 return hasSGPRs(RC) && !hasVGPRs(RC) && !hasAGPRs(RC);
210 static bool isVGPRClass(const TargetRegisterClass *RC) {
211 return hasVGPRs(RC) && !hasAGPRs(RC) && !hasSGPRs(RC);
215 static bool isAGPRClass(const TargetRegisterClass *RC) {
216 return hasAGPRs(RC) && !hasVGPRs(RC) && !hasSGPRs(RC);
220 bool isVectorSuperClass(const TargetRegisterClass *RC) const {
221 return hasVGPRs(RC) && hasAGPRs(RC) && !hasSGPRs(RC);
225 bool isVSSuperClass(const TargetRegisterClass *RC) const {
226 return hasVGPRs(RC) && hasSGPRs(RC) && !hasAGPRs(RC);
230 static bool hasVGPRs(const TargetRegisterClass *RC) {
231 return RC->TSFlags & SIRCFlags::HasVGPR;
235 static bool hasAGPRs(const TargetRegisterClass *RC) {
236 return RC->TSFlags & SIRCFlags::HasAGPR;
240 static bool hasSGPRs(const TargetRegisterClass *RC) {
241 return RC->TSFlags & SIRCFlags::HasSGPR;
245 static bool hasVectorRegisters(const TargetRegisterClass *RC) {
246 return hasVGPRs(RC) || hasAGPRs(RC);
285 const TargetRegisterClass *RC,
305 bool isDivergentRegClass(const TargetRegisterClass *RC) const override {
306 return !isSGPRClass(RC);
312 ArrayRef<int16_t> getRegSplitParts(const TargetRegisterClass *RC,
323 unsigned getRegPressureLimit(const TargetRegisterClass *RC,
403 bool isProperlyAlignedRC(const TargetRegisterClass &RC) const;
405 // Given \p RC returns corresponding aligned register class if required
408 getProperlyAlignedRC(const TargetRegisterClass *RC) const;
435 unsigned getRegClassAlignmentNumBits(const TargetRegisterClass *RC) const {
436 return (RC->TSFlags & SIRCFlags::RegTupleAlignUnitsMask) * 32;
439 // Check if register class RC has required alignment.
440 bool isRegClassAligned(const TargetRegisterClass *RC,
443 unsigned RCAlign = getRegClassAlignmentNumBits(RC);
448 // Return alignment of a SubReg relative to start of a register in RC class.
449 // No check if the subreg is supported by the current RC is made.
450 unsigned getSubRegAlignmentNumBits(const TargetRegisterClass *RC,
455 /// Get the size in bits of a register from the register class \p RC.
456 unsigned getRegBitWidth(const TargetRegisterClass &RC);