GCC 中的“-O2”是否启用了“-ftree-slp-vectorize”?
Is `-ftree-slp-vectorize` not enabled by `-O2` in GCC?
来自https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
它说“-ftree-slp-vectorize:对树执行基本块矢量化。默认情况下,此标志在 -O2 和 -ftree-vectorize、-fprofile-use 和 -fauto-profile 中启用。”
不过,我似乎必须明确传递一个标志才能打开 SIMD。我在这里误解了什么吗?不过它在 -O3
启用。
Is -ftree-slp-vectorize
not enabled by -O2
in GCC?
是也不是。这取决于编译器的版本。
From https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
您已链接到最新版本的文档。它适用于当前正在开发的版本,目前是版本 12。
However it seems I have to pass a flag explicitly to turn on SIMD.
您的示例使用 GCC 版本 11。
Did I mis undertand something here?
您阅读了错误版本的文档,或使用了错误版本的编译器,因此您的假设不成立。
来自https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
它说“-ftree-slp-vectorize:对树执行基本块矢量化。默认情况下,此标志在 -O2 和 -ftree-vectorize、-fprofile-use 和 -fauto-profile 中启用。”
不过,我似乎必须明确传递一个标志才能打开 SIMD。我在这里误解了什么吗?不过它在 -O3
启用。
Is
-ftree-slp-vectorize
not enabled by-O2
in GCC?
是也不是。这取决于编译器的版本。
From https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
您已链接到最新版本的文档。它适用于当前正在开发的版本,目前是版本 12。
However it seems I have to pass a flag explicitly to turn on SIMD.
您的示例使用 GCC 版本 11。
Did I mis undertand something here?
您阅读了错误版本的文档,或使用了错误版本的编译器,因此您的假设不成立。