From d12e6e15c9d8f25cc41f6d6e5cdd3b96b355ee6c Mon Sep 17 00:00:00 2001 From: Wolfgang Bumiller Date: Mon, 14 Jan 2013 11:15:06 +0100 Subject: [PATCH] -flegacy-vector-maths, enabled by default --- ir.c | 7 +++++++ opts.c | 1 + opts.def | 1 + 3 files changed, 9 insertions(+) diff --git a/ir.c b/ir.c index 7bfd43f..4c41c8c 100644 --- a/ir.c +++ b/ir.c @@ -600,6 +600,13 @@ bool ir_function_pass_peephole(ir_function *self) if (!instr_is_operation(oper->opcode)) continue; + if (OPTS_FLAG(LEGACY_VECTOR_MATHS)) { + if (oper->opcode == INSTR_MUL_VF && oper->_ops[2]->memberof == oper->_ops[1]) + continue; + if (oper->opcode == INSTR_MUL_FV && oper->_ops[1]->memberof == oper->_ops[2]) + continue; + } + value = oper->_ops[0]; /* only do it for SSA values */ diff --git a/opts.c b/opts.c index 0c8d3f4..beef91a 100644 --- a/opts.c +++ b/opts.c @@ -66,6 +66,7 @@ static void opts_setdefault() { opts_set(opts.flags, FTEPP_PREDEFS, false); opts_set(opts.flags, CORRECT_TERNARY, true); opts_set(opts.flags, BAIL_ON_WERROR, true); + opts_set(opts.flags, LEGACY_VECTOR_MATHS, true); } void opts_backup_non_Wall() { diff --git a/opts.def b/opts.def index 16ef9d5..bde5e48 100644 --- a/opts.def +++ b/opts.def @@ -49,6 +49,7 @@ GMQCC_DEFINE_FLAG(UNTYPED_NIL) GMQCC_DEFINE_FLAG(PERMISSIVE) GMQCC_DEFINE_FLAG(VARIADIC_ARGS) + GMQCC_DEFINE_FLAG(LEGACY_VECTOR_MATHS) #endif /* warning flags */ -- 2.39.2