title: clang assembler error: ambiguous operand size for instruction
body: <p>I'm trying build <a href="https://github.com/ssvb/tinymembench" rel="nofollow noreferrer">tinymembench</a> with clang and am hitting errors on the assembly code. I can fix the easy ones (remove .func/.endfunc's) but the 'ambiguous operand size for instruction' errors on add and sub surpass my minimal assembly skills. I posted an issue on the repo but it's possible it's no longer being maintained.</p>
  
  <p>Using this <a href="https://github.com/letrout/tinymembench/blob/master/x86-sse2.S" rel="nofollow noreferrer">source file</a> (removes the .func/.endfunc) I get errors like:</p>
  
  <p><code>$ clang-8  x86-sse2.S
  /tmp/x86-sse2-dbaa71.s:86:9: error: ambiguous operand size for instruction 'add'
      add SRC, 64
          ^~~
  /tmp/x86-sse2-dbaa71.s:87:9: error: ambiguous operand size for instruction 'add'
      add DST, 64
          ^~~
  /tmp/x86-sse2-dbaa71.s:88:9: error: ambiguous operand size for instruction 'sub'
      sub SIZE, 64
          ^~~~
  ...
  </code></p>
  
  <p>I looked at <a href="https://stackoverflow.com/questions/49933466/invalid-operand-for-instruction-movq-using-clang">this answer</a> which looks similar, but I wasn't able to translate it into an answer for these instructions.</p>