動機は、float *U 配列が 64 バイトにアラインされていることをコンパイラーに伝えて、コンパイラーがベクトル化できるようにすることです。
Intel コンパイラを使用している場合は、__assume_aligned(U,64) を使用できます。Google で調べたところ、GCC を使用して同じことを行うには、別の float *U_tmp=__builtin_assume_aligned(U,64) を定義し、使用する必要があることがわかりました。 U_tmp. ただし、GCC でコンパイルすると、コンパイラは「エラー: '__builtin_assume_aligned' はこのスコープで宣言されていませんでした」と報告します。