summaryrefslogtreecommitdiffstats
path: root/docs/submittingpatches.html
diff options
context:
space:
mode:
authorRoland Scheidegger <[email protected]>2018-12-07 02:28:01 +0100
committerRoland Scheidegger <[email protected]>2018-12-12 03:50:03 +0100
commit86c45fe960603f97604c885e01f5a69030309809 (patch)
treeb6ce2285033698b7b98930492c2fd25be6e59da3 /docs/submittingpatches.html
parent721c296bdc37a1d7ff67667f5da6df448f50117a (diff)
gallivm: remove unused float coord wrapping for aos sampling
AoS sampling tries to use integers for coord wrapping when possible, as it should be faster. However, for AVX, this was suboptimal, because only floats can use 8x32bit vectors, whereas integers have to be split into 4x32bit vectors. (I believe part of why it was slower was also that at least earlier llvm versions had trouble optimizing it properly, since you can still do simple bit ops with 8x32bit vectors, so a sequence of int add / and / int add / and with such vectors would actually end up doing 128bit inserts/extracts between the operations instead of just doing the cheap 128bit ands.) Hence, a special float coord wrapping path was added to AoS sampling. But this path was actually disabled for a long time already, since we found that just splitting everything before entering the AoS path was still sligthly faster usually, so none of this float coord wrapping code was used anymore (AoS sampling code, when avx2 isn't supported, never sees vectors with length > 4). I thought it might be useful some day again, but I'm not interested anymore in optimizing for very weird instruction sets which have support for 256bit vectors for floats but not for ints, so just drop it. Reviewed-by: Jose Fonseca <[email protected]>
Diffstat (limited to 'docs/submittingpatches.html')
0 files changed, 0 insertions, 0 deletions