ispc - Man Page
manual page for ispc 1.30.0
Description
Intel(r) Implicit SPMD Program Compiler (Intel(r) ISPC), 1.30.0 (build @ 20260207, LLVM 21.1.8)
usage: ispc
- [--addressing={32,64}]
Select 32- or 64-bit addressing. (Note that 32-bit addressing calculations are done by default, even on 64-bit target architectures.)
- [--arch={x86, x86-64, arm, aarch64}]
Select target architecture
- [--colored-output]
Always use terminal colors in error/warning messages
- [--cpu=<type>]
An alias for [--device=<type>] switch
- [-D<foo>]
#define given value when running preprocessor
- [-dD]
Print macro definitions in addition to the preprocessor result
- [--dev-stub <filename>]
Emit device-side offload stub functions to file
[--device=<type>] Select target device
<type>={x86-64, atom (synonyms: bonnell), core2, penryn, corei7 (synonyms: nehalem), btver2 (synonyms: ps4), corei7-avx (synonyms: sandybridge), core-avx-i (synonyms: ivybridge), core-avx2 (synonyms: haswell), broadwell, skylake, skx, icelake-client (synonyms: icl), slm (synonyms: silvermont), icelake-server (synonyms: icx), tigerlake (synonyms: tgl), alderlake (synonyms: adl), meteorlake (synonyms: mtl), sapphirerapids (synonyms: spr), graniterapids (synonyms: gnr), arrowlake (synonyms: arl), lunarlake (synonyms: lnl), diamondrapids (synonyms: dmr), znver1, znver2 (synonyms: ps5), znver3, znver4, znver5, cortex-a35, cortex-a53, cortex-a57, cortex-a55, cortex-a78, cortex-a510, cortex-a520, apple-a7, apple-a10, apple-a11, apple-a12, apple-a13, apple-a14, apple-a15, apple-a16, apple-a17}
- [--dllexport]
Make non-static functions DLL exported. Windows target only
- [-dM]
Print macro definitions for the preprocessor result
- [--dwarf-version={2,3,4,5}]
Generate source-level debug information with given DWARF version (triggers -g). It forces the usage of DWARF debug info on Windows target
- [-E]
Run only the preprocessor
- [--emit-asm]
Generate assembly language file as output
- [--emit-llvm]
Emit LLVM bitcode file as output
- [--emit-llvm-text]
Emit LLVM bitcode file as output in textual form
- [--emit-obj]
Generate object file as output (default)
- [--enable-llvm-intrinsics]
Enable experimental feature to call LLVM intrinsics from ISPC source code
- [--error-limit=<value>]
Limit maximum number of errors emitting by ISPC to <value>
- [--force-alignment=<value>]
Force alignment in memory allocations routine to be <value>
- [-g]
Generate source-level debug information
- [--sample-profiling-debug-info]
Generate debug info optimized for sample-based profiling
- [--profile-sample-use=<file>]
Use sample profile data for optimization
- [--help]
Print help
- [--help-dev]
Print help for developer options
- [--host-stub <filename>]
Emit host-side offload stub functions to file
[-h <name>/--header-outfile=<name>] Output filename for header [-I <path>] Add <path> to #include file search path [--include-float16-conversions] Add float16 conversion functions permanently to the compiled module [--ignore-preprocessor-errors] Suppress errors from the preprocessor [--instrument] Emit instrumentation to gather performance data [--math-lib=<option>] Select math library
- default
Use ispc's built-in math functions
- fast
Use high-performance but lower-accuracy math functions
- svml
Use the Intel(r) SVML math libraries
- system
Use the system's math library (*may be quite slow*)
- [-f[no-]function-sections]
Place each function in its own section
- [--mcmodel=<value>]
Define the code model to use for code generation
- small
The program and its symbols must be linked in the lower 2GB of the address space (default)
- large
The program has no assumption about addresses and sizes of sections
- [-MMM <filename>]
Write #include dependencies to given file
- [-M]
Output a rule suitable for `make' describing the dependencies of the main source file to stdout
- [-MF <filename>]
When used with `-M', specifies a file to write the dependencies to
- [-MT <filename>]
When used with `-M', changes the target of the rule emitted by dependency generation
- [--nanobind-wrapper=<filename>]
Write a nanobind wrapper to given file
- [--no-omit-frame-pointer]
Disable frame pointer omission. It may be useful for profiling
- [--nostdlib]
Don't make the ispc standard library available
- [--no-pragma-once]
Don't use #pragma once in created headers
- [-o <name>/--outfile=<name>]
Output filename (may be "-" for standard output)
- [-O0/-O(1/2/3)]
Set optimization level. Default behavior is to optimize for speed
- -O0
Optimizations disabled
- -O1
Optimization for size
- -O2/O3
Optimization for speed
- [--opt=<option>]
Set optimization option
- disable-assertions
Remove assertion statements from final code
- disable-fma
Disable 'fused multiply-add' instructions (on targets that support them)
- disable-gathers
Disable gathers generation on targets that support them
- disable-scatters
Disable scatters generation on targets that support them
- disable-loop-unroll
Disable loop unrolling
- disable-zmm
Disable using zmm registers for avx512skx-x16, avx512icl-x16 targets in favor of ymm. This also affects ABI
- fast-masked-vload
Faster masked vector loads on SSE (may go past end of array)
- fast-math
Perform non-IEEE-compliant optimizations of numeric expressions
- force-aligned-memory
Always issue "aligned" vector load and store instructions
- reset-ftz-daz
Reset FTZ/DAZ flags on ISPC extern function entrance / restore on return
- [--pic]
Generate position-independent code. Ignored for Windows target
- [--PIC]
Generate position-independent code avoiding any limit on the size of the global offset table. Ignored for Windows target
- [--quiet]
Suppress all output
- [--stack-protector]
Enable stack protectors for functions with larger stack variables.
- [--stack-protector=<option>]
Enable stack protectors
- all
for all functions.
- none
for no functions (default).
- on
for functions with larger stack variables (same as --stack-protector).
- strong
for functions with stack variables of any size or taking addresses of local variables.
- [--support-matrix]
Print full matrix of supported targets, architectures and OSes
- [--target=<t>] Select target ISA and width
<t>={avx1-i32x16, avx1-i32x4, avx1-i32x8, avx1-i64x4, avx10.2dmr-x16, avx10.2dmr-x32, avx10.2dmr-x4, avx10.2dmr-x64, avx10.2dmr-x8, avx2-i16x16, avx2-i32x16, avx2-i32x4, avx2-i32x8, avx2-i64x4, avx2-i8x32, avx2vnni-i32x16, avx2vnni-i32x4, avx2vnni-i32x8, avx512gnr-x16, avx512gnr-x32, avx512gnr-x4, avx512gnr-x64, avx512gnr-x8, avx512icl-x16, avx512icl-x32, avx512icl-x4, avx512icl-x64, avx512icl-x8, avx512skx-x16, avx512skx-x32, avx512skx-x4, avx512skx-x64, avx512skx-x8, avx512spr-x16, avx512spr-x32, avx512spr-x4, avx512spr-x64, avx512spr-x8, generic-i16x16, generic-i16x8, generic-i1x16, generic-i1x32, generic-i1x4, generic-i1x64, generic-i1x8, generic-i32x16, generic-i32x4, generic-i32x8, generic-i64x4, generic-i8x16, generic-i8x32, neon-i16x16, neon-i16x8, neon-i32x4, neon-i32x8, neon-i8x16, neon-i8x32, sse2-i32x4, sse2-i32x8, sse4.1-i16x8, sse4.1-i32x4, sse4.1-i32x8, sse4.1-i8x16, sse4.2-i16x8, sse4.2-i32x4, sse4.2-i32x8, sse4.2-i8x16}
[--target-os=<os>] Select target OS. <os>={linux, custom_linux} [--vectorcall/--no-vectorcall] Enable/disable vectorcall calling convention on Windows (x64 only). Disabled by default [--internal-export-functions/--no-internal-export-functions]
Generate internal ISPC-callable versions of exported functions. Enabled by default
- [--version]
Print ispc version
- [--werror]
Treat warnings as errors
- [--woff]
Disable warnings
- [--wno-perf]
Don't issue warnings related to performance-related issues
- [--[no-]wrap-signed-int]
[Do not] preserve wraparound on signed integer overflow (default: do not preserve)
- [--x86-asm-syntax=<option>]
Select style of code if generating assembly
- intel
Emit Intel-style assembly
- att
Emit AT&T-style assembly
- [@<filename>]
Read additional arguments from the given file
<file to compile or "-" for stdin>