<div dir="ltr">The main issue were various issues in SelectionDAG with loads/store of vectors that aren't byte sized. For example PR42803 and PR44902.<div><br></div><div>The extended vector types also support operator[] which probably assumes the elements are individually addressable?</div><div><div><div><br clear="all"><div><div dir="ltr" data-smartmail="gmail_signature">~Craig</div></div><br></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, May 14, 2020 at 7:41 AM Keane, Erich via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Craig Topper is the one who will know better, he should be along in a few hours.<br>
<br>
-----Original Message-----<br>
From: Simon Moll <<a href="mailto:Simon.Moll@EMEA.NEC.COM" target="_blank">Simon.Moll@EMEA.NEC.COM</a>> <br>
Sent: Thursday, May 14, 2020 7:36 AM<br>
To: Keane, Erich <<a href="mailto:erich.keane@intel.com" target="_blank">erich.keane@intel.com</a>>; Clang Dev <<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>><br>
Cc: MARUKAWA KAZUSHI <<a href="mailto:marukawa@nec.com" target="_blank">marukawa@nec.com</a>>; ISHIZAKA KAZUHISA <<a href="mailto:ishizaka@nec.com" target="_blank">ishizaka@nec.com</a>>; Erich Focht <<a href="mailto:Erich.Focht@EMEA.NEC.COM" target="_blank">Erich.Focht@EMEA.NEC.COM</a>><br>
Subject: Re: [RFC] Opt-in vector of bool type<br>
<br>
On 5/14/20 4:14 PM, Keane, Erich wrote:<br>
>> Ok, we specifically want to lower it to <N x i1>.. what could go wrong?<br>
> I'm having trouble recalling the specifics, but we tried it on SYCL (a downstream) and had a ton of problems to the point we removed it.  There isn't a good way to handle it from the ABI perspective, there is no good memory representation as a result, and many of the passes were not handling it correctly.  It makes it a huge undertaking.<br>
That's actually a point in favor of making it opt out.<br>
We do use <256 x i1> and <512 x i1> in our LLVM fork for SX-Aurora and it is working fine for us. I guess that there could be issues with 'i1'<br>
being smaller than the smallest addressable unit so things like <3 x i1> could be problematic. I wonder, shouldn't _ExtInt have the exact same problem?<br>
<br>
> -----Original Message-----<br>
> From: Simon Moll <<a href="mailto:Simon.Moll@EMEA.NEC.COM" target="_blank">Simon.Moll@EMEA.NEC.COM</a>><br>
> Sent: Thursday, May 14, 2020 7:09 AM<br>
> To: Keane, Erich <<a href="mailto:erich.keane@intel.com" target="_blank">erich.keane@intel.com</a>>; Clang Dev <br>
> <<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>><br>
> Cc: MARUKAWA KAZUSHI <<a href="mailto:marukawa@nec.com" target="_blank">marukawa@nec.com</a>>; ISHIZAKA KAZUHISA <br>
> <<a href="mailto:ishizaka@nec.com" target="_blank">ishizaka@nec.com</a>>; Erich Focht <<a href="mailto:Erich.Focht@EMEA.NEC.COM" target="_blank">Erich.Focht@EMEA.NEC.COM</a>><br>
> Subject: Re: [RFC] Opt-in vector of bool type<br>
><br>
> On 5/14/20 3:57 PM, Keane, Erich wrote:<br>
>> There is a temptation when doing this to try to represent these as a vector of i1 in IR.  Don't do this, it still has to be i8s, otherwise it causes a number of problems.   <br>
> Ok, we specifically want to lower it to <N x i1>.. what could go wrong?<br>
>> I'll leave it to the rest of the mailing list to judge whether the GCC incompatibility is justified.  However, I'm curious as to why this would be opt-in on a target basis?  Are there some targets that wouldn't be able to legalize this?<br>
> I'd say that some targets may value strict gcc compliance higher than supporting this type (ie if they have no use for it). Making it an opt-in simply means less disturbance. In any case, it's again completely in line with the wording of the gcc documentation to scalarize the type for targets that do not support it.<br>
>> -----Original Message-----<br>
>> From: cfe-dev <<a href="mailto:cfe-dev-bounces@lists.llvm.org" target="_blank">cfe-dev-bounces@lists.llvm.org</a>> On Behalf Of Simon <br>
>> Moll via cfe-dev<br>
>> Sent: Thursday, May 14, 2020 6:39 AM<br>
>> To: <a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br>
>> Cc: MARUKAWA KAZUSHI <<a href="mailto:marukawa@nec.com" target="_blank">marukawa@nec.com</a>>; ISHIZAKA KAZUHISA <br>
>> <<a href="mailto:ishizaka@nec.com" target="_blank">ishizaka@nec.com</a>>; Erich Focht <<a href="mailto:Erich.Focht@EMEA.NEC.COM" target="_blank">Erich.Focht@EMEA.NEC.COM</a>><br>
>> Subject: [cfe-dev] [RFC] Opt-in vector of bool type<br>
>><br>
>> Hi,<br>
>><br>
>> We would like to extend Clang to allow 'bool' as a valid vector element type in C/C++ code for select targets.<br>
>><br>
>> This is the natural type for SIMD masks and would facilitate clean SIMD intrinsic declarations in C/C++ code.<br>
>> Vectors of i1 are supported on IR level and below down to many SIMD ISAs, such as AVX512 or the VE target (NEC SX-Aurora TSUBASA).<br>
>> We understand the historical reasons for not supporting this (gcc complicance).<br>
>> However, this would be an opt-in feature and toolchains/targets that do not want this will be unaffected by the change.<br>
>><br>
>> Looking forward to your feedback.<br>
>><br>
>> - Simon<br>
>> _______________________________________________<br>
>> cfe-dev mailing list<br>
>> <a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br>
>> <a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br>
>><br>
><br>
><br>
>  Click <a href="https://www.mailcontrol.com/sr/oQwtyXcdX53GX2PQPOmvUg0Q1FXI7Aab-QzHJ7UWIjRMq5T1zXvuPMqYcAgplusgzyhEqfNeWhrp5oVq8TaMKA==" rel="noreferrer" target="_blank">https://www.mailcontrol.com/sr/oQwtyXcdX53GX2PQPOmvUg0Q1FXI7Aab-QzHJ7UWIjRMq5T1zXvuPMqYcAgplusgzyhEqfNeWhrp5oVq8TaMKA==</a>  to report this email as spam.<br>
><br>
<br>
_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br>
</blockquote></div>