Skip to content

Commit

Permalink
mark some simdArray procs alwaysInline
Browse files Browse the repository at this point in the history
  • Loading branch information
jcosborn committed Dec 7, 2023
1 parent f919fcd commit b6e7d37
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions src/simd/simdArray.nim
Original file line number Diff line number Diff line change
Expand Up @@ -756,26 +756,26 @@ template makeSimdArray2*(L:typed;B,F:typedesc;N0,N:typed,T:untyped) {.dirty.} =
forStatic i, 0, L-1:
assign(r[][i], x)
template `:=`*(r: T, x: SomeNumber) = assign(r, x)
proc assign*(r:var T; x:array[N,SomeNumber]) {.inline.} =
proc assign*(r:var T; x:array[N,SomeNumber]) {.alwaysInline.} =
when compiles(assign(r[][0], unsafeAddr(x[0]))):
forStatic i, 0, L-1:
assign(r[][i], unsafeAddr(x[i*N0]))
else:
var y = x
forStatic i, 0, L-1:
assign(r[][i], unsafeAddr(y[i*N0]))
proc assign*(r:var array[N,SomeNumber], x:T) {.inline.} =
proc assign*(r:var array[N,SomeNumber], x:T) {.alwaysInline.} =
bind forStatic
when B is SomeNumber:
forStatic i, 0, L-1:
r[i] = x[][i]
else:
forStatic i, 0, L-1:
assign(addr(r[i*N0]), x[][i])
proc assign*(r: var SimdArrayObj, x: T) {.inline.} =
proc assign*(r: var SimdArrayObj, x: T) {.alwaysInline.} =
for i in 0..<N:
r[i] = x[i]
proc assign*(m: Masked[T], x: SomeNumber) =
proc assign*(m: Masked[T], x: SomeNumber) {.inline.} =
#static: echo "a mask"
var i = 0
var b = m.mask
Expand Down

0 comments on commit b6e7d37

Please sign in to comment.