ispc(1)

NAME
ispc - Intel Implicit SPMD Program Compiler

SYNOPSIS
ispc [options] file

DESCRIPTION
ispc is a compiler for a variant of the C programming language, with extensions for single program, multiple data programming. Under the SPMD model, the programmer writes a program that generally appears to be a regular serial program, though the execution model is actually that a number of program instances execute in parallel on the hardware.

OPTIONS

--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, wasm32}
    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

--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, knl, skx, icelake-client (synonyms: icl ), slm (synonyms: silvermont ), icelake-server (synonyms: icx ), tigerlake (synonyms: tgl ), alderlake (synonyms: adl ), sapphirerapids (synonyms: spr ), znver1, znver2 (synonyms: ps5 ), znver3, cortex-a9, cortex-a15, cortex-a35, cortex-a53, cortex-a57, apple-a7, apple-a10, apple-a11, apple-a12, apple-a13, apple-a14 }

--dllexport
    Make non-static functions DLL exported. Windows target only

--dwarf-version {2,3,4}
    Generate source-level debug information with given DWARF version (triggers -g ). Ignored for 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 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

--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

--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*)

-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.

--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

--nocpp
    Don't run the C preprocessor

-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

--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-loop-unroll
        Disable loop unrolling.

    disable-zmm
        Disable using zmm registers for avx512 targets in favour 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

--pic
    Generate position-independent code. Ignored for Windows target

--quiet
    Suppress all output

--support-matrix
    Print full matrix of supported targets, architectures and OSes

--target <t>
    Select target ISA and width. <t> ={ sse2-i32x4, sse2-i32x8, sse4-i8x16, sse4-i16x8, sse4-i32x4, sse4-i32x8, avx1-i32x4, avx1-i32x8, avx1-i32x16, avx1-i64x4, avx2-i8x32, avx2-i16x16, avx2-i32x4, avx2-i32x8, avx2-i32x16, avx2-i64x4, avx512knl-x16, avx512skx-x4, avx512skx-x8, avx512skx-x16, avx512skx-x32, avx512skx-x64, neon-i8x16, neon-i16x8, neon-i32x4, neon-i32x8, wasm-i32x4 }

--target-os <os>
    Select target OS. <os> ={ linux, custom_linux, freebsd, android, web }

--time-trace
    Turn on time profiler. Generates JSON file based on output filename.

--time-trace-granularity <value>
    Minimum time granularity (in microseconds) traced by time profiler.

--vectorcall/--no-vectorcall
    Enable/disable vectorcall calling convention on Windows (x64 only). Disabled 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

--x86-asm-syntax <option>
    Select style of code if generating assembly

    intel
        Emit Intel-style assembly

    att Emit AT&T-style assembly

SEE ALSO
https://ispc.github.io/

AUTHOR
ispc is written by Intel Corporation.

This manual page was written by Yangfl (mmyangfl@gmail.com) for the Debian Project (and may be used by others).