aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Sema/SemaChecking.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/Sema/SemaChecking.cpp')
-rw-r--r--clang/lib/Sema/SemaChecking.cpp50
1 files changed, 2 insertions, 48 deletions
diff --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp
index 7ff5973..0b377d4 100644
--- a/clang/lib/Sema/SemaChecking.cpp
+++ b/clang/lib/Sema/SemaChecking.cpp
@@ -3848,39 +3848,12 @@ bool Sema::CheckLoongArchBuiltinFunctionCall(const TargetInfo &TI,
default:
break;
case LoongArch::BI__builtin_loongarch_cacop_d:
- if (!TI.hasFeature("64bit"))
- return Diag(TheCall->getBeginLoc(),
- diag::err_loongarch_builtin_requires_la64)
- << TheCall->getSourceRange();
- [[fallthrough]];
case LoongArch::BI__builtin_loongarch_cacop_w: {
- if (BuiltinID == LoongArch::BI__builtin_loongarch_cacop_w &&
- !TI.hasFeature("32bit"))
- return Diag(TheCall->getBeginLoc(),
- diag::err_loongarch_builtin_requires_la32)
- << TheCall->getSourceRange();
SemaBuiltinConstantArgRange(TheCall, 0, 0, llvm::maxUIntN(5));
SemaBuiltinConstantArgRange(TheCall, 2, llvm::minIntN(12),
llvm::maxIntN(12));
break;
}
- case LoongArch::BI__builtin_loongarch_crc_w_b_w:
- case LoongArch::BI__builtin_loongarch_crc_w_h_w:
- case LoongArch::BI__builtin_loongarch_crc_w_w_w:
- case LoongArch::BI__builtin_loongarch_crc_w_d_w:
- case LoongArch::BI__builtin_loongarch_crcc_w_b_w:
- case LoongArch::BI__builtin_loongarch_crcc_w_h_w:
- case LoongArch::BI__builtin_loongarch_crcc_w_w_w:
- case LoongArch::BI__builtin_loongarch_crcc_w_d_w:
- case LoongArch::BI__builtin_loongarch_iocsrrd_d:
- case LoongArch::BI__builtin_loongarch_iocsrwr_d:
- case LoongArch::BI__builtin_loongarch_asrtle_d:
- case LoongArch::BI__builtin_loongarch_asrtgt_d:
- if (!TI.hasFeature("64bit"))
- return Diag(TheCall->getBeginLoc(),
- diag::err_loongarch_builtin_requires_la64)
- << TheCall->getSourceRange();
- break;
case LoongArch::BI__builtin_loongarch_break:
case LoongArch::BI__builtin_loongarch_dbar:
case LoongArch::BI__builtin_loongarch_ibar:
@@ -3888,35 +3861,16 @@ bool Sema::CheckLoongArchBuiltinFunctionCall(const TargetInfo &TI,
// Check if immediate is in [0, 32767].
return SemaBuiltinConstantArgRange(TheCall, 0, 0, 32767);
case LoongArch::BI__builtin_loongarch_csrrd_w:
- return SemaBuiltinConstantArgRange(TheCall, 0, 0, 16383);
- case LoongArch::BI__builtin_loongarch_csrwr_w:
- return SemaBuiltinConstantArgRange(TheCall, 1, 0, 16383);
- case LoongArch::BI__builtin_loongarch_csrxchg_w:
- return SemaBuiltinConstantArgRange(TheCall, 2, 0, 16383);
case LoongArch::BI__builtin_loongarch_csrrd_d:
- if (!TI.hasFeature("64bit"))
- return Diag(TheCall->getBeginLoc(),
- diag::err_loongarch_builtin_requires_la64)
- << TheCall->getSourceRange();
return SemaBuiltinConstantArgRange(TheCall, 0, 0, 16383);
+ case LoongArch::BI__builtin_loongarch_csrwr_w:
case LoongArch::BI__builtin_loongarch_csrwr_d:
- if (!TI.hasFeature("64bit"))
- return Diag(TheCall->getBeginLoc(),
- diag::err_loongarch_builtin_requires_la64)
- << TheCall->getSourceRange();
return SemaBuiltinConstantArgRange(TheCall, 1, 0, 16383);
+ case LoongArch::BI__builtin_loongarch_csrxchg_w:
case LoongArch::BI__builtin_loongarch_csrxchg_d:
- if (!TI.hasFeature("64bit"))
- return Diag(TheCall->getBeginLoc(),
- diag::err_loongarch_builtin_requires_la64)
- << TheCall->getSourceRange();
return SemaBuiltinConstantArgRange(TheCall, 2, 0, 16383);
case LoongArch::BI__builtin_loongarch_lddir_d:
case LoongArch::BI__builtin_loongarch_ldpte_d:
- if (!TI.hasFeature("64bit"))
- return Diag(TheCall->getBeginLoc(),
- diag::err_loongarch_builtin_requires_la64)
- << TheCall->getSourceRange();
return SemaBuiltinConstantArgRange(TheCall, 1, 0, 31);
case LoongArch::BI__builtin_loongarch_movfcsr2gr:
case LoongArch::BI__builtin_loongarch_movgr2fcsr: