Lines Matching defs:BuiltinID

26 bool SemaARM::BuiltinARMMemoryTaggingCall(unsigned BuiltinID,
30 if (BuiltinID == AArch64::BI__builtin_arm_irg) {
58 if (BuiltinID == AArch64::BI__builtin_arm_addg) {
79 if (BuiltinID == AArch64::BI__builtin_arm_gmi) {
101 if (BuiltinID == AArch64::BI__builtin_arm_ldg ||
102 BuiltinID == AArch64::BI__builtin_arm_stg) {
117 if (BuiltinID == AArch64::BI__builtin_arm_ldg)
122 if (BuiltinID == AArch64::BI__builtin_arm_subp) {
188 bool SemaARM::BuiltinARMSpecialReg(unsigned BuiltinID, CallExpr *TheCall,
191 bool IsARMBuiltin = BuiltinID == ARM::BI__builtin_arm_rsr64 ||
192 BuiltinID == ARM::BI__builtin_arm_wsr64 ||
193 BuiltinID == ARM::BI__builtin_arm_rsr ||
194 BuiltinID == ARM::BI__builtin_arm_rsrp ||
195 BuiltinID == ARM::BI__builtin_arm_wsr ||
196 BuiltinID == ARM::BI__builtin_arm_wsrp;
197 bool IsAArch64Builtin = BuiltinID == AArch64::BI__builtin_arm_rsr64 ||
198 BuiltinID == AArch64::BI__builtin_arm_wsr64 ||
199 BuiltinID == AArch64::BI__builtin_arm_rsr128 ||
200 BuiltinID == AArch64::BI__builtin_arm_wsr128 ||
201 BuiltinID == AArch64::BI__builtin_arm_rsr ||
202 BuiltinID == AArch64::BI__builtin_arm_rsrp ||
203 BuiltinID == AArch64::BI__builtin_arm_wsr ||
204 BuiltinID == AArch64::BI__builtin_arm_wsrp;
275 if (BuiltinID == AArch64::BI__builtin_arm_rsr128 ||
276 BuiltinID == AArch64::BI__builtin_arm_wsr128)
564 unsigned BuiltinID) {
595 S.Context.BuiltinInfo.getRequiredFeatures(BuiltinID));
627 static ArmSMEState getSMEState(unsigned BuiltinID) {
628 switch (BuiltinID) {
637 bool SemaARM::CheckSMEBuiltinFunctionCall(unsigned BuiltinID,
642 switch (BuiltinID) {
649 checkArmStreamingBuiltin(SemaRef, TheCall, FD, *BuiltinType, BuiltinID))
652 if ((getSMEState(BuiltinID) & ArmZAMask) && !hasArmZAState(FD))
657 if ((getSMEState(BuiltinID) & ArmZT0Mask) && !hasArmZT0State(FD))
666 switch (BuiltinID) {
677 bool SemaARM::CheckSVEBuiltinFunctionCall(unsigned BuiltinID,
682 switch (BuiltinID) {
688 checkArmStreamingBuiltin(SemaRef, TheCall, FD, *BuiltinType, BuiltinID))
694 switch (BuiltinID) {
706 unsigned BuiltinID,
710 switch (BuiltinID) {
718 BuiltinID))
732 switch (BuiltinID) {
783 switch (BuiltinID) {
795 bool SemaARM::CheckMVEBuiltinFunctionCall(unsigned BuiltinID,
797 switch (BuiltinID) {
805 unsigned BuiltinID,
808 switch (BuiltinID) {
845 bool SemaARM::CheckARMBuiltinExclusiveCall(unsigned BuiltinID,
848 assert((BuiltinID == ARM::BI__builtin_arm_ldrex ||
849 BuiltinID == ARM::BI__builtin_arm_ldaex ||
850 BuiltinID == ARM::BI__builtin_arm_strex ||
851 BuiltinID == ARM::BI__builtin_arm_stlex ||
852 BuiltinID == AArch64::BI__builtin_arm_ldrex ||
853 BuiltinID == AArch64::BI__builtin_arm_ldaex ||
854 BuiltinID == AArch64::BI__builtin_arm_strex ||
855 BuiltinID == AArch64::BI__builtin_arm_stlex) &&
857 bool IsLdrex = BuiltinID == ARM::BI__builtin_arm_ldrex ||
858 BuiltinID == ARM::BI__builtin_arm_ldaex ||
859 BuiltinID == AArch64::BI__builtin_arm_ldrex ||
860 BuiltinID == AArch64::BI__builtin_arm_ldaex;
965 unsigned BuiltinID,
967 if (BuiltinID == ARM::BI__builtin_arm_ldrex ||
968 BuiltinID == ARM::BI__builtin_arm_ldaex ||
969 BuiltinID == ARM::BI__builtin_arm_strex ||
970 BuiltinID == ARM::BI__builtin_arm_stlex) {
971 return CheckARMBuiltinExclusiveCall(BuiltinID, TheCall, 64);
974 if (BuiltinID == ARM::BI__builtin_arm_prefetch) {
979 if (BuiltinID == ARM::BI__builtin_arm_rsr64 ||
980 BuiltinID == ARM::BI__builtin_arm_wsr64)
981 return BuiltinARMSpecialReg(BuiltinID, TheCall, 0, 3, false);
983 if (BuiltinID == ARM::BI__builtin_arm_rsr ||
984 BuiltinID == ARM::BI__builtin_arm_rsrp ||
985 BuiltinID == ARM::BI__builtin_arm_wsr ||
986 BuiltinID == ARM::BI__builtin_arm_wsrp)
987 return BuiltinARMSpecialReg(BuiltinID, TheCall, 0, 5, true);
989 if (CheckNeonBuiltinFunctionCall(TI, BuiltinID, TheCall))
991 if (CheckMVEBuiltinFunctionCall(BuiltinID, TheCall))
993 if (CheckCDEBuiltinFunctionCall(TI, BuiltinID, TheCall))
999 switch (BuiltinID) {
1043 unsigned BuiltinID,
1045 if (BuiltinID == AArch64::BI__builtin_arm_ldrex ||
1046 BuiltinID == AArch64::BI__builtin_arm_ldaex ||
1047 BuiltinID == AArch64::BI__builtin_arm_strex ||
1048 BuiltinID == AArch64::BI__builtin_arm_stlex) {
1049 return CheckARMBuiltinExclusiveCall(BuiltinID, TheCall, 128);
1052 if (BuiltinID == AArch64::BI__builtin_arm_prefetch) {
1059 if (BuiltinID == AArch64::BI__builtin_arm_rsr64 ||
1060 BuiltinID == AArch64::BI__builtin_arm_wsr64 ||
1061 BuiltinID == AArch64::BI__builtin_arm_rsr128 ||
1062 BuiltinID == AArch64::BI__builtin_arm_wsr128)
1063 return BuiltinARMSpecialReg(BuiltinID, TheCall, 0, 5, true);
1066 if (BuiltinID == AArch64::BI__builtin_arm_irg ||
1067 BuiltinID == AArch64::BI__builtin_arm_addg ||
1068 BuiltinID == AArch64::BI__builtin_arm_gmi ||
1069 BuiltinID == AArch64::BI__builtin_arm_ldg ||
1070 BuiltinID == AArch64::BI__builtin_arm_stg ||
1071 BuiltinID == AArch64::BI__builtin_arm_subp) {
1072 return BuiltinARMMemoryTaggingCall(BuiltinID, TheCall);
1075 if (BuiltinID == AArch64::BI__builtin_arm_rsr ||
1076 BuiltinID == AArch64::BI__builtin_arm_rsrp ||
1077 BuiltinID == AArch64::BI__builtin_arm_wsr ||
1078 BuiltinID == AArch64::BI__builtin_arm_wsrp)
1079 return BuiltinARMSpecialReg(BuiltinID, TheCall, 0, 5, true);
1084 if (BuiltinID == AArch64::BI_ReadStatusReg ||
1085 BuiltinID == AArch64::BI_WriteStatusReg)
1088 if (BuiltinID == AArch64::BI__getReg)
1091 if (BuiltinID == AArch64::BI__break)
1094 if (BuiltinID == AArch64::BI__hlt)
1097 if (CheckNeonBuiltinFunctionCall(TI, BuiltinID, TheCall))
1100 if (CheckSVEBuiltinFunctionCall(BuiltinID, TheCall))
1103 if (CheckSMEBuiltinFunctionCall(BuiltinID, TheCall))
1109 switch (BuiltinID) {
1128 static bool BuiltinAliasValid(unsigned BuiltinID, StringRef AliasName,
1133 llvm::lower_bound(Map, BuiltinID, [](const IntrinToName &L, unsigned Id) {
1136 if (It == Map.end() || It->Id != BuiltinID)
1147 bool SemaARM::MveAliasValid(unsigned BuiltinID, StringRef AliasName) {
1152 return BuiltinAliasValid(BuiltinID, AliasName, Map, IntrinNames);
1155 bool SemaARM::CdeAliasValid(unsigned BuiltinID, StringRef AliasName) {
1157 return BuiltinAliasValid(BuiltinID, AliasName, Map, IntrinNames);
1160 bool SemaARM::SveAliasValid(unsigned BuiltinID, StringRef AliasName) {
1161 if (getASTContext().BuiltinInfo.isAuxBuiltinID(BuiltinID))
1162 BuiltinID = getASTContext().BuiltinInfo.getAuxBuiltinID(BuiltinID);
1163 return BuiltinID >= AArch64::FirstSVEBuiltin &&
1164 BuiltinID <= AArch64::LastSVEBuiltin;
1167 bool SemaARM::SmeAliasValid(unsigned BuiltinID, StringRef AliasName) {
1168 if (getASTContext().BuiltinInfo.isAuxBuiltinID(BuiltinID))
1169 BuiltinID = getASTContext().BuiltinInfo.getAuxBuiltinID(BuiltinID);
1170 return BuiltinID >= AArch64::FirstSMEBuiltin &&
1171 BuiltinID <= AArch64::LastSMEBuiltin;
1183 unsigned BuiltinID = Ident->getBuiltinID();
1187 if ((IsAArch64 && !SveAliasValid(BuiltinID, AliasName) &&
1188 !SmeAliasValid(BuiltinID, AliasName)) ||
1189 (!IsAArch64 && !MveAliasValid(BuiltinID, AliasName) &&
1190 !CdeAliasValid(BuiltinID, AliasName))) {