summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/ir_opt/constant_propagation_pass.cpp
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2021-06-23 01:32:09 -0300
committerGravatar ameerj2021-07-22 21:51:39 -0400
commit97e80dda55aec0ff791e4990f09c85e7a7067730 (patch)
tree394c9d88d2d8d4764ddf5af3be1c0c6006e1cead /src/shader_recompiler/ir_opt/constant_propagation_pass.cpp
parentglsl: Better IAdd Overflow CC fix (diff)
downloadyuzu-97e80dda55aec0ff791e4990f09c85e7a7067730.tar.gz
yuzu-97e80dda55aec0ff791e4990f09c85e7a7067730.tar.xz
yuzu-97e80dda55aec0ff791e4990f09c85e7a7067730.zip
shader: Add constant propagation to integer vectors
Diffstat (limited to 'src/shader_recompiler/ir_opt/constant_propagation_pass.cpp')
-rw-r--r--src/shader_recompiler/ir_opt/constant_propagation_pass.cpp9
1 files changed, 9 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 796b4122d..3c72203ad 100644
--- a/src/shader_recompiler/ir_opt/constant_propagation_pass.cpp
+++ b/src/shader_recompiler/ir_opt/constant_propagation_pass.cpp
@@ -563,6 +563,15 @@ void ConstantPropagation(IR::Block& block, IR::Inst& inst) {
563 return (base & ~(~(~0u << bits) << offset)) | (insert << offset); 563 return (base & ~(~(~0u << bits) << offset)) | (insert << offset);
564 }); 564 });
565 return; 565 return;
566 case IR::Opcode::CompositeExtractU32x2:
567 return FoldCompositeExtract(inst, IR::Opcode::CompositeConstructU32x2,
568 IR::Opcode::CompositeInsertU32x2);
569 case IR::Opcode::CompositeExtractU32x3:
570 return FoldCompositeExtract(inst, IR::Opcode::CompositeConstructU32x3,
571 IR::Opcode::CompositeInsertU32x3);
572 case IR::Opcode::CompositeExtractU32x4:
573 return FoldCompositeExtract(inst, IR::Opcode::CompositeConstructU32x4,
574 IR::Opcode::CompositeInsertU32x4);
566 case IR::Opcode::CompositeExtractF32x2: 575 case IR::Opcode::CompositeExtractF32x2:
567 return FoldCompositeExtract(inst, IR::Opcode::CompositeConstructF32x2, 576 return FoldCompositeExtract(inst, IR::Opcode::CompositeConstructF32x2,
568 IR::Opcode::CompositeInsertF32x2); 577 IR::Opcode::CompositeInsertF32x2);