freenode/#sbcl - IRC Chatlog
Search
22:59:43
stassats
finally, i'm able to remove the first SETF in (defun foo (x) (setf x 30) (setf x 20) x)
23:00:54
stassats
i'm able to determine the same thing for a let, (lambda (let (x) (setf x 20) x)), but need to figure out how to represent a LET with an "unbound" variable
23:01:48
stassats
that's the target, (setf x) (setf x) is probably pretty rare, but the LET thing comes from, e.g., (loop for x in list)
23:03:56
stassats
it's actually pretty easy, once i grokked what Appel meant, and we already have block-in and block-out slots, so, doubly easy
1:04:19
stassats
you only have one vop, and it's for constant indexes, and here it's not constant (defun spf4-item (pack index) (spf4-item pack index))
1:09:00
stassats
https://github.com/sbcl/sbcl/blob/master/src/compiler/x86-64/simd-pack.lisp#L276 right there
1:10:46
stassats
is https://github.com/sbcl/sbcl/blob/master/src/compiler/x86-64/simd-pack.lisp#L276 somehow different for you?
1:22:03
borei
can i call sb-ext::%simd-pack-single-item function directly from my code ? or it will be package lock violation ?
1:26:36
borei
in form (:arg-types simd-pack (:constant t)) (:constant t) means that that simd-pack can't be changed ?
1:51:16
borei
'and here it's not constant (defun spf4-item (pack index) (spf4-item pack index))' - should spf4-item function be defined in particular way ?
1:52:54
stassats
right now the only vop you have can only work as (spf4-item pack 0) or (spf4-item pack 1), etc.
1:53:39
stassats
you could do that (case index (0 ..) (1 ..)), or make a VOP that works on arbitrary indexes
1:55:29
borei
when im trying to compile code, im getting warning that there is recursion, it means that control is not going to vop, but spining within that spf4-item function
1:59:40
stassats
you could just do (defun spf4-item (pack index) (ecase index (0 (spf4-item pack 0)) (1 (spf4-item pack 1)) (2 (spf4-item pack 2)) (3 (spf4-item pack 3))))
2:14:26
stassats
if you want to access individual single floats from a simd-pack you shouldn't use a simd-pack
2:26:32
borei
'if you want to access individual single floats from a simd-pack you shouldn't use a simd-pack' - what should i use ?
2:29:59
borei
for example, i have vector dimension=100, it's 25 simd-pack (4 values per pack), to find sum of 2 such vectors - not a problem, difference - also simple, multiplication by number, a bit trickier, but also possible to do simd-pack
2:31:16
borei
scalar multiplication of such vectors s = sum(Ai,Bi) for all i - will require access to individual single float.