forked from OSchip/llvm-project
add intrinsics: __builtin_arm_{dmb,dsb} for ARM
llvm-svn: 194513
This commit is contained in:
parent
8eaf1543e5
commit
87bb4920e9
|
@ -61,6 +61,10 @@ BUILTIN(__builtin_arm_crc32cd, "UiUiLLUi", "nc")
|
|||
// HINT
|
||||
BUILTIN(__builtin_arm_sevl, "v", "")
|
||||
|
||||
// Data barrier
|
||||
BUILTIN(__builtin_arm_dmb, "vUi", "nc")
|
||||
BUILTIN(__builtin_arm_dsb, "vUi", "nc")
|
||||
|
||||
// NEON
|
||||
#define GET_NEON_BUILTINS
|
||||
#include "clang/Basic/arm_neon.inc"
|
||||
|
|
|
@ -624,6 +624,8 @@ bool Sema::CheckARMBuiltinFunctionCall(unsigned BuiltinID, CallExpr *TheCall) {
|
|||
case ARM::BI__builtin_arm_usat: i = 1; u = 31; break;
|
||||
case ARM::BI__builtin_arm_vcvtr_f:
|
||||
case ARM::BI__builtin_arm_vcvtr_d: i = 1; u = 1; break;
|
||||
case ARM::BI__builtin_arm_dmb:
|
||||
case ARM::BI__builtin_arm_dsb: l = 0; u = 15; break;
|
||||
#define GET_NEON_IMMEDIATE_CHECK
|
||||
#include "clang/Basic/arm_neon.inc"
|
||||
#undef GET_NEON_IMMEDIATE_CHECK
|
||||
|
|
|
@ -22,5 +22,9 @@ void test_eh_return_data_regno()
|
|||
void sevl() {
|
||||
__builtin_arm_sevl();
|
||||
}
|
||||
|
||||
// CHECK: call {{.*}} @llvm.arm.sevl
|
||||
|
||||
void test_barrier() {
|
||||
__builtin_arm_dmb(1); //CHECK: call {{.*}} @llvm.arm.dmb(i32 1)
|
||||
__builtin_arm_dsb(2); //CHECK: call {{.*}} @llvm.arm.dsb(i32 2)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue