[HN Gopher] Minotaur: A SIMD-Oriented Synthesizing Superoptimizer
___________________________________________________________________
Minotaur: A SIMD-Oriented Synthesizing Superoptimizer
Author : luu
Score : 27 points
Date : 2023-07-12 20:27 UTC (1 days ago)
(HTM) web link (arxiv.org)
(TXT) w3m dump (arxiv.org)
| brucethemoose2 wrote:
| Looks like the source is here: https://github.com/minotaur-
| toolkit/minotaur
| chrisaycock wrote:
| As an example optimization, consider this C code:
| do { if (*--p == '.') *p = '_'; } while (p !=
| name);
|
| LLVM originally produced this bitcode for AVX-2 instructions:
| %1 = shufflevector %0, <31, 30, 29, ... , 0> %2 = icmp eq
| %1, <46, 46, 46, ... , 46> %3 = shufflevector %2, <31, 30,
| 29, ... , 0>
|
| Minotaur instead produced: %1 = icmp eq %0, <46,
| 46, 46, ... , 46>
|
| Both compare the register to ASCII 46 ('.'), but LLVM originally
| produced an unnecessary pair of vector reversals. Minotaur
| removed it.
___________________________________________________________________
(page generated 2023-07-13 23:00 UTC)