aboutsummaryrefslogtreecommitdiff
path: root/src/shader_recompiler/frontend/ir/value.cpp
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2021-02-16 19:49:24 -0300
committerameerj <52414509+ameerj@users.noreply.github.com>2021-07-22 21:51:22 -0400
commit3633e433774927681b02e1de665a608730f5582c (patch)
tree47ec548d43d72ae4bfd85c8052cca6fca29498b4 /src/shader_recompiler/frontend/ir/value.cpp
parent3a59fffaa16838985f9f953f30d1af4aa0f86252 (diff)
shader: Add utility to resolve identities on a value
Diffstat (limited to 'src/shader_recompiler/frontend/ir/value.cpp')
-rw-r--r--src/shader_recompiler/frontend/ir/value.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/shader_recompiler/frontend/ir/value.cpp b/src/shader_recompiler/frontend/ir/value.cpp
index 9ea61813ba..718314213d 100644
--- a/src/shader_recompiler/frontend/ir/value.cpp
+++ b/src/shader_recompiler/frontend/ir/value.cpp
@@ -79,6 +79,13 @@ IR::Inst* Value::InstRecursive() const {
return inst;
}
+IR::Value Value::Resolve() const {
+ if (IsIdentity()) {
+ return inst->Arg(0).Resolve();
+ }
+ return *this;
+}
+
IR::Reg Value::Reg() const {
ValidateAccess(Type::Reg);
return reg;