From 742d11c2ad948c8630be15901514ec9e5e5fcd20 Mon Sep 17 00:00:00 2001
From: FernandoS27 <fsahmkow27@gmail.com>
Date: Fri, 26 Mar 2021 16:02:04 +0100
Subject: shader: Implement TLD4.PTP

---
 src/shader_recompiler/frontend/ir/value.cpp | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

(limited to 'src/shader_recompiler/frontend/ir/value.cpp')

diff --git a/src/shader_recompiler/frontend/ir/value.cpp b/src/shader_recompiler/frontend/ir/value.cpp
index e8e4662e7b..7671fc3d80 100644
--- a/src/shader_recompiler/frontend/ir/value.cpp
+++ b/src/shader_recompiler/frontend/ir/value.cpp
@@ -44,6 +44,20 @@ bool Value::IsEmpty() const noexcept {
     return type == Type::Void;
 }
 
+bool Value::IsConstantContainer() const {
+    if (IsImmediate()) {
+        return true;
+    }
+    ValidateAccess(Type::Opaque);
+    auto num_args = inst->NumArgs();
+    for (size_t i = 0; i < num_args; i++) {
+        if (!inst->Arg(i).IsConstantContainer()) {
+            return false;
+        }
+    }
+    return true;
+}
+
 bool Value::IsImmediate() const noexcept {
     if (IsIdentity()) {
         return inst->Arg(0).IsImmediate();
-- 
cgit v1.2.3-70-g09d2