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"+t[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:
");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="
";$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.