[llvm] [WebAssembly] Implement getInterleavedMemoryOpCost (PR #146864)

Sam Parker via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 6 08:10:08 PDT 2025


sparker-arm wrote:

Now I have my wasi-sdk all up-to-date, these  are my results for V8 running on my Xeon:

```
Metric                    Speedup(%)
----------------------  ------------
Mean (filtered)               12.965
Median (filtered)             -1.069
Max (filtered)               401.656
Min (filtered)               -14.286
Geomean (non-filtered)         3.417 

Benchmark           Min      Max    Median    Mean
--------------  -------  -------  --------  ------
bullet           -3.248   -2.476    -2.862  -2.862
doe_proxyapps    -4.405    1.216    -2.011  -1.859
libyuv           -4.018  401.656    -1.036  69.264
lzma             -1.555   -1.555    -1.555  -1.555
maratis          -2.727   -2.727    -2.727  -2.727
oggenc           -1.063   -1.063    -1.063  -1.063
meshoptimizer    -1.164   -1.164    -1.164  -1.164
microkernels      4.096    4.096     4.096   4.096
ncnn            -14.286   36.07     -0.852  -0.102
pairlocalalign   -2.651   -2.651    -2.651  -2.651
pocket_nn        -1.926   -1.926    -1.926  -1.926
quickjs          -4.158   -4.158    -4.158  -4.158
raytracing       -2.638   -2.638    -2.638  -2.638
small3dlib       -1.075   14.478     6.702   6.702
spec2017         -2.619    4.257     2.865   1.842
spiff             2.241    2.241     2.241   2.241
sqlite3           3.681    3.681     3.681   3.681
tsvc              2.174    2.174     2.174   2.174
wasm3             2.776    2.776     2.776   2.776
zlib_bench       -0.023    0.893     0.435   0.435
```
So, there are some regressions but even for benchmarks like ncnn, where there are swings, the overall result is neutral:

```
Metric                    Speedup(%)
----------------------  ------------
Mean (filtered)               -0.102
Median (filtered)             -0.852
Max (filtered)                36.07
Min (filtered)               -14.286
Geomean (non-filtered)        -0.429 

Benchmark                             Speedup(%)
----------------------------------  ------------
ncnn-FastestDet-run_times                 -7.429
ncnn-alexnet-run_times                    -0.852
ncnn-blazeface-run_times                  -2.016
ncnn-efficientnet_b0-run_times            -8.698
ncnn-efficientnetv2_b0-run_times          -6.711
ncnn-googlenet-run_times                   0.041
ncnn-googlenet_int8-run_times             -2.545
ncnn-mnasnet-run_times                    -5.136
ncnn-mobilenet-run_times                  -1.182
ncnn-mobilenet_int8-run_times             -5.882
ncnn-mobilenet_ssd-run_times               1.681
ncnn-mobilenet_ssd_int8-run_times         -0.376
ncnn-mobilenet_v2-run_times               -7.895
ncnn-mobilenet_v3-run_times              -14.286
ncnn-mobilenet_yolo-run_times             -3.361
ncnn-mobilenetv2_yolov3-run_times          1.734
ncnn-nanodet_m-run_times                   2.047
ncnn-proxylessnasnet-run_times             2.257
ncnn-regnety_400m-run_times                1.562
ncnn-resnet18-run_times                   -7.028
ncnn-resnet18_int8-run_times              -1.587
ncnn-resnet50-run_times                   -4.343
ncnn-resnet50_int8-run_times               0.301
ncnn-shufflenet-run_times                 36.07
ncnn-shufflenet_v2-run_times              -0
ncnn-squeezenet-run_times                 22.721
ncnn-squeezenet_int8-run_times             4.812
ncnn-squeezenet_ssd-run_times             -0.041
ncnn-squeezenet_ssd_int8-run_times         0.96
ncnn-vgg16-run_times                      -1.288
ncnn-vgg16_int8-run_times                 -0.259
ncnn-vision_transformer-run_times         -3.205
ncnn-yolo_fastest_1.1-run_times           -5.003
ncnn-yolo_fastestv2-run_times              2.779
ncnn-yolov4_tiny-run_times                 8.589
```

And this is a closer look at libyuv:

```
Metric                    Speedup(%)
----------------------  ------------
Mean (filtered)               57.306
Median (filtered)             -1.305
Max (filtered)               401.656
Min (filtered)                -4.018
Geomean (non-filtered)        15.651 

Benchmark                                        Speedup(%)
---------------------------------------------  ------------
libyuv-ARGBScaleDownBy2_Bilinear-run_times           75.091
libyuv-ARGBScaleDownBy2_Box-run_times                72.442
libyuv-ARGBScaleDownBy2_Linear-run_times             -1.31
libyuv-ARGBScaleDownBy2_None-run_times               67.661
libyuv-ARGBScaleDownBy3by4_Bilinear-run_times        -1.816
libyuv-ARGBScaleDownBy3by4_Box-run_times             -1.731
libyuv-ARGBScaleDownBy3by4_Linear-run_times          -3.43
libyuv-ARGBScaleDownBy4_Box-run_times                73.035
libyuv-ColourI420-run_times                          -2.784
libyuv-ColourI422-run_times                          -4.018
libyuv-ColourJ420-run_times                          -2.776
libyuv-ColourJ422-run_times                          -2.562
libyuv-NV12ToI420-run_times                         401.656
libyuv-NV21ToI420-run_times                         367.548
libyuv-UVScaleDownBy2_Box-run_times                  -2.198
libyuv-UVScaleDownBy2_Linear-run_times               -1.3
libyuv-UVScaleDownBy3by4_Box-run_times               -0.959
libyuv-UVScaleDownBy3by4_None-run_times              -1.036
```

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


More information about the llvm-commits mailing list