[llvm] [RISCV] Don't vectorize for loops with small trip count (PR #132176)

Pengcheng Wang via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 25 23:49:01 PDT 2025


wangpc-pp wrote:

Statistics on llvm-test-suite:
```
Tests: 2074
Metric: loop-vectorize.LoopsVectorized

Program                                       loop-vectorize.LoopsVectorized                                                                               
                                              0                              3       5       7       8       10      12      14      16      32      diff  
SingleSour...nchmarks/Adobe-C++/loop_unroll    624.00                         608.00  592.00  576.00  568.00  552.00  536.00  520.00  512.00  512.00 112.00
MultiSourc.../Applications/JM/lencod/lencod    243.00                         243.00  241.00  241.00  235.00  233.00  227.00  227.00  219.00  219.00  24.00
External/S...te/526.blender_r/526.blender_r   1595.00                        1587.00 1576.00 1576.00 1576.00 1576.00 1576.00 1575.00 1574.00 1574.00  21.00
MultiSourc...ch/consumer-jpeg/consumer-jpeg     80.00                          80.00   79.00   79.00   72.00   72.00   72.00   72.00   72.00   72.00   8.00
MultiSourc.../mediabench/jpeg/jpeg-6a/cjpeg     76.00                          76.00   75.00   75.00   68.00   68.00   68.00   68.00   68.00   68.00   8.00
External/S...te/538.imagick_r/538.imagick_r    447.00                         443.00  443.00  440.00  440.00  440.00  440.00  440.00  440.00  440.00   7.00
External/S...ed/638.imagick_s/638.imagick_s    447.00                         443.00  443.00  440.00  440.00  440.00  440.00  440.00  440.00  440.00   7.00
MultiSourc...e/Applications/ClamAV/clamscan    132.00                         132.00  132.00  132.00  131.00  127.00  127.00  127.00  126.00  126.00   6.00
MultiSourc.../Applications/JM/ldecod/ldecod     94.00                          94.00   91.00   89.00   89.00   89.00   89.00   89.00   89.00   89.00   5.00
MultiSourc...Benchmarks/7zip/7zip-benchmark    365.00                         365.00  364.00  362.00  361.00  361.00  361.00  361.00  361.00  361.00   4.00
External/S...2017rate/525.x264_r/525.x264_r     99.00                          99.00   99.00   99.00   96.00   96.00   96.00   96.00   96.00   96.00   3.00
MultiSourc...nch/mpeg2/mpeg2dec/mpeg2decode     25.00                          25.00   25.00   25.00   22.00   22.00   22.00   22.00   22.00   22.00   3.00
External/S...31.deepsjeng_s/631.deepsjeng_s     31.00                          31.00   31.00   28.00   28.00   28.00   28.00   28.00   28.00   28.00   3.00
External/S...017speed/625.x264_s/625.x264_s     99.00                          99.00   99.00   99.00   96.00   96.00   96.00   96.00   96.00   96.00   3.00
External/S...rate/510.parest_r/510.parest_r   5020.00                        5019.00 5019.00 5019.00 5019.00 5019.00 5019.00 5019.00 5017.00 5017.00   3.00
      loop-vectorize.LoopsVectorized                                                                                                                                  
run                                0            3            5            7            8           10           12           14           16           32         diff
count  260.000000                     258.000000   258.000000   258.000000   258.000000   257.000000   257.000000   257.000000   257.000000   257.000000   2074.000000
mean   131.126923                     131.992248   131.837209   131.697674   131.534884   131.953307   131.859922   131.793774   131.704280   131.704280   0.116683   
std    361.168592                     362.102625   361.845051   361.754977   361.725201   362.264166   362.188244   362.104299   361.945748   361.945748   2.592222   
min    1.000000                       1.000000     1.000000     1.000000     1.000000     1.000000     1.000000     1.000000     1.000000     1.000000     0.000000   
25%    3.750000                       4.000000     4.000000     4.000000     4.000000     4.000000     4.000000     4.000000     4.000000     4.000000     0.000000   
50%    12.000000                      12.500000    12.500000    12.500000    12.500000    13.000000    13.000000    13.000000    13.000000    13.000000    0.000000   
75%    132.250000                     132.750000   132.750000   132.750000   132.500000   133.000000   133.000000   133.000000   133.000000   133.000000   0.000000   
max    5020.000000                    5019.000000  5019.000000  5019.000000  5019.000000  5019.000000  5019.000000  5019.000000  5017.000000  5017.000000  112.000000 
```
5 seems reasonable.

https://github.com/llvm/llvm-project/pull/132176


More information about the llvm-commits mailing list