nemanjai added inline comments.
================ Comment at: llvm/include/llvm/IR/IntrinsicsPowerPC.td:1535 - def int_ppc_ldarx : GCCBuiltin<"__builtin_ppc_ldarx">, - Intrinsic<[llvm_i64_ty], [llvm_ptr_ty], [IntrNoMem]>; } ---------------- lkail wrote: > Just curious, compiler optimizes the instruction out even setting > `IntrArgMemOnly` and `IntrReadMem` here? Yes. Well, those two more or less tell it to go ahead and optimize it out if there are no uses. What is more surprising is that even with `IntrHasSideEffects`. Heck, it even optimizes with all of: ``` IntrReadMem IntrArgMemOnly IntrHasSideEffects Throws IntrNoDuplicate IntrNoMerge ``` I certainly found that surprising but I assume there is some justification as to why that is. There is some precedent for producing inline asm for builtins (see `EmitX86BitTestIntrinsic()` and similar). I don't know why that intrinsic was implemented using inline asm (commit messages don't say) but I presume it might have been for a similar reason. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D105754/new/ https://reviews.llvm.org/D105754 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits