<div dir="ltr">Here is some code that adds two 192 bit numbers, represented as three 64bit machine words (well, on my machine anyway), and returns the result and any carry:<div><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(128,128,128);background-color:rgb(238,238,238)"><br class="">{-# LANGUAGE MagicHash #-}</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">
</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(128,128,128);background-color:rgb(238,238,238)">{-# LANGUAGE UnboxedTuples #-}</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">

</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,139);background-color:rgb(238,238,238)">import</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> GHC.Prim</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">(</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">plusWord2</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">#,</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> Word</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">#,</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> or</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">#)</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">

longAdd </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">::</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> 
  </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">(#</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> Word</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">#,</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> Word</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">#,</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> Word</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">#</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">#)</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">-></span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> 
  </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">(#</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> Word</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">#,</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> Word</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">#,</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> Word</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">#</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">#)</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">-></span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> 
  </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">(#</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> Word</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">#,</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">(#</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> Word</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">#,</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> Word</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">#,</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> Word</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">#</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">#)</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">#)</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">

longAdd </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">(#</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> xl</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">,</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> xm</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">,</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> xh </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">#)</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">(#</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> yl</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">,</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> ym</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">,</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> yh </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">#)</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">=</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">     
  </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,139);background-color:rgb(238,238,238)">let</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">
    plusWord2WithCarry x y c </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">=</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> 
      </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,139);background-color:rgb(238,238,238)">let</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> 
        </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">(#</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> c1</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">,</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> r1 </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">#)</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">=</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> plusWord2</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">#</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> x y
        </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">(#</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> c2</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">,</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> r2 </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">#)</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">=</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> plusWord2</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">#</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> r1 c
      </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,139);background-color:rgb(238,238,238)">in</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">
        </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">(#</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> plusWord</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">#</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> c1 c2</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">,</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> r2 </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">#)</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">
    </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">(#</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> cl</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">,</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> rl </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">#)</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">=</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> plusWord2</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">#</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> xl yl
    </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">(#</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> cm</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">,</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> rm </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">#)</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">=</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> plusWord<span style="white-space:inherit">2WithCarry</span><span style="white-space:inherit"> xm ym cl</span><br>    </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">(#</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> ch</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">,</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> rh </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">#)</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">=</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> plusWord<span style="white-space:inherit">2WithCarry</span><span style="white-space:inherit"> xh yh cm     </span><br>  </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,139);background-color:rgb(238,238,238)">in</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">
    </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">(#</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> ch</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">,</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">(#</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> rl</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">,</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> rm</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">,</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> rh </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">#)</span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)"> </span><span class="" style="font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;margin:0px;padding:0px;border:0px;color:rgb(0,0,0);background-color:rgb(238,238,238)">#)</span><br></div><div><br><div>(My code covers words other than size 3 btw)</div><div><br></div><div>I'd like this to compile into something like:</div></div><div><br></div><div><font color="#000000" face="Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, sans-serif"><span style="white-space:pre;background-color:rgb(238,238,238)">add x1 y1</span></font></div><div><font color="#000000" face="Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, sans-serif"><span style="white-space:pre;background-color:rgb(238,238,238)">adc x2 y2</span></font></div><div><font color="#000000" face="Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, sans-serif"><span style="white-space:pre;background-color:rgb(238,238,238)">adc x3 y3</span></font></div><div><br></div><div>Unfortunately, I think my problem is with the "<span style="color:rgb(0,0,0);font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;font-size:13px;white-space:pre;background-color:rgb(238,238,238)">plusWord2WithCarry"</span>. As there's no primitive operation in Haskell which adds two words and a carry. What seems to happen when I look at the generated assembly is the following:</div><div><br></div><div><div><font color="#000000" face="Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, sans-serif"><span style="white-space:pre;background-color:rgb(238,238,238)">xor some_reg_1 some_reg_1</span></font></div><div><font color="#000000" face="Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, sans-serif"><span style="white-space:pre;background-color:rgb(238,238,238)">add x1 y1</span></font></div><div><span style="white-space:pre;color:rgb(0,0,0);font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;background-color:rgb(238,238,238)">adc $0 some_reg_1</span><br></div><div><font color="#000000" face="Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, sans-serif"><span style="white-space:pre;background-color:rgb(238,238,238)">xor some_reg_2 some_reg_2</span></font></div><div><font color="#000000" face="Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, sans-serif"><span style="white-space:pre;background-color:rgb(238,238,238)">adc x2 y2</span></font></div><div><div><div><span style="white-space:pre;color:rgb(0,0,0);font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;background-color:rgb(238,238,238)">adc $0 some_reg_2</span><br></div></div></div><div><font color="#000000" face="Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, sans-serif"><span style="white-space:pre;background-color:rgb(238,238,238)">xor some_reg_3 some_reg_3</span></font></div><div><span style="white-space:pre;color:rgb(0,0,0);font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;background-color:rgb(238,238,238)">adc some_reg_1 y2</span></div><div><span style="white-space:pre;color:rgb(0,0,0);font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;background-color:rgb(238,238,238)">adc $0 some_reg_3</span></div><div><span style="white-space:pre;color:rgb(0,0,0);font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;background-color:rgb(238,238,238)">add some_reg_2 some_reg_3</span></div><div><span style="white-space:pre;color:rgb(0,0,0);font-family:Consolas,Menlo,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New',monospace,sans-serif;background-color:rgb(238,238,238)">... and so on</span></div><div><font color="#000000" face="Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, sans-serif"><span style="white-space:pre;background-color:rgb(238,238,238)"><br></span></font></div><div><br></div></div><div>Basically, instead of just using the carry flag in add of the next two higher words, it instead saves it to a register, adds the next higher order words without the carry, clears a register and then adds the carry to this register, adds the first mentioned carry, against clears a register and saves that carry, combines the two resulting carries and passes it to the next higher order addition. I know that sounds complex, and the code is a bit of a mess.</div><div><br></div><div>Bizarrely, when I send it through the LLVM backend it ends up worse, generating a bunch of 32 bit shifts for reasons I can't understand.</div><div><br></div><div>I was hoping the LLVM backend would be able to produce the "adc" instructions. Is there anything I could do to coax it into it. I know writing it in C (or inline assembly in C) is an option, but after you add the code to call and return such a small amount of work it seems hardly worth it. I'd like to keep it in GHC so it can be inlined where appropriate. </div><div><br></div><div>Any ideas on how to entice GHC (either natively or via LLVM) to produce better code in this case?</div></div>