Sto scrivendo un programma di test per abituarmi alle estensioni del linguaggio di Clang per i vettori di stile OpenCL. Posso far funzionare il codice, ma ho dei problemi con un aspetto negativo. Non riesco a capire come ottenere clang a caricare semplicemente un vettore da uno schieramento scalare.Un modo migliore per caricare i vettori dalla memoria. (clang)
Al momento devo fare qualcosa di simile:
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]};
Vorrei idealmente come qualcosa di simile:
byte16 va = *(byte16 *)(&(argv[1][start]));
cui posso facilmente fare utilizzando gli intrinseci appropriate per ARM o x86. Ma quel codice causa il crash del programma sebbene compili.
Non funziona 'memcpy (& va, & argv [1] [inizio], sizeof (va))'? – jxh