14:33:57ColleenThe sweep() in https://godbolt.org/z/h9ezqbqf1 - Clang says it "cannot identify array bounds" which is an odd thing to report on, I think.
14:33:57hayleyThe sweep() in https://godbolt.org/z/h9ezqbqf1 - Clang says it "cannot identify array bounds" which is an odd thing to report on, I think.
14:34:48shinmeraare the array pointers set as restricted?
14:36:38ColleenLooks like I am missing restrict. One moment...
14:36:38hayleyLooks like I am missing restrict. One moment...
14:39:45ColleenDoesn't seem to help, though indeed the compiler couldn't vectorised if there was aliasing.
14:39:45hayleyDoesn't seem to help, though indeed the compiler couldn't vectorised if there was aliasing.
15:03:33ColleenIt did! Took me some time (and reading an llvm-dev thread) to figure why though. Thanks.
15:03:33hayleyIt did! Took me some time (and reading an llvm-dev thread) to figure why though. Thanks.
15:04:25ColleenWhen I say M[n] ? A[n] : B[n] the compiler can't emit unconditional loads to A and B, but it can when I write it your way, as the source already has unconditional loads.
15:04:25hayleyWhen I say M[n] ? A[n] : B[n] the compiler can't emit unconditional loads to A and B, but it can when I write it your way, as the source already has unconditional loads.