Disclaimer and Legal Information · Intel® C++ Compiler 19.0 Developer Guide and Reference...

2520
Intel ® C++ Compiler 19.0 Developer Guide and Reference Disclaimer and Legal Information

Transcript of Disclaimer and Legal Information · Intel® C++ Compiler 19.0 Developer Guide and Reference...

  • Intel® C++ Compiler 19.0 DeveloperGuide and Reference

    Disclaimer and Legal Information

  • ContentsLegal Information .............................................................................. 35Intel® C++ Compiler 19.0 Developer Guide and Reference................. 36

    Part I: Introducing the Intel®C++ CompilerFeature Requirements .............................................................................. 38Getting Help and Support ......................................................................... 39Related Information................................................................................. 40Notational Conventions ............................................................................ 40

    Part II: Compiler SetupUsing the Command Line.......................................................................... 43

    Specifying the Location of Compiler Components with compilervars........ 43Invoking the Intel® Compiler............................................................. 45Using the Command Line on Windows* .............................................. 47Understanding File Extensions........................................................... 47Using Makefiles to Compile Your Application........................................ 49Using Compiler Options.................................................................... 49Specifying Include Files.................................................................... 52Specifying Object Files ..................................................................... 53Specifying Assembly Files................................................................. 53Converting Projects to Use a Selected Compiler from the Command

    Line........................................................................................... 54Using Eclipse* (Linux*) ........................................................................... 54

    Adding the Compiler to Eclipse* ........................................................ 55Multi-Version Compiler Support ......................................................... 55Using Cheat Sheets ......................................................................... 55Creating a Simple Project ................................................................. 56

    Creating a New Project ............................................................ 56Adding a C Source File............................................................. 57Setting Options for a Project or File ........................................... 57Excluding Source Files from a Build ........................................... 58Building a Project.................................................................... 58Running a Project ................................................................... 58Intel® C/C++ Error Parser ........................................................ 58

    Make Files...................................................................................... 59Project Types and Makefiles...................................................... 59Exporting Makefiles ................................................................. 59

    Using Intel® Performance Libraries with Eclipse*.................................. 60Using Microsoft Visual Studio* (Windows*) ................................................ 61

    Creating a New Project .................................................................... 62Using the Intel® C++ Compiler.......................................................... 62Building Your Intel® C++ Project ....................................................... 63Selecting the Compiler Version.......................................................... 64Switching Back to the Visual C++* Compiler....................................... 64Selecting a Configuration ................................................................. 64Specifying a Target Platform ............................................................. 65Specifying Directory Paths................................................................ 65Specifying a Base Platform Toolset with the Intel® C++ Compiler ........... 65Using Property Pages....................................................................... 66

    Intel® C++ Compiler 19.0 Developer Guide and Reference

    2

  • Using Intel® Performance Libraries with Microsoft Visual Studio*............ 66Changing the Selected Intel® Performance Libraries ............................. 68Including MPI Support ..................................................................... 68Using Guided Auto Parallelism in Microsoft Visual Studio* ..................... 68Using Code Coverage in Microsoft Visual Studio* ................................. 70Using Profile Guided Optimization in Microsoft Visual Studio* ................ 70Performing Parallel Project Builds ...................................................... 70Optimization Reports: Enabling in Microsoft Visual Studio*.................... 71Optimization Reports: Viewing .......................................................... 71Dialog Box Help .............................................................................. 74

    Options: Compilers dialog box .................................................. 74Options: Intel® Performance Libraries dialog box ......................... 74Use Intel® C++ dialog box........................................................ 75Options: Guided Auto Parallelism dialog box ............................... 75Profile Guided Optimization dialog box ....................................... 75Options: Profile Guided Optimization (PGO) dialog box................. 78Configure Analysis dialog box ................................................... 78Options: Converter dialog box .................................................. 79Code Coverage dialog box ........................................................ 79Options: Code Coverage dialog box ........................................... 79Code Coverage Settings dialog box............................................ 80Options: Optimization Reports dialog box ................................... 81

    Using Xcode* (macOS*) .......................................................................... 81Creating an Xcode* Project............................................................... 81Selecting the Intel® Compiler ............................................................ 82Building the Target .......................................................................... 82Setting Compiler Options.................................................................. 83Running the Executable ................................................................... 84Using Intel® Performance Libraries with Xcode* ................................... 85

    Part III: Compiler ReferenceC/C++ Calling Conventions....................................................................... 87Compiler Options..................................................................................... 91

    New Options................................................................................... 91Alphabetical List of Compiler Options ................................................. 92Deprecated and Removed Compiler Options...................................... 113Ways to Display Certain Option Information ...................................... 122

    Displaying Options Passed to Offload Compilation...................... 122Displaying General Option Information From the Command Line.. 123

    Compiler Option Details ................................................................. 123General Rules for Compiler Options ......................................... 123What Appears in the Compiler Option Descriptions .................... 124Offload Options..................................................................... 125

    qoffload, Qoffload ......................................................... 125qoffload-arch, Qoffload-arch........................................... 127qoffload-attribute-target, Qoffload-attribute-target............ 128qoffload-option, Qoffload-option ..................................... 129

    Optimization Options ............................................................. 132falias, Oa..................................................................... 132fast............................................................................. 132fbuiltin, Oi ................................................................... 134fdefer-pop ................................................................... 135ffnalias, Ow ................................................................. 135ffunction-sections ......................................................... 136foptimize-sibling-calls.................................................... 137

    Contents

    3

  • fprotect-parens, Qprotect-parens .................................... 137Gf............................................................................... 138GF .............................................................................. 139nolib-inline .................................................................. 140O................................................................................ 140Od.............................................................................. 143Ofast .......................................................................... 144Os .............................................................................. 144Ot .............................................................................. 145Ox.............................................................................. 146

    Code Generation Options ....................................................... 146arch............................................................................ 146ax, Qax ....................................................................... 149EH.............................................................................. 152fasynchronous-unwind-tables ......................................... 153fexceptions .................................................................. 154fomit-frame-pointer, Oy................................................. 155Gd.............................................................................. 156Gr .............................................................................. 157GR.............................................................................. 157guard.......................................................................... 158Gv .............................................................................. 159Gz .............................................................................. 160hotpatch...................................................................... 160m ............................................................................... 161m32, m64, Q32, Q64 .................................................... 163m80387 ...................................................................... 164march ......................................................................... 164masm ......................................................................... 167mconditional-branch, Qconditional-branch........................ 168minstruction, Qinstruction.............................................. 169momit-leaf-frame-pointer .............................................. 170mregparm ................................................................... 171mregparm-version ........................................................ 172mstringop-inline-threshold, Qstringop-inline-threshold....... 173mstringop-strategy, Qstringop-strategy ........................... 174mtune, tune................................................................. 175qcf-protection, Qcf-protection......................................... 177Qcxx-features .............................................................. 179Qpatchable-addresses ................................................... 179Qsafeseh ..................................................................... 180regcall, Qregcall ........................................................... 181x, Qx .......................................................................... 182xHost, QxHost.............................................................. 186

    Interprocedural Optimization (IPO) Options .............................. 189ffat-lto-objects ............................................................. 189ip, Qip......................................................................... 190ip-no-inlining, Qip-no-inlining ......................................... 191ip-no-pinlining, Qip-no-pinlining ..................................... 191ipo, Qipo ..................................................................... 192ipo-c, Qipo-c ................................................................ 193ipo-jobs, Qipo-jobs ....................................................... 194ipo-S, Qipo-S ............................................................... 195ipo-separate, Qipo-separate ........................................... 195

    Advanced Optimization Options............................................... 196

    Intel® C++ Compiler 19.0 Developer Guide and Reference

    4

  • alias-const, Qalias-const ................................................ 196ansi-alias, Qansi-alias ................................................... 197ansi-alias-check, Qansi-alias-check ................................. 198cilk-serialize, Qcilk-serialize............................................ 199complex-limited-range, Qcomplex-limited-range ............... 200daal, Qdaal .................................................................. 200fargument-alias, Qalias-args .......................................... 202fargument-noalias-global ............................................... 203ffreestanding, Qfreestanding .......................................... 203fjump-tables ................................................................ 204ftls-model.................................................................... 205funroll-all-loops ............................................................ 206guide, Qguide .............................................................. 206guide-data-trans, Qguide-data-trans ............................... 208guide-file, Qguide-file.................................................... 209guide-file-append, Qguide-file-append ............................. 210guide-opts, Qguide-opts ................................................ 211guide-par, Qguide-par ................................................... 213guide-profile, Qguide-profile........................................... 214guide-vec, Qguide-vec................................................... 215ipp, Qipp ..................................................................... 216ipp-link, Qipp-link ......................................................... 217mkl, Qmkl ................................................................... 218qopt-args-in-regs, Qopt-args-in-regs............................... 220qopt-assume-safe-padding, Qopt-assume-safe-padding ..... 221qopt-block-factor, Qopt-block-factor ................................ 222qopt-calloc, Qopt-calloc ................................................. 223qopt-class-analysis, Qopt-class-analysis........................... 223qopt-dynamic-align, Qopt-dynamic-align.......................... 224qopt-jump-tables, Qopt-jump-tables ............................... 225qopt-malloc-options ...................................................... 226qopt-matmul, Qopt-matmul ........................................... 227qopt-mem-layout-trans, Qopt-mem-layout-trans............... 228qopt-multi-version-aggressive, Qopt-multi-version-

    aggressive ............................................................... 229qopt-prefetch, Qopt-prefetch.......................................... 230qopt-prefetch-distance, Qopt-prefetch-distance ................ 231qopt-prefetch-issue-excl-hint, Qopt-prefetch-issue-excl-hint232qopt-ra-region-strategy, Qopt-ra-region-strategy .............. 233qopt-streaming-stores, Qopt-streaming-stores ................. 234qopt-subscript-in-range, Qopt-subscript-in-range .............. 236qopt-threads-per-core, Qopt-threads-per-core.................. 237qopt-zmm-usage, Qopt-zmm-usage ................................ 237qoverride-limits, Qoverride-limits.................................... 239Qvla ........................................................................... 239scalar-rep, Qscalar-rep .................................................. 240simd, Qsimd ................................................................ 241simd-function-pointers, Qsimd-function-pointers............... 242tbb, Qtbb..................................................................... 242unroll, Qunroll .............................................................. 243unroll-aggressive, Qunroll-aggressive .............................. 244use-intel-optimized-headers, Quse-intel-optimized-headers 245vec, Qvec .................................................................... 246vec-guard-write, Qvec-guard-write.................................. 247vec-threshold, Qvec-threshold ........................................ 247

    Contents

    5

  • vecabi, Qvecabi ............................................................ 248Profile Guided Optimization (PGO) Options ............................... 250

    finstrument-functions, Qinstrument-functions ................... 250fnsplit, Qfnsplit............................................................. 251Gh.............................................................................. 252GH ............................................................................. 253p ................................................................................ 254prof-data-order, Qprof-data-order ................................... 254prof-dir, Qprof-dir ......................................................... 255prof-file, Qprof-file ........................................................ 256prof-func-groups .......................................................... 257prof-func-order, Qprof-func-order.................................... 258prof-gen, Qprof-gen ...................................................... 259prof-gen-sampling ........................................................ 261prof-hotness-threshold, Qprof-hotness-threshold .............. 262prof-src-dir, Qprof-src-dir............................................... 263prof-src-root, Qprof-src-root .......................................... 264prof-src-root-cwd, Qprof-src-root-cwd ............................. 265prof-use, Qprof-use....................................................... 266prof-use-sampling ........................................................ 267prof-value-profiling, Qprof-value-profiling......................... 268profile-functions, Qprofile-functions................................. 269profile-loops, Qprofile-loops ........................................... 270profile-loops-report, Qprofile-loops-report ........................ 271Qcov-dir ...................................................................... 272Qcov-file ..................................................................... 273Qcov-gen..................................................................... 273

    Optimization Report Options................................................... 274qopt-report, Qopt-report................................................ 274qopt-report-annotate, Qopt-report-annotate..................... 276qopt-report-annotate-position, Qopt-report-annotate-

    position ................................................................... 277qopt-report-embed, Qopt-report-embed .......................... 278qopt-report-file, Qopt-report-file ..................................... 279qopt-report-filter, Qopt-report-filter ................................. 280qopt-report-format, Qopt-report-format........................... 281qopt-report-help, Qopt-report-help.................................. 282qopt-report-per-object, Qopt-report-per-object................. 283qopt-report-phase, Qopt-report-phase............................. 284qopt-report-routine, Qopt-report-routine.......................... 288qopt-report-names, Qopt-report-names ........................... 289tcollect, Qtcollect .......................................................... 290tcollect-filter, Qtcollect-filter ........................................... 291

    OpenMP* Options and Parallel Processing Options ..................... 292fmpc-privatize .............................................................. 292par-affinity, Qpar-affinity ............................................... 293par-num-threads, Qpar-num-threads .............................. 294par-runtime-control, Qpar-runtime-control ....................... 295par-schedule, Qpar-schedule.......................................... 296par-threshold, Qpar-threshold ........................................ 299parallel, Qparallel ......................................................... 300parallel-source-info, Qparallel-source-info ........................ 301qopenmp, Qopenmp...................................................... 302qopenmp-lib, Qopenmp-lib............................................. 303qopenmp-link, Qopenmp-link ......................................... 305

    Intel® C++ Compiler 19.0 Developer Guide and Reference

    6

  • qopenmp-offload, Qopenmp-offload ................................ 306qopenmp-simd, Qopenmp-simd...................................... 307qopenmp-stubs, Qopenmp-stubs .................................... 309qopenmp-threadprivate, Qopenmp-threadprivate.............. 309Qpar-adjust-stack......................................................... 310

    Floating-Point Options ........................................................... 311fast-transcendentals, Qfast-transcendentals ..................... 311fimf-absolute-error, Qimf-absolute-error .......................... 313fimf-accuracy-bits, Qimf-accuracy-bits ............................. 315fimf-arch-consistency, Qimf-arch-consistency ................... 317fimf-domain-exclusion, Qimf-domain-exclusion ................. 318fimf-force-dynamic-target, Qimf-force-dynamic-target ....... 322fimf-max-error, Qimf-max-error ...................................... 323fimf-precision, Qimf-precision......................................... 325fimf-use-svml, Qimf-use-svml ........................................ 328fma, Qfma ................................................................... 330fp-model, fp................................................................. 330fp-port, Qfp-port .......................................................... 336fp-speculation, Qfp-speculation ...................................... 337fp-stack-check, Qfp-stack-check ..................................... 338fp-trap, Qfp-trap........................................................... 338fp-trap-all, Qfp-trap-all.................................................. 340ftz, Qftz....................................................................... 341Ge.............................................................................. 343mp1, Qprec ................................................................. 343pc, Qpc ....................................................................... 344prec-div, Qprec-div ....................................................... 345prec-sqrt, Qprec-sqrt .................................................... 346qsimd-honor-fp-model, Qsimd-honor-fp-model ................. 347qsimd-serialize-fp-reduction, Qsimd-serialize-fp-reduction.. 347rcd, Qrcd ..................................................................... 349

    Inlining Options .................................................................... 349fgnu89-inline ............................................................... 349finline ......................................................................... 350finline-functions............................................................ 351finline-limit .................................................................. 351inline-calloc, Qinline-calloc ............................................. 352inline-factor, Qinline-factor............................................. 353inline-forceinline, Qinline-forceinline................................ 354inline-level, Ob............................................................. 355inline-max-per-compile, Qinline-max-per-compile ............. 356inline-max-per-routine, Qinline-max-per-routine ............... 357inline-max-size, Qinline-max-size.................................... 358inline-max-total-size, Qinline-max-total-size..................... 359inline-min-caller-growth, Qinline-min-caller-growth ........... 360inline-min-size, Qinline-min-size ..................................... 361Qinline-dllimport........................................................... 362

    Output, Debug, and Precompiled Header (PCH) Options ............. 362c ................................................................................ 362debug (Linux* OS and OS* X)........................................ 363debug (Windows* OS)................................................... 366Fa............................................................................... 368FA .............................................................................. 368fasm-blocks ................................................................. 369FC .............................................................................. 370

    Contents

    7

  • fcode-asm ................................................................... 370Fd .............................................................................. 371FD .............................................................................. 372Fe............................................................................... 373feliminate-unused-debug-types, Qeliminate-unused-

    debug-types ............................................................ 374femit-class-debug-always .............................................. 374fmerge-constants ......................................................... 375fmerge-debug-strings.................................................... 376Fo .............................................................................. 377Fp .............................................................................. 377FR .............................................................................. 378fsource-asm................................................................. 379ftrapuv, Qtrapuv ........................................................... 379fverbose-asm............................................................... 380g ................................................................................ 381gdwarf ........................................................................ 382Gm............................................................................. 383grecord-gcc-switches .................................................... 384gsplit-dwarf ................................................................. 385map-opts, Qmap-opts ................................................... 386o ................................................................................ 387pch............................................................................. 388pch-create ................................................................... 389pch-dir ........................................................................ 390pch-use....................................................................... 390pdbfile ........................................................................ 391print-multi-lib............................................................... 392Qpchi .......................................................................... 393Quse-msasm-symbols ................................................... 393RTC ............................................................................ 394S................................................................................ 395use-asm, Quse-asm ...................................................... 395use-msasm.................................................................. 396V................................................................................ 397Y- ............................................................................... 397Yc............................................................................... 398Yd .............................................................................. 399Yu .............................................................................. 400Zi, Z7, ZI .................................................................... 401Zo .............................................................................. 402

    Preprocessor Options............................................................. 403A, QA.......................................................................... 403B................................................................................ 404C................................................................................ 405D................................................................................ 406dD, QdD ...................................................................... 407dM, QdM ..................................................................... 407dN, QdN ...................................................................... 408E ................................................................................ 409EP .............................................................................. 409FI ............................................................................... 410gcc, gcc-sys................................................................. 411gcc-include-dir ............................................................. 412H, QH ......................................................................... 412

    Intel® C++ Compiler 19.0 Developer Guide and Reference

    8

  • I................................................................................. 413I- ............................................................................... 414icc .............................................................................. 414idirafter....................................................................... 415imacros ....................................................................... 416iprefix ......................................................................... 416iquote ......................................................................... 417isystem ....................................................................... 417iwithprefix ................................................................... 418iwithprefixbefore .......................................................... 419Kc++, TP..................................................................... 419M, QM......................................................................... 420MD, QMD..................................................................... 420MF, QMF ...................................................................... 421MG, QMG..................................................................... 422MM, QMM .................................................................... 422MMD, QMMD ................................................................ 423MP (Linux* OS) ............................................................ 423MQ ............................................................................. 424MT, QMT...................................................................... 425nostdinc++.................................................................. 425P ................................................................................ 426pragma-optimization-level ............................................. 426u (Windows* OS) ......................................................... 427U................................................................................ 428undef .......................................................................... 429X................................................................................ 429

    Component Control Options.................................................... 430Qinstall ....................................................................... 430Qlocation..................................................................... 431Qoption ....................................................................... 432

    Language Options ................................................................. 433ansi ............................................................................ 433check.......................................................................... 434early-template-check .................................................... 435fblocks ........................................................................ 436ffriend-injection............................................................ 437fno-gnu-keywords......................................................... 437fno-implicit-inline-templates........................................... 438fno-implicit-templates ................................................... 438fno-operator-names ...................................................... 439fno-rtti ........................................................................ 440fnon-lvalue-assign ........................................................ 440fpermissive .................................................................. 441fshort-enums ............................................................... 441fsyntax-only................................................................. 442ftemplate-depth, Qtemplate-depth.................................. 442funsigned-bitfields ........................................................ 443funsigned-char ............................................................. 444GZ.............................................................................. 444H (Windows* OS) ......................................................... 445help-pragma, Qhelp-pragma .......................................... 445intel-extensions, Qintel-extensions.................................. 446J ................................................................................ 447restrict, Qrestrict .......................................................... 448

    Contents

    9

  • std, Qstd ..................................................................... 448strict-ansi .................................................................... 451vd .............................................................................. 452vmb............................................................................ 452vmg............................................................................ 453vmm........................................................................... 454vms ............................................................................ 454x (type option) ............................................................. 455Za .............................................................................. 456Zc .............................................................................. 457Ze .............................................................................. 458Zg .............................................................................. 458Zp .............................................................................. 459Zs .............................................................................. 459

    Data Options ........................................................................ 460align ........................................................................... 460auto-ilp32, Qauto-ilp32 ................................................. 461auto-p32 ..................................................................... 462check-pointers, Qcheck-pointers ..................................... 463check-pointers-dangling, Qcheck-pointers-dangling ........... 464check-pointers-mpx, Qcheck-pointers-mpx....................... 465check-pointers-narrowing, Qcheck-pointers-narrowing ....... 467check-pointers-undimensioned, Qcheck-pointers-

    undimensioned......................................................... 468falign-functions, Qfnalign............................................... 469falign-loops, Qalign-loops .............................................. 469falign-stack.................................................................. 470fcommon..................................................................... 471fextend-arguments, Qextend-arguments.......................... 472fkeep-static-consts, Qkeep-static-consts .......................... 473fmath-errno ................................................................. 473fminshared .................................................................. 474fmudflap...................................................................... 475fpack-struct ................................................................. 476fpascal-strings.............................................................. 476fpic............................................................................. 477fpie............................................................................. 478freg-struct-return ......................................................... 479fstack-protector............................................................ 479fstack-security-check .................................................... 480fvisibility ..................................................................... 481fvisibity-inlines-hidden .................................................. 483fzero-initialized-in-bss, Qzero-initialized-in-bss ................. 484GA.............................................................................. 484Gs .............................................................................. 485GS.............................................................................. 486GT.............................................................................. 487homeparams................................................................ 487malign-double .............................................................. 488malign-mac68k ............................................................ 489malign-natural ............................................................. 489malign-power............................................................... 490mcmodel ..................................................................... 491mdynamic-no-pic.......................................................... 492mlong-double............................................................... 493

    Intel® C++ Compiler 19.0 Developer Guide and Reference

    10

  • no-bss-init, Qnobss-init ................................................. 494noBool ........................................................................ 495Qlong-double ............................................................... 495Qsfalign....................................................................... 496

    Compiler Diagnostic Options................................................... 497diag, Qdiag.................................................................. 497diag-dump, Qdiag-dump................................................ 500diag-enable=power, Qdiag-enable:power ........................ 501diag-error-limit, Qdiag-error-limit ................................... 501diag-file, Qdiag-file ....................................................... 502diag-file-append, Qdiag-file-append ................................ 503diag-id-numbers, Qdiag-id-numbers................................ 504diag-once, Qdiag-once .................................................. 505fnon-call-exceptions...................................................... 506traceback .................................................................... 506w ............................................................................... 507w0...w5, W0...W5......................................................... 508Wabi ........................................................................... 509Wall ............................................................................ 510Wbrief......................................................................... 511Wcheck ....................................................................... 511Wcomment .................................................................. 512Wcontext-limit, Qcontext-limit ........................................ 512wd, Qwd...................................................................... 513Wdeprecated................................................................ 514we, Qwe...................................................................... 514Weffc++, Qeffc++ ........................................................ 515Werror, WX .................................................................. 516Werror-all .................................................................... 517Wextra-tokens.............................................................. 517Wformat...................................................................... 518Wformat-security.......................................................... 519Wic-pointer.................................................................. 519Winline........................................................................ 520WL ............................................................................. 521Wmain ........................................................................ 521Wmissing-declarations................................................... 522Wmissing-prototypes .................................................... 522wn, Qwn...................................................................... 523Wnon-virtual-dtor ......................................................... 524wo, Qwo...................................................................... 524Wp64.......................................................................... 525Wpch-messages ........................................................... 526Wpointer-arith.............................................................. 526Wport ......................................................................... 527wr, Qwr ....................................................................... 527Wremarks.................................................................... 528Wreorder ..................................................................... 529Wreturn-type ............................................................... 529Wshadow..................................................................... 530Wsign-compare ............................................................ 531Wstrict-aliasing ............................................................ 531Wstrict-prototypes ........................................................ 532Wtrigraphs................................................................... 533Wuninitialized............................................................... 533

    Contents

    11

  • Wunknown-pragmas ..................................................... 534Wunused-function......................................................... 534Wunused-variable ......................................................... 535ww, Qww..................................................................... 536Wwrite-strings ............................................................. 536

    Compatibility Options ............................................................ 537clang-name ................................................................. 537clangxx-name .............................................................. 538fabi-version ................................................................. 539fms-dialect .................................................................. 540gcc-name .................................................................... 541gnu-prefix ................................................................... 542gxx-name.................................................................... 544Qgcc-dialect................................................................. 545Qms ........................................................................... 546Qvc ............................................................................ 547stdlib .......................................................................... 547vmv............................................................................ 548

    Linking or Linker Options ....................................................... 549Bdynamic .................................................................... 549Bstatic ........................................................................ 550Bsymbolic.................................................................... 551Bsymbolic-functions ...................................................... 551cxxlib.......................................................................... 552dynamic-linker ............................................................. 553dynamiclib ................................................................... 554F (Windows* OS).......................................................... 555F (OS* X) .................................................................... 555fixed ........................................................................... 556Fm ............................................................................. 556fuse-ld ........................................................................ 557l ................................................................................. 558L ................................................................................ 558LD .............................................................................. 559link............................................................................. 560MD ............................................................................. 560MT.............................................................................. 561no-libgcc ..................................................................... 562nodefaultlibs ................................................................ 562nostartfiles .................................................................. 563nostdlib....................................................................... 564pie.............................................................................. 564pthread ....................................................................... 565shared ........................................................................ 566shared-intel ................................................................. 566shared-libgcc ............................................................... 567static .......................................................................... 568static-intel ................................................................... 569static-libgcc ................................................................. 570static-libstdc++............................................................ 570staticlib ....................................................................... 571T ................................................................................ 572u (Linux* OS) .............................................................. 573v ................................................................................ 573Wa ............................................................................. 574

    Intel® C++ Compiler 19.0 Developer Guide and Reference

    12

  • Wl .............................................................................. 574Wp ............................................................................. 575Xlinker ........................................................................ 576Zl ............................................................................... 576

    Miscellaneous Options ........................................................... 577bigobj ......................................................................... 577dryrun......................................................................... 578dumpmachine .............................................................. 578dumpversion................................................................ 579global-hoist, Qglobal-hoist ............................................. 580Gy .............................................................................. 580help............................................................................ 581intel-freestanding ......................................................... 582intel-freestanding-target-os ........................................... 584MP-force...................................................................... 584multibyte-chars, Qmultibyte-chars .................................. 585multiple-processes, MP.................................................. 586nologo ........................................................................ 587print-sysroot ................................................................ 587save-temps, Qsave-temps ............................................. 588showIncludes ............................................................... 589sox ............................................................................. 590sysroot........................................................................ 591Tc............................................................................... 592TC .............................................................................. 593Tp .............................................................................. 593V, QV .......................................................................... 594version........................................................................ 595watch.......................................................................... 595

    Alternate Compiler Options............................................................. 597Related Options ............................................................................ 597

    Portability Options................................................................. 597GCC-Compatible Warning Options ........................................... 605

    Floating-Point Operations ....................................................................... 605Understanding Floating-Point Operations .......................................... 605

    Programming Tradeoffs in Floating-point Applications................. 605Floating-point Optimizations ................................................... 608Using the -fp-model (/fp) Option............................................. 609Denormal Numbers ............................................................... 613Floating-Point Environment .................................................... 613Setting the FTZ and DAZ Flags ............................................... 614Checking the Floating-point Stack State................................... 615

    Tuning Performance....................................................................... 615Overview: Tuning Performance ............................................... 615Handling Floating-point Array Operations in a Loop Body............ 616Reducing the Impact of Denormal Exceptions ........................... 616Avoiding Mixed Data Type Arithmetic Expressions...................... 617Using Efficient Data Types ...................................................... 618

    Understanding IEEE Floating-Point Operations................................... 619Floating-Point Formats........................................................... 619Special Values ...................................................................... 620

    Attributes............................................................................................. 621align............................................................................................ 621align_value .................................................................................. 622avoid_false_share ......................................................................... 623

    Contents

    13

  • code_align ................................................................................... 623concurrency_safe .......................................................................... 624const........................................................................................... 625cpu_dispatch ................................................................................ 625cpu_specific ................................................................................. 626mpx ............................................................................................ 628target.......................................................................................... 629vector.......................................................................................... 629vector_variant .............................................................................. 630

    Intrinsics.............................................................................................. 632Details about Intrinsics .................................................................. 633Naming and Usage Syntax.............................................................. 635Links and Bibliography ................................................................... 636Intrinsics for All Intel® Architectures ................................................ 636

    Overview: Intrinsics across Intel® Architectures......................... 636Integer Arithmetic Intrinsics ................................................... 637Floating-point Intrinsics ......................................................... 637String and Block Copy Intrinsics.............................................. 640Miscellaneous Intrinsics ......................................................... 640_may_i_use_cpu_feature ....................................................... 643_allow_cpu_features ............................................................ 645

    Data Alignment, Memory Allocation Intrinsics, and Inline Assembly...... 648Overview ............................................................................. 649Alignment Support ................................................................ 649Allocating and Freeing Aligned Memory Blocks .......................... 649Inline Assembly .................................................................... 650

    Intrinsics for Managing Extended Processor States and Registers ......... 654Overview ............................................................................. 654Intrinsics for Reading and Writing the Content of Extended

    Control Registers .............................................................. 654_xgetbv() .................................................................... 655_xsetbv() .................................................................... 655

    Intrinsics for Saving and Restoring the Extended Processor States656_fxsave()..................................................................... 658_fxsave64() ................................................................. 659_fxrstor() .................................................................... 659_fxrstor64()................................................................. 659_xsave()/_xsavec()/_xsaves()........................................ 660_xsave64()/ _xsavec64()/ _xsaves64() ........................... 660_xsaveopt() ................................................................. 661_xsaveopt64().............................................................. 661_xrstor()/xrstors() ........................................................ 661_xrstor64()/xrstors64() ................................................. 662

    Intrinsics for the Short Vector Random Number Generator Library ....... 662Data Types and Calling Conventions ........................................ 663Usage Model ........................................................................ 666Engine Initialization and Finalization ........................................ 668

    svrng_new_rand0_engine/svrng_new_rand0_ex............... 669svrng_new_rand_engine/svrng_new_rand_ex .................. 670svrng_new_mcg31m1_engine/svrng_new_mcg31m1_ex ... 671svrng_new_mcg59_engine/svrng_new_mcg59_ex ............ 672svrng_new_mt19937_engine/svrng_new_mt19937_ex...... 673svrng_delete_engine..................................................... 674

    Distribution Initialization and Finalization ................................. 674

    Intel® C++ Compiler 19.0 Developer Guide and Reference

    14

  • svrng_new_uniform_distribution_[int|float|double]/svrng_update_uniform_distribution_[int|float|double] ... 675

    svrng_new_normal_distribution_[float|double]/svrng_update_normal_distribution_[float|double] ......... 676

    svrng_delete_distribution .............................................. 677Random Values Generation..................................................... 677

    svrng_generate[1|2|4|8|16|32]_[uint|ulong] ................... 677svrng_generate[1|2|4|8|16|32]_[int|float|double]............ 678

    Service Routines ................................................................... 680Parallel Computation Support ......................................... 680Error Handling.............................................................. 683

    Intrinsics for Intel® Advanced Vector Extensions 512 (Intel® AVX-512)4VNNIW Instructions ................................................................. 684

    Intrinsics for Intel® Advanced Vector Extensions 512 (Intel® AVX-512)4FMAPS Instructions.................................................................. 686

    Intrinsics for Intel® Advanced Vector Extensions 512 (Intel® AVX-512)VPOPCNTDQ Instructions............................................................ 690

    Intrinsics for Intel® Advanced Vector Extensions 512 (Intel® AVX-512)Additional Instructions ............................................................... 692

    Intrinsics for Arithmetic Operations ......................................... 693Intrinsics for Bit Manipulation Operations ................................. 775Intrinsics for Comparison Operations ....................................... 779Intrinsics for Conversion Operations ........................................ 841Intrinsics for Load Operations ................................................. 920Intrinsics for Logical Operations .............................................. 936Intrinsics for Miscellaneous Operations..................................... 954Intrinsics for Move Operations ...............................................1058Intrinsics for Set Operations ..................................................1065Intrinsics for Shift Operations ................................................1069Intrinsics for Store Operations ...............................................1103

    Intrinsics for Intel® Advanced Vector Extensions 512 (Intel® AVX-512)Instructions.............................................................................1116

    Overview: Intrinsics for Intel® Advanced Vector Extensions 512(Intel® AVX-512) Instructions ............................................1116

    Intrinsics for Arithmetic Operations ........................................1119Intrinsics for Addition Operations ...................................1119Intrinsics for Determining Minimum and Maximum Values .1124Intrinsics for FP Fused Multiply-Add (FMA) Operations.......1137Intrinsics for Multiplication Operations ............................1162Intrinsics for Subtraction Operations ..............................1168Intrinsics for Short Vector Math Library (SVML) Operations1174Intrinsics for Other Mathematics Operations ....................1213

    Intrinsics for Blend Operations...............................................1226Intrinsics for Bit Manipulation Operations ................................1227

    Intrinsics for Integer Bit Manipulation and ConflictDetection Operations................................................1227

    Intrinsics for Bitwise Logical Operations ..........................1230Intrinsics for Integer Bit Rotation Operations ...................1234Intrinsics for Integer Bit Shift Operations ........................1237

    Intrinsics for Broadcast Operations.........................................1246Intrinsics for FP Broadcast Operations ............................1246Intrinsics for Integer Broadcast Operations......................1248

    Intrinsics for Comparison Operations ......................................1251Intrinsics for FP Comparison Operations..........................1251

    Contents

    15

  • Intrinsics for Integer Comparison Operations...................1261Intrinsics for Compression Operations.....................................1270Intrinsics for Conversion Operations .......................................1272

    Intrinsics for FP Conversion Operations...........................1273Intrinsics for Integer Conversion Operations ....................1290

    Intrinsics for Expand and Load Operations...............................1317Intrinsics for FP Expand and Load Operations ..................1317Intrinsics for Integer Expand and Load Operations ...........1319

    Intrinsics for Gather and Scatter Operations ............................1321Intrinsics for FP Gather and Scatter Operations................1321Intrinsics for Integer Gather and Scatter Operations.........1328

    Intrinsics for Insert and Extract Operations..............................1331Intrinsics for FP Insert and Extract Operations .................1331Intrinsics for Integer Insert and Extract Operations ..........1339

    Intrinsics for Load and Store Operations..................................1341Intrinsics for FP Loads and Store Operations....................1341Intrinsics for Integer Load and Store Operations ..............1346

    Intrinsics for Miscellaneous Operations....................................1350Intrinsics for Miscellaneous FP Operations .......................1350Intrinsics for Miscellaneous Integer Operations ................1359

    Intrinsics for Move Operations ...............................................1360Intrinsics for FP Move Operations ...................................1360Intrinsics for Integer Move Operations ............................1363

    Intrinsics for Pack and Unpack Operations ...............................1364Intrinsics for FP Pack and Unpack Operations...................1364Intrinsics for Integer Pack and Unpack Operations............1366

    Intrinsics for Permutation Operations......................................1369Intrinsics for FP Permutation Operations .........................1369Intrinsics for Integer Permutation Operations ..................1373

    Intrinsics for Reduction Operations .........................................1377Intrinsics for FP Reduction Operations ............................1377Intrinsics for Integer Reduction Operations......................1380

    Intrinsics for Set Operations ..................................................1385Intrinsics for Shuffle Operations.............................................1392

    Intrinsics for FP Shuffle Operations ................................1392Intrinsics for Integer Shuffle Operations..........................1394

    Intrinsics for Test Operations .................................................1396Intrinsics for Typecast Operations...........................................1399Intrinsics for Vector Mask Operations......................................1402

    Intrinsics for Later Generation Intel® Core™ Processor InstructionExtensions ..............................................................................1404

    Overview: Intrinsics for 3rd Generation Intel® Core™ ProcessorInstruction Extensions ......................................................1404

    Overview: Intrinsics for 4th Generation Intel® Core™ ProcessorInstruction Extensions ......................................................1404

    Intrinsics for Converting Half Floats that Map to 3rd GenerationIntel® Core™ Processor Instructions.....................................1405

    _mm_cvtph_ps().........................................................1405_mm256_cvtph_ps()....................................................1406_mm_cvtps_ph().........................................................1406_mm256_cvtps_ph()....................................................1406

    Intrinsics that Generate Random Numbers of 16/32/64 Bit WideRandom Integers .............................................................1407

    _rdrand16_step(), _rdrand32_step(), _rdrand64_step() ...1407_rdseed16_step/ _rdseed32_step/ _rdseed64_step..........1408

    Intel® C++ Compiler 19.0 Developer Guide and Reference

    16

  • Intrinsics for Multi-Precision Arithmetic ...................................1408_addcarry_u32(), _addcarry_u64() ................................1408_addcarryx_u32(), _addcarryx_u64().............................1409_subborrow_u32(), _subborrow_u64() ...........................1410

    Intrinsics that Allow Reading from and Writing to the FS Baseand GS Base Registers......................................................1411

    _readfsbase_u32(), _readfsbase_u64() ..........................1411_readgsbase_u32(), _readgsbase_u64().........................1411_writefsbase_u32(), _writefsbase_u64().........................1411_writegsbase_u32(), _writegsbase_u64() .......................1412

    Intrinsics for Intel® Advanced Vector Extensions 2 ............................1412Overview: Intrinsics for Intel® Advanced Vector Extensions 2

    (Intel® AVX2) Instructions .................................................1412Intrinsics for Arithmetic Operations ........................................1413

    _mm256_abs_epi8/16/32 ............................................1413_mm256_add_epi8/16/32/64 .......................................1413_mm256_adds_epi8/16 ...............................................1414_mm256_adds_epu8/16 ..............................................1414_mm256_sub_epi8/16/32/64 .......................................1415_mm256_subs_epi8/16 ...............................................1415_mm256_subs_epu8/16 ..............................................1416_mm256_avg_epu8/16 ...............................................1416_mm256_hadd_epi16/32 .............................................1417_mm256_hadds_epi16 ................................................1417_mm256_hsub_epi16/32 .............................................1418_mm256_hsubs_epi16 ................................................1418_mm256_madd_epi16 .................................................1419_mm256_maddubs_epi16 ............................................1419_mm256_mul_epi32 ....................................................1420_mm256_mul_epu32 ...................................................1420_mm256_mulhi_epi16..................................................1421_mm256_mulhi_epu16 ................................................1421_mm256_mullo_epi16/32 ............................................1421_mm256_mulhrs_epi16................................................1422_mm256_sign_epi8/16/32............................................1422_mm256_mpsadbw_epu8.............................................1423_mm256_sad_epu8 .....................................................1424

    Intrinsics for Arithmetic Shift Operations .................................1424_mm256_sra_epi16/32 ...............................................1424_mm256_srai_epi16/32................................................1425_mm256_srav_epi32 ..................................................1425_mm_srav_epi32 ........................................................1426

    Intrinsics for Blend Operations...............................................1426_mm_blend_epi32, _mm256_blend_epi16/32 ................1426_mm256_blendv_epi8 .................................................1427

    Intrinsics for Bitwise Operations.............................................1427_mm256_and_si256 ....................................................1427_mm256_andnot_si256................................................1428_mm256_or_si256.......................................................1428_mm256_xor_si256 .....................................................1429

    Intrinsics for Broadcast Operations.........................................1429_mm_broadcastss_ps, _mm256_broadcastss_ps .............1429_mm256_broadcastsd_pd.............................................1430_mm_broadcastb_epi8, _mm256_broadcastb_epi8 ..........1430_mm_broadcastw_epi16, _mm256_broadcastw_epi16......1431

    Contents

    17

  • _mm_broadcastd_epi32, _mm256_broadcastd_epi32.......1431_mm_broadcastq_epi64, _mm256_broadcastq_epi64.......1432_mm256_broadcastsi128_si256 ....................................1432

    Intrinsics for Compare Operations ..........................................1432_mm256_cmpeq_epi8/16/32/64....................................1432_mm256_cmpgt_epi8/16/32/64 ....................................1433_mm256_max_epi8/16/32............................................1434_mm256_max_epu8/16/32...........................................1434_mm256_min_epi8/16/32 ............................................1435_mm256_min_epu8/16/32 ...........................................1435

    Intrinsics for Fused Multiply Add Operations ............................1436_mm_fmadd_pd, _mm256_fmadd_pd ............................1436_mm_fmadd_ps, _mm256_fmadd_ps.............................1436_mm_fmadd_sd .........................................................1437_mm_fmadd_ss ..........................................................1438_mm_fmaddsub_pd, _mm256_fmaddsub_pd ..................1438_mm_fmaddsub_ps, _mm256_fmaddsub_ps...................1439_mm_fmsub_pd, _mm256_fmsub_pd ............................1440_mm_fmsub_ps, _mm256_fmsub_ps .............................1440_mm_fmsub_sd .........................................................1441_mm_fmsub_ss ..........................................................1441_mm_fmsubadd_pd, _mm256_fmsubadd_pd ..................1442_mm_fmsubadd_ps, _mm256_fmsubadd_ps...................1443_mm_fnmadd_pd, _mm256_fnmadd_pd.........................1443_mm_fnmadd_ps, _mm256_fnmadd_ps .........................1444_mm_fnmadd_sd ........................................................1445_mm_fnmadd_ss.........................................................1445_mm_fnmsub_pd, _mm256_fnmsub_pd.........................1446_mm_fnmsub_ps, _mm256_fnmsub_ps .........................1447_mm_fnmsub_sd.........................................................1447_mm_fnmsub_ss .........................................................1448

    Intrinsics for GATHER Operations ...........................................1448_mm_mask_i32gather_pd, _mm256_mask_i32gather_pd 1449_mm_i32gather_pd, _mm256_i32gather_pd ..................1450_mm_mask_i64gather_pd, _mm256_mask_i64gather_pd 1450_mm_i64gather_pd, _mm256_i64gather_pd ..................1451_mm_mask_i32gather_ps, _mm256_mask_i32gather_ps 1452_mm_i32gather_ps, _mm256_i32gather_ps....................1453_mm_mask_i64gather_ps, _mm256_mask_i64gather_ps .1454_mm_i64gather_ps, _mm256_i64gather_ps....................1455_mm_mask_i32gather_epi32,

    _mm256_mask_i32gather_epi32 ...............................1456_mm_i32gather_epi32, _mm256_i32gather_epi32...........1457_mm_mask_i32gather_epi64,_mm256_mask_i32gather_e

    pi64.......................................................................1458_mm_i32gather_epi64,_mm256_i32gather_epi64............1459_mm_mask_i64gather_epi32,_mm256_mask_i64gather_e

    pi32.......................................................................1460_mm_i64gather_epi32,_mm256_i64gather_epi32............1461_mm_mask_i64gather_epi64,_mm256_mask_i64gather_e

    pi64.......................................................................1462_mm_i64gather_epi64,_mm256_i64gather_epi64............1463

    Intrinsics for Logical Shift Operations......................................1463_mm256_sll_epi16/32/64 ............................................1463_mm256_slli_epi16/32/64 ...........................................1464

    Intel® C++ Compiler 19.0 Developer Guide and Reference

    18

  • _mm256_sllv_epi32/64 ...............................................1465_mm_sllv_epi32/64 ....................................................1465_mm256_slli_si256 .....................................................1466_mm256_srli_si256 .....................................................1466_mm256_srl_epi16/32/64 ...........................................1467_mm256_srli_epi16/32/64 ...........................................1467_mm256_srlv_epi32/64 ...............................................1468_mm_srlv_epi32/64 ....................................................1468

    Intrinsics for Insert/Extract Operations ...................................1469_mm256_inserti128_si256 ...........................................1469_mm256_extracti128_si256 .........................................1469_mm256_insert_epi8/16/32/64 ....................................1470_mm256_extract_epi8/16/32/64 ..................................1470

    Intrinsics for Masked Load/Store Operations ............................1471_mm_maskload_epi32/64, _mm256_maskload_epi32/64 .1471_mm_maskstore_epi32/64, _mm256_maskstore_epi32/641471

    Intrinsics for Miscellaneous Operations....................................1472_mm256_alignr_epi8 ...................................................1472_mm256_movemask_epi8 ............................................1473_mm256_stream_load_si256 ........................................1473

    Intrinsics for Operations to Manipulate Integer Data at Bit-Granularity......................................................................1473

    _bextr_u32/64 ...........................................................1473_blsi_u32/64 ..............................................................1474_blsmsk_u32/64 .........................................................1474_blsr_u32/64 .............................................................1475_bzhi_u32/64 .............................................................1475_pext_u32/64 ............................................................1476_pdep_u32/64 ...........................................................1476_lzcnt_u32/64 ............................................................1477_tzcnt_u32/64 ...........................................................1477

    Intrinsics for Pack/Unpack Operations.....................................1478_mm256_packs_epi16/32.............................................1478_mm256_packus_epi16/32...........................................1478_mm256_unpackhi_epi8/16/32/64 ................................1479_mm256_unpacklo_epi8/16/32/64 ................................1479

    Intrinsics for Packed Move with Extend Operations ...................1480_mm256_cvtepi8_epi16/32/64......................................1480_mm256_cvtepi16_epi32/64.........................................1480_mm256_cvtepi32_epi64..............................................1481_mm256_cvtepu8_epi16/32/64.....................................1481_mm256_cvtepu16_epi32/64........................................1482_mm256_cvtepu32_epi64.............................................1482

    Intrinsics for Permute Operations ...........................................1482_mm256_permutevar8x32_epi32 .................................1482_mm256_permutevar8x32_ps ......................................1483_mm256_permute4x64_epi64 ......................................1484_mm256_permute4x64_pd ..........................................1484_mm256_permute2x128_si256 ....................................1485

    Intrinsics for Shuffle Operations.............................................1486_mm256_shuffle_epi8..................................................1486_mm256_shuffle_epi32 ................................................1487_mm256_shufflehi_epi16 .............................................1487_mm256_shufflelo_epi16 .............................................1488

    Contents

    19

  • Intrinsics for Intel® Transactional Synchronization Extensions(Intel® TSX) ....................................................................1488

    Intel® Transactional Synchronization Extensions (Intel®TSX) Overview ........................................................1488

    Intel® Transactional Synchronization Extensions (Intel®TSX) Programming Considerations .............................1489

    Restricted Transactional Memory Intrinsics ......................1492Hardware Lock Elision Intrinsics (Windows*) ...................1496Function Prototype and Macro Definitions........................1499

    Intrinsics for Intel® Advanced Vector Extensions ...............................1500Overview ............................................................................1501Details of Intel® AVX Intrinsics and FMA Intrinsics.....................1501Intrinsics for Arithmetic Operations ........................................1504

    _mm256_add_pd ........................................................1504_mm256_add_ps.........................................................1505_mm256_addsub_pd ...................................................1505_mm256_addsub_ps....................................................1506_mm256_hadd_pd.......................................................1506_mm256_hadd_ps.......................................................1506_mm256_sub_pd.........................................................1507_mm256_sub_ps.........................................................1507_mm256_hsub_pd.......................................................1508_mm256_hsub_ps .......................................................1508_mm256_mul_pd ........................................................1509_mm256_mul_ps.........................................................1509_mm256_div_pd .........................................................1509_mm256_div_ps..........................................................1510_mm256_dp_ps ..........................................................1510_mm256_sqrt_pd ........................................................1511_mm256_sqrt_ps ........................................................1511_mm256_rsqrt_ps .......................................................1512_mm256_rcp_ps .........................................................1512

    Intrinsics for Bitwise Operations.............................................1512_mm256_and_pd ........................................................1512_mm256_and_ps.........................................................1513_mm256_andnot_pd....................................................1513_mm256_andnot_ps ....................................................1514_mm256_or_pd...........................................................1514_mm256_or_ps...........................................................1514_mm256_xor_pd .........................................................1515_mm256_xor_ps .........................................................1515

    Intrinsics for Blend and Conditional Merge Operations ...............1516_mm256_blend_pd......................................................1516_mm256_blend_ps ......................................................1516_mm256_blendv_pd ....................................................1517_mm256_blendv_ps.....................................................1517

    Intrinsics for Compare Operations ..........................................1518_mm_cmp_pd, _mm256_cmp_pd..................................1518_mm_cmp_ps, _mm256_cmp_ps ..................................1519_mm_cmp_sd .............................................................1519_mm_cmp_ss .............................................................1520

    Intrinsics for Conversion Operations .......................................1520_mm256_cvtepi32_pd..................................................1521_mm256_cvtepi32_ps ..................................................1521

    Intel® C++ Compiler 19.0 Developer Guide and Reference

    20

  • _mm256_cvtpd_epi32..................................................1521_mm256_cvtps_epi32 ..................................................1522_mm256_cvtpd_ps ......................................................1522_mm256_cvtps_pd ......................................................1522_mm256_cvttp_epi32 ..................................................1523_mm256_cvttps_epi32.................................................1523_mm256_cvtsi256_si32................................................1524_mm256_cvtsd_f64 .....................................................1524_mm256_cvtss_f32 .....................................................1524

    Intrinsics to Determine Minimum and Maximum Values .............1525_mm256_max_pd .......................................................1525_mm256_max_ps........................................................1525_mm256_min_pd ........................................................1526_mm256_min_ps.........................................................1526

    Intrinsics for Load and Store Operations..................................1526_mm256_broadcast_pd................................................1526_mm256_broadcast_ps ................................................1527_mm256_broadcast_sd ................................................1527_mm256_broadcast_ss, _mm_broadcast_ss....................1528_mm256_load_pd........................................................1528_mm256_load_ps ........................................................1529_mm256_load_si256....................................................1529_mm256_loadu_pd......................................................1529_mm256_loadu_ps ......................................................1530_mm256_loadu_si256..................................................1530_mm256_maskload_pd, _mm_maskload_pd ...................1531_mm256_maskload_ps, _mm_maskload_ps....................1531_mm256_store_pd ......................................................1532_mm256_store_ps.......................................................1532_mm256_store_si256 ..................................................1533_mm256_storeu_pd.....................................................1533_mm256_storeu_ps .....................................................1533_mm256_storeu_si256.................................................1534_mm256_stream_pd....................................................1534_mm256_stream_ps ....................................................1535_mm256_stream_si256................................................1535_mm256_maskstore_pd, _mm_maskstore_pd.................1536_mm256_maskstore_ps, _mm_maskstore_ps .................1536

    Intrinsics for Miscellaneous Operations....................................1537_mm256_extractf128_pd..............................................1537_mm256_extractf128_ps..............................................1538_mm256_extractf128_si256..........................................1538_mm256_insertf128_pd ...............................................1538_mm256_insertf128_ps................................................1539_mm256_insertf128_si256 ...........................................1539_mm256_lddqu_si256..................................................1540_mm256_movedup_pd.................................................1540_mm256_movehdup_ps ...............................................1541_mm256_moveldup_ps ................................................1541_mm256_movemask_pd ..............................................1541_mm256_movemask_ps...............................................1542_mm256_round_pd .....................................................1542_mm256_round_ps......................................................1543_mm256_set_pd .........................................................1544_mm256_set_ps..........................................................1544

    Contents

    21

  • _mm256_set_epi8/16/32/64x .......................................1545_mm256_setr_pd ........................................................1545_mm256_setr_ps ........................................................1546_mm256_setr_epi32 ....................................................1546_mm256_set1_pd........................................................1547_mm256_set1_ps........................................................1547_mm256_set1_epi32 ...................................................1547_mm256_setzero_pd ...................................................1548_mm256_setzero_ps....................................................1548_mm256_setzero_si256 ...............................................1549_mm256_zeroall..........................................................1549_mm256_zeroupper.....................................................1549

    Intrinsics for Packed Test Operations ......................................1550_mm256_testz_si256...................................................1550_mm256_testc_si256...................................................1550_mm256_testnzc_si256................................................1551_mm256_testz_pd, _mm_testz_pd ................................1551_mm256_testz_ps, _mm_testz_ps.................................1552_mm256_testc_pd, _mm_testc_pd ................................1553_mm256_testc_ps, _mm_testc_ps.................................1553_mm256_testnzc_pd, _mm_testnzc_pd..........................1554_mm256_testnzc_ps, _mm_testnzc_ps ..........................1555

    Intrinsics for Permute Operations ...........................................1556_mm256_permute_pd, _mm_permute_pd ......................1556_mm256_permute_ps, _mm_permute_ps.......................1557_mm256_permutevar_pd, _mm_permutevar_pd .............1557_mm_permutevar_ps, _mm256_permutevar_ps..............1558_mm256_permute2f128_pd..........................................1558_mm256_permute2f128_ps ..........................................1559_mm256_permute2f128_si256......................................1559

    Intrinsics for Shuffle Operations.............................................1560_mm256_shuffle_pd ....................................................1560_mm256_shuffle_ps ....................................................1560

    Intrinsics for Unpack and Interleave Operations .......................1561_mm256_unpackhi_pd .................................................1561_mm256_unpackhi_ps .................................................1561_mm256_unpacklo_pd .................................................1562_mm256_unpacklo_ps .................................................1562

    Support Intrinsics for Vector Typecasting Operations.................1563_mm256_castpd_ps.....................................................1563_mm256_castps_pd.....................................................1563_mm256_castpd_si256 ................................................1564_mm256_castps_si256.................................................1564_mm256_castsi256_pd ................................................1564_mm256_castsi256_ps.................................................1565_mm256_castpd128_pd256..........................................1565_mm256_castpd256_pd128..........................................1566_mm256_castps128_ps256 ..........................................1566_mm256_castps256_ps128 ..........................................1567_mm256_castsi128_si256 ............................................1567_mm256_castsi256_si128 .........................