================
@@ -180,6 +180,33 @@ bool verifyBorderColor(uint32_t BorderColor) {
 
 bool verifyLOD(float LOD) { return !std::isnan(LOD); }
 
+bool verifyOffsetOverflow(uint32_t Offset, uint64_t Register) {
+  if (Offset != ~0U)
+    Register = Offset;
+
+  if (Register > ~0U)
+    return true;
+  return false;
+}
+
+bool verifyRegisterOverflow(uint64_t Register, uint32_t NumDescriptors) {
+  if (NumDescriptors == ~0U)
+    return false;
+
+  uint64_t UpperBound =
+      (uint64_t)Register + (uint64_t)NumDescriptors - (uint64_t)1U;
+  if (UpperBound > ~0U)
+    return true;
+
+  return false;
+}
+
+uint64_t updateAppendingRegister(uint64_t AppendingRegisterRegister,
+                                 uint32_t NumDescriptors) {
+  if (NumDescriptors == ~0U)
+    return (uint64_t)~0U + (uint64_t)1ULL;
+  return AppendingRegisterRegister + NumDescriptors;
----------------
inbelic wrote:

This is also dependent on the current offset.

```suggestion
  return Offset == append ? AppendingRegisterRegister + NumDescriptors : Offset 
+ NumDescriptors;
```

https://github.com/llvm/llvm-project/pull/153276
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to