aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2021-07-29 21:22:22 -0300
committerReinUsesLisp <reinuseslisp@airmail.cc>2021-07-29 21:22:52 -0300
commit8c9febe8f7ad5136615821e05a670bada794199b (patch)
tree3577cfafd0f8f3609c22d9435a7f0617d1cc9b0f /src
parent23b3333f725d986bbe5ecf4715caef94aa7b0e4a (diff)
shader: Fold UnpackFloat2x16 and PackFloat2x16
Simplifies the code a bit when possible. These instructions should be no-ops codegen wise.
Diffstat (limited to 'src')
-rw-r--r--src/shader_recompiler/ir_opt/constant_propagation_pass.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/shader_recompiler/ir_opt/constant_propagation_pass.cpp b/src/shader_recompiler/ir_opt/constant_propagation_pass.cpp
index 8dd6d6c2c8..1e9ad0a0fd 100644
--- a/src/shader_recompiler/ir_opt/constant_propagation_pass.cpp
+++ b/src/shader_recompiler/ir_opt/constant_propagation_pass.cpp
@@ -476,6 +476,10 @@ void ConstantPropagation(IR::Block& block, IR::Inst& inst) {
return FoldInverseFunc(inst, IR::Opcode::UnpackHalf2x16);
case IR::Opcode::UnpackHalf2x16:
return FoldInverseFunc(inst, IR::Opcode::PackHalf2x16);
+ case IR::Opcode::PackFloat2x16:
+ return FoldInverseFunc(inst, IR::Opcode::UnpackFloat2x16);
+ case IR::Opcode::UnpackFloat2x16:
+ return FoldInverseFunc(inst, IR::Opcode::PackFloat2x16);
case IR::Opcode::SelectU1:
case IR::Opcode::SelectU8:
case IR::Opcode::SelectU16: