This commit is contained in:
Ryan Oldenburg 2022-06-20 22:21:49 -05:00
parent 82881ae75b
commit 4870c8f283

View file

@ -355,17 +355,14 @@ proc magnifyBy2*(image: Image, power = 1): Image {.raises: [PixieError].} =
when defined(amd64) and allowSimd:
if scale == 2:
while x <= image.width - 4:
let
values = mm_loadu_si128(image.data[image.dataIndex(x, y)].addr)
lo = mm_unpacklo_epi32(values, mm_setzero_si128())
hi = mm_unpackhi_epi32(values, mm_setzero_si128())
let values = mm_loadu_si128(image.data[image.dataIndex(x, y)].addr)
mm_storeu_si128(
result.data[result.dataIndex(x * scale + 0, y * scale)].addr,
mm_or_si128(lo, mm_slli_si128(lo, 4))
mm_unpacklo_epi32(values, values)
)
mm_storeu_si128(
result.data[result.dataIndex(x * scale + 4, y * scale)].addr,
mm_or_si128(hi, mm_slli_si128(hi, 4))
mm_unpackhi_epi32(values, values)
)
x += 4
for x in x ..< image.width: