diff options
Diffstat (limited to 'src/gallium/drivers/nouveau')
-rw-r--r-- | src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp index a9172f834b2..74a5a854e77 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp @@ -576,6 +576,16 @@ ConstantFolding::expr(Instruction *i, return; } break; + case OP_SUB: + switch (i->dType) { + case TYPE_F32: res.data.f32 = a->data.f32 - b->data.f32; break; + case TYPE_F64: res.data.f64 = a->data.f64 - b->data.f64; break; + case TYPE_S32: + case TYPE_U32: res.data.u32 = a->data.u32 - b->data.u32; break; + default: + return; + } + break; case OP_POW: switch (i->dType) { case TYPE_F32: res.data.f32 = pow(a->data.f32, b->data.f32); break; |