diff --git a/src/pixie/internal.nim b/src/pixie/internal.nim index 095147d..9fda619 100644 --- a/src/pixie/internal.nim +++ b/src/pixie/internal.nim @@ -65,15 +65,11 @@ 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_store_si128(data[i + 0].addr, colorVec) - mm_store_si128(data[i + 4].addr, colorVec) + mm_storeu_si128(data[i + 0].addr, colorVec) + mm_storeu_si128(data[i + 4].addr, colorVec) i += 8 else: when sizeof(int) == 8: