intel/compiler: Unset flag reg when FB write is not predicated
authorMatt Turner <mattst88@gmail.com>
Mon, 29 Apr 2019 23:01:08 +0000 (16:01 -0700)
committerMatt Turner <mattst88@gmail.com>
Tue, 7 May 2019 21:33:48 +0000 (14:33 -0700)
In the FS IR we pretend that the instruction is predicated with (+f0.1)
just for flag dependency tracking purposes. Since the instruction
doesn't support predication before Haswell, we unset the predicate so we
should also unset the flag register so that we can round-trip the
disassembly.

Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/intel/compiler/brw_fs_generator.cpp

index af8350aed6c6931dbe8026b5ebe353bf4a690213..84909f83fec49abe72e4f86f63657955848c6834 100644 (file)
@@ -363,6 +363,7 @@ fs_generator::generate_fb_write(fs_inst *inst, struct brw_reg payload)
 {
    if (devinfo->gen < 8 && !devinfo->is_haswell) {
       brw_set_default_predicate_control(p, BRW_PREDICATE_NONE);
+      brw_set_default_flag_reg(p, 0, 0);
    }
 
    const struct brw_reg implied_header =