OpenCL スタイル ベクトル用の Clang の言語拡張に慣れるためのテスト プログラムを作成しています。コードを動作させることはできますが、コードの 1 つの側面をダウンさせるのに問題があります。私は、clang がスカラー配列からベクトルをうまくロードする方法を理解できないようです。
現時点では、次のようなことをしなければなりません:
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]};
私は理想的には次のようなものが欲しいです:
byte16 va = *(byte16 *)(&(argv[1][start]));
これは、ARM または x86 の適切な組み込み関数を使用して簡単に実行できます。しかし、そのコードはコンパイルしてもプログラムをクラッシュさせます。