Skip to content

cilksan cannot handle gathers  #47

@wheatman

Description

@wheatman

When I try and compile anything with cilksan which includes avx gathers I get an undefined reference error.

Example code

#include <cilk/cilk.h>
#include <immintrin.h>

int main() {
  int *x = (int *)malloc(1000000 * sizeof(int));
  __m128i indx = _mm_set_epi32(1, 100, 1000, 100000);
  __m128i y = _mm_i32gather_epi32(x, indx, 4);
  return _mm_extract_epi32(y, 0) + _mm_extract_epi32(y, 1) +
         _mm_extract_epi32(y, 2) + _mm_extract_epi32(y, 3);
}

compiled with
clang++ -mavx2 -fsanitize=cilk -fopencilk del.cpp

Leads to an error of

/usr/bin/ld: /tmp/del-0ed0b7.o: in function `main': del.cpp:(.text+0x25e): undefined reference to `__csan_llvm_x86_avx2_gather_d_d' clang-10: error: linker command failed with exit code 1 (use -v to see invocation)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions