f32.sgnwith double precision. I'll fix it.
#[unsafe]in front and see if that makes it run properly.
goto, which is probably a mistake. There's no way a GPU can handle non-reducible control flow. But the only use of
gotoin the generated code is to break out of nested loops, which is reducible, so it really ought to work.
type t val index [n] 'a : [n]a -> t -> a
I was originally thinking of something like
let index [n] 't 'i (ts: [n]t) (index: i) = ts[i]
but that won't compile regardless
@Gusten_Isfeldt_gitlab Also, be careful in general. I never finished implementing proper synchronisation for accumulator operators that cannot be implemented with hardware atomics (basically, primitive operators).
@athas would this manifest as incorrect results, and if so, would the errors in general be small, like missed values in the accumulation?