From: Lionel Landwerlin Date: Thu, 22 Feb 2018 17:17:40 +0000 (+0000) Subject: i965: perf: add support for new equation operators X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e7f6d1e5f8a4486b1c04b70979131fe4c1852809;p=mesa.git i965: perf: add support for new equation operators Some equations of the CNL metrics started to use operators we haven't defined yet, just add those. Signed-off-by: Lionel Landwerlin Reviewed-by: Kenneth Graunke --- diff --git a/src/mesa/drivers/dri/i965/brw_oa.py b/src/mesa/drivers/dri/i965/brw_oa.py index b0b2be2af00..7bf7987b4ca 100644 --- a/src/mesa/drivers/dri/i965/brw_oa.py +++ b/src/mesa/drivers/dri/i965/brw_oa.py @@ -120,6 +120,18 @@ def emit_umin(tmp_id, args): c("uint64_t tmp{0} = MIN({1}, {2});".format(tmp_id, args[1], args[0])) return tmp_id + 1 +def emit_lshft(tmp_id, args): + c("uint64_t tmp{0} = {1} << {2};".format(tmp_id, args[1], args[0])) + return tmp_id + 1 + +def emit_rshft(tmp_id, args): + c("uint64_t tmp{0} = {1} >> {2};".format(tmp_id, args[1], args[0])) + return tmp_id + 1 + +def emit_and(tmp_id, args): + c("uint64_t tmp{0} = {1} & {2};".format(tmp_id, args[1], args[0])) + return tmp_id + 1 + ops = {} # (n operands, emitter) ops["FADD"] = (2, emit_fadd) @@ -133,6 +145,9 @@ ops["UDIV"] = (2, emit_udiv) ops["UMUL"] = (2, emit_umul) ops["USUB"] = (2, emit_usub) ops["UMIN"] = (2, emit_umin) +ops["<<"] = (2, emit_lshft) +ops[">>"] = (2, emit_rshft) +ops["AND"] = (2, emit_and) def brkt(subexp): if " " in subexp: