<p dir="ltr"><br>
On Sep 21, 2015 9:48 PM, "Ilia Mirkin" <<a href="mailto:imirkin@alum.mit.edu">imirkin@alum.mit.edu</a>> wrote:<br>
><br>
> On Tue, Sep 22, 2015 at 12:45 AM, Matt Turner <<a href="mailto:mattst88@gmail.com">mattst88@gmail.com</a>> wrote:<br>
> > On Mon, Sep 21, 2015 at 9:37 PM, Ilia Mirkin <<a href="mailto:imirkin@alum.mit.edu">imirkin@alum.mit.edu</a>> wrote:<br>
> >> On Tue, Sep 22, 2015 at 12:31 AM, Matt Turner <<a href="mailto:mattst88@gmail.com">mattst88@gmail.com</a>> wrote:<br>
> >>> Previously we would not print a swizzle on ssa_52 when only its .x<br>
> >>> component is used (as seen in the definition of ssa_53):<br>
> >>><br>
> >>>    vec3 ssa_52 = fadd ssa_51, ssa_51<br>
> >>>    vec1 ssa_53 = flog2 ssa_52<br>
> >>>    vec1 ssa_54 = flog2 ssa_52.y<br>
> >>>    vec1 ssa_55 = flog2 ssa_52.z<br>
> >>><br>
> >>> But this makes the interpretation of the RHS of the definition difficult<br>
> >>> to understand and dependent on the size of the LHS. Just print swizzles<br>
> >>> when they are not .xyzw (which is only possible on vec4 uses), so the<br>
> >>> previous example is now printed as:<br>
> >>><br>
> >>>    vec3 ssa_52 = fadd <a href="http://ssa_51.xyz">ssa_51.xyz</a>, <a href="http://ssa_51.xyz">ssa_51.xyz</a><br>
> >><br>
> >> IMHO if ssa_51 is a vec3, this makes sense without the .xyz. I'd<br>
> >> change the condition to print the identity swizzle only if source size<br>
> >> != output size, not sure if that's easy to do though.<br>
> ><br>
> > I actually like it better as is for the same reason as stated -- you<br>
> > don't have to know the type of the ssa value to know what it is.<br>
><br>
> Well, you'd know based on whether the swizzle is printed or not. If no<br>
> swizzle, then it's the same size as the dest. Anyways, your way is an<br>
> argument to always just print the swizzle, for vec4's as well.</p>
<p dir="ltr">I think I'd be inclined to agree with ilia. I fully agree that "vec1 ssa_25 = fadd ssa_4, ssa_7.y" is silly when ssa_4 is a vec3. However, I would like to drop the swizzles whenever it's "clear from the context".  That probably means source is the same size as destination, identity swizzle, and all channels written.</p>
<p dir="ltr">--Jason<br>
</p>