var data_js="";var perf2_js="";var intrinsics=new Array();var allothertechs=new Array();var allcats=new Array();var ig_show;var shown=0;var showbuffer;var window_height;var ig_matches=0;var techs=new Array();var othertechs=new Array();var ssetechs=new Array();var avxnewtechs=new Array();var avx512techs=new Array();var amxtechs=new Array();var cats=new Array();var search_text="";var highlighted_token=null;var intrin_height=26;var ig_expand=new Array();var delay_timeout=null;var ig_online_URL="https://software.intel.com/content/www/us/en/docs/intrinsics-guide/";var mode="OFFLINE_MODE";jQuery.support.cors=true;function delay(a,b){if(delay_timeout){clearTimeout(delay_timeout)}delay_timeout=setTimeout(function(){delay_timeout=null;if(a){a.apply(this)}},b)}function searchIntrinsic(e){var b=false;if(techs.length){if($.inArray(e.tech,techs)!=-1||(e.alsoKNC&&$.inArray("KNC",techs)!=-1)){b=true}}if(othertechs.length&&e.tech=="Other"){for(var c=0;c0||othertechs.length>0||ssetechs.length>0||avxnewtechs.length>0||avx512techs.length>0||amxtechs.length>0){if(!b){return false}}if(cats.length){var f=false;for(var c=0;c-1){ig_expand.splice(c,1)}updateHash("ig_expand",ig_expand.join(","))}})}}}function windowScroll(){if($(".intrinsic").length){var f=$(window).scrollTop();var e=$(".intrinsic").last().offset().top;if(f+window_height+showbuffer>e){var a=0;var b="";var c=Math.ceil((f+window_height+showbuffer-e)/intrin_height)+3;$("#intrinsics_list").css("min-height",(ig_matches*intrin_height)+"px");for(var d=0;d=0||b.indexOf("_m_")>=0){d=b.substring(b.indexOf("_",1)+1);if(d.indexOf("mask_")==0||d.indexOf("maskz_")==0||d.indexOf("mask2_")==0||d.indexOf("mask3_")==0||d.indexOf("mmask_")==0){d=d.substring(d.indexOf("_",1)+1)}}else{d=b.substring(b.indexOf("_")+1);if(d.charAt(0)=="_"){d=d.substring(b.indexOf("_")+1)}}c.base=d;intrinsics.push(c)});intrinsics.sort(function(d,c){var e=d.base.localeCompare(c.base);if(e==0){e=d.attr("name").localeCompare(c.attr("name"))}return e})}function renderPass(){var f=getHash("showall")!="";if(f){ig_show=intrinsics.length}var g="";for(s=0;s=0){$intrinsic.tech=$intrinsic.tech.replace("/KNC","");$intrinsic.alsoKNC=true}$intrinsic.categories=new Array();$intrinsic.find("category").each(function(){var i=$(this).text();$intrinsic.categories.push(i);if($.inArray(i,allcats)==-1){allcats.push(i)}});var d="";$intrinsic.cpuids=new Array();$intrinsic.find("CPUID").each(function(){var A=$(this).text();$intrinsic.cpuids.push(A.replace(".","_").replace("-","_").replace(" ","_").replace("/KNCNI",""));if($intrinsic.tech=="Other"){if(A!="AVX512F"&&A!="AVX512VL"){if($.inArray(A,allothertechs)==-1){allothertechs.push(A)}}}if(A.indexOf("/")>=0){var t=A.split("/");var j=$intrinsic.attr("tech").split("/");A="";for(var l=0;l for "+j[l]}if(d!=""){d+=", "}d+=A}else{if(d!=""){d+=" + "}d+=""+A+""}});$intrinsic.cpuid=d;var n=""+$intrinsic.find("return").attr("type")+" "+u+" (";var r=0;$intrinsic.find("parameter").each(function(){var j=$(this);if(r>0){n+=", "}n+=""+j.attr("type")+"";var i=j.attr("varname");if(i){n+=" "+i+""}r++});n+=")";$intrinsic.signature=n;var q=$intrinsic.find("description").first().text();if(q.indexOf("_note]")>0){q=q.replace(/\[round_note\]/g,"
Rounding is done according to the \"rounding[3:0]\" parameter, which can be one of:
(_MM_FROUND_TO_NEAREST_INT |_MM_FROUND_NO_EXC) // round to nearest, and suppress exceptions\n (_MM_FROUND_TO_NEG_INF |_MM_FROUND_NO_EXC) // round down, and suppress exceptions\n (_MM_FROUND_TO_POS_INF |_MM_FROUND_NO_EXC) // round up, and suppress exceptions\n (_MM_FROUND_TO_ZERO |_MM_FROUND_NO_EXC) // truncate, and suppress exceptions\n _MM_FROUND_CUR_DIRECTION // use MXCSR.RC; see _MM_SET_ROUNDING_MODE
");q=q.replace(/\[sae_note\]/g,'
Exceptions can be suppressed by passing "_MM_FROUND_NO_EXC" in the "sae" parameter.');q=q.replace(/\[round_imm_note\]/g,"
Rounding is done according to the \"imm8[2:0]\" parameter, which can be one of:
_MM_FROUND_TO_NEAREST_INT // round to nearest\n _MM_FROUND_TO_NEG_INF // round down\n _MM_FROUND_TO_POS_INF // round up\n _MM_FROUND_TO_ZERO // truncate\n _MM_FROUND_CUR_DIRECTION // use MXCSR.RC; see _MM_SET_ROUNDING_MODE
");q=q.replace(/\[round2_note\]/g,"
Rounding is done according to the \"rounding[3:0]\" parameter, which can be one of:
(_MM_FROUND_TO_NEAREST_INT) // round to nearest\n (_MM_FROUND_TO_NEG_INF) // round down\n (_MM_FROUND_TO_POS_INFC) // round up\n (_MM_FROUND_TO_ZERO) // truncate\n _MM_FROUND_CUR_DIRECTION // use MXCSR.RC; see _MM_SET_ROUNDING_MODE\n (_MM_FROUND_TO_NEAREST_INT |_MM_FROUND_NO_EXC) // round to nearest, and suppress exceptions\n (_MM_FROUND_TO_NEG_INF |_MM_FROUND_NO_EXC) // round down, and suppress exceptions\n (_MM_FROUND_TO_POS_INF |_MM_FROUND_NO_EXC) // round up, and suppress exceptions\n (_MM_FROUND_TO_ZERO |_MM_FROUND_NO_EXC) // truncate, and suppress exceptions\n (_MM_FROUND_CUR_DIRECTION |_MM_FROUND_NO_EXC) // use MXCSR.RC and suppress exceptions; see _MM_SET_ROUNDING_MODE
");q=q.replace(/\[strcmp_note\]/g,"
\"imm\" can be a combination of:
_SIDD_UBYTE_OPS // unsigned 8-bit characters\n _SIDD_UWORD_OPS // unsigned 16-bit characters\n _SIDD_SBYTE_OPS // signed 8-bit characters\n _SIDD_SWORD_OPS // signed 16-bit characters\n _SIDD_CMP_EQUAL_ANY // compare equal any\n _SIDD_CMP_RANGES // compare ranges\n _SIDD_CMP_EQUAL_EACH // compare equal each\n _SIDD_CMP_EQUAL_ORDERED // compare equal ordered\n _SIDD_NEGATIVE_POLARITY // negate results\n _SIDD_MASKED_NEGATIVE_POLARITY // negate results only before end of string\n _SIDD_LEAST_SIGNIFICANT // index only: return last significant bit\n _SIDD_MOST_SIGNIFICANT // index only: return most significant bit\n _SIDD_BIT_MASK // mask only: return bit mask\n _SIDD_UNIT_MASK // mask only: return byte/word mask
");q=q.replace(/\[getmant_note\]/g,"
The mantissa is normalized to the interval specified by \"interv\", which can take the following values:
_MM_MANT_NORM_1_2 // interval [1, 2)\n _MM_MANT_NORM_p5_2 // interval [0.5, 2)\n _MM_MANT_NORM_p5_1 // interval [0.5, 1)\n _MM_MANT_NORM_p75_1p5 // interval [0.75, 1.5)
The sign is determined by \"sc\" which can take the following values:
_MM_MANT_SIGN_src // sign = sign(src)\n _MM_MANT_SIGN_zero // sign = 0\n _MM_MANT_SIGN_nan // dst = NaN if sign(src) = 1
");q=q.replace(/\[fpclass_note\]/g,"
\"imm\" can be a combination of:
0x01 // QNaN\n 0x02 // Positive Zero\n 0x04 // Negative Zero\n 0x08 // Positive Infinity\n 0x10 // Negative Infinity\n 0x20 // Denormal\n 0x40 // Negative\n 0x80 // SNaN
");q=q.replace(/\[max_float_note\]/g,'
"dst" does not follow the IEEE Standard for Floating-Point Arithmetic (IEEE 754) maximum value when inputs are NaN or signed-zero values.');q=q.replace(/\[min_float_note\]/g,'
"dst" does not follow the IEEE Standard for Floating-Point Arithmetic (IEEE 754) minimum value when inputs are NaN or signed-zero values.')}q=q.replace(/\"([^\"]+)\"/g,"$1");$intrinsic.description=q;var h="";var b=$intrinsic.find("operation");if(b){h=$.trim(b.last().text()).replace(/\\\n/g,"\n")}$intrinsic.instructions=new Array();var v="";var x=0;o.each(function(){if(x==0){v=$(this).attr("name").toLowerCase()}if(x==1){v+=",..."}var i={name:$(this).attr("name").toLowerCase(),form:$(this).attr("form"),xed:$(this).attr("xed")};$intrinsic.instructions.push(i);x++});var e=v;var a="";if($intrinsic.attr("sequence")){v="Sequence";e="...";a="sequence"}$intrinsic.instruction=e;$intrinsic.id=s;var c="
";if($intrinsic.alsoKNC){c+="
"}if(e!=""){c+="
"+e+"
"}c+="
"+n+"

Synopsis

"+n+"
#include <"+$intrinsic.header+">
";if(o.length>0||$intrinsic.attr("sequence")){c+="Instruction: ";var m=0;o.each(function(){if(m>0){c+="             "}if(a!=""){c+=""+$(this).attr("name").toLowerCase()+""}else{c+=$(this).attr("name").toLowerCase()}if($(this).attr("form")){c+=" "+$(this).attr("form")}c+="
";m++});if($intrinsic.attr("sequence")){c+="Sequence";c+="
"}}if(d){c+="CPUID Flags: "+d}c+="

Description

"+q+"
";if(h!=""){c+="

Operation

"+h+"
"}var z=[];if($intrinsic.instructions.length>0){var w=$intrinsic.instructions[0].xed;if(w&&perf2_js[w]){z=z.concat(perf2_js[w])}}if(z.length>0){c+="

Latency and Throughput

";for(var r=0;r"}}c+="
ArchitectureLatencyThroughput (CPI)
"+y+""+p+""+k+"
"}c+="
";$intrinsic._html=c;$intrinsic.match=true;$intrinsic.shown=false;$intrinsic.newlyshown=false;if(s "+allothertechs[s]+"")}allcats.sort();for(var s=0;s "+allcats[s]+"")}$(".othertech").find("input").click(function(){parseTechs(this)});$(".category").find("input").click(function(){parseCategories()})}function finalPass(){for(d=0;d"+j.description+"").text()).toLowerCase()}var l=getHash("text");if(l!=""){$("#ig_search").val(l);$("#ig_search").css("color","#000000");search_text=$("#ig_search").val();$("#ig_clear").show()}var f=getHash("techs");if(f!=""){_techs=f.split(",");$(".tech").each(function(){var i=$(this).attr("class").replace("tech","").replace(" ","");if($.inArray(i,_techs)>=0){$(this).find("input").each(function(){$(this).prop("checked",true)})}})}var h=getHash("ssetechs");if(h!=""){_ssetechs=h.split(",");$(".ssetech").each(function(){var i=$(this).attr("class").replace("ssetech","").replace(" ","");if($.inArray(i,h)>=0){$(this).find("input").each(function(){$(this).prop("checked",true)})}})}var g=getHash("avxnewtechs");if(g!=""){_avxnewtechs=g.split(",");$(".avxnewtech").each(function(){var i=$(this).attr("class").replace("avxnewtech","").replace(" ","");if($.inArray(i,g)>=0){$(this).find("input").each(function(){$(this).prop("checked",true)})}})}var c=getHash("avx512techs");if(c!=""){_avx512techs=c.split(",");$(".avx512tech").each(function(){var i=$(this).attr("class").replace("avx512tech","").replace(" ","");if($.inArray(i,_avx512techs)>=0){$(this).find("input").each(function(){$(this).prop("checked",true)})}})}var e=getHash("amxtechs");if(e!=""){_amxtechs=e.split(",");$(".amxtech").each(function(){var i=$(this).attr("class").replace("amxtech","").replace(" ","");if($.inArray(i,_amxtechs)>=0){$(this).find("input").each(function(){$(this).prop("checked",true)})}})}var a=getHash("othertechs");if(a!=""){_othertechs=a.split(",");$(".othertech").each(function(){var i=$(this).attr("class").replace("othertech","").replace(" ","");if($.inArray(i,_othertechs)>=0){$(this).find("input").each(function(){$(this).prop("checked",true)})}})}parseTechs();var k=getHash("cats");if(k!=""){_cats=k.split(",");$(".category").each(function(){var i=$(this).find("span").html();if($.inArray(i,_cats)>=0){$(this).find("input").each(function(){$(this).prop("checked",true)})}})}parseCategories();var b=getHash("ig_expand");if(b!=""){ig_expand=b.split(",");for(var d=0;dSomething went wrong while loading the site data.

We are working on a permanent solution. In the meanwhile, try hard-refreshing this page to fix the error or download the offline IntelĀ® Intrinsics Guide.

Error: "+c+"

Exception: "+b+"

"}}})}else{if(mode=="OFFLINE_MODE"){if(data_js!=""){$("#ig_info").prepend("

Version: "+$(data_js).attr("version")+"

Last Updated: "+$(data_js).attr("date")+"

");initialPass(data_js);renderPass();finalPass()}else{document.getElementById("intrinsics_list").innerHTML="

Something went wrong while loading the site data.

Error: Could not find data_js.

"}}else{document.getElementById("intrinsics_list").innerHTML="

Something went wrong while loading the site data.

"}}});