r191816 - [ARM] Add a builtin to allow you to use the 'sevl' instruction.

Joey Gouly joey.gouly at arm.com
Wed Oct 2 03:00:19 PDT 2013


Author: joey
Date: Wed Oct  2 05:00:18 2013
New Revision: 191816

URL: http://llvm.org/viewvc/llvm-project?rev=191816&view=rev
Log:
[ARM] Add a builtin to allow you to use the 'sevl' instruction.

Modified:
    cfe/trunk/include/clang/Basic/BuiltinsARM.def
    cfe/trunk/lib/CodeGen/CGBuiltin.cpp
    cfe/trunk/test/CodeGen/builtins-arm.c

Modified: cfe/trunk/include/clang/Basic/BuiltinsARM.def
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/BuiltinsARM.def?rev=191816&r1=191815&r2=191816&view=diff
==============================================================================
--- cfe/trunk/include/clang/Basic/BuiltinsARM.def (original)
+++ cfe/trunk/include/clang/Basic/BuiltinsARM.def Wed Oct  2 05:00:18 2013
@@ -58,6 +58,9 @@ BUILTIN(__builtin_arm_crc32cw, "UiUiUi",
 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"

Modified: cfe/trunk/lib/CodeGen/CGBuiltin.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGBuiltin.cpp?rev=191816&r1=191815&r2=191816&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CGBuiltin.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGBuiltin.cpp Wed Oct  2 05:00:18 2013
@@ -2372,6 +2372,11 @@ Value *CodeGenFunction::EmitARMBuiltinEx
     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) {

Modified: cfe/trunk/test/CodeGen/builtins-arm.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/builtins-arm.c?rev=191816&r1=191815&r2=191816&view=diff
==============================================================================
--- cfe/trunk/test/CodeGen/builtins-arm.c (original)
+++ cfe/trunk/test/CodeGen/builtins-arm.c Wed Oct  2 05:00:18 2013
@@ -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





More information about the cfe-commits mailing list