================ @@ -738,6 +739,16 @@ def UMin : DXILOp<40, binary> { let attributes = [Attributes<DXIL1_0, [ReadNone]>]; } +def UAddc : DXILOp<44, binaryWithCarryOrBorrow > { + let Doc = "Unsigned 32-bit integer arithmetic add with carry. uaddc(a,b) = (a+b, a+b overflowed ? 1 : 0)"; + let intrinsics = [IntrinSelect<int_uadd_with_overflow>]; ---------------- Icohedron wrote:
`i16` and `i64` could be supported by `UAddc` as well with minimal effort, but I'm not sure if that would conform to spec. It would, however, still be equivalent to `int_uadd_with_overflow` behavior. https://github.com/llvm/llvm-project/pull/127137 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits