summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Widawsky <benjamin.widawsky@intel.com>2014-12-09 10:44:40 -0800
committerBen Widawsky <benjamin.widawsky@intel.com>2014-12-09 10:44:40 -0800
commit46b03f885d22d88ab11fe47913fb5a67afde4b62 (patch)
tree861b230e52b2e05e39b13fa05f8d0f9ff9d43a5e
parente6275410401ce4c06a06b46413be73c7908f0e71 (diff)
sechalf fix for regular multipliessimd16
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs_visitor.cpp11
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]));