New Issue: CLBG Performance Mystery: Mandelbrot #3 with Chapel 1.26.0 / LLVM 13.1

19950, "bradcray", "CLBG Performance Mystery: Mandelbrot #3 with Chapel 1.26.0 / LLVM 13.1", "2022-06-06T22:07:38Z"

Summary of Problem

Last winter, when the Computer Language Benchmarks Game started using Chapel's LLVM back-end with Chapel 1.25.1, we saw a nice performance boost to our mandelbrot # 3 version, which we attributed to LLVM doing a better job of vectorizing, or perhaps instruction selection than the C back-end had. Specifically, it went from 3.32s to 1.08s, which was a nice boost.

However, this past May, when updating to Ubuntu 22.04, Chapel 1.26, and LLVM 13, the same mandelbrot took a hit, dropping to 2.24s for reasons that we don't yet understand (where the Chapel and LLVM upgrades seem more likely to be to blame than the Ubuntu update).

This issue asks why this occurs / what got worse. As a first step, my thought would be to compare the generated instructions for Chapel + LLVM for mandelbrot3.chpl comparing Chapel 1.25.1 w/ LLVM 11 vs. Chapel 1.26.0 w/ LLVM 13.

Steps to Reproduce

Source Code:

Compile command:

$ chpl --target-cpu=ivybridge --fast mandelbrot3.chpl

Execution command:

$ ./mandelbrot3 --n=16000