<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi Barbora,<div class=""><br class=""></div><div class="">What is important for using new registers is to have instructions that are “compatible" with them.</div><div class=""><br class=""></div><div class="">In a nutshell, if you don’t have any instruction that uses your new register class, then it won’t be used. Basically, it is useless to have a value living in a container you cannot address.</div><div class=""><br class=""></div><div class="">Cheers,</div><div class="">-Quentin<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Jan 21, 2018, at 4:29 PM, Barbora Murinová via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Hi all,<div class=""><br class=""></div><div class="">I have a bunch of new registers set up in X86RegisterInfo.td, the important part being<br class=""><br class=""><div class="">def PR128 : RegisterClass<"X86", [i128],</div><div class="">                           128, (sequence "POI%u", 0, 7)>;   <br class=""><br class=""><div class="">def VR128 : RegisterClass<"X86", [v4f32, v2f64, v16i8, v8i16, v4i32, v2i64],</div><div class="">                          128, (add PR128, FR32)>;</div></div><div class=""><br class=""></div><div class="">I have an entry in X86ISelLowering.cpp:<br class=""><br class="">addRegisterClass(MVT::i128, &X86::PR128RegClass); <br class=""></div><div class=""><br class=""></div><div class="">and in findRepresentativeClass(): </div><div class=""><br class=""></div><div class=""><div class="">case MVT::i128:</div><div class="">    RRC =  &X86::PR128RegClass;</div></div><div class=""><br class=""></div><div class="">But even though my nodes have MVT::i128 value type, they get allocated to XMM registers. I have, of course, removed i128 from FR128. What am I missing?</div><div class=""><br class=""></div><div class="">Thanks,</div><div class="">Barbora</div><div class=""><br class=""></div>-- <br class=""><div class="gmail_signature"><div dir="ltr" class=""><div class=""><font size="1" color="#999999" class="">----------------</font></div><div class=""><font size="1" color="#999999" class="">Barbora Murinová</font></div><div class=""><font size="1" color="#999999" class="">The University of Edinburgh</font></div><div class=""><font size="1" color="#999999" class="">SK: +421905718390<br class="">UK: +447477833795</font></div></div></div>
</div></div>
_______________________________________________<br class="">LLVM Developers mailing list<br class=""><a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a><br class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev<br class=""></div></blockquote></div><br class=""></div></body></html>