diff options
author | Ben Widawsky <benjamin.widawsky@intel.com> | 2014-12-09 10:44:40 -0800 |
---|---|---|
committer | Ben Widawsky <benjamin.widawsky@intel.com> | 2014-12-09 10:44:40 -0800 |
commit | 46b03f885d22d88ab11fe47913fb5a67afde4b62 (patch) | |
tree | 861b230e52b2e05e39b13fa05f8d0f9ff9d43a5e | |
parent | e6275410401ce4c06a06b46413be73c7908f0e71 (diff) |
sechalf fix for regular multipliessimd16
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp index 4726292762..3f8af293cf 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp @@ -661,13 +661,12 @@ fs_visitor::visit(ir_expression *ir) if (brw->gen >= 7 && dispatch_width == 16) { emit(MUL(acc, half(op[0], 0), half(op[1], 0))); emit(MACH(null, half(op[0], 0), half(op[1], 0))); - emit(MOV(half(this->result, 0), acc)); + fs_inst *mov = emit(MOV(half(this->result, 0), acc)); + mov->force_sechalf = true; - fs_inst *mul = emit(MUL(acc, half(op[0], 1), half(op[1], 1))); - mul->force_sechalf = true; - fs_inst *mach = emit(MACH(null, half(op[0], 1), half(op[1], 1))); - mach->force_sechalf = true; - fs_inst *mov = emit(MOV(half(this->result, 1), acc)); + emit(MUL(acc, half(op[0], 1), half(op[1], 1))); + emit(MACH(null, half(op[0], 1), half(op[1], 1))); + mov = emit(MOV(half(this->result, 1), acc)); mov->force_sechalf = true; } else { emit(MUL(acc, op[0], op[1])); |