intel® c++ compiler 19.1 developer guide and reference · intel® c++ compiler 19.1 developer...

2341
Intel ® C++ Compiler 19.1 Developer Guide and Reference Disclaimer and Legal Information

Upload: others

Post on 16-Apr-2020

19 views

Category:

Documents


0 download

TRANSCRIPT

  • Intel® C++ Compiler 19.1 DeveloperGuide and Reference

    Disclaimer and Legal Information

  • ContentsNotices and Disclaimers..................................................................... 33Intel® C++ Compiler 19.1 Developer Guide and Reference................. 34

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

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

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

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

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

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

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

    Using Intel® Performance Libraries with Eclipse*.................................. 58Using Microsoft Visual Studio* (Windows*) ................................................ 59

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

    Intel® C++ Compiler 19.1 Developer Guide and Reference

    2

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

    Options: Compilers dialog box .................................................. 72Options: Intel® Performance Libraries dialog box ......................... 72Use Intel® C++ dialog box........................................................ 72Options: Guided Auto Parallelism dialog box ............................... 73Profile Guided Optimization dialog box ....................................... 73Options: Profile Guided Optimization (PGO) dialog box................. 76Configure Analysis dialog box ................................................... 76Options: Converter dialog box .................................................. 77Code Coverage dialog box ........................................................ 77Options: Code Coverage dialog box ........................................... 77Code Coverage Settings dialog box............................................ 78Options: Optimization Reports dialog box ................................... 79

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

    Part III: Compiler ReferenceC/C++ Calling Conventions....................................................................... 85Compiler Options..................................................................................... 89

    New Options................................................................................... 89Alphabetical List of Compiler Options ................................................. 91Deprecated and Removed Compiler Options...................................... 111Ways to Display Certain Option Information ...................................... 120

    Displaying General Option Information From the Command Line.. 120Compiler Option Details ................................................................. 120

    General Rules for Compiler Options ......................................... 120What Appears in the Compiler Option Descriptions .................... 121Offload Options..................................................................... 122

    qoffload....................................................................... 122Optimization Options ............................................................. 124

    falias, Oa..................................................................... 124fast............................................................................. 124fbuiltin, Oi ................................................................... 126fdefer-pop ................................................................... 127ffnalias, Ow ................................................................. 127ffunction-sections ......................................................... 128foptimize-sibling-calls.................................................... 129fprotect-parens, Qprotect-parens .................................... 129GF .............................................................................. 131nolib-inline .................................................................. 131O................................................................................ 132

    Contents

    3

  • Od.............................................................................. 134Ofast .......................................................................... 135Os .............................................................................. 136Ot .............................................................................. 137Ox.............................................................................. 138

    Code Generation Options ....................................................... 138arch............................................................................ 138ax, Qax ....................................................................... 141EH.............................................................................. 144fasynchronous-unwind-tables ......................................... 145fexceptions .................................................................. 146fomit-frame-pointer, Oy................................................. 147Gd.............................................................................. 148Gr .............................................................................. 149GR.............................................................................. 149guard.......................................................................... 150Gv .............................................................................. 151Gz .............................................................................. 152hotpatch...................................................................... 153m ............................................................................... 153m32, m64, Q32, Q64 .................................................... 155m80387 ...................................................................... 156march ......................................................................... 157masm ......................................................................... 159mauto-arch, Qauto-arch ................................................ 160mbranches-within-32B-boundaries, Qbranches-within-32B-

    boundaries .............................................................. 161mconditional-branch, Qconditional-branch........................ 162minstruction, Qinstruction.............................................. 163momit-leaf-frame-pointer .............................................. 164mregparm ................................................................... 165mregparm-version ........................................................ 166mstringop-inline-threshold, Qstringop-inline-threshold....... 167mstringop-strategy, Qstringop-strategy ........................... 168mtune, tune................................................................. 169qcf-protection, Qcf-protection......................................... 171Qcxx-features .............................................................. 173Qpatchable-addresses ................................................... 173Qsafeseh ..................................................................... 174regcall, Qregcall ........................................................... 175x, Qx .......................................................................... 176xHost, QxHost.............................................................. 180

    Interprocedural Optimization (IPO) Options .............................. 183ffat-lto-objects ............................................................. 183ip, Qip......................................................................... 184ip-no-inlining, Qip-no-inlining ......................................... 185ip-no-pinlining, Qip-no-pinlining ..................................... 185ipo, Qipo ..................................................................... 186ipo-c, Qipo-c ................................................................ 187ipo-jobs, Qipo-jobs ....................................................... 188ipo-S, Qipo-S ............................................................... 189ipo-separate, Qipo-separate ........................................... 189

    Advanced Optimization Options............................................... 190alias-const, Qalias-const ................................................ 190ansi-alias, Qansi-alias ................................................... 191

    Intel® C++ Compiler 19.1 Developer Guide and Reference

    4

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

    aggressive ............................................................... 222qopt-multiple-gather-scatter-by-shuffles, Qopt-multiple-

    gather-scatter-by-shuffles.......................................... 223qopt-prefetch, Qopt-prefetch.......................................... 224qopt-prefetch-distance, Qopt-prefetch-distance ................ 225qopt-prefetch-issue-excl-hint, Qopt-prefetch-issue-excl-hint227qopt-ra-region-strategy, Qopt-ra-region-strategy .............. 227qopt-streaming-stores, Qopt-streaming-stores ................. 228qopt-subscript-in-range, Qopt-subscript-in-range .............. 230qopt-zmm-usage, Qopt-zmm-usage ................................ 231qoverride-limits, Qoverride-limits.................................... 232Qvla ........................................................................... 232scalar-rep, Qscalar-rep .................................................. 233simd, Qsimd ................................................................ 234simd-function-pointers, Qsimd-function-pointers............... 235tbb, Qtbb..................................................................... 236unroll, Qunroll .............................................................. 236unroll-aggressive, Qunroll-aggressive .............................. 237use-intel-optimized-headers, Quse-intel-optimized-headers 238vec, Qvec .................................................................... 239vec-guard-write, Qvec-guard-write.................................. 240vec-threshold, Qvec-threshold ........................................ 241vecabi, Qvecabi ............................................................ 242

    Profile Guided Optimization (PGO) Options ............................... 244finstrument-functions, Qinstrument-functions ................... 244

    Contents

    5

  • fnsplit, Qfnsplit............................................................. 245Gh.............................................................................. 246GH ............................................................................. 247p ................................................................................ 247prof-data-order, Qprof-data-order ................................... 248prof-dir, Qprof-dir ......................................................... 249prof-file, Qprof-file ........................................................ 250prof-func-groups .......................................................... 250prof-func-order, Qprof-func-order.................................... 251prof-gen, Qprof-gen ...................................................... 253prof-gen-sampling ........................................................ 254prof-hotness-threshold, Qprof-hotness-threshold .............. 255prof-src-dir, Qprof-src-dir............................................... 256prof-src-root, Qprof-src-root .......................................... 257prof-src-root-cwd, Qprof-src-root-cwd ............................. 258prof-use, Qprof-use....................................................... 259prof-use-sampling ........................................................ 261prof-value-profiling, Qprof-value-profiling......................... 261Qcov-dir ...................................................................... 262Qcov-file ..................................................................... 263Qcov-gen..................................................................... 264

    Optimization Report Options................................................... 265qopt-report, Qopt-report................................................ 265qopt-report-annotate, Qopt-report-annotate..................... 266qopt-report-annotate-position, Qopt-report-annotate-

    position ................................................................... 268qopt-report-embed, Qopt-report-embed .......................... 268qopt-report-file, Qopt-report-file ..................................... 269qopt-report-filter, Qopt-report-filter ................................. 270qopt-report-format, Qopt-report-format........................... 272qopt-report-help, Qopt-report-help.................................. 273qopt-report-per-object, Qopt-report-per-object................. 273qopt-report-phase, Qopt-report-phase............................. 274qopt-report-routine, Qopt-report-routine.......................... 278qopt-report-names, Qopt-report-names ........................... 279tcollect, Qtcollect .......................................................... 280tcollect-filter, Qtcollect-filter ........................................... 281

    OpenMP* Options and Parallel Processing Options ..................... 282fmpc-privatize .............................................................. 282par-affinity, Qpar-affinity ............................................... 283par-loops, Qpar-loops.................................................... 284par-num-threads, Qpar-num-threads .............................. 285par-runtime-control, Qpar-runtime-control ....................... 286par-schedule, Qpar-schedule.......................................... 287par-threshold, Qpar-threshold ........................................ 290parallel, Qparallel ......................................................... 291parallel-source-info, Qparallel-source-info ........................ 292qopenmp, Qopenmp...................................................... 293qopenmp-lib, Qopenmp-lib............................................. 294qopenmp-link, Qopenmp-link ......................................... 296qopenmp-offload, Qopenmp-offload ................................ 297qopenmp-simd, Qopenmp-simd...................................... 298qopenmp-stubs, Qopenmp-stubs .................................... 299qopenmp-threadprivate, Qopenmp-threadprivate.............. 300Qpar-adjust-stack......................................................... 301

    Intel® C++ Compiler 19.1 Developer Guide and Reference

    6

  • Floating-Point Options ........................................................... 302fast-transcendentals, Qfast-transcendentals ..................... 302fimf-absolute-error, Qimf-absolute-error .......................... 304fimf-accuracy-bits, Qimf-accuracy-bits ............................. 306fimf-arch-consistency, Qimf-arch-consistency ................... 308fimf-domain-exclusion, Qimf-domain-exclusion ................. 310fimf-force-dynamic-target, Qimf-force-dynamic-target ....... 313fimf-max-error, Qimf-max-error ...................................... 315fimf-precision, Qimf-precision......................................... 317fimf-use-svml, Qimf-use-svml ........................................ 319fma, Qfma ................................................................... 321fp-model, fp................................................................. 322fp-port, Qfp-port .......................................................... 327fp-speculation, Qfp-speculation ...................................... 328fp-stack-check, Qfp-stack-check ..................................... 329fp-trap, Qfp-trap........................................................... 330fp-trap-all, Qfp-trap-all.................................................. 332ftz, Qftz....................................................................... 333Ge.............................................................................. 334mp1, Qprec ................................................................. 335pc, Qpc ....................................................................... 336prec-div, Qprec-div ....................................................... 337prec-sqrt, Qprec-sqrt .................................................... 338qsimd-honor-fp-model, Qsimd-honor-fp-model ................. 338qsimd-serialize-fp-reduction, Qsimd-serialize-fp-reduction.. 339rcd, Qrcd ..................................................................... 340

    Inlining Options .................................................................... 341fgnu89-inline ............................................................... 341finline ......................................................................... 342finline-functions............................................................ 343finline-limit .................................................................. 343inline-calloc, Qinline-calloc ............................................. 344inline-factor, Qinline-factor............................................. 345inline-forceinline, Qinline-forceinline................................ 346inline-level, Ob............................................................. 347inline-max-per-compile, Qinline-max-per-compile ............. 348inline-max-per-routine, Qinline-max-per-routine ............... 349inline-max-size, Qinline-max-size.................................... 350inline-max-total-size, Qinline-max-total-size..................... 351inline-min-caller-growth, Qinline-min-caller-growth ........... 352inline-min-size, Qinline-min-size ..................................... 353Qinline-dllimport........................................................... 354

    Output, Debug, and Precompiled Header (PCH) Options ............. 355c ................................................................................ 355debug (Linux* OS and macOS*) ..................................... 355debug (Windows* OS)................................................... 358Fa............................................................................... 360FA .............................................................................. 360fasm-blocks ................................................................. 362FC .............................................................................. 362fcode-asm ................................................................... 363Fd .............................................................................. 364FD .............................................................................. 364Fe............................................................................... 365

    Contents

    7

  • feliminate-unused-debug-types, Qeliminate-unused-debug-types ............................................................ 366

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

    Preprocessor Options............................................................. 397A, QA.......................................................................... 397B................................................................................ 398C................................................................................ 399D................................................................................ 399dD, QdD ...................................................................... 401dM, QdM ..................................................................... 401dN, QdN ...................................................................... 402E ................................................................................ 402EP .............................................................................. 403FI ............................................................................... 404gcc, gcc-sys................................................................. 405gcc-include-dir ............................................................. 406H, QH ......................................................................... 407I................................................................................. 407I- ............................................................................... 408icc, Qicl ....................................................................... 409idirafter....................................................................... 409

    Intel® C++ Compiler 19.1 Developer Guide and Reference

    8

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

    Component Control Options.................................................... 426Qinstall ....................................................................... 426Qlocation..................................................................... 426Qoption ....................................................................... 428

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

    Contents

    9

  • vmg............................................................................ 449vmm........................................................................... 450vms ............................................................................ 451x (type option) ............................................................. 451Za .............................................................................. 452Zc .............................................................................. 453Ze .............................................................................. 454Zg .............................................................................. 455Zp .............................................................................. 455Zs .............................................................................. 456

    Data Options ........................................................................ 457align ........................................................................... 457auto-ilp32, Qauto-ilp32 ................................................. 458auto-p32 ..................................................................... 459check-pointers, Qcheck-pointers ..................................... 460check-pointers-dangling, Qcheck-pointers-dangling ........... 461check-pointers-mpx, Qcheck-pointers-mpx....................... 462check-pointers-narrowing, Qcheck-pointers-narrowing ....... 463check-pointers-undimensioned, Qcheck-pointers-

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

    Intel® C++ Compiler 19.1 Developer Guide and Reference

    10

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

    Contents

    11

  • Wwrite-strings ............................................................. 536Compatibility Options ............................................................ 537

    clang-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.................................................................... 550Bsymbolic-functions ...................................................... 551cxxlib.......................................................................... 552dynamic-linker ............................................................. 553dynamiclib ................................................................... 554F (Windows*)............................................................... 554F (macOS*) ................................................................. 555fixed ........................................................................... 556Fm ............................................................................. 556fuse-ld ........................................................................ 557l ................................................................................. 558L ................................................................................ 558LD .............................................................................. 559link............................................................................. 560MD ............................................................................. 560MT.............................................................................. 561no-libgcc ..................................................................... 562nodefaultlibs ................................................................ 563nostartfiles .................................................................. 563nostdlib....................................................................... 564pie.............................................................................. 565pthread ....................................................................... 565shared ........................................................................ 566shared-intel ................................................................. 567shared-libgcc ............................................................... 568static .......................................................................... 568static-intel ................................................................... 569static-libgcc ................................................................. 570static-libstdc++............................................................ 571staticlib ....................................................................... 572T ................................................................................ 573u (Linux* OS) .............................................................. 573v ................................................................................ 574Wa ............................................................................. 574Wl .............................................................................. 575Wp ............................................................................. 576Xlinker ........................................................................ 577Zl ............................................................................... 577

    Intel® C++ Compiler 19.1 Developer Guide and Reference

    12

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

    Alternate Compiler Options............................................................. 598Related Options ............................................................................ 599

    Portability Options................................................................. 599GCC-Compatible Warning Options ........................................... 607

    Floating-Point Operations ....................................................................... 607Understanding Floating-Point Operations .......................................... 607

    Programming Tradeoffs in Floating-point Applications................. 607Floating-point Optimizations ................................................... 610Using the -fp-model (/fp) Option............................................. 611Denormal Numbers ............................................................... 615Floating-Point Environment .................................................... 615Setting the FTZ and DAZ Flags ............................................... 616Checking the Floating-point Stack State................................... 617

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

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

    Attributes............................................................................................. 622align............................................................................................ 623align_value .................................................................................. 623avoid_false_share ......................................................................... 624code_align ................................................................................... 624concurrency_safe .......................................................................... 625const........................................................................................... 626cpu_dispatch ................................................................................ 626

    Contents

    13

  • cpu_specific ................................................................................. 627mpx ............................................................................................ 629target.......................................................................................... 629vector.......................................................................................... 630vector_variant .............................................................................. 631

    Intrinsics.............................................................................................. 632Details about Intrinsics .................................................................. 633Naming and Usage Syntax.............................................................. 637References ................................................................................... 638Intrinsics for All Intel® Architectures ................................................ 638

    Overview: Intrinsics across Intel® Architectures......................... 638Integer Arithmetic Intrinsics ................................................... 638Floating-point Intrinsics ......................................................... 639String and Block Copy Intrinsics.............................................. 641Miscellaneous Intrinsics ......................................................... 642_may_i_use_cpu_feature ....................................................... 645_allow_cpu_features ............................................................ 647

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

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

    Control Registers .............................................................. 656_xgetbv() .................................................................... 657_xsetbv() .................................................................... 657

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

    Intrinsics for the Short Vector Random Number Generator Library ....... 664Data Types and Calling Conventions ........................................ 665Usage Model ........................................................................ 667Engine Initialization and Finalization ........................................ 670

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

    Distribution Initialization and Finalization ................................. 676svrng_new_uniform_distribution_[int|float|double]/

    svrng_update_uniform_distribution_[int|float|double] ... 676svrng_new_normal_distribution_[float|double]/

    svrng_update_normal_distribution_[float|double] ......... 677svrng_delete_distribution .............................................. 678

    Intel® C++ Compiler 19.1 Developer Guide and Reference

    14

  • Random Values Generation..................................................... 678svrng_generate[1|2|4|8|16|32]_[uint|ulong] ................... 679svrng_generate[1|2|4|8|16|32]_[int|float|double]............ 680

    Service Routines ................................................................... 681Parallel Computation Support ......................................... 681Error Handling.............................................................. 685

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

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

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

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

    Intrinsics for Arithmetic Operations ......................................... 694Intrinsics for Bit Manipulation Operations ................................. 777Intrinsics for Comparison Operations ....................................... 781Intrinsics for Conversion Operations ........................................ 842Intrinsics for Load Operations ................................................. 922Intrinsics for Logical Operations .............................................. 937Intrinsics for Miscellaneous Operations..................................... 955Intrinsics for Move Operations ...............................................1059Intrinsics for Set Operations ..................................................1066Intrinsics for Shift Operations ................................................1070Intrinsics for Store Operations ...............................................1105

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

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

    Intrinsics for Arithmetic Operations ........................................1120Intrinsics for Addition Operations ...................................1120Intrinsics for Determining Minimum and Maximum Values .1125Intrinsics for FP Fused Multiply-Add (FMA) Operations.......1139Intrinsics for Multiplication Operations ............................1164Intrinsics for Subtraction Operations ..............................1170Intrinsics for Short Vector Math Library (SVML) Operations1175Intrinsics for Other Mathematics Operations ....................1215

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

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

    Intrinsics for Bitwise Logical Operations ..........................1232Intrinsics for Integer Bit Rotation Operations ...................1235Intrinsics for Integer Bit Shift Operations ........................1239

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

    Intrinsics for Comparison Operations ......................................1253Intrinsics for FP Comparison Operations..........................1253Intrinsics for Integer Comparison Operations...................1262

    Intrinsics for Compression Operations.....................................1272Intrinsics for Conversion Operations .......................................1274

    Intrinsics for FP Conversion Operations...........................1274Intrinsics for Integer Conversion Operations ....................1291

    Contents

    15

  • Intrinsics for Expand and Load Operations...............................1319Intrinsics for FP Expand and Load Operations ..................1319Intrinsics for Integer Expand and Load Operations ...........1321

    Intrinsics for Gather and Scatter Operations ............................1322Intrinsics for FP Gather and Scatter Operations................1323Intrinsics for Integer Gather and Scatter Operations.........1330

    Intrinsics for Insert and Extract Operations..............................1333Intrinsics for FP Insert and Extract Operations .................1333Intrinsics for Integer Insert and Extract Operations ..........1341

    Intrinsics for Load and Store Operations..................................1343Intrinsics for FP Loads and Store Operations....................1343Intrinsics for Integer Load and Store Operations ..............1348

    Intrinsics for Miscellaneous Operations....................................1352Intrinsics for Miscellaneous FP Operations .......................1352Intrinsics for Miscellaneous Integer Operations ................1361

    Intrinsics for Move Operations ...............................................1362Intrinsics for FP Move Operations ...................................1362Intrinsics for Integer Move Operations ............................1365

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

    Intrinsics for Permutation Operations......................................1370Intrinsics for FP Permutation Operations .........................1370Intrinsics for Integer Permutation Operations ..................1375

    Intrinsics for Reduction Operations .........................................1378Intrinsics for FP Reduction Operations ............................1379Intrinsics for Integer Reduction Operations......................1381

    Intrinsics for Set Operations ..................................................1387Intrinsics for Shuffle Operations.............................................1393

    Intrinsics for FP Shuffle Operations ................................1393Intrinsics for Integer Shuffle Operations..........................1396

    Intrinsics for Test Operations .................................................1397Intrinsics for Typecast Operations...........................................1400Intrinsics for Vector Mask Operations......................................1404

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

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

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

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

    _mm_cvtph_ps().........................................................1407_mm256_cvtph_ps()....................................................1407_mm_cvtps_ph().........................................................1408_mm256_cvtps_ph()....................................................1408

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

    _rdrand16_step(), _rdrand32_step(), _rdrand64_step() ...1409_rdseed16_step/ _rdseed32_step/ _rdseed64_step..........1409

    Intrinsics for Multi-Precision Arithmetic ...................................1410_addcarry_u32(), _addcarry_u64() ................................1410_addcarryx_u32(), _addcarryx_u64().............................1411_subborrow_u32(), _subborrow_u64() ...........................1412

    Intel® C++ Compiler 19.1 Developer Guide and Reference

    16

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

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

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

    (Intel® AVX2) Instructions .................................................1414Intrinsics for Arithmetic Operations ........................................1415

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

    Intrinsics for Arithmetic Shift Operations .................................1426_mm256_sra_epi16/32 ...............................................1426_mm256_srai_epi16/32................................................1427_mm256_srav_epi32 ..................................................1427_mm_srav_epi32 ........................................................1428

    Intrinsics for Blend Operations...............................................1428_mm_blend_epi32, _mm256_blend_epi16/32 ................1428_mm256_blendv_epi8 .................................................1429

    Intrinsics for Bitwise Operations.............................................1429_mm256_and_si256 ....................................................1429_mm256_andnot_si256................................................1430_mm256_or_si256.......................................................1430_mm256_xor_si256 .....................................................1431

    Intrinsics for Broadcast Operations.........................................1431_mm_broadcastss_ps, _mm256_broadcastss_ps .............1431_mm256_broadcastsd_pd.............................................1432_mm_broadcastb_epi8, _mm256_broadcastb_epi8 ..........1432_mm_broadcastw_epi16, _mm256_broadcastw_epi16......1433_mm_broadcastd_epi32, _mm256_broadcastd_epi32.......1433_mm_broadcastq_epi64, _mm256_broadcastq_epi64.......1434_mm256_broadcastsi128_si256 ....................................1434

    Intrinsics for Compare Operations ..........................................1434

    Contents

    17

  • _mm256_cmpeq_epi8/16/32/64....................................1434_mm256_cmpgt_epi8/16/32/64 ....................................1435_mm256_max_epi8/16/32............................................1436_mm256_max_epu8/16/32...........................................1436_mm256_min_epi8/16/32 ............................................1437_mm256_min_epu8/16/32 ...........................................1437

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

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

    _mm256_mask_i32gather_epi32 ...............................1458_mm_i32gather_epi32, _mm256_i32gather_epi32...........1459_mm_mask_i32gather_epi64,_mm256_mask_i32gather_e

    pi64.......................................................................1460_mm_i32gather_epi64,_mm256_i32gather_epi64............1461_mm_mask_i64gather_epi32,_mm256_mask_i64gather_e

    pi32.......................................................................1462_mm_i64gather_epi32,_mm256_i64gather_epi32............1463_mm_mask_i64gather_epi64,_mm256_mask_i64gather_e

    pi64.......................................................................1464_mm_i64gather_epi64,_mm256_i64gather_epi64............1465

    Intrinsics for Logical Shift Operations......................................1465_mm256_sll_epi16/32/64 ............................................1465_mm256_slli_epi16/32/64 ...........................................1466_mm256_sllv_epi32/64 ...............................................1467_mm_sllv_epi32/64 ....................................................1467_mm256_slli_si256 .....................................................1468_mm256_srli_si256 .....................................................1468

    Intel® C++ Compiler 19.1 Developer Guide and Reference

    18

  • _mm256_srl_epi16/32/64 ...........................................1469_mm256_srli_epi16/32/64 ...........................................1469_mm256_srlv_epi32/64 ...............................................1470_mm_srlv_epi32/64 ....................................................1470

    Intrinsics for Insert/Extract Operations ...................................1471_mm256_inserti128_si256 ...........................................1471_mm256_extracti128_si256 .........................................1471_mm256_insert_epi8/16/32/64 ....................................1472_mm256_extract_epi8/16/32/64 ..................................1472

    Intrinsics for Masked Load/Store Operations ............................1473_mm_maskload_epi32/64, _mm256_maskload_epi32/64 .1473_mm_maskstore_epi32/64, _mm256_maskstore_epi32/641473

    Intrinsics for Miscellaneous Operations....................................1474_mm256_alignr_epi8 ...................................................1474_mm256_movemask_epi8 ............................................1475_mm256_stream_load_si256 ........................................1475

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

    _bextr_u32/64 ...........................................................1475_blsi_u32/64 ..............................................................1476_blsmsk_u32/64 .........................................................1476_blsr_u32/64 .............................................................1477_bzhi_u32/64 .............................................................1477_pext_u32/64 ............................................................1478_pdep_u32/64 ...........................................................1478_lzcnt_u32/64 ............................................................1479_tzcnt_u32/64 ...........................................................1479

    Intrinsics for Pack/Unpack Operations.....................................1480_mm256_packs_epi16/32.............................................1480_mm256_packus_epi16/32...........................................1480_mm256_unpackhi_epi8/16/32/64 ................................1481_mm256_unpacklo_epi8/16/32/64 ................................1481

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

    Intrinsics for Permute Operations ...........................................1484_mm256_permutevar8x32_epi32 .................................1484_mm256_permutevar8x32_ps ......................................1485_mm256_permute4x64_epi64 ......................................1486_mm256_permute4x64_pd ..........................................1486_mm256_permute2x128_si256 ....................................1487

    Intrinsics for Shuffle Operations.............................................1488_mm256_shuffle_epi8..................................................1488_mm256_shuffle_epi32 ................................................1489_mm256_shufflehi_epi16 .............................................1489_mm256_shufflelo_epi16 .............................................1490

    Intrinsics for Intel® Transactional Synchronization Extensions(Intel® TSX) ....................................................................1490

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

    Contents

    19

  • Intel® Transactional Synchronization Extensions (Intel®TSX) Programming Considerations .............................1491

    Restricted Transactional Memory Intrinsics ......................1494Hardware Lock Elision Intrinsics (Windows*) ...................1498Function Prototype and Macro Definitions........................1501

    Intrinsics for Intel® Advanced Vector Extensions ...............................1502Overview ............................................................................1503Details of Intel® AVX Intrinsics and FMA Intrinsics.....................1503Intrinsics for Arithmetic Operations ........................................1506

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

    Intrinsics for Bitwise Operations.............................................1514_mm256_and_pd ........................................................1514_mm256_and_ps.........................................................1515_mm256_andnot_pd....................................................1515_mm256_andnot_ps ....................................................1516_mm256_or_pd...........................................................1516_mm256_or_ps...........................................................1516_mm256_xor_pd .........................................................1517_mm256_xor_ps .........................................................1517

    Intrinsics for Blend and Conditional Merge Operations ...............1518_mm256_blend_pd......................................................1518_mm256_blend_ps ......................................................1518_mm256_blendv_pd ....................................................1519_mm256_blendv_ps.....................................................1519

    Intrinsics for Compare Operations ..........................................1520_mm_cmp_pd, _mm256_cmp_pd..................................1520_mm_cmp_ps, _mm256_cmp_ps ..................................1521_mm_cmp_sd .............................................................1521_mm_cmp_ss .............................................................1522

    Intrinsics for Conversion Operations .......................................1522_mm256_cvtepi32_pd..................................................1523_mm256_cvtepi32_ps ..................................................1523_mm256_cvtpd_epi32..................................................1523_mm256_cvtps_epi32 ..................................................1524_mm256_cvtpd_ps ......................................................1524_mm256_cvtps_pd ......................................................1524_mm256_cvttp_epi32 ..................................................1525

    Intel® C++ Compiler 19.1 Developer Guide and Reference

    20

  • _mm256_cvttps_epi32.................................................1525_mm256_cvtsi256_si32................................................1526_mm256_cvtsd_f64 .....................................................1526_mm256_cvtss_f32 .....................................................1526

    Intrinsics to Determine Minimum and Maximum Values .............1527_mm256_max_pd .......................................................1527_mm256_max_ps........................................................1527_mm256_min_pd ........................................................1528_mm256_min_ps.........................................................1528

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

    Intrinsics for Miscellaneous Operations....................................1539_mm256_extractf128_pd..............................................1539_mm256_extractf128_ps..............................................1540_mm256_extractf128_si256..........................................1540_mm256_insertf128_pd ...............................................1540_mm256_insertf128_ps................................................1541_mm256_insertf128_si256 ...........................................1541_mm256_lddqu_si256..................................................1542_mm256_movedup_pd.................................................1542_mm256_movehdup_ps ...............................................1543_mm256_moveldup_ps ................................................1543_mm256_movemask_pd ..............................................1543_mm256_movemask_ps...............................................1544_mm256_round_pd .....................................................1544_mm256_round_ps......................................................1545_mm256_set_pd .........................................................1546_mm256_set_ps..........................................................1546_mm256_set_epi8/16/32/64x .......................................1547_mm256_setr_pd ........................................................1547_mm256_setr_ps ........................................................1548_mm256_setr_epi32 ....................................................1548_mm256_set1_pd........................................................1549

    Contents

    21

  • _mm256_set1_ps........................................................1549_mm256_set1_epi32 ...................................................1549_mm256_setzero_pd ...................................................1550_mm256_setzero_ps....................................................1550_mm256_setzero_si256 ...............................................1551_mm256_zeroall..........................................................1551_mm256_zeroupper.....................................................1551

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

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

    Intrinsics for Shuffle Operations.............................................1562_mm256_shuffle_pd ....................................................1562_mm256_shuffle_ps ....................................................1562

    Intrinsics for Unpack and Interleave Operations .......................1563_mm256_unpackhi_pd .................................................1563_mm256_unpackhi_ps .................................................1563_mm256_unpacklo_pd .................................................1564_mm256_unpacklo_ps .................................................1564

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

    Intrinsics Generating Vectors of Undefined Values.....................1570_mm256_undefined_ps()..............................................1570_mm256_undefined_pd() .............................................1570_mm256_undefined_si256............................................1571

    Intrinsics for Intel® Streaming SIMD Extensions 4 (Intel® SSE4) .........1571Overview ........