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>

Info

February 2026 ispc 1.30.0