forked from OSchip/llvm-project
[ARM] Add a builtin to allow you to use the 'sevl' instruction.
llvm-svn: 191816
This commit is contained in:
parent
9fe6a3b9b1
commit
75987a65f3
|
@ -58,6 +58,9 @@ BUILTIN(__builtin_arm_crc32cw, "UiUiUi", "nc")
|
|||
BUILTIN(__builtin_arm_crc32d, "UiUiLLUi", "nc")
|
||||
BUILTIN(__builtin_arm_crc32cd, "UiUiLLUi", "nc")
|
||||
|
||||
// HINT
|
||||
BUILTIN(__builtin_arm_sevl, "v", "")
|
||||
|
||||
// NEON
|
||||
#define GET_NEON_BUILTINS
|
||||
#include "clang/Basic/arm_neon.inc"
|
||||
|
|
|
@ -2372,6 +2372,11 @@ Value *CodeGenFunction::EmitARMBuiltinExpr(unsigned BuiltinID,
|
|||
return Builder.CreateCall(F);
|
||||
}
|
||||
|
||||
if (BuiltinID == ARM::BI__builtin_arm_sevl) {
|
||||
Function *F = CGM.getIntrinsic(Intrinsic::arm_sevl);
|
||||
return Builder.CreateCall(F);
|
||||
}
|
||||
|
||||
// CRC32
|
||||
Intrinsic::ID CRCIntrinsicID = Intrinsic::not_intrinsic;
|
||||
switch (BuiltinID) {
|
||||
|
|
|
@ -18,3 +18,9 @@ void test_eh_return_data_regno()
|
|||
res = __builtin_eh_return_data_regno(0); // CHECK: store volatile i32 0
|
||||
res = __builtin_eh_return_data_regno(1); // CHECK: store volatile i32 1
|
||||
}
|
||||
|
||||
void sevl() {
|
||||
__builtin_arm_sevl();
|
||||
}
|
||||
|
||||
// CHECK: call {{.*}} @llvm.arm.sevl
|
||||
|
|
Loading…
Reference in New Issue