#include <stdbool.h>
#include "util/ralloc.h"
#include "brw_eu.h"
+#include "brw_gen_enum.h"
static bool
test_compact_instruction(struct brw_codegen *p, brw_inst src)
struct {
void (*func)(struct brw_codegen *p);
+ int gens;
} tests[] = {
- { gen_MOV_GRF_GRF },
- { gen_ADD_GRF_GRF_GRF },
- { gen_ADD_GRF_GRF_IMM },
- { gen_ADD_GRF_GRF_IMM_d },
- { gen_ADD_MRF_GRF_GRF },
- { gen_ADD_vec1_GRF_GRF_GRF },
- { gen_PLN_MRF_GRF_GRF },
- { gen_f0_0_MOV_GRF_GRF },
- { gen_f0_1_MOV_GRF_GRF },
+ { gen_MOV_GRF_GRF, GEN_ALL },
+ { gen_ADD_GRF_GRF_GRF, GEN_ALL },
+ { gen_ADD_GRF_GRF_IMM, GEN_ALL },
+ { gen_ADD_GRF_GRF_IMM_d, GEN_ALL },
+ { gen_ADD_MRF_GRF_GRF, GEN_LE(GEN6) },
+ { gen_ADD_vec1_GRF_GRF_GRF, GEN_ALL },
+ { gen_PLN_MRF_GRF_GRF, GEN_LE(GEN6) },
+ { gen_f0_0_MOV_GRF_GRF, GEN_ALL },
+ { gen_f0_1_MOV_GRF_GRF, GEN_ALL },
};
static bool
bool fail = false;
for (unsigned i = 0; i < ARRAY_SIZE(tests); i++) {
+ if ((tests[i].gens & gen_from_devinfo(devinfo)) == 0)
+ continue;
+
for (int align_16 = 0; align_16 <= 1; align_16++) {
+ /* Align16 support is not present on Gen11+ */
+ if (devinfo->gen >= 11 && align_16)
+ continue;
+
struct brw_codegen *p = rzalloc(NULL, struct brw_codegen);
brw_init_codegen(devinfo, p, p);