diff options
author | Ian Romanick <[email protected]> | 2017-11-13 11:17:41 -0800 |
---|---|---|
committer | Ian Romanick <[email protected]> | 2018-03-29 14:09:23 -0700 |
commit | d76c204d0564701b4b8b6a2bdda50e2939683e66 (patch) | |
tree | edcf51df711640ffd89326079f10b1dcf65f311b /src/gallium/drivers/nouveau/codegen | |
parent | a3a16d4aa7e5a22816226d8e7417138164b10525 (diff) |
util: Move util_is_power_of_two to bitscan.h and rename to util_is_power_of_two_or_zero
The new name make the zero-input behavior more obvious. The next
patch adds a new function with different zero-input behavior.
Signed-off-by: Ian Romanick <[email protected]>
Suggested-by: Matt Turner <[email protected]>
Reviewed-by: Alejandro PiƱeiro <[email protected]>
Diffstat (limited to 'src/gallium/drivers/nouveau/codegen')
-rw-r--r-- | src/gallium/drivers/nouveau/codegen/nv50_ir.cpp | 2 | ||||
-rw-r--r-- | src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp index 6f12df70a11..c987da99085 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp @@ -423,7 +423,7 @@ ImmediateValue::isNegative() const bool ImmediateValue::isPow2() const { - return util_is_power_of_two(reg.data.u32); + return util_is_power_of_two_or_zero(reg.data.u32); } void diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp index 48cf74950df..39177bd044b 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp @@ -1305,7 +1305,7 @@ ConstantFolding::opnd(Instruction *i, ImmediateValue &imm0, int s) src->op == OP_SHR && src->src(1).getImmediate(imm1) && i->src(t).mod == Modifier(0) && - util_is_power_of_two(imm0.reg.data.u32 + 1)) { + util_is_power_of_two_or_zero(imm0.reg.data.u32 + 1)) { // low byte = offset, high byte = width uint32_t ext = (util_last_bit(imm0.reg.data.u32) << 8) | imm1.reg.data.u32; i->op = OP_EXTBF; @@ -1314,7 +1314,7 @@ ConstantFolding::opnd(Instruction *i, ImmediateValue &imm0, int s) } else if (src->op == OP_SHL && src->src(1).getImmediate(imm1) && i->src(t).mod == Modifier(0) && - util_is_power_of_two(~imm0.reg.data.u32 + 1) && + util_is_power_of_two_or_zero(~imm0.reg.data.u32 + 1) && util_last_bit(~imm0.reg.data.u32) <= imm1.reg.data.u32) { i->op = OP_MOV; i->setSrc(s, NULL); |