[llvm] [LV] Implement SWAR loop vectorization (PR #69306)

Sergey Kachkov via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 17 06:03:12 PDT 2023


skachkov-sc wrote:

<details>
  <summary>test-suite+SPEC2006+SPEC2017 vectorization results</summary>

```
Tests: 365
Metric: loop-vectorize.LoopsVectorized

Program                                                                                      loop-vectorize.LoopsVectorized
                                                                                             res                           
               test-suite :: External/SPEC/CINT2017rate/523.xalancbmk_r/523.xalancbmk_r.test 235.00                        
              test-suite :: External/SPEC/CINT2017speed/623.xalancbmk_s/623.xalancbmk_s.test 235.00                        
                               test-suite :: MultiSource/Benchmarks/7zip/7zip-benchmark.test 218.00                        
                      test-suite :: External/SPEC/CFP2017rate/510.parest_r/510.parest_r.test 217.00                        
                          test-suite :: External/SPEC/CFP2017rate/508.namd_r/508.namd_r.test 172.00                        
                           test-suite :: External/SPEC/CINT2006/464.h264ref/464.h264ref.test 126.00                        
                       test-suite :: External/SPEC/CINT2006/483.xalancbmk/483.xalancbmk.test 112.00                        
                              test-suite :: External/SPEC/CFP2006/447.dealII/447.dealII.test 102.00                        
                          test-suite :: External/SPEC/CINT2017speed/602.gcc_s/602.gcc_s.test  68.00                        
                           test-suite :: External/SPEC/CINT2017rate/502.gcc_r/502.gcc_r.test  68.00                        
            test-suite :: SingleSource/Benchmarks/Adobe-C++/simple_types_loop_invariant.test  63.00                        
                    test-suite :: External/SPEC/CFP2017rate/526.blender_r/526.blender_r.test  60.00                        
          test-suite :: SingleSource/Benchmarks/Adobe-C++/simple_types_constant_folding.test  56.00                        
                                 test-suite :: MultiSource/Applications/ClamAV/clamscan.test  52.00                        
                                     test-suite :: MultiSource/Benchmarks/Bullet/bullet.test  41.00                        
                          test-suite :: MultiSource/Benchmarks/Prolangs-C/bison/mybison.test  34.00                        
                             test-suite :: External/SPEC/CINT2017rate/557.xz_r/557.xz_r.test  33.00                        
                            test-suite :: External/SPEC/CINT2017speed/657.xz_s/657.xz_s.test  33.00                        
                                test-suite :: MultiSource/Applications/JM/lencod/lencod.test  31.00                        
                      test-suite :: External/SPEC/CFP2017rate/511.povray_r/511.povray_r.test  29.00                        
                     test-suite :: MultiSource/Benchmarks/DOE-ProxyApps-C++/CLAMR/CLAMR.test  21.00                        
                                test-suite :: MultiSource/Applications/JM/ldecod/ldecod.test  19.00                        
                            test-suite :: MultiSource/Benchmarks/Prolangs-C/agrep/agrep.test  19.00                        
              test-suite :: External/SPEC/CINT2017speed/600.perlbench_s/600.perlbench_s.test  16.00                        
                          test-suite :: External/SPEC/CINT2017speed/605.mcf_s/605.mcf_s.test  16.00                        
               test-suite :: External/SPEC/CINT2017rate/500.perlbench_r/500.perlbench_r.test  16.00                        
                           test-suite :: External/SPEC/CINT2017rate/505.mcf_r/505.mcf_r.test  16.00                        
                              test-suite :: External/SPEC/CFP2006/453.povray/453.povray.test  15.00                        
                     test-suite :: MultiSource/Benchmarks/MallocBench/espresso/espresso.test  14.00                        
                                   test-suite :: External/SPEC/CINT2006/403.gcc/403.gcc.test  14.00                        
                       test-suite :: MultiSource/Benchmarks/ASCI_Purple/SMG2000/smg2000.test  13.00                        
                                 test-suite :: MultiSource/Applications/SIBsim4/SIBsim4.test  13.00                        
                             test-suite :: MultiSource/Benchmarks/tramp3d-v4/tramp3d-v4.test  13.00                        
                                     test-suite :: MultiSource/Applications/SPASS/SPASS.test  13.00                        
                               test-suite :: External/SPEC/CINT2006/456.hmmer/456.hmmer.test  13.00                        
                       test-suite :: External/SPEC/CINT2006/400.perlbench/400.perlbench.test  13.00                        
                              test-suite :: External/SPEC/CFP2006/450.soplex/450.soplex.test  12.00                        
                               test-suite :: External/SPEC/CINT2006/445.gobmk/445.gobmk.test  12.00                        
                              test-suite :: MultiSource/Benchmarks/mafft/pairlocalalign.test  11.00                        
                                     test-suite :: SingleSource/Benchmarks/McGill/chomp.test   8.00                        
                         test-suite :: External/SPEC/CINT2017rate/525.x264_r/525.x264_r.test   7.00                        
                   test-suite :: External/SPEC/CFP2017speed/638.imagick_s/638.imagick_s.test   7.00                        
                   test-suite :: External/SPEC/CINT2017rate/520.omnetpp_r/520.omnetpp_r.test   7.00                        
                    test-suite :: External/SPEC/CFP2017rate/538.imagick_r/538.imagick_r.test   7.00                        
         test-suite :: MultiSource/Benchmarks/MiBench/consumer-typeset/consumer-typeset.test   7.00                        
                        test-suite :: External/SPEC/CINT2017speed/625.x264_s/625.x264_s.test   7.00                        
                                       test-suite :: MultiSource/Benchmarks/PAQ8p/paq8p.test   7.00                        
                  test-suite :: External/SPEC/CINT2017speed/620.omnetpp_s/620.omnetpp_s.test   7.00                        
                               test-suite :: External/SPEC/CINT2006/401.bzip2/401.bzip2.test   7.00                        
               test-suite :: MultiSource/Benchmarks/MiBench/consumer-lame/consumer-lame.test   6.00                        
             test-suite :: MultiSource/Benchmarks/mediabench/mpeg2/mpeg2dec/mpeg2decode.test   6.00                        
                           test-suite :: External/SPEC/CFP2017speed/644.nab_s/644.nab_s.test   5.00                        
                                     test-suite :: MultiSource/Benchmarks/Ptrdist/bc/bc.test   5.00                        
               test-suite :: MultiSource/Benchmarks/MiBench/consumer-jpeg/consumer-jpeg.test   5.00                        
                            test-suite :: External/SPEC/CFP2017rate/544.nab_r/544.nab_r.test   5.00                        
                   test-suite :: MultiSource/Benchmarks/DOE-ProxyApps-C/miniGMG/miniGMG.test   4.00                        
                           test-suite :: MultiSource/Benchmarks/ASC_Sequoia/AMGmk/AMGmk.test   4.00                        
                          test-suite :: MicroBenchmarks/LCALS/SubsetBRawLoops/lcalsBRaw.test   4.00                        
                    test-suite :: MicroBenchmarks/LCALS/SubsetBLambdaLoops/lcalsBLambda.test   4.00                        
                          test-suite :: MicroBenchmarks/LCALS/SubsetARawLoops/lcalsARaw.test   4.00                        
                    test-suite :: MicroBenchmarks/LCALS/SubsetALambdaLoops/lcalsALambda.test   4.00                        
                          test-suite :: MicroBenchmarks/LCALS/SubsetCRawLoops/lcalsCRaw.test   4.00                        
                    test-suite :: MicroBenchmarks/LCALS/SubsetCLambdaLoops/lcalsCLambda.test   4.00                        
                test-suite :: MultiSource/Benchmarks/Trimaran/netbench-url/netbench-url.test   4.00                        
                                   test-suite :: MultiSource/Applications/oggenc/oggenc.test   3.00                        
                                 test-suite :: MultiSource/Applications/minisat/minisat.test   3.00                        
                             test-suite :: MultiSource/Benchmarks/FreeBench/pifft/pifft.test   3.00                        
                       test-suite :: External/SPEC/CINT2017rate/541.leela_r/541.leela_r.test   2.00                        
                                    test-suite :: SingleSource/Benchmarks/McGill/queens.test   2.00                        
                      test-suite :: External/SPEC/CINT2017speed/641.leela_s/641.leela_s.test   2.00                        
                         test-suite :: MultiSource/Benchmarks/DOE-ProxyApps-C/CoMD/CoMD.test   2.00                        
                           test-suite :: External/SPEC/CINT2006/471.omnetpp/471.omnetpp.test   2.00                        
                            test-suite :: External/SPEC/CFP2006/482.sphinx3/482.sphinx3.test   2.00                        
                  test-suite :: MultiSource/Applications/ALAC/decode/alacconvert-decode.test   2.00                        
                     test-suite :: MultiSource/Benchmarks/mediabench/jpeg/jpeg-6a/cjpeg.test   2.00                        
                                    test-suite :: MultiSource/Applications/kimwitu++/kc.test   2.00                        
                     test-suite :: MultiSource/Benchmarks/Rodinia/pathfinder/pathfinder.test   2.00                        
                  test-suite :: MultiSource/Applications/ALAC/encode/alacconvert-encode.test   2.00                        
                 test-suite :: MultiSource/Benchmarks/DOE-ProxyApps-C++/PENNANT/PENNANT.test   1.00                        
              test-suite :: External/SPEC/CINT2017speed/631.deepsjeng_s/631.deepsjeng_s.test   1.00                        
                                  test-suite :: MultiSource/Applications/d/make_dparser.test   1.00                        
                               test-suite :: External/SPEC/CINT2006/473.astar/473.astar.test   1.00                        
                                 test-suite :: MultiSource/Applications/sqlite3/sqlite3.test   1.00                        
                                  test-suite :: SingleSource/Benchmarks/Stanford/Puzzle.test   1.00                        
               test-suite :: External/SPEC/CINT2017rate/531.deepsjeng_r/531.deepsjeng_r.test   1.00                        
                                     test-suite :: MultiSource/Benchmarks/nbench/nbench.test   1.00                        
                            test-suite :: MicroBenchmarks/ImageProcessing/Dither/Dither.test   1.00                        
                            test-suite :: SingleSource/Benchmarks/Adobe-C++/loop_unroll.test   1.00                        
                                   test-suite :: SingleSource/Benchmarks/Misc/whetstone.test   1.00                        
             test-suite :: MultiSource/Benchmarks/DOE-ProxyApps-C/Pathfinder/PathFinder.test   1.00                        
test-suite :: MicroBenchmarks/ImageProcessing/AnisotropicDiffusion/AnisotropicDiffusion.test   1.00                        
                                 test-suite :: SingleSource/Benchmarks/Misc/ReedSolomon.test   1.00
```

</details>

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


More information about the llvm-commits mailing list