memx 0.2.0

memory functions like libc memcmp(), memchr(), memmem(), memcpy(), memset()
Documentation
## Benchmark results

- compile by rustc 1.69.0 (84c898d65 2023-04-16)

  0. x86_64-unknown-linux- @i5-4570:

|         `name`          |  `gnu:en`   |  `gnu:ja`   |  `musl:en`  |  `musl:ja`  |
|:------------------------|------------:|------------:|------------:|------------:|
| std_memeq               |    1.669 µs |    1.331 µs |    2.725 µs |    7.462 µs |
| libc_memeq              |    1.660 µs |    1.315 µs |    2.725 µs |    7.507 µs |
| memx_memeq              |    2.069 µs |    1.518 µs |    2.153 µs |    1.587 µs |
| memx_memeq_basic        |    1.977 µs |    1.335 µs |    2.104 µs |    1.374 µs |
| memx_memeq_sse2         |    2.097 µs |    1.680 µs |    2.053 µs |    1.672 µs |
| memx_memeq_avx2         |    1.981 µs |    1.463 µs |    2.067 µs |    1.504 µs |

  1. x86_64-unknown-linux- @Q6600:

|         `name`          |  `gnu:en`   |  `gnu:ja`   |  `musl:en`  |  `musl:ja`  |
|:------------------------|------------:|------------:|------------:|------------:|
| std_memeq               |    6.881 µs |    7.346 µs |    8.493 µs |   17.076 µs |
| libc_memeq              |    6.838 µs |    7.417 µs |    8.588 µs |   17.082 µs |
| memx_memeq              |    6.318 µs |    5.443 µs |    6.280 µs |    5.215 µs |
| memx_memeq_basic        |    5.877 µs |    3.744 µs |    5.811 µs |    3.485 µs |
| memx_memeq_sse2         |    6.022 µs |    5.401 µs |    6.196 µs |    5.229 µs |

  2. i686-unknown-linux- @Q6600:

|         `name`          |  `gnu:en`   |  `gnu:ja`   |  `musl:en`  |  `musl:ja`  |
|:------------------------|------------:|------------:|------------:|------------:|
| std_memeq               |    8.022 µs |    7.569 µs |   12.436 µs |   20.412 µs |
| libc_memeq              |    7.979 µs |    7.351 µs |   11.977 µs |   20.912 µs |
| memx_memeq              |    8.643 µs |    7.236 µs |    9.035 µs |    7.644 µs |
| memx_memeq_basic        |    7.177 µs |    6.478 µs |    7.541 µs |    6.736 µs |
| memx_memeq_sse2         |    7.813 µs |    6.880 µs |    8.636 µs |    7.474 µs |

  3. i586-unknown-linux- @Q6600:

|         `name`          |  `gnu:en`   |  `gnu:ja`   |  `musl:en`  |  `musl:ja`  |
|:------------------------|------------:|------------:|------------:|------------:|
| std_memeq               |    7.753 µs |    7.696 µs |   12.372 µs |   20.998 µs |
| libc_memeq              |    7.827 µs |    7.449 µs |   12.197 µs |   21.062 µs |
| memx_memeq              |    8.990 µs |    7.192 µs |    8.658 µs |    7.541 µs |
| memx_memeq_basic        |    8.759 µs |    6.960 µs |    9.664 µs |    8.118 µs |


- compile by rustc 1.53.0 (53cb7b09b 2021-06-17)

  1. x86_64-unknown-linux-:

|         `name`          |  `gnu:en`   |  `gnu:ja`   |  `musl:en`  |  `musl:ja`  |
|:------------------------|------------:|------------:|------------:|------------:|
| std_memeq               |  165.510 us |  168.340 us |  337.740 us |  356.760 us |
| libc_memeq              |  166.160 us |  172.420 us |  342.770 us |  360.790 us |
| memx_memeq              |  118.030 us |  118.830 us |  114.340 us |  108.960 us |
| memx_memeq_basic        |  117.170 us |  118.780 us |  114.380 us |  109.280 us |

  2. i686-unknown-linux-:

|         `name`          |  `gnu:en`   |  `gnu:ja`   |  `musl:en`  |  `musl:ja`  |
|:------------------------|------------:|------------:|------------:|------------:|
| std_memeq               |  172.830 us |  193.700 us |  367.620 us |  517.440 us |
| libc_memeq              |  173.100 us |  198.420 us |  370.670 us |  517.830 us |
| memx_memeq              |  157.930 us |  159.710 us |  172.850 us |  153.050 us |
| memx_memeq_basic        |  161.000 us |  157.600 us |  171.320 us |  152.750 us |

  3. i586-unknown-linux-:

|         `name`          |  `gnu:en`   |  `gnu:ja`   |  `musl:en`  |  `musl:ja`  |
|:------------------------|------------:|------------:|------------:|------------:|
| std_memeq               |  190.700 us |  246.930 us |  376.540 us |  510.110 us |
| libc_memeq              |  168.630 us |  189.100 us |  357.910 us |  507.500 us |
| memx_memeq              |  159.320 us |  153.230 us |  165.410 us |  152.640 us |
| memx_memeq_basic        |  159.720 us |  154.340 us |  168.250 us |  153.200 us |

  4. armv7-linux-androideabi:

|         `name`          |  `gnu:en`   |  `gnu:ja`   |  `musl:en`  |  `musl:ja`  |
|:------------------------|------------:|------------:|------------:|------------:|
| std_memeq               | 1263.000 us | 1236.600 us | 1317.700 us | 1721.000 us |
| memx_memeq              |  779.600 us |  752.600 us |  658.390 us |  604.610 us |
| memx_memeq_basic        |  755.180 us |  746.410 us |  694.570 us |  598.540 us |

- `µs` is micro seconds
- `:en` is english haystack or short length.
- `:ja` is japanese haystack or long length.
- `gnu` is x86_64-unknown-linux-gnu
- `musl` is x86_64-unknown-linux-musl
- @i5-4570: bench on intel i5-4570 @ 3.2GHz
- @Q6600: bench on intel Q6600 @ 2.40GHz or armv7 1.5GHz