To follow up: I did do a quick modification of the test harness using a gigantic mbox file I had and some really crappy MIME parsing code.
$ .&#x2F;email
input size: 86023056 (that&#x27;s only base64-encoded text, this is a ~562MB file).
     improved scalar... 1.528
              scalar... 1.564 (speed up: 0.98)
                 SSE... 1.533 (speed up: 1.00)
                Null... 1.447 (speed up: 1.06)<p>So about 5% of the test was spent doing base64 decoding, and the improved scalar had a 48% over regular scalar and SSE had a speedup of 40% over regular scalar on just the base64 section. So the short conclusion is that SSE doesn&#x27;t really get any speedup on short strings.<p>The additional test code, for full disclosure (yes, it&#x27;s not correct, but this is easier to code and get some numbers rather than nothing. A more correct solution would really hurt the SSE bit more than other ones.):<p><pre><code>    template &lt;typename T&gt;
    void run_email(T callback) {
      static std::string cte{&quot;content-transfer-encoding&quot;};
      std::ifstream mbox(&quot;&#x2F;tmp&#x2F;test.mbox&quot;);
      std::string line;
      bool inHeader = true;
      bool base64Body = false;
      while (std::getline(mbox, line)) {
        if (line[line.length() - 1] == &#x27;\r&#x27;)
          line.pop_back();
        if (inHeader) {
          std::transform(line.begin(), line.end(), line.begin(), ::tolower);
          if (line.find(cte) == 0 &amp;&amp; line.find(&quot;base64&quot;) != std::string::npos)
            base64Body = true;
          if (line.empty())
            inHeader = false;
        } else {
          if (line.substr(0, 5) == &quot;From &quot; || line.substr(0, 2) == &quot;--&quot;) {
            inHeader = true;
            base64Body = false;
            continue;
          }
          if (base64Body) {
            while (line[line.size() - 1] == &#x27;=&#x27;)
              line.pop_back();
            while (line.size() % 16 != 0)
              line.push_back(&#x27;A&#x27;);
            uint8_t *text = (uint8_t*)&amp;line[0];
            callback(text, line.size(), text);
          }
        }
      }
    }</code></pre>