<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
  
  <!-- Automatically convert endianness for xe::be -->
  <Type Name="xe::be&lt;unsigned int&gt;">
    <DisplayString>
      {(((value &amp; 0xFF000000) &gt;&gt; 24) |
        ((value &amp; 0x00FF0000) &gt;&gt;  8) |
        ((value &amp; 0x0000FF00) &lt;&lt;  8) |
        ((value &amp; 0x000000FF) &lt;&lt; 24))}
    </DisplayString>
  </Type>
  <Type Name="xe::be&lt;int&gt;">
    <DisplayString>
      {(((value &amp; 0xFF000000) &gt;&gt; 24) |
        ((value &amp; 0x00FF0000) &gt;&gt;  8) |
        ((value &amp; 0x0000FF00) &lt;&lt;  8) |
        ((value &amp; 0x000000FF) &lt;&lt; 24))}
    </DisplayString>
  </Type>
  
  <Type Name="xe::be&lt;unsigned short&gt;">
    <DisplayString>
      {(((value &amp; 0xFF00) &gt;&gt;  8) |
        ((value &amp; 0x00FF) &lt;&lt;  8))}
    </DisplayString>
  </Type>
  <Type Name="xe::be&lt;short&gt;">
    <DisplayString>
      {(((value &amp; 0xFF00) &gt;&gt;  8) |
        ((value &amp; 0x00FF) &lt;&lt;  8))}
    </DisplayString>
  </Type>

  <Type Name="xe::be&lt;unsigned char&gt;">
    <DisplayString>
      {value}
    </DisplayString>
  </Type>
  <Type Name="xe::be&lt;char&gt;">
    <DisplayString>
      {value}
    </DisplayString>
  </Type>

  <!-- Shims -->

  <Type Name="xe::kernel::shim::TypedPointerParam&lt;*&gt;">
    <DisplayString>{host_ptr_}</DisplayString>
    <Expand>
      <ExpandedItem>host_ptr_</ExpandedItem>
    </Expand>
  </Type>
</AutoVisualizer>