<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>neon | Learn C Games Programming Blog</title>
	<atom:link href="https://learncgames.com/tag/neon/feed/" rel="self" type="application/rss+xml" />
	<link>https://learncgames.com</link>
	<description>A blog about C, programming games and my ebook(s).</description>
	<lastBuildDate>Sun, 31 May 2020 18:12:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://learncgames.com/wp-content/uploads/2020/03/cropped-favicon-32x32.png</url>
	<title>neon | Learn C Games Programming Blog</title>
	<link>https://learncgames.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">181446779</site>	<item>
		<title>Looking at Intrinsics in C</title>
		<link>https://learncgames.com/looking-at-intrinsics-in-c/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=looking-at-intrinsics-in-c</link>
		
		<dc:creator><![CDATA[David]]></dc:creator>
		<pubDate>Sun, 07 Jun 2020 23:00:23 +0000</pubDate>
				<category><![CDATA[C]]></category>
		<category><![CDATA[intrinsics]]></category>
		<category><![CDATA[neon]]></category>
		<guid isPermaLink="false">https://learncgames.com/?p=751</guid>

					<description><![CDATA[<p>This post probably has the most mystifying title yet. Here&#8217;s a little background. Modern CPUs have some hardware that can speed up operations like addition or multiplication by doing them in parallel. The words SIMD (short for Single Instruction Multiple Data) and vectorization apply. These are very processor specific. Even something like x86-64 CPUS have [&#8230;]</p>
The post <a href="https://learncgames.com/looking-at-intrinsics-in-c/">Looking at Intrinsics in C</a> first appeared on <a href="https://learncgames.com">Learn C Games Programming Blog</a>.]]></description>
										<content:encoded><![CDATA[<div class='__iawmlf-post-loop-links' style='display:none;' data-iawmlf-post-links='[{&quot;id&quot;:684,&quot;href&quot;:&quot;https:\/\/software.intel.com\/sites\/landingpage\/IntrinsicsGuide&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20211007030510\/https:\/\/software.intel.com\/sites\/landingpage\/IntrinsicsGuide\/&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-02-06 17:34:31&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-03-26 22:18:10&quot;,&quot;http_code&quot;:403}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-03-26 22:18:10&quot;,&quot;http_code&quot;:403},&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:685,&quot;href&quot;:&quot;https:\/\/en.wikipedia.org\/wiki\/Advanced_Vector_Extensions&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20260204071331\/https:\/\/en.wikipedia.org\/wiki\/Advanced_Vector_Extensions&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-02-06 17:34:33&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-15 06:09:41&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-03-26 22:18:10&quot;,&quot;http_code&quot;:200}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-03-26 22:18:10&quot;,&quot;http_code&quot;:200},&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:686,&quot;href&quot;:&quot;https:\/\/en.wikipedia.org\/wiki\/ARM_architecture#Advanced_SIMD_(Neon)&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20260204184327\/https:\/\/en.wikipedia.org\/wiki\/ARM_architecture&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-02-06 17:34:40&quot;,&quot;http_code&quot;:200},{&quot;date&quot;:&quot;2026-02-15 06:09:45&quot;,&quot;http_code&quot;:200}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-02-15 06:09:45&quot;,&quot;http_code&quot;:200},&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:687,&quot;href&quot;:&quot;https:\/\/docs.microsoft.com\/en-us\/cpp\/intrinsics\/compiler-intrinsics?view=vs-2019&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20200923063607\/https:\/\/docs.microsoft.com\/en-us\/cpp\/intrinsics\/compiler-intrinsics?view=vs-2019&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-02-06 17:34:42&quot;,&quot;http_code&quot;:206},{&quot;date&quot;:&quot;2026-02-15 06:09:51&quot;,&quot;http_code&quot;:206}],&quot;broken&quot;:false,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-02-15 06:09:51&quot;,&quot;http_code&quot;:206},&quot;process&quot;:&quot;done&quot;}]'></div>
<figure id="attachment_754" aria-describedby="caption-attachment-754" style="width: 329px" class="wp-caption alignleft"><img fetchpriority="high" decoding="async" class="size-full wp-image-754" src="https://learncgames.com/wp-content/uploads/2020/05/avx-registers.png" alt="AVX Registers" width="329" height="346" srcset="https://learncgames.com/wp-content/uploads/2020/05/avx-registers.png 329w, https://learncgames.com/wp-content/uploads/2020/05/avx-registers-285x300.png 285w" sizes="(max-width: 329px) 100vw, 329px" /><figcaption id="caption-attachment-754" class="wp-caption-text">From WikiMedia. https://commons.wikimedia.org/wiki/File:AVX_registers.svg</figcaption></figure>
<p>This post probably has the most mystifying title yet. Here&#8217;s a little background. Modern CPUs have some hardware that can speed up operations like addition or multiplication by doing them in parallel. The words SIMD (short for Single Instruction Multiple Data) and vectorization apply.</p>
<p>These are very processor specific. Even something like x86-64 CPUS have a whole raft of alphabet soup. SSE, MMX, AVX. Intel even have <a title="Link to Intel intrinsics guide" href="https://software.intel.com/sites/landingpage/IntrinsicsGuide/" target="_blank" rel="nofollow noopener noreferrer">a website</a> so you can see what instructions are supported with examples in C.</p>
<p>My i5930K CPU supports <a title="Link to Advanced Vector Instructions" href="https://en.wikipedia.org/wiki/Advanced_Vector_Extensions" target="_blank" rel="nofollow noopener noreferrer">AVX</a> so if you tick the AVX box on the left hand side of the Intel intrinsics guide, you  can see can there are something like 12,000+ instructions and variants listed. If you tick one of the categories, it filters out the instructions to those applicable to that category.</p>
<p>Click one of the instructions on the right and you&#8217;ll see a rough equivalent in C to what it does. Also the header that it is found in, typically</p>
<pre>#include &lt;immintrin.h&gt;</pre>
<p>which  Visual C++ is happy to compile. An intrinsic is a special C instruction that gives you access to these low level vectorization instructions without you having to drop into assembler.</p>
<p>On a Raspberry Pi, the ARM processor supports a similar type of scheme but it&#8217;s called <a title="Link to Wikipedia on NEON/ARM" href="https://en.wikipedia.org/wiki/ARM_architecture#Advanced_SIMD_(Neon)" target="_blank" rel="nofollow noopener noreferrer">NEON</a>.</p>
<p>If you are interested in finding out more, take a look at Microsoft&#8217;s <a title="Link to Microsoft documentation on intrinsics" href="https://docs.microsoft.com/en-us/cpp/intrinsics/compiler-intrinsics?view=vs-2019" target="_blank" rel="nofollow noopener noreferrer">intrinsics documentation</a> which covers both Intel and ARM.</p>
<p>&nbsp;</p>The post <a href="https://learncgames.com/looking-at-intrinsics-in-c/">Looking at Intrinsics in C</a> first appeared on <a href="https://learncgames.com">Learn C Games Programming Blog</a>.]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">751</post-id>	</item>
	</channel>
</rss>
