<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/122872>122872</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Add `vpavgb` and `vpavgw` patterns
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          Validark
      </td>
    </tr>
</table>

<pre>
    [Godbolt link](https://zig.godbolt.org/#g:!((g:!((g:!((h:codeEditor,i:(filename:'1',fontScale:14,fontUsePx:'0',j:3,lang:zig,selection:(endColumn:1,endLineNumber:1,positionColumn:1,positionLineNumber:1,selectionStartColumn:1,selectionStartLineNumber:1,startColumn:1,startLineNumber:1),source:'export+fn+foo(a:+@Vector(64,+u8),+b:+@Vector(64,+u8))+@Vector(64,+u8)+%7B%0A++++return+(a+%2B+b+%2B+@as(@TypeOf(a),+@splat(1)))+%3E%3E+@splat(1)%3B%0A%7D%0A'),l:'5',n:'0',o:'Zig+source+%233',t:'0')),header:(),k:53.18930041152264,l:'4',m:100,n:'0',o:'',s:0,t:'0'),(g:!((h:compiler,i:(compiler:ztrunk,filters:(b:'0',binary:'1',binaryObject:'1',commentOnly:'0',debugCalls:'1',demangle:'0',directives:'0',execute:'1',intel:'0',libraryCode:'0',trim:'1',verboseDemangling:'0'),flagsViewOpen:'1',fontScale:14,fontUsePx:'0',j:1,lang:zig,libs:!(),options:'-O+ReleaseFast+-target+x86_64-linux+-mcpu%3Dznver5',overrides:!(),selection:(endColumn:1,endLineNumber:1,positionColumn:1,positionLineNumber:1,selectionStartColumn:1,selectionStartLineNumber:1,startColumn:1,startLineNumber:1),source:3),l:'5',n:'0',o:'+zig+trunk+(Editor+%233)',t:'0')),header:(),k:46.81069958847738,l:'4',m:100,n:'0',o:'',s:0,t:'0')),l:'2',n:'0',o:'',t:'0')),version:4)

```zig
export fn foo(a: @Vector(64, u8), b: @Vector(64, u8)) @Vector(64, u8) {
    return (a + b + @as(@TypeOf(a), @splat(1))) >> @splat(1);
}
```

Gives:


```asm
.LCPI0_1:
        .byte   0
 .byte   128
        .byte   64
        .byte   32
        .byte   16
 .byte   8
        .byte   4
        .byte   2
foo:
        vpaddb zmm0, zmm0, zmm1
        vpternlogd      zmm1, zmm1, zmm1, 255
 vpsubb  zmm0, zmm0, zmm1
        vgf2p8affineqb  zmm0, zmm0, qword ptr [rip + .LCPI0_1]{1to8}, 0
        ret
```

Could probably give the `vpavgb` instruction?
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzcVs1u4zYQfhr6QsSgqF8ffLCUeFFg0Sy67R56WZDSWOaGIrUk5cR5-oKinLViJ9sWPVUQJHLm48xw_khmrWgVwBqlJUpvF2xwe23WX5gUDTMPC66bo-d90A3X0mEp1ANKbxEt9s71FsUbRLeIbp9Fu2wDZqlNOxLjdmRHiBaIFm9P9ije1LqBu0Y4bRCtxMgtdkKCYh2MszxCNEe02mnlPtdMemqUTIQ_LHx6CjASYN9QvIkRrSRTXtezaBGtLEiondAqyAfVVFoOnZ9GiFagmo9Cwa9Dx8FMtF5b4VfMgCfiBfpFwWfHjJutmbMuV14uuIZbeYYeTD05BZ56bRyi5U75j9aIFmxklSghX6AeHVpk3lGIlkMRRCBa8p-iVu-zS0TT3H_IKOf0GnCDUeO4YAE10vnZGCWEWR_7hPx-7OF-F7CTZSghtpfMIVpEJ0MmffHd9LkEpfHJljS_nUZ5kCmDr9KQGWqWJzrM_vT5UU6eDYbGcUC4c3wwpdoDa8aQjAnsKQ8o3qTxMipWMSFJFKWUjv6adCdBVuejSMhbVoSJLypyRXF1vW66Xkg4q5oXSrx5dmZQD75GhHRgQrUWfKaaC8XMcVZigXTPv0HtZoxadx0od6_kcSajAT60FZPSzuANdEy1EuZYYXwdHMDOyPAE9eDmpS6UAzlDScENM8dKN3OhzohutvQAhmsLt8ECodrXvtxJ1tovAh7ve1D_tsFErxuMFNyeRcgr0r0v-mmzN_eIlr-BBGZhy6wv3BvHTAt-9FRkX7PkRgo1PHlGV_eDz-vbZ3UAM2WvPoAxooHXav5nrS3-25WLaDn6vpxy3fed00HyUserf1rKSbYsIpKtVmlRJHkeF_9tKZ_tjb67t7esPoCxIdiJJ5CNfzMSXu8PsglHA94p_ONYwBf9HJ-OBMzf5a_eYmGUl4hsMMY4tH7sdWFES8zH7zvNHl9t9RjFdyi-u2DGXg_Kb8-3Gnb-4dROyOaVK5jtENksP1affiFfowDB07PkRwcYYy_kZRLR4gokS64QY3qFGGXn0q7JuibKS_JRmtl36FnTcPzcdT6Fzv_RDOXAKKnbJsxH9gl29qdp6lcdejtwjn8qtd3RvmC7nVDw_Qr8-6M2De6dwSgtjejHSL-4Ob1FeRk5Xfho0Sp4eHoMuMsAVnqQDe6N5ozLI27FAbDbA0YZOfTs0HKUESyUdWaYmtx20azjZhWv2ALWUR5nRZImSbTYr3dxvVo1NWc0i-JdXOQkzaGOgdRJ3kRZvRBrSmhKoighK5KQaJlTsiJpk1OWkSLlEUoIdEzIpZSHzt9mF8LaAdYRpUVOF5JxkHa8MFOq4BGPXESpvz-btV90w4fWooRIYZ39IcYJJ2G9aZr5xpj6QXj0hJ45H1S7GIxcz-_ZrXD7gS9r3SG69YKn301v9Hhe0-1ojkV0O9l7WNO_AgAA___kdkMp">