|
19 | 19 | "utf32_swap_endianness": ["avx2", "ssse3", "neon", "simd128"],
|
20 | 20 | "utf16_swap_endianness": ["avx2", "ssse3", "neon", "simd128"],
|
21 | 21 | },
|
22 |
| - # ... |
| 22 | + "uuid-simd": { |
| 23 | + "parse_simple": ["avx2", "ssse3", "sse2", "neon", "simd128"], |
| 24 | + "parse_hyphenated": ["avx2", "sse4.1", "neon", "simd128"], |
| 25 | + "format_simple": ["avx2", "ssse3", "sse2", "neon", "simd128"], |
| 26 | + "format_hyphenated": ["avx2", "sse4.1", "neon", "simd128"], |
| 27 | + }, |
| 28 | + "base32-simd": { |
| 29 | + "check": ["avx2", "ssse3", "neon", "simd128"], |
| 30 | + "encode": ["avx2", "sse4.1", "neon", "simd128"], |
| 31 | + "decode": ["avx2", "sse4.1", "neon", "simd128"], |
| 32 | + }, |
23 | 33 | }
|
24 | 34 |
|
25 | 35 | TARGETS = {
|
|
28 | 38 | "ssse3": ["x86_64-unknown-linux-gnu", "i686-unknown-linux-gnu"],
|
29 | 39 | "sse2": ["x86_64-unknown-linux-gnu", "i686-unknown-linux-gnu"],
|
30 | 40 | "neon": ["aarch64-unknown-linux-gnu", "armv7-unknown-linux-gnueabihf"],
|
31 |
| - # "simd128": ["wasm32-unknown-unknown"], |
32 |
| - "simd128": [], # TODO: https://github.com/pacak/cargo-show-asm/issues/91 |
| 41 | + "simd128": ["wasm32-unknown-unknown"], |
33 | 42 | }
|
34 | 43 |
|
| 44 | + |
| 45 | +def space_join(l): |
| 46 | + return " ".join(l) |
| 47 | + |
| 48 | + |
35 | 49 | if __name__ == "__main__":
|
36 | 50 | opt = argparse.ArgumentParser()
|
37 | 51 | opt.add_argument("--mode", type=str, choices=["asm", "llvm-ir"], required=True)
|
|
44 | 58 | for feature in features:
|
45 | 59 | for target in TARGETS[feature]:
|
46 | 60 | print(f"mkdir -p target/symbols/{target}")
|
| 61 | + |
47 | 62 | symbol = f"{pkg.replace('-', '_')}::multiversion::{name}::{feature.replace('.', '')}"
|
48 |
| - if args.mode == "asm": |
49 |
| - print( |
50 |
| - f"cargo asm -p {pkg} --simplify --features unstable --target {target} -- {symbol} " |
51 |
| - f"| awk NF" |
52 |
| - f"> target/symbols/{target}/{symbol}.asm" |
53 |
| - ) |
54 |
| - elif args.mode == "llvm-ir": |
55 |
| - print( |
56 |
| - f"RUSTFLAGS=-Cdebuginfo=0 " |
57 |
| - f"cargo asm -p {pkg} --llvm --features unstable --target {target} -- {symbol} " |
58 |
| - f"> target/symbols/{target}/{symbol}.ll" |
59 |
| - ) |
| 63 | + |
| 64 | + rustflags = ["--cfg vsimd_dump_symbols"] |
| 65 | + if target == "wasm32-unknown-unknown": |
| 66 | + rustflags.append("-C target-feature=+simd128") |
| 67 | + |
| 68 | + match args.mode: |
| 69 | + case "asm": |
| 70 | + extra_flags = "--wasm" if target == "wasm32-unknown-unknown" else "" |
| 71 | + print( |
| 72 | + f'RUSTFLAGS="{space_join(rustflags)}" ' |
| 73 | + f"cargo asm -p {pkg} --simplify --features unstable --target {target} {extra_flags} -- {symbol} " |
| 74 | + f"| awk NF" |
| 75 | + f"> target/symbols/{target}/{symbol}.asm" |
| 76 | + ) |
| 77 | + case "llvm-ir": |
| 78 | + rustflags.append("-Cdebuginfo=0") |
| 79 | + print( |
| 80 | + f'RUSTFLAGS="{space_join(rustflags)}" ' |
| 81 | + f"cargo asm -p {pkg} --llvm --features unstable --target {target} -- {symbol} " |
| 82 | + f"> target/symbols/{target}/{symbol}.ll" |
| 83 | + ) |
0 commit comments