Index: include/clang/Basic/BuiltinsARM.def =================================================================== --- include/clang/Basic/BuiltinsARM.def +++ include/clang/Basic/BuiltinsARM.def @@ -59,7 +59,7 @@ BUILTIN(__builtin_arm_crc32cd, "UiUiLLUi", "nc") // HINT -BUILTIN(__builtin_arm_sevl, "v", "") +BUILTIN(__sevl, "v", "") // Data barrier BUILTIN(__builtin_arm_dmb, "vUi", "nc") Index: lib/CodeGen/CGBuiltin.cpp =================================================================== --- lib/CodeGen/CGBuiltin.cpp +++ lib/CodeGen/CGBuiltin.cpp @@ -4331,6 +4331,11 @@ return Builder.CreateCall(F, llvm::ConstantInt::get(Int32Ty, 1)); } + if (BuiltinID == ARM::BI__sevl) { + Function *F = CGM.getIntrinsic(Intrinsic::arm_hint); + return Builder.CreateCall(F, llvm::ConstantInt::get(Int32Ty, 5)); + } + if (BuiltinID == ARM::BI__clear_cache) { assert(E->getNumArgs() == 2 && "__clear_cache takes 2 arguments"); const FunctionDecl *FD = E->getDirectCallee(); @@ -4427,11 +4432,6 @@ return Builder.CreateCall(F); } - if (BuiltinID == ARM::BI__builtin_arm_sevl) { - Function *F = CGM.getIntrinsic(Intrinsic::arm_hint); - return Builder.CreateCall(F, llvm::ConstantInt::get(Int32Ty, 5)); - } - // CRC32 Intrinsic::ID CRCIntrinsicID = Intrinsic::not_intrinsic; switch (BuiltinID) { Index: test/CodeGen/builtins-arm.c =================================================================== --- test/CodeGen/builtins-arm.c +++ test/CodeGen/builtins-arm.c @@ -20,7 +20,7 @@ } void sevl() { - __builtin_arm_sevl(); + __sevl(); } // CHECK: call {{.*}} @llvm.arm.hint(i32 5)