Minotaur: A SIMD-Oriented Synthesizing Superoptimizer

The Minotaur superoptimizer is designed to tackle the challenge of missing peephole optimizations for SIMD instructions in LLVM’s intermediate representation. It focuses specifically on integer SIMD instructions, both portable and specific to x86-64. To address this issue, Minotaur uses a hybrid synthesis algorithm that enumerates instructions concretely and generates literal constants through a solver. The verification engine, Alive2, was modified to support synthesis and a large subset of Intel’s vector instruction sets. Minotaur has successfully identified numerous profitable optimizations that were previously absent in LLVM. It has achieved modest speed improvements of around 1.3% on SPEC CPU2017’s integer parts and a 2.2% average improvement on the libYUV library’s test suite, with a maximum speedup of 1.64x on an Intel Cascade Lake processor.


To top