<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Hi Elena,<div><br></div><div><div><div>On Aug 18, 2014, at 9:31 AM, Demikhovsky, Elena <<a href="mailto:elena.demikhovsky@intel.com">elena.demikhovsky@intel.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="font-size: 11px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">Hi Adam,<br><br>Some things that I see:<br><br>1) I suggest to rename EltNum to NumOfElts<br></div></blockquote><div><br></div><div>I went with NumElts.  That seems to be used more commonly in headers likes MachineValueTypes.h.</div><div><br></div><blockquote type="cite"><div style="font-size: 11px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">2)<br>+  // Corresponding write-mask register class.<br>+  RegisterClass KRC = !cast<RegisterClass>("VK" # EltNum # "WM");<br>+<br>+  // The GPR register class that can hold the write mask.<br>+  RegisterClass MRC = !cast<RegisterClass>("GR" # EltNum);<br><br>VK2 is possible, GR2 is not.<span class="Apple-converted-space"> </span><br></div></blockquote><div><br></div><div>Good catch, thanks.  I modified this to give GR8 for NumElts <= 8.</div><br><blockquote type="cite"><div style="font-size: 11px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">2) I don't think that default rc is good. Let everybody specify register class explicitly.<br>+class X86VectorVTInfo<int EltNum, ValueType EltVT, RegisterClass rc = VR512,<br>+                      string suffix = ""> {<br></div></blockquote><div><br></div><div>Done.</div><br><blockquote type="cite"><div style="font-size: 11px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">3) Let's assume that I'm building<br>def v16f32_info :  X86VectorVTInfo<16, f32, VR512, "ps"><br>how FloatVT will look like?<br></div></blockquote><div><br></div><div>It would be v16f32, i.e. the original type.</div><br><blockquote type="cite"><div style="font-size: 11px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">Do we need IntVT for completeness?<br></div></blockquote><div><br></div><div>Do you think we’ll need it?  I was going to wait until there is a need for it.</div><br><blockquote type="cite"><div style="font-size: 11px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">4) I suggest to add broadcast string {1toX} to the info.<br></div></blockquote><div><br></div><div>Done.</div><div><br></div><div>Please review the new version.</div><div><br></div><div>Adam</div><div><br></div><div></div></div></div></body></html>