libera/#sbcl - IRC Chatlog
Search
9:43:06
moon-child
I am trying to add avx512 support to sbcl. I have it mostly working, but have one problem: the mask registers. These should be able to hold integers, so I added to primtype: (!def-primitive-type unsigned-byte-64 (unsigned-reg descriptor-reg mask-reg). I have also done (define-move-vop move-from-mask :move (mask-reg) (unsigned-reg signed-reg)) (for appropriately defined move-from-mask). But I get
9:43:08
moon-child
the following error during bootstrapping: '#<TN t1 :NORMAL> is not valid as the first argument to the MOVE-FROM-WORD/FIXNUM VOP, since the TN's primitive type UNSIGNED-BYTE-64 allows SCs: (MASK-REG) which cannot be coerced or loaded into the allowed SCs: (SIGNED-REG UNSIGNED-REG) Current cost info inconsistent with that in effect at compile time. Recompile. Compilation order may be incorrect.'
9:43:25
moon-child
any hints? I would expect that define-move-vop to allow moving from mask-reg to unsigned-reg
11:26:52
Shinmera
I don't suppose there's an easy way to get SORT of a vector to pass the element index to the KEY function rather than the element
11:27:28
Shinmera
(no I do not want to construct a hash table first, nor do I want to rewrite the vector to contain conses of index + element or something)
11:34:06
Shinmera
I don't want to sort the indices. I want to provide the value to sort based on another array that shares the same layout.
11:39:58
_death
maybe I'm misunderstanding, but it seems that you want to sort multiple sequences "together".. then the vector of indices approach is the usual solution