title: Golang assembly implement of _mm_add_epi32
body: <p>I'm trying to implement <code>_mm_add_epi32</code> in golang assembly, optionally with help of <a href="https://github.com/mmcloughlin/avo" rel="nofollow noreferrer">avo</a>. But I know little about assembly and do not even know how to start it. Can you give me some hint of code? Thank you all.</p>
  <p>Here's the equivalent slower golang version:</p>
  <pre><code>func add(x, y []uint32) []uint32 {
      if len(x) != len(y) {
          return nil
      }
  
      result := make([]uint32, len(x))
      for i := 0; i &lt; len(x); i++ {
          result[i] = x[i] + y[i]
      }
      return result
  }
  
  </code></pre>
  <p>I know that the struction <code>paddq xmm, xmm</code> is what we need, but do not kown how to convert a slice of <code>[]byte</code> to the 256 bit register <code>YMM</code>.</p>