faster
This commit is contained in:
parent
4c100a2554
commit
1493634920
1 changed files with 6 additions and 2 deletions
|
@ -65,11 +65,15 @@ proc fillUnsafe*(
|
|||
else:
|
||||
var i = start
|
||||
when defined(amd64) and allowSimd:
|
||||
# Align to 16 bytes
|
||||
while (cast[uint](data[i].addr) and 15) != 0:
|
||||
data[i] = rgbx
|
||||
inc i
|
||||
# When supported, SIMD fill until we run out of room
|
||||
let colorVec = mm_set1_epi32(cast[int32](rgbx))
|
||||
for _ in 0 ..< len div 8:
|
||||
mm_storeu_si128(data[i + 0].addr, colorVec)
|
||||
mm_storeu_si128(data[i + 4].addr, colorVec)
|
||||
mm_store_si128(data[i + 0].addr, colorVec)
|
||||
mm_store_si128(data[i + 4].addr, colorVec)
|
||||
i += 8
|
||||
else:
|
||||
when sizeof(int) == 8:
|
||||
|
|
Loading…
Reference in a new issue