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 af8350a..84909f8 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 =