マスク付きロード命令およびストア命令の追加 vmaskmov はマスク付きのロードまたはストアを行う命令です。以下のような条件分岐のあるプログラムにおいて、コンパイラーは b[i] へのアクセスを安全に行うことができるかどうか(すなわち、b[i] が常に参照可能なメモリを指しているか)判断不可能なため、従来は自動ベクトル化を断念するか、その部分だけスカラーのコードで(非効率的に)実行していました。 マスクつきロード命令により、b[i] へのメモリーアクセスを a[i]>0 の条件が真の時にだけベクトル実行することが可能になり、自動ベクトル化においても効率よく実行することができるようになりました。 void foo(float *restrict a, float *b, int n) { int i; for(i=0; i<n; i++){ if (a[i]>0) { a[i] += b[