gallivm: don't use URem/UDiv when calculating offsets for blocks
authorRoland Scheidegger <sroland@vmware.com>
Fri, 24 Sep 2010 13:02:24 +0000 (15:02 +0200)
committerJosé Fonseca <jfonseca@vmware.com>
Sat, 25 Sep 2010 11:19:31 +0000 (12:19 +0100)
commit46d05d4ef99857e50d978247917f3e16574418f4
treefdb7bd877ce5cac758448196873375a51d6934ef
parent26dc60d0a32f3e5b8084fda5991b762a721662e8
gallivm: don't use URem/UDiv when calculating offsets for blocks

While it's true that llvm can and will indeed replace this with bit
arithmetic (since block height/width is POT), it does so (llvm 2.7) by element
and hence extracts/shifts/reinserts each element individually.
This costs about 16 instructions (and extract is not really fast) vs. 1...
src/gallium/auxiliary/gallivm/lp_bld_sample.c