diff options
| author | 2021-06-23 01:32:09 -0300 | |
|---|---|---|
| committer | 2021-07-22 21:51:39 -0400 | |
| commit | 97e80dda55aec0ff791e4990f09c85e7a7067730 (patch) | |
| tree | 394c9d88d2d8d4764ddf5af3be1c0c6006e1cead /src/shader_recompiler/ir_opt/constant_propagation_pass.cpp | |
| parent | glsl: Better IAdd Overflow CC fix (diff) | |
| download | yuzu-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.cpp | 9 |
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); |