================ @@ -10570,6 +10570,26 @@ Value *CodeGenFunction::EmitAArch64BuiltinExpr(unsigned BuiltinID, return Builder.CreateCall(F, llvm::ConstantInt::get(Int32Ty, HintID)); } + if (BuiltinID == clang::AArch64::BI__builtin_arm_get_sme_state) { + // Create call to __arm_sme_state and store the results to the two pointers. ---------------- sdesmalen-arm wrote:
I looked into this a while back when I implemented this builtin, but couldn't find any prior work where a builtin returned two scalar values which is why I opted for doing this through memory. LLVM will optimise these away similar to how it optimises all of Clang's other memory operations away (mem2reg). https://github.com/llvm/llvm-project/pull/75791 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits