diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/intel/compiler/test_eu_compact.cpp | 50 |
1 files changed, 42 insertions, 8 deletions
diff --git a/src/intel/compiler/test_eu_compact.cpp b/src/intel/compiler/test_eu_compact.cpp index 1ef7e5ae7f1..668a972bfa6 100644 --- a/src/intel/compiler/test_eu_compact.cpp +++ b/src/intel/compiler/test_eu_compact.cpp @@ -74,6 +74,13 @@ clear_pad_bits(const struct gen_device_info *devinfo, brw_inst *inst) brw_inst_src1_reg_file(devinfo, inst) != BRW_IMMEDIATE_VALUE) { brw_inst_set_bits(inst, 127, 111, 0); } + + if (devinfo->gen == 8 && !devinfo->is_cherryview && + is_3src(devinfo, (opcode)brw_inst_opcode(devinfo, inst))) { + brw_inst_set_bits(inst, 105, 105, 0); + brw_inst_set_bits(inst, 84, 84, 0); + brw_inst_set_bits(inst, 36, 35, 0); + } } static bool @@ -87,13 +94,41 @@ skip_bit(const struct gen_device_info *devinfo, brw_inst *src, int bit) if (bit == 29) return true; - /* pad bit */ - if (bit == 47) - return true; + if (is_3src(devinfo, (opcode)brw_inst_opcode(devinfo, src))) { + if (devinfo->gen >= 9 || devinfo->is_cherryview) { + if (bit == 127) + return true; + } else { + if (bit >= 126 && bit <= 127) + return true; - /* pad bits */ - if (bit >= 90 && bit <= 95) - return true; + if (bit == 105) + return true; + + if (bit == 84) + return true; + + if (bit >= 35 && bit <= 36) + return true; + } + } else { + if (bit == 47) + return true; + + if (devinfo->gen >= 8) { + if (bit == 11) + return true; + + if (bit == 95) + return true; + } else { + if (devinfo->gen < 7 && bit == 90) + return true; + + if (bit >= 91 && bit <= 95) + return true; + } + } /* sometimes these are pad bits. */ if (brw_inst_opcode(devinfo, src) != BRW_OPCODE_SEND && @@ -289,10 +324,9 @@ int main(int argc, char **argv) { struct gen_device_info *devinfo = (struct gen_device_info *)calloc(1, sizeof(*devinfo)); - devinfo->gen = 6; bool fail = false; - for (devinfo->gen = 6; devinfo->gen <= 7; devinfo->gen++) { + for (devinfo->gen = 5; devinfo->gen <= 9; devinfo->gen++) { fail |= run_tests(devinfo); } |