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

    <tr>
        <th>Summary</th>
        <td>
            [SPIR-V] Extend support of the <1 x Type> vector type in the SPIR-V backend
        </td>
    </tr>

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

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

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

<pre>
    https://github.com/llvm/llvm-project/pull/124560 introduced initial support and established general approach for the <1 x Type> vector type in the SPIR-V backend. At the same time, this support in not yet completed without a number of enhancements mentioned in the https://github.com/llvm/llvm-project/pull/124560#pullrequestreview-2589875214 comment. This issue is to cover a work planned as a nearest future continuation of https://github.com/llvm/llvm-project/pull/124560 in parts of:

- `shufflevector` instruction with cases

```
%vec = shufflevector <1 x float> %ins, <1 x float> %sw, <2 x i32> <i32 0, i32 1> ; `CompositeContruct` + `VectorInsertElement`'s
%vec = shufflevector <1 x float> %ins, <1 x float> %sw, <1 x i32> <i32 0>; implement shufflevector semantics inplace to get a scalar
%vec = shufflevector <4 x float> %vec4, <4 x float> %vec4, <1 x i32> <i32 poison>; pad the mask to <2 x i32> and then `extractelement`
```

- other items (2-4) from the above mentioned comment (GEP, a case of a function with external linkage, intrinsics).

FYI @MrSidims 

</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyslU2P4zYMhn-NciEmsGU7cQ4-zM4mxQAtsOguBuhRlulYjSy5Iu0k_76Qkv2aDlq0W8DIhyiLj8SXrxSROTrERlTvhJQvV6UHJKuWn3G5Mp2uVyGlqN6v1MyDD80bE1at767NwDyRKB6FPAh5OBoe5nat_Sjkwdrl89fDFPzvqFnIwzRbK-Qhl2W1ycA4Dr6bNXZgnGGjLNA8TT4wKNcBEqvWGhqwgyM6DMqCmqbglR6g9wF4QBDFUw4X-HSdUBR7WFBzjFwnBOPSjI8fnn99eIFW6RO6bg2PnIZJjQhsRhTyCXgw9CW3ceA8wxUZtB8ni4wdnA0PfmZQ4OaxxQC-B3SDchpHdEwQP413aS8pwY8djpBF_B_wjxmJAy4Gzw-yqnf1tpJ5GclixjV8iuiGaEYwBOxB-wUDKDj7cILJKheZFEVyVAGJoZ95DgjaOzZuVhE7bueHqwmTCkzg-7hIFp8HEJuMhrnvLd5KI9JM4jDrlDeeK2hFSLc3xCa7P9mjkNWCGkTxHr5b43PRe-sVx6oLWRlHsZBvROh8D0i4gClkGi6eTCEhi5H4I78Nvou4T36cPBnGJ-8SZkQWMsVeUv5nRxh4b1PlI6rc0v-Pm7-BW-wjpImijLlf5SEclWOjCYybrNIY5XDEKFrSyqrwD5DlK5QFdXmH-ZvQXzknb8i7O-ykutQOo6JT5Pm-ELHPeUAXDxcvHJRm_Hqur-QQ9eR5wACGcSQQspYPpZA76IMfUxbV-gW_6cV7m8SpP-0_RGKV1Bb1rqCf3TcqxAtjcMqCNe6kjskYokUZR0aTkLv1DeLw2zOIMvslfDSdiRjZ46prim5X7NQKm3xb7MpNWctiNTS4q2WbybpTm1ZWRVZv8j5v8zzfFGW73W1XppGZrDKZF_mmzGSx1nXf1VlWFlVfV52sRZnhqIxdx-Zb-3BcpWZvcrnNdnJlVYuW7k7u8Hyzgrt_hyZ1bDsfSZSZNcT0dRk2bNMVcDNIUb2H_YXRdV-M0Pf_yWJXc7D__mpI3JTsJG1saeSfAQAA__9RAyAH">