================
@@ -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

Reply via email to