================
@@ -754,6 +754,19 @@ class MSBuiltin<string name> {
string MSBuiltinName = name;
}
+/// Utility class for intrinsics that
+/// 1. Don't touch memory or any hidden state
+/// 2. Can be freely speculated, and
+/// 3. Will not create undef or poison on defined inputs.
+class PureTotalIntrinsic<list<LLVMType> ret_types,
----------------
krzysz00 wrote:
So the two problems here are
1. Nvidia's already using `PureIntrinsic` for the version of this class that
doesn't `nocreateundeforpoison` and I don't want to go changing the semantics
of their code for no reason
2. It does feel like having no `poison`/`undef` outputs is an extra property
here
Would you prefer I tentatively rename Nvidia's version to something like
NVGPUPureIntrinsic with a comment asking them to check if they can add
`nocreateundeforpoison` to all of their stuff or keep the current name?
https://github.com/llvm/llvm-project/pull/166450
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits