Piszę program testowy, aby przyzwyczaić się do rozszerzeń języka Clang dla wektorów stylu OpenCL. Mogę uruchomić kod, ale mam problemy z uzyskaniem jednego aspektu. Nie mogę się domyślić, jak uzyskać klang, żeby ładnie ładować wektor z tablicy skalarnej.Lepszy sposób ładowania wektorów z pamięci. (clang)
W tej chwili muszę zrobić coś takiego:
byte16 va = (byte16){ argv[1][start], argv[1][start + 1], argv[1][start + 2],
argv[1][start + 3], argv[1][start + 4], argv[1][start + 5],
argv[1][start + 6], argv[1][start + 7], argv[1][start + 8],
argv[1][start + 9], argv[1][start + 10], argv[1][start + 11],
argv[1][start + 12], argv[1][start + 13], argv[1][start + 14],
argv[1][start + 15]};
bym idealnie jak coś takiego:
byte16 va = *(byte16 *)(&(argv[1][start]));
Które można łatwo zrobić za pomocą odpowiednich intrinsics dla ARM lub x86. Ale ten kod powoduje awarię programu mimo kompilacji.
Czy nie "memcpy (& va, & argv [1] [start], sizeof (va))" działa? – jxh